Skip to content

[Infra] Close runner admission and dependency-review availability gaps #4

Description

@seonghobae

Current incident — 2026-09-06 fresh owner read

ConceptWeave does not own central GitHub Actions admission, organization required-workflow scheduling, Dependency Review availability, or the organization review ruleset. Keep those control-plane concerns separate from repository-owned semantic REDs and preserve exact product heads unless a real ConceptWeave finding requires a causal change.

Current ConceptWeave stack

  • protected main@f4f440dd58c77d7cd90dff8a1eb2eeb9a9940425; GitHub Releases remain empty;
  • Foundation feat: establish ConceptWeave foundation #1 b538470c963e6524ddc0c3f652a46a4fc8265150, Draft/open/mergeable. Its body now carries current central machine-principal admission evidence plus the Source Observation trusted resource-envelope prerequisite;
  • Product-CI bootstrap chore(ci): bootstrap Product pull-request workflow #35 a31ae0c2df920f2794f7ddb456795b04797ab472, open/non-Draft/mergeable. Security Scan 33938445660 and SAST Semgrep 33938445673 are terminal success; CodeQL PR 33938445642, Required OpenCode Review 33938445067, and Strix 33938445050 are terminal failure. Noema CHANGES_REQUESTED remains blocking and a fresh review sweep still finds no qualifying independent APPROVE;
  • Client feat(client): add offline semantic release admission contract #5 fcf36c8a99f015b963c9f812787df127ac2e2f9e, Draft/open/mergeable;
  • Source Observation feat(observation): define immutable PostgreSQL schema snapshot contract #6 9f1154906f7424610edd313dfecc14132b7bee8a, Draft/open/mergeable. Non-resetting operation budget, exact source+schema authorization, immutable connection-policy binding, stale-binding fail-closed fixtures, exact-schema snapshot containment and binding-preserving receipt provenance are source-present but not exact-head runtime GREEN. Fresh review 5123894287 identifies an additional prerequisite: caller-selected resource ceilings still need trusted local policy admission.

The Zotero #13#38 full-text/write-admission lineage remains separately single-writer coordinated and is not an infra-lane mutation target.

CodeQL matrix defect is repaired; central dispatch identity remains a machine-principal migration problem

The original #35 dispatch failed because array-valued client_payload.matrix was bound directly to env:. .github#1926 repaired that normally as merge 3f88e13af9dcde4b9da6958c02a78ce3b5c85800; old #35 failures are not retroactive GREEN.

Current protected central owner head is .github/main@efb8926923de45245338159a489a1b227e81945f. A post-#1932 current-workflow CodeQL dispatch, run 33997332726, acquired a hosted ubuntu-24.04 runner, exchanged the OpenCode app token, then failed Bind workflow inputs to live organization pull request metadata; downstream scan was skipped. Later owner measurements recorded 83/83 app-token OpenCode dispatches in the measured window failing the same identity gate.

.github#1929 now has stronger producer inventory than the earlier two-bot model. OpenCode/CodeQL app-token dispatches use opencode-agent[bot]; a legacy/scheduler path has emitted github-actions[bot]; and measured pr-review-fix-scheduler.yml dispatches use the human account seonghobae. The least-widening repair is not a three-entry allowlist. The central owner must migrate review-fix off the user PAT identity to the repository-scoped App identity or another dedicated least-privilege machine principal, then reconcile OPENCODE_REPOSITORY_DISPATCH_ACTOR only to intentionally retained machine identities. Preserve actor==sender, target repository, live PR/base/head and wake binding. Acceptance requires fresh current-central-head canaries from OpenCode, CodeQL and review-fix to reach substantive jobs, while an otherwise identical human-account dispatch remains rejected. ConceptWeave cannot read/write that Actions variable and does not broaden the gate.

.github#1931 separately owns queue-time base drift; strict exact head_sha binding remains mandatory. Do not conflate it with actor/admission.

Noema review owner

.github#1924 remains open. The #35 CHANGES_REQUESTED premise that cargo generate-lockfile --locked is unsupported is contradicted by official Cargo documentation and recorded Cargo 1.98.0 help output. Merged #1944 improves failed Noema stderr/preflight artifact capture but does not fix contradicted external-capability adjudication. ConceptWeave will not change valid Cargo usage, dismiss the review, or fabricate approval.

Strix / contextual-orchestrator owner

The historical #35 Strix run remains failed, but the owner path advanced materially after that run. contextual-orchestrator#1081 merged as protected main@414f22973658c4ddc3d4320fcf7acd9b4e8ba991, reproducing six real transport attempts against one flaky candidate before the fix and reducing that to at most two before _invoke advances to the next candidate. Central .github#1951 then advanced the review-sidecar pin to that exact owner commit, producing current central head efb8926923de45245338159a489a1b227e81945f.

This does not retroactively make #35 GREEN. contextual-orchestrator#1049 remains open for passthrough retryable 502/network failover with typed attempt evidence, and a fresh Strix execution using the current central trusted workflow is required to determine whether the old repeated-HTTP-500 specimen is closed by current retry/failover behavior or whether a narrower status-classification/attempt-evidence defect remains. ConceptWeave does not copy provider/model fallback policy into the leaf.

Source Observation trusted resource-envelope admission

#6 already moved source authority away from caller-selected source/schema trust: source key resolution yields an immutable opaque policy binding, exact schema scope is authorized against that same binding, and snapshots fail closed when local observed schema escapes the authorization envelope. The remaining resource admission is inconsistent with that trust model. ObservationLimits and ObservationRequestBudget are caller-selected positive values; current constructors reject zero but do not require an owner ceiling. A caller can therefore request effectively unbounded timeout/row/byte/concurrency/schema-metadata values while still presenting an otherwise authorized source/schema request.

Acceptance before a concrete PostgreSQL adapter: the same trusted local policy must explicitly admit/cap the complete provider-independent resource envelope against the exact ResolvedSourceConnection, default deny, and reject wider-than-policy requests before adapter/source/snapshot side effects. Equal/narrower controls must proceed; policy evaluation consumes the same non-resetting operation budget. Do not solve this with arbitrary PostgreSQL-specific constants, source credentials, DSNs or runtime objects in the port. PR review 5123894287; Issue #2 handoff 5556511220.

Dependency Review owner

The earlier authenticated exact-range HTTP 403 was traced to an uninitialized repository dependency graph, not retry/backoff. Initializing the graph made the same compare endpoint available, so the proposed retry repair remained unmerged. That RCA is not consumer GREEN: a dependency-changing current ConceptWeave head still needs the authoritative pinned Dependency Review action to execute successfully. Alternative scanners or 403-as-success shims are not substitutes.

Repository-owned next work

  1. Keep chore(ci): bootstrap Product pull-request workflow #35 exact head stable. Complete central machine-principal producer migration/admission, obtain newly emitted current-workflow CodeQL/OpenCode results for unchanged chore(ci): bootstrap Product pull-request workflow #35, correct/re-evaluate Noema, obtain fresh Strix on the current CO #1081/.github #1951 path and a qualifying independent approval, then merge normally only after every exact-head gate is satisfied.
  2. After chore(ci): bootstrap Product pull-request workflow #35 integration, apply the same no-op-event queue-conservation repair to Foundation feat: establish ConceptWeave foundation #1, refresh docs/product-technical-gap-baseline.md, and obtain repository-owned Product plus applicable central evidence on one unchanged exact Foundation head.
  3. Source Observation feat(observation): define immutable PostgreSQL schema snapshot contract #6: make the complete resource envelope trusted-policy-admitted against the immutable source binding; obtain exact-head Rust/Product/coverage/rustdoc evidence and repair only observed failures; only then add the bounded read-only Rust PostgreSQL adapter/replay fixture.
  4. Client feat(client): add offline semantic release admission contract #5: re-establish exact-head Product/security/review evidence after Foundation integration, then continue generic client-consumption/alignment/query-plan gaps without a foreign-domain public-model fork.
  5. Restack dependents non-force only after their direct prerequisite actually moves; predecessor evidence never transfers as GREEN.

Acceptance

  • current exact heads obtain real runner identity, exact checkout and terminal authoritative evidence;
  • repository-owned failures follow realistic RED → minimum causal repair → unchanged exact-head GREEN;
  • central dispatch authorization/base-drift/queue concerns remain at .github rather than being copied into ConceptWeave;
  • Dependency Review executes authoritatively on a dependency-changing current ConceptWeave consumer head;
  • review governance remains satisfiable without self-approval, synthetic identities, review dismissal or required-context weakening;
  • Source Observation keeps credentials/DSNs outside domain contracts, policy-authorizes exact schema scope and the complete resource envelope against an immutable opaque connection-policy revision, and returns no partial immutable snapshot on timeout/cancellation/source disappearance;
  • no force push, destructive rebase, routine admin bypass, predecessor-evidence transfer, no-op retrigger, scanner substitution, mutable foreign dependency or premature release.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions