Repository navigation
fix(ci): restore evidence-only review admission #1629
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
seonghobae
wants to merge
100
commits into
main
Choose a base branch
from
fix/no-heuristic-review-admission-current-main
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 77 commits
Commits
Show all changes
100 commits
Select commit
Hold shift + click to select a range
5c7b7ea
fix(ci): restore evidence-only review admission
seonghobae f7e03f2
merge current main into evidence-only review admission repair
seonghobae 4235ecb
fix(ci): fail closed on normalized review agent collisions
seonghobae 93bdbf7
test(ci): add exact strict-free repair for PR 1629
seonghobae cb3956f
ci: add self-removing PR 1629 strict-free source fix
seonghobae 28da4a2
chore(ci): trigger PR 1629 strict-free source fix
seonghobae 1d52c2a
fix(ci): enforce strict free-only review entrypoints
github-actions[bot] f756684
chore(ci): remove transient uv lock artifact
seonghobae 6594cb4
test(ci): lock normalized review-agent collision handling
seonghobae ee898e4
chore(ci): stage exact-head sidecar contract repair
seonghobae 49d880d
chore(ci): run one-shot PR 1629 contract repair
seonghobae 80d1000
test(ci): align sidecar contract with free-only admission
github-actions[bot] 6a0beea
test(ci): exercise free-only launcher admission behavior
seonghobae 2e57d01
docs(ci): retire heuristic Strix diversity gate
seonghobae 56335de
docs(review): use current account-diversity evidence field
seonghobae aaae0cf
docs(review): distinguish historical family and runtime account diver…
seonghobae e4b08b5
chore(review): reconcile evidence-only routing with live main
seonghobae 4b12197
chore(review): reconcile evidence-only routing with current main
seonghobae 38cf798
test(review): prove preflight routes start concurrently
seonghobae 27c1a37
test(review): expose ignored legacy policy flags
seonghobae 7d697c6
ci(repair): apply review startup latency GREEN
seonghobae a43af42
ci(repair): trigger established one-shot workflow
seonghobae 5175935
ci(repair): stage PR1629 source repair driver
seonghobae b9b252d
ci(repair): fix one-shot workflow parser failure
seonghobae 27a9f0f
ci(repair): isolate one-shot workflow setup failure
seonghobae 6b7477d
ci(repair): isolate write-permission setup
seonghobae 3bb1985
ci(repair): run PR1629 causal repair on hosted Python
seonghobae 7759a86
ci(repair): isolate checkout setup
seonghobae 8d746dd
chore(ci): execute bounded PR1629 repair
seonghobae b561d1e
chore(ci): trigger guarded PR1629 repair
seonghobae 6781c49
fix(ci): cancel stale PR1629 repair runs on new push
seonghobae 17fa7c3
ci(repair): move PR1629 repair to slim runner
seonghobae 7d2563c
fix(ci): preserve successor-head workflow evidence
seonghobae ec38d6e
fix(ci): bridge renamed preflight ADR in one-shot repair
seonghobae 50206d8
fix(ci): target live ADR in PR1629 repair
seonghobae beead82
fix(ci): publish tested PR1629 repair before owner retrigger
seonghobae 56cf1db
fix(ci): finish evidence-only review admission repair
github-actions[bot] 0f6e1ee
docs(ci): retrigger PR1629 exact-head admission after source repair
seonghobae 00602b8
test(review): prevent same-account preflight bursts
seonghobae ac0ac05
fix(review): serialize preflight per provider account
seonghobae 700d0cd
docs(review): record provider-account preflight repair
seonghobae 4041a87
docs(plan): define DeepSeek preflight resilience repair
seonghobae aee16fd
chore(repair): stage PR 1629 DeepSeek TDD driver
seonghobae e0af6fc
chore(repair): run PR 1629 DeepSeek TDD repair
seonghobae ae79230
ci(temp): align PR1629 preflight regression
seonghobae 2bb0a0a
ci(temp): repair PR1629 writer execution
seonghobae 998f06d
fix(review): recover transient DeepSeek preflight failures
seonghobae 14f400b
test(review): separate generic retry from reasoning evidence
seonghobae 6670953
docs: generalize preflight resilience plan
seonghobae 7afe1cd
docs: remove model-specific preflight plan
seonghobae add185e
fix(review): align preflight lane docs and lint oracle
seonghobae cd65b54
test(review): make runtime preflight contract provider-neutral
seonghobae 111ce3a
ci(temp): repair PR1629 provider-lane baseline wording
seonghobae 6fc197f
docs(review): scope readiness concurrency to provider accounts
seonghobae baa212c
docs(review): codify provider-neutral timeout and retry boundaries
seonghobae f80b0c6
test(ci): prohibit heuristic preflight retry budget
seonghobae 92e8bd0
chore(repair): add PR1629 preflight-retry source fix
seonghobae cf30d06
chore(repair): add PR1629 preflight-retry TDD workflow
seonghobae b7d196c
chore(repair): trigger PR1629 preflight-retry source fix
seonghobae 6df5132
fix(repair): make PR1629 retry repair self-cleaning
seonghobae b5d4424
fix(review): make preflight transport one-shot
seonghobae 195c5b8
test(review): assert one-shot preflight transport
seonghobae bf846f4
test(review): align runtime preflight with one-shot transport
seonghobae cec8538
chore(review): remove superseded preflight repair trigger
seonghobae 1962dfe
chore(review): remove superseded preflight repair workflow
seonghobae 0e526cd
chore(review): remove superseded preflight repair helper
seonghobae 34f5b48
docs(review): record direct one-shot preflight repair
seonghobae 7561e1a
test(review): forbid heuristic preflight compute allocation
seonghobae 449117b
test(review): retire heuristic preflight oracles
seonghobae d4ebe48
chore(review): add no-heuristic compute repair driver
seonghobae 18fdd72
test(review): replace retired fallback and compute oracles
seonghobae 6a80203
chore(review): add drift-safe compute repair driver
seonghobae 87eab9e
ci(review): add no-heuristic compute source fix
seonghobae 787a24b
ci(review): trigger no-heuristic compute repair
seonghobae ce8bc95
chore(review): retrigger no-heuristic compute repair
seonghobae a436bd4
chore(repair): retrigger PR1629 no-heuristic compute source fix
seonghobae ba9500d
Merge origin/main into fix/no-heuristic-review-admission-current-main
seonghobae 0abc67a
test(review): remove heuristic token oracle from concurrency contract
seonghobae 3100e78
chore(review): execute drift-safe no-heuristic repair
seonghobae 4b4163c
chore(review): remove purpose-complete self-modifying workflow
seonghobae 3a23daf
chore(review): remove source-fix trigger
seonghobae 386bba1
chore(review): remove obsolete source-fix driver
seonghobae 0a5b9d1
chore(review): remove obsolete source-fix driver
seonghobae 748ec4c
test(review): require one-shot provider-default reasoning preflight
seonghobae 7376d47
docs(review): align preflight resilience with one-shot owner contract
seonghobae dbb0493
fix(review): make preflight provider-default and one-shot
seonghobae a2c0b54
test(review): bind runtime client contract to provider defaults
seonghobae 8f26f43
test(ci): forbid duplicate sidecar provider replay
seonghobae df9caa1
fix(ci): remove duplicate sidecar inference replay
seonghobae 03b2436
test(ci): retire obsolete preflight heuristic oracles structurally
seonghobae 14c8300
test(ci): remove legacy preflight name suppression
seonghobae 36a60d0
docs(adr): align preflight decision with one-shot runtime
seonghobae 1ca83c3
docs(plan): mark one-shot preflight repair complete
seonghobae f9b0194
merge(ci): reconcile review admission owner with protected main
seonghobae 6203358
docs(adr): supersede lazy-fill preflight heuristics
seonghobae db3d648
chore(review): reconcile protected main into #1629
seonghobae 5e7e299
chore(review): adopt current protected main into #1629
seonghobae 3c51128
test(review): collect current one-shot preflight contract
seonghobae 2bbea59
test(review): make discovery import contract formatting-agnostic
seonghobae ebf03e4
test(review): align sanitizer oracle with structured traceback summaries
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| trigger=2026-09-02T08:00:00Z | ||
| contract=fail-closed-provider-default-preflight | ||
| expected-head=ce8bc953141da7250c5bb7e44ea6ed5cfaf2929b | ||
|
seonghobae marked this conversation as resolved.
Outdated
|
||
91 changes: 91 additions & 0 deletions
91
.github/workflows/source-fix-1629-no-heuristic-compute.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,91 @@ | ||
| name: Source fix PR1629 no-heuristic compute | ||
|
github-advanced-security[bot] marked this conversation as resolved.
Fixed
|
||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - fix/no-heuristic-review-admission-current-main | ||
| paths: | ||
| - .github/source-fix-1629-no-heuristic-compute.trigger | ||
|
|
||
| jobs: | ||
| repair: | ||
| permissions: | ||
| contents: write | ||
|
github-advanced-security[bot] marked this conversation as resolved.
Fixed
|
||
| runs-on: ubuntu-24.04 | ||
| steps: | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 | ||
| with: | ||
| fetch-depth: 0 | ||
| ref: fix/no-heuristic-review-admission-current-main | ||
| persist-credentials: true | ||
| - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d | ||
| with: | ||
| version: '0.12.5' | ||
| - name: Validate repair driver syntax | ||
| run: python -m py_compile scripts/source_fix_1629_no_heuristic_compute_v2.py | ||
| - name: Prove compute-allocation contract is RED before repair | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| if uv run --group dev python -m pytest -q tests/test_contextual_orchestrator_review_no_heuristic_compute.py; then | ||
| echo '::error::no-heuristic compute regression was not RED before production repair' | ||
| exit 1 | ||
| fi | ||
|
seonghobae marked this conversation as resolved.
Outdated
|
||
| - name: Apply causal shared-owner repair | ||
| run: python scripts/source_fix_1629_no_heuristic_compute_v2.py | ||
| - name: Verify repaired central contracts | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| uv run --group dev python -m pytest -q \ | ||
| tests/test_contextual_orchestrator_review_no_heuristic_compute.py \ | ||
| tests/test_contextual_orchestrator_review_runtime_preflight.py \ | ||
| tests/test_contextual_orchestrator_review_preflight_concurrency.py \ | ||
| tests/test_contextual_orchestrator_review_policy.py \ | ||
| tests/test_contextual_orchestrator_review_sidecar_contract.py | ||
| uv run --group dev ruff check \ | ||
| scripts/ci/contextual_orchestrator_review_launcher.py \ | ||
| tests/test_contextual_orchestrator_review_no_heuristic_compute.py \ | ||
| tests/test_contextual_orchestrator_review_runtime_preflight.py | ||
| bash -n scripts/ci/contextual_orchestrator_review_sidecar.sh | ||
| git diff --check | ||
| - name: Commit repair, reconcile current main, self-remove, and push | ||
| shell: bash | ||
| run: | | ||
| set -euo pipefail | ||
| rm -f \ | ||
| .github/workflows/source-fix-1629-no-heuristic-compute.yml \ | ||
| .github/source-fix-1629-no-heuristic-compute.trigger \ | ||
| scripts/source_fix_1629_no_heuristic_compute.py \ | ||
| scripts/source_fix_1629_no_heuristic_compute_v2.py | ||
| git add -A | ||
| git diff --cached --check | ||
| if git diff --cached --quiet; then | ||
| echo '::error::repair produced no tracked change' | ||
| exit 1 | ||
| fi | ||
| git config user.name 'opencode-agent[bot]' | ||
| git config user.email '219766164+opencode-agent[bot]@users.noreply.github.com' | ||
| git commit -m 'fix(review): remove heuristic inference allocation' | ||
| git fetch --no-tags origin main fix/no-heuristic-review-admission-current-main | ||
| remote_head="$(git rev-parse origin/fix/no-heuristic-review-admission-current-main)" | ||
| if [ "$remote_head" != "$(git rev-parse HEAD)" ] && ! git merge-base --is-ancestor "$remote_head" HEAD; then | ||
| git merge --no-edit "$remote_head" | ||
| fi | ||
| main_head="$(git rev-parse origin/main)" | ||
| if ! git merge-base --is-ancestor "$main_head" HEAD; then | ||
| git merge --no-edit "$main_head" | ||
| fi | ||
| uv run --group dev python -m pytest -q \ | ||
| tests/test_contextual_orchestrator_review_no_heuristic_compute.py \ | ||
| tests/test_contextual_orchestrator_review_runtime_preflight.py \ | ||
| tests/test_contextual_orchestrator_review_preflight_concurrency.py \ | ||
| tests/test_contextual_orchestrator_review_policy.py \ | ||
| tests/test_contextual_orchestrator_review_sidecar_contract.py | ||
| uv run --group dev ruff check \ | ||
| scripts/ci/contextual_orchestrator_review_launcher.py \ | ||
| tests/test_contextual_orchestrator_review_no_heuristic_compute.py \ | ||
| tests/test_contextual_orchestrator_review_runtime_preflight.py | ||
| bash -n scripts/ci/contextual_orchestrator_review_sidecar.sh | ||
| git diff --check | ||
| git push origin HEAD:fix/no-heuristic-review-admission-current-main | ||
|
seonghobae marked this conversation as resolved.
Outdated
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
143 changes: 74 additions & 69 deletions
143
docs/doctoring/contextual-orchestrator-strix-free-diversity-evidence.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,81 +1,86 @@ | ||
| # Doctoring record: evidence-gated path toward `orchestrator/free` for Strix | ||
| # Doctoring record: Strix `orchestrator/free` reconciliation | ||
|
|
||
| - **Date:** 2026-08-30 | ||
| - **Subject:** The 2026-08-30 owner directive asks that Noema, OpenCode, and | ||
| Strix all route review through `contextual-orchestrator`'s `orchestrator/free` | ||
| pool. Noema and OpenCode already do (`docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md`). | ||
| Strix does not, and stays on `orchestrator/auto` today; this record explains | ||
| why the pin was not flipped on the strength of the instruction alone, and | ||
| what new evidence infrastructure exists so a future, properly reviewed change | ||
| can flip it safely. | ||
| - **Date:** 2026-09-01 | ||
| - **Status:** supersedes the 2026-08-30 diversity-gate proposal | ||
| - **Subject:** Noema, OpenCode, and Strix route required review through | ||
| `ContextualWisdomLab/contextual-orchestrator` using `orchestrator/free`. | ||
| - **Decision record:** [`docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md`](../adr/0003-contextual-orchestrator-vendored-free-zdr.md) | ||
| (2026-08-30 addendum) | ||
| - **Related:** [`docs/product-goal-directive.md`](../product-goal-directive.md) §8 | ||
| and its Follow-up findings note; [`docs/doctoring/noema-orchestrator-free-zdr.md`](noema-orchestrator-free-zdr.md) | ||
|
|
||
| ## Why this needed reconciliation, not a direct edit | ||
| ## Superseded proposal | ||
|
|
||
| `docs/product-goal-directive.md` states its own conflict policy: "Where this | ||
| directive and those documents conflict, resolve the conflict and update | ||
| whichever document is wrong — do not silently pick one." Strix's | ||
| `orchestrator/auto` pin is not an oversight; it is an accepted ADR-0003 | ||
| decision backed by a specific, dated finding: on 2026-08-29, the DiskSage | ||
| exact-head scan showed every discovered free route sharing the OpenRouter | ||
| outage domain, so a strict `orchestrator/free` pin for Strix (which has no | ||
| provider fallback) would have gone dark on that one provider's outage. Silently | ||
| flipping the pin today, on the strength of a general instruction that does not | ||
| re-examine that finding, would reintroduce the exact single-point-of-failure | ||
| risk the ADR was written to avoid — for the workflow whose job is the org's | ||
| required *security* review. Silently keeping the old pin, on the other hand, | ||
| would ignore a legitimate cost/consistency goal the owner restated today. | ||
| The earlier version of this record correctly observed an outage-domain | ||
| concentration incident, but it proposed automatically switching Strix between | ||
| `orchestrator/free` and `orchestrator/auto` when a conceptual | ||
| `free_family_diversity >= 2` condition was met. That historical name referred | ||
| to outage-domain families; it was not, and is not, a runtime evidence field. | ||
| The current runtime emits `free_account_diversity`, which counts credential | ||
| accounts and is not a semantic substitute because multiple accounts can share | ||
| one outage domain. The historical cardinality threshold was not derived from a | ||
|
devin-ai-integration[bot] marked this conversation as resolved.
Outdated
|
||
| reliability model, statistical estimand, authoritative standard, or | ||
| experimentally validated routing policy. It is therefore not a permitted | ||
| decision rule under the organization no-heuristics contract and must not be | ||
| implemented or revived. | ||
|
|
||
| ## What changed | ||
| Current `free_account_diversity` evidence, and separately any explicitly modeled | ||
| provider/outage-domain observation, may remain diagnostic evidence. Diagnostics | ||
| do not acquire routing authority merely because they are deterministic or | ||
| measured. Any future reliability-aware model selection must identify its | ||
| estimand and be independently evaluated rather than turning an account count or | ||
| an outage-domain count into a routing threshold. | ||
|
|
||
| `scripts/ci/contextual_orchestrator_review_policy.py`'s | ||
| `build_zdr_prioritized_catalog` now reports `free_family_diversity`: the count | ||
| of distinct outage-domain provider families (`provider_family`; the primary | ||
| and secondary NVIDIA NIM keys already collapse into one family) among *all* | ||
| discovered free routes, independent of which `--pool` was requested. This is | ||
| new evidence, not a new decision — it is computed from the same discovery | ||
| report the catalog already validates, and it is present whether the caller | ||
| asked for `--pool free` or `--pool auto`. | ||
| ## Current executable contract | ||
|
|
||
| `tests/test_contextual_orchestrator_review_policy.py` gained | ||
| `test_build_catalog_reports_free_family_diversity` (asserts diversity of 4 for | ||
| the existing five-provider fixture) and | ||
| `test_build_catalog_reports_single_family_free_concentration` (a regression | ||
| test reproducing the 2026-08-29 shape: two NVIDIA keys only, which collapse to | ||
| one family, so diversity is 1). Full suite: 1882 passed, 1 skipped; coverage | ||
| of the changed module remains 100% (`coverage run -m pytest tests` + | ||
| `coverage report --include=scripts/ci/contextual_orchestrator_review_policy.py`). | ||
| Protected-main evidence now records the actual Strix policy: | ||
|
|
||
| `.github/workflows/strix.yml` is unchanged in this PR. It still hard-pins | ||
| `CONTEXTUAL_ORCHESTRATOR_POOL: auto` and its `STRIX_MODEL`/`STRIX_LLM` gates | ||
| still reject anything except `orchestrator/auto`. | ||
| - `.github/workflows/strix.yml` accepts the contextual-orchestrator gateway and | ||
| restricts Strix model overrides to `orchestrator/free`; | ||
| - `tests/test_contextual_orchestrator_review_sidecar_contract.py` asserts | ||
| `CONTEXTUAL_ORCHESTRATOR_POOL: free`; | ||
| - `scripts/ci/strix_quick_gate.sh` and the required-workflow smoke contracts no | ||
| longer treat `orchestrator/auto` as an allowed Strix model route; | ||
| - Noema and Required OpenCode use the same `orchestrator/free` product boundary; | ||
| - private/internal review targets require the sidecar's ZDR policy rather than a | ||
| workflow-local model fallback. | ||
|
|
||
| ## What has to happen before Strix can move to `orchestrator/free` | ||
| The five bootstrap credentials may all be supplied to contextual-orchestrator: | ||
| `BYTEZ_API_KEY`, `NVIDIA_NIM_API_KEY`, `NVIDIA_NIM_API_KEY_SUB`, | ||
| `OPENROUTER_API_KEY`, and `OPENAI_API_KEY`. Receiving, registering, or globally | ||
| discovering through `OPENAI_API_KEY` is not a defect. The invariant is the | ||
| `orchestrator/free` candidate-admission boundary: OpenAI-key-derived models are | ||
| not eligible for free-pool candidate generation, ranking, routing, serving, | ||
| failover, fallback, preflight, or durable free-pool persistence. The four | ||
| free-eligible credential sources still require their explicit zero-cost, | ||
| privacy, and capability evidence; a supplied credential does not fabricate an | ||
| eligible model. | ||
|
|
||
| A follow-up PR to `strix.yml` (or to | ||
| `scripts/ci/contextual_orchestrator_review_sidecar.sh`, whichever the | ||
| implementer finds is the correct evidence-read point) should read | ||
| `free_family_diversity` from the sidecar's `policy-report.json` after | ||
| discovery and select `orchestrator/free` only when it is `>= 2` — i.e. the | ||
| discovered free catalog spans at least two independent outage domains, so one | ||
| provider's outage cannot black out Strix's required review — and fall back to | ||
| `orchestrator/auto` otherwise. That PR was deliberately not bundled into this | ||
| one because `strix.yml` is a `pull_request_target` required workflow | ||
| (`docs/pr-review-and-merge-procedure.md`'s trust-boundary note: PRs that edit | ||
| trusted review workflows run the *base branch's* trusted scripts and can fail | ||
| their own checks until the base branch catches up) and its `STRIX_MODEL` | ||
| allowlist is a deliberate hardened gate, not an oversight to route around in | ||
| the same change that adds the evidence it would depend on. | ||
| ## Admission versus routing | ||
|
|
||
| ## Audit trail | ||
| The central review catalog is an admission boundary. It may enforce explicit | ||
| pool, zero-cost/price evidence, credential-source, capability, and ZDR | ||
| predicates, but it must not turn discovery into a provider quota, family quota, | ||
| candidate-count cap, cost/provider/name ordering, synthesized priority, or | ||
| first-come escalation preference. Every evidence-eligible route remains in the | ||
| catalog. Downstream selection requires identified routing evidence; if that | ||
| evidence is unavailable, the runtime fails closed. | ||
|
|
||
| - `docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md` — 2026-08-30 | ||
| addendum recording the decision and rationale. | ||
| - `docs/product-goal-directive.md` §8 and its Follow-up findings note — the | ||
| directive text and prior CodeRabbit reconciliation this addendum extends. | ||
| - `scripts/ci/contextual_orchestrator_review_policy.py`, | ||
| `tests/test_contextual_orchestrator_review_policy.py` — the evidence change | ||
| and its tests. | ||
| Startup readiness follows the same separation: complete admission evidence | ||
| remains durable, while all admitted routes are probed concurrently and reported | ||
| in catalog order. This removes additive provider latency without turning probe | ||
| completion order into routing authority. | ||
|
|
||
| PR #1629 restores that contract on current protected-main lineage by removing | ||
| the reintroduced catalog cardinality/account caps, ranking, priority synthesis, | ||
| launcher route-count caps, and shared escalation quota while preserving the | ||
| free-only central-review pool. | ||
|
|
||
| ## Evidence trail | ||
|
|
||
| - `.github/workflows/strix.yml` — executable Strix pool and override boundary. | ||
| - `tests/test_contextual_orchestrator_review_sidecar_contract.py` — executable | ||
| `orchestrator/free` sidecar contract. | ||
| - `docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md` — current and | ||
| historical pool decisions, including the later amendment superseding Strix | ||
| `orchestrator/auto`. | ||
| - `docs/product-technical-gap-baseline.md` — current implementation/gap ledger. | ||
| - `scripts/ci/contextual_orchestrator_review_policy.py` — admission evidence, | ||
| not a substantive model router. | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.