fix(strix): make Azure and cross-provider fallbacks executable - #1263
fix(strix): make Azure and cross-provider fallbacks executable#1263seonghobae wants to merge 37 commits into
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughStrix 워크플로가 신뢰된 의존성 잠금, 검증된 dispatch 식별자, 격리된 상태 게시 및 Docker 샌드박스를 사용합니다. 게이트가 공급자별 폴백, 모델 정규화, 보고서 검증, advisory 필터링 및 authoritative 실행 evidence를 검사합니다. 관련 smoke 테스트와 회귀 테스트를 확장했습니다. ChangesStrix 보안 및 폴백 처리
Estimated code review effort: 4 (Complex) | ~75 minutes Merge Risk: 🟡 Moderate · up to The PR makes Azure and cross-provider fallback routing executable and constrains dependency installation to the trusted lock, reducing fallback failures and untrusted dependency risk. Functional checks pass, but current-head security/SBOM validation is still queued and one documentation reference is invalid, so merge should wait for terminal validation and the small documentation fix. Sequence Diagram(s)sequenceDiagram
participant GitHubWorkflow
participant DispatchMetadata
participant StrixQuickGate
participant LiteLLM
participant FallbackProvider
participant StatusPublisher
GitHubWorkflow->>DispatchMetadata: 저장소와 HEAD 검증
DispatchMetadata-->>StrixQuickGate: 검증된 식별자 전달
GitHubWorkflow->>StrixQuickGate: 신뢰된 잠금과 fallback key 전달
StrixQuickGate->>LiteLLM: 정규화된 모델 요청
LiteLLM-->>StrixQuickGate: 실행 결과 또는 fallback 가능 오류 반환
StrixQuickGate->>FallbackProvider: 조건부 fallback 요청
StrixQuickGate-->>StatusPublisher: 검증 결과와 scan enabled 전달
StatusPublisher->>StatusPublisher: 성공 evidence 확인 후 상태 게시
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Independent current-head review request for exact HEAD Gap G-03: required Strix still fail-closes 0-vuln complete scans on |
|
@opencode-agent review Independent exact-current-head review requested for Verification on this exact head:
|
|
Exact-head |
|
Strix default-branch dispatch exposed a real privileged-workflow supply-chain defect: the scan replaced the trusted workflow dependency lock with a same-repository PR-head lock before provider credentials later reached the installed scanner. Exact head de3abcd removes that materialization and makes both bounded smoke contracts plus pytest enforce trusted-source-only dependencies. Validation: 1396 passed, 1 skipped, 16 subtests; focused Strix set 40 passed plus 16 subtests; required-workflow smoke and shell syntax passed; git diff --check passed. No gate was weakened: incomplete provider scans and reported vulnerabilities remain non-passing. |
|
Strix default-branch dispatch exposed a real privileged-workflow supply-chain defect: the scan replaced the trusted workflow dependency lock with a same-repository PR-head lock before provider credentials later reached the installed scanner. Exact head 975a9e4 removes that operation, keeps installation on the trusted-source lock, and retains only the current default-branch smoke marker needed for bootstrap compatibility. Both old-main and exact-head bounded smoke contracts pass. Validation: 1396 passed, 1 skipped, 16 subtests; focused Strix set 40 passed plus 16 subtests; shell syntax and git diff --check passed. No gate was weakened: incomplete provider scans and reported vulnerabilities remain non-passing. |
|
Exact-head follow-up for 7011fee: removed the redundant direct-OpenAI branch from STRIX_FALLBACK_MODELS so direct-OpenAI uses only the final empty default after bounded same-model retries. Updated the shell contract test and Python regression assertion to enforce that invariant. Verified locally: 16 targeted tests passed; bash -n passed; actionlint on .github/workflows/strix.yml passed; git diff --check passed; filtered Strix quick gate exited 0. Please review this exact head. |
|
@opencode-agent review Exact head: 7011fee. Review the complete changed diff and report substantive findings with file/line evidence. |
|
Current-head check observation for 7011fee: scan-pr-queue run 32693700001 was cancelled when newer run 32694141371 superseded it; the newer exact-head scan is queued. No source failure is present. This remains normal scheduler progress, not D1-D6 guarded-merge evidence. |
|
OpenCode current-head follow-up: exact head 7011fee adds the explicit empty direct-OpenAI fallback regression test and removes the redundant direct-provider branch from STRIX_FALLBACK_MODELS. Local verification on this exact tree: pytest focused Strix tests 19 passed, bash -n scripts/ci/test_strix_quick_gate.sh, and actionlint .github/workflows/strix.yml. No unresolved review threads; required checks remain pending, and the historical changes-requested review still means no merge is authorized. |
|
Exact current head
The artifact proves provider availability/quota failure, not a source vulnerability. No scan result was promoted to success. A failed-job rerun was requested; its new queue is tracked separately. No merge/readiness claim until a fresh same-head authoritative Strix result and protected approvals exist. |
|
Exact-head update: Root-cause repair for the observed cross-provider Strix failure:
Exact-head local verification on this tree: 17 Strix fallback tests; 98 related Python contract tests; Bash syntax; actionlint; and @opencode-agent Please perform a new substantive review against this exact head only, including changed-file walkthrough, fallback credential/API-base boundary, security impact, and test evidence. Do not reuse predecessor-head evidence. |
|
Exact-head repair update:
All predecessor reviews/checks are historical. Current hosted runs are queued/in progress and therefore non-passing. @opencode-agent Please perform a new substantive formal review against exact head |
|
Final exact-head follow-up: The first full-harness pass correctly exposed a regression in the initial narrowing: an exact HF advisory with a malicious appended The final minimal repair includes the exact HF Hub advisory context in the same-line authentication boundary. Focused GREEN now covers: clean target narrative, genuine litellm Fatal, openai Warning, anthropic Denied, and altered HF-advisory suffix. The clean narrative passes; all four authenticated/altered provider signals remain fail-closed. All hosted checks and reviews for earlier heads are historical. New exact-head workflows are pending. @opencode-agent review this exact head only, including the altered-advisory negative control. |
|
Disposition for current informational threads on exact head
No source change is justified by either informational observation. |
|
Exact-head remediation on 4fb737a: fixed the Strix Changed Path Quality CI trigger so changes to requirements-strix-ci.txt, requirements-strix-ci-hashes.txt, and tests/test_strix_severity_identifier_boundary.py rerun the exact-head quality contract. Added regression assertions for all four contract inputs. Focused verification: 16 passed; Strix shell syntax; interrogate docstring coverage 100 percent; git diff --check passed. Please publish a fresh independent substantive review and required hosted checks for this exact head. Previous-head evidence is stale; no gate was weakened and no bypass was used. |
|
Exact-head review disposition for
This addresses threads |
|
Exact-head local verification completed for 4fb737a: full pytest 1408 passed, 1 skipped, 16 subtests; focused trigger contract 16 passed; interrogate docstring coverage 100 percent; shell syntax, compileall, and git diff --check passed. Hosted current-head workflows and independent approval remain pending, so this PR stays on the normal protected path. |
|
Hosted exact-head verification is now available for The remaining queued security/SBOM workflows and absence of an exact-current-head qualifying formal verdict are non-passing; no merge is requested until those become authoritative. |
|
Protected-main synchronization evidence for exact head
New hosted quality, security, SAST, OSV, SBOM, provenance, and CodeQL runs are queued/in progress and remain non-passing until terminal success. No predecessor check or review is transferred to this head, and no merge is requested yet. |
|
Current-head review refresh requested.
Please run a new independent substantive review against this exact head before merge. |
Current-head review loop
Please publish a fresh substantive review for this exact head and replace stale review state through the normal review workflow. Do not merge until the protected approval gate is current. |
|
Exact-head Strix RCA for
Decision: |
Current exact-head recovery (2026-08-24)
ab3d764547082e1b55b6257cc1cd9aa5d951fa30main@613a33e0cb1c6db9790fae99f6253445712ac37aopenai_direct/*migration and explicit rejection of retiredopenai-direct/*.ed281e2f4a50bad277524b7282ab490d1661e466byte-for-byte from the locally verified merge, then advanced the branch by compare-and-set fast-forward.test_strix_quick_gate.shPASS, andgit diff --checkPASS.97387791739, checked out exact SHAab3d764547082e1b55b6257cc1cd9aa5d951fa30, passed 1,417 tests with 1 skip and 16 subtests, and recordedtest_strix_quick_gate: PASS.Decision:
WAIT_FOR_TERMINAL_EXACT_HEAD_CHECKS_AND_INDEPENDENT_FORMAL_REVIEW.Previous exact-head recovery (historical)
7011fee275eaa257ce491efb4812dd3e98ed649emain@0c6b9a6459c9dbdf5e23fb01df7a32a8a14964b3gpt-5.6-luna; bounded same-model retries remain, and exhausted direct-primary execution fails closed. The current test makes the final empty-default fallback behavior explicit.test_strix_quick_gate.sh: PASS.97331828910, checked out exact SHA7011fee, ran 1,407 tests·16 subtests, and recordedtest_strix_quick_gate: PASS.Decision:
WAIT_FOR_TERMINAL_EXACT_HEAD_CHECKS_AND_INDEPENDENT_FORMAL_REVIEW.Supersedes #1213 with the protected-main replacement for the unsupported-temperature and cross-provider Strix failure. It also absorbs the two unique quality-path triggers from closed duplicate #1262.
Root causes
temperature=0.2sent forgpt-5.6-sol, while LiteLLM had no fallback model group for that selector.openai-direct/alias through without a valid LiteLLM provider, inherited the NVIDIA endpoint and credential, and failed before authoritative vulnerability evidence existed.Repair
STRIX_FAIL_ON_MIN_SEVERITYcannot be promoted into vulnerability findings; identifier-only reports remain non-authoritative and fail closed.openai-direct/to trusted selectoropenai_direct/, then dispatch through LiteLLM provider formopenai/with the established direct-OpenAI credential and no inherited NVIDIA API base.HEAD:requirements-strix-ci-hashes.txtviagit hash-object --no-filters, and require hash-pinned wheels.1.94.2) because1.94.1has no Python 3.13 manylinux wheel.Predecessor exact-head verification (non-passing after head movement)
0445447310257bbd5eef1975c5dbcdf649f311dfmain@93b9cbb145bfe03453c9421dcf7e0668da0f8050openai-direct/gpt-5.6-luna; the focused contract failed because LiteLLM routing requires canonicalopenai_direct/*.97303853223, correctly rejected predecessor05feeb1…because its post-merge restoration looked like a stale replay after the damaged844cef4…merge tree.f428b3e553b8e52c4b0eacc46bc2941bef0aa231keeps the complete owner tree and rebinds protected main as the second parent without changing content; the current doc-only descendant does not revert merged base work.git diff --checkpass; every active fallback branch usesopenai_direct/gpt-5.6-luna, while only a scoped frozen-smoke compatibility comment retains the historical alias.97305671238: exact checkout SHA attested, 1,407 tests·16 subtests and full quick-gate PASS.No secret, raw-provider, approval, protection, model-selection, severity threshold, or incomplete-scan success boundary is weakened.
Decision: WAIT_FOR_INDEPENDENT_EXACT_HEAD_FORMAL_REVIEW.
Summary by CodeRabbit