Skip to content

Migrate review consumers to released orchestrator/free gateway contract #1759

Description

@seonghobae

Problem

The central Strix/OpenCode/Noema/autofix review consumers still provision contextual-orchestrator inside .github, perform provider/model discovery locally, and inject raw provider credentials into the workflow boundary. That is no longer an acceptable end state.

Protected .github/main@cb0872c9a20d5584703dffacca65c096fc034c6c still hard-defaults scripts/ci/contextual_orchestrator_review_sidecar.sh to ORCHESTRATOR_PIN_SHA=414f22973658c4ddc3d4320fcf7acd9b4e8ba991. The script requires at least one of BYTEZ_API_KEY, NVIDIA_NIM_API_KEY, NVIDIA_NIM_API_KEY_SUB, OPENROUTER_API_KEY, or OPENAI_API_KEY, then constructs/probes the free candidate pool in the consumer repository.

A composite action already exists for shared sidecar provisioning, but migrating callers to that action while preserving the same raw provider-secret and local-discovery contract would only consolidate the duplication; it would not satisfy the canonical ownership boundary.

Canonical ownership

contextual-orchestrator owns provider credential registration, provider/model discovery, free-pool eligibility/admission, request-scoped routing/fallback, capability matching, and typed provider/gateway failure provenance. GitHub Actions callers use only the released gateway/client/schema contract, a gateway bearer, and model: orchestrator/free. They do not name providers/models/groups or own paid fallback.

contextual-orchestrator#1094 is protected-integrated and restores virtual structured-output failover on retryable provider outcomes, but contextual-orchestrator still publishes no immutable GitHub Release. Do not pin mutable CO main, vendor a mutable owner PR/head, or copy its routing logic into .github as a bridge.

Consumer canary

fast-mlsirm#1519@dfac8acab49845d2328df6cf08d0fc748f2de711 is a current unchanged-leaf canary. Ordinary CI, Required CodeQL PR, repository CodeQL, Security Scan and Semgrep are terminal GREEN. Required Noema run 34475270437 admitted that exact head and provisioned the sidecar, then failed in model-verdict preparation; retained artifact noema-sidecar-evidence is bound to the same SHA with digest sha256:5013fa48ead37b7ef5da4c5b01fb4910661953a6569fac666c2cbb37c518e610. OpenCode consequently fails closed rather than manufacturing an approval. This is review-gateway availability/ownership evidence, not a fast-mlsirm source finding.

Repair order

  1. contextual-orchestrator completes chore(deps): bump typing-inspection from 0.4.2 to 0.4.4 #1106 (or its verified successor) with RED→GREEN contracts for credential/admission/routing ownership and publishes an immutable API/client/schema release with reproducible identity and typed failure semantics.
  2. Central .github consumers adopt that exact released contract. Remove raw provider-key inputs, provider inventory/catalog construction, probing/admission thresholds, provider/model/group selection, and fallback policy from workflow/composite/script boundaries. Preserve private-target/ZDR policy through the released owner contract rather than reimplementing provider selection here.
  3. Restrict consumer egress to the reviewed gateway plus GitHub/artifact endpoints as applicable and keep failures fail-closed.
  4. Verify central exact-head workflow/contract/security evidence, then replay unchanged consumer heads such as fast-mlsirm chore(deps): bump anchore/sbom-action from 0.24.0 to 0.24.2 #1519. Require exact checkout binding and authenticated Noema/OpenCode/Strix verdict evidence before merge admission.
  5. Remove purpose-complete legacy sidecar/bootstrap code only after released-path consumers are GREEN and in-flight legacy executions are drained.

No leaf no-op retrigger, provider-specific fallback, paid fallback, mutable-main pin, self-approval, synthetic success, or gate weakening is acceptance evidence.

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

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions