Skip to content

fix(strix): use provider-diverse orchestrator pool - #1401

Merged
seonghobae merged 9 commits into
mainfrom
fix/strix-auto-provider-pool-v1
Aug 29, 2026
Merged

fix(strix): use provider-diverse orchestrator pool#1401
seonghobae merged 9 commits into
mainfrom
fix/strix-auto-provider-pool-v1

Conversation

@seonghobae

@seonghobae seonghobae commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

Outcome

  • route authoritative Strix scans through orchestrator/auto
  • retain contextual-orchestrator-only transport, private-target ZDR enforcement, and fail-closed external-fallback policy
  • bind the decision to the observed single-provider orchestrator/free outage-domain evidence

Validation

  • bash scripts/ci/strix_required_workflow_smoke.sh
  • python -m pytest -q tests/test_strix_contextual_orchestrator_contract.py tests/test_contextual_orchestrator_review_sidecar_contract.py (32 passed, 1 subtest passed)
  • actionlint -ignore SC2129 .github/workflows/strix.yml
  • git diff --check

Devin Review

Summary by CodeRabbit

  • 변경 사항

    • Strix 필수 스캔의 기본 모델 풀이 orchestrator/auto로 변경되었습니다.
    • 여러 제공업체를 활용한 장애 조치를 지원해 스캔 가용성이 향상되었습니다.
    • 유료 경로는 게시된 프롬프트·완료 가격과 통화 정보가 확인된 경우에만 사용됩니다.
    • 가격 정보가 누락되거나 잘못된 경로는 안전하게 차단됩니다.
    • 비공개 대상에는 기존과 동일하게 ZDR 준수 경로만 적용됩니다.
  • 문서

    • Strix 라우팅 정책, 가격 검증 및 장애 조치 기준을 관련 문서에 반영했습니다.

@coderabbitai

coderabbitai Bot commented Aug 29, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

Next included review available in 37 minutes.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c62d323-daf7-468d-8ddb-00033595ed33

📥 Commits

Reviewing files that changed from the base of the PR and between 44d5830 and 96c2460.

📒 Files selected for processing (6)
  • scripts/ci/contextual_orchestrator_review_policy.py
  • scripts/ci/contextual_orchestrator_review_sidecar.sh
  • scripts/ci/strix_required_workflow_smoke.sh
  • tests/test_contextual_orchestrator_review_policy.py
  • tests/test_contextual_orchestrator_review_runtime_preflight.py
  • tests/test_strix_contextual_orchestrator_contract.py
📝 Walkthrough

Walkthrough

Strix 필수 스캔의 기본 모델과 사이드카 풀이 contextual-orchestrator/orchestrator/auto로 변경되었습니다. 리뷰 카탈로그는 유료 경로의 가격·통화 증거를 검증하고, free 및 auto 풀 정책을 구분합니다. 관련 워크플로 계약과 테스트가 갱신되었습니다.

Changes

Strix 관리형 라우팅

Layer / File(s) Summary
풀 선택 및 가격 증거 정책
scripts/ci/contextual_orchestrator_review_policy.py, tests/test_contextual_orchestrator_review_policy.py
freeauto 풀을 지원합니다. 유료 경로는 유한하고 음이 아닌 prompt/completion 가격과 통화를 요구합니다. 카탈로그와 감사 보고서에 풀 및 비용 상태를 기록합니다.
사이드카 풀 전달 및 런처 확장
scripts/ci/contextual_orchestrator_review_launcher.py, scripts/ci/contextual_orchestrator_review_sidecar.sh, tests/test_contextual_orchestrator_review_sidecar_contract.py
사이드카가 CONTEXTUAL_ORCHESTRATOR_POOL을 검증하고 런처에 전달합니다. 런처는 free 또는 auto를 선택하며 발견 행에 가격 정보를 보존합니다.
Strix auto 풀 워크플로 적용
.github/workflows/strix.yml, .github/workflows/opencode-review-dispatch.yml, scripts/ci/strix_required_workflow_smoke.sh, scripts/ci/test_strix_quick_gate.sh, tests/test_*strix*, tests/test_noema_orchestrator_workflow_contract.py, tests/test_required_workflow_queue_contract.py, tests/test_pr_review_autofix_nvidia_nim_contract.py, AGENTS.md, CHANGELOG.md, docs/adr/...
Strix 기본 모델, 오버라이드 계약, 사이드카 풀이 auto를 사용하도록 변경되었습니다. 관련 실패 증거 검색, 문서, 변경 로그, 계약 테스트가 같은 값을 검증합니다.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Merge Risk: 🔵 Low · up to 44d58

Required scans now use a provider-diverse routing pool while retaining privacy and fallback safeguards. Equal-tier provider selection can still vary with discovery order, affecting first-attempt and failover behavior, and the workflow smoke test does not fully enforce the single auto-default contract. The change is mergeable with explicit owner awareness and follow-up on deterministic ordering and stricter validation.

Suggested reviewers: cursoragent

Sequence Diagram(s)

sequenceDiagram
  participant StrixWorkflow
  participant ReviewSidecar
  participant LauncherCLI
  participant ReviewPolicy
  participant ContextualOrchestrator
  StrixWorkflow->>ReviewSidecar: auto 풀 환경 변수 설정
  ReviewSidecar->>LauncherCLI: --pool auto 전달
  LauncherCLI->>ReviewPolicy: 발견 모델 및 가격 증거 전달
  ReviewPolicy->>LauncherCLI: 검증된 auto 카탈로그 반환
  LauncherCLI->>ContextualOrchestrator: 선택 모델로 리뷰 요청
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목은 Strix를 provider-diverse orchestrator pool로 전환하는 변경 사항을 정확하고 간결하게 요약합니다.
Docstring Coverage ✅ Passed Docstring coverage is 97.14% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 35 functions across 11 files. (6 skipped: 5…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 97.14% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 35 functions across 11 files. (6 skipped: 5 unsupported, 1 too large.)

✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/strix-auto-provider-pool-v1

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

devin-ai-integration[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 0 new potential issues.

Devin Review

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 0 new potential issues.

Devin Review

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

Devin Review found 0 new potential issues.

Devin Review

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae

Copy link
Copy Markdown
Contributor Author

@opencode-agent Please review the exact current head a6c559ef498a03ccaa1247b1238c5d18e609ffa3 after the provider-diverse orchestrator/auto routing and pinned trusted-workflow updates. Return a formal current-head review; do not merge or update the branch.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for a6c559ef498a03ccaa1247b1238c5d18e609ffa3.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Workflow: opencode-review-dispatch.yml"]
  S1 --> I1["GitHub Actions review job"]
  I1 --> R1["Review risk: Workflow: opencode-review-dispatch.yml"]
  R1 --> V1["actionlint plus required checks"]
  Evidence --> S2["Workflow: strix.yml"]
  S2 --> I2["GitHub Actions review job"]
  I2 --> R2["Review risk: Workflow: strix.yml"]
  R2 --> V2["actionlint plus required checks"]
  Evidence --> S3["Repository file: CHANGELOG.md"]
  S3 --> I3["repository behavior"]
  I3 --> R3["Review risk: Repository file: CHANGELOG.md"]
  R3 --> V3["required checks"]
  Evidence --> S4["Docs: 0003-contextual-orchestrator-vendored-free-zdr.md"]
  S4 --> I4["operator or user guidance"]
  I4 --> R4["Review risk: Docs: 0003-contextual-orchestrator-vendored-free-zdr.md"]
  R4 --> V4["docs review"]
  Evidence --> S5["CI script: strix_required_workflow_smoke.sh"]
  S5 --> I5["review and security gate shell path"]
  I5 --> R5["Review risk: CI script: strix_required_workflow_smoke.sh"]
  R5 --> V5["bash -n plus Strix self-test"]
  Evidence --> S6["CI script: test_strix_quick_gate.sh"]
  S6 --> I6["review and security gate shell path"]
  I6 --> R6["Review risk: CI script: test_strix_quick_gate.sh"]
  R6 --> V6["bash -n plus Strix self-test"]
  Evidence --> S7["Test: test_contextual_orchestrator_review_sidecar_contract.py (6 files)"]
  S7 --> I7["regression suite"]
  I7 --> R7["Review risk: Test: test_contextual_orchestrator_review_sidecar_contract.py (6 files)"]
  R7 --> V7["targeted test run"]
Loading

@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

…er-pool-v1

# Conflicts:
#	AGENTS.md
#	CHANGELOG.md
#	docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md
#	scripts/ci/contextual_orchestrator_review_launcher.py
#	scripts/ci/contextual_orchestrator_review_sidecar.sh
#	scripts/ci/strix_required_workflow_smoke.sh
devin-ai-integration[bot]

This comment was marked as resolved.

coderabbitai[bot]

This comment was marked as resolved.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 2 new potential issues.

Devin Review

Comment thread scripts/ci/contextual_orchestrator_review_policy.py
Comment thread scripts/ci/strix_required_workflow_smoke.sh
@seonghobae
seonghobae merged commit e94f1d1 into main Aug 29, 2026
54 of 58 checks passed
@seonghobae
seonghobae deleted the fix/strix-auto-provider-pool-v1 branch August 29, 2026 10:53
seonghobae pushed a commit that referenced this pull request Aug 31, 2026
Resolves the split-timeout/batched-preflight design (this branch) against
main's independently-landed ADR-0005 diagnostic, bounded-retry preflight
(#1449/#1452 and predecessors #1436/#1440/#1434/#1425/#1426/#1422/#1413/
#1401/#1442), a genuine semantic merge, not a mechanical pick:

- Keeps this branch's core contribution: launcher.py splits startup-route
  admission (10s) from real serving (120s, via _build_model_client), and
  probes up to REVIEW_PREFLIGHT_MAX_TOTAL_ROUTES (24) candidates in
  concurrent batches of REVIEW_PREFLIGHT_BATCH_SIZE (4).
- Folds in main's ADR-0005 escalation logic (16-token base probe, escalate
  to the real serving budget on a "budget too small" signature, shared
  REVIEW_PREFLIGHT_MAX_ESCALATIONS=4 cap) into the per-candidate probe used
  by that batching, via a new _EscalationBudget class so the shared budget
  stays a hard, lock-enforced invariant across concurrently-probed
  candidates within one batch -- a plain int (correct for main's original
  sequential loop) cannot coordinate that safely under concurrency.
- Folds in main's ADR-0005 bounded retry for the sidecar's own separate
  gateway smoke request (up to REVIEW_PREFLIGHT_GATEWAY_MAX_ATTEMPTS=3
  attempts, 120s each, retried only on no-response/transport failure),
  replacing this branch's single-attempt transport_timeout/transport_error
  classification, while keeping this branch's "orchestration":"route" field
  and the 413-body-limit stderr-message-capture test enhancement.
- Keeps this branch's family_cap==total-route-budget default (24) over
  main's more conservative raise to 8, since batching's concurrency keeps
  worst-case wall time bounded even at the higher route/family count
  (recomputed and re-tested below).
- Two designs were deliberately NOT combined, resolved in main's favor after
  tracing each side's intent (not guessed): Strix's orchestrator/auto
  routing, which this branch's history re-added but main's most recent,
  explicit owner decision (#1434) reverted to orchestrator/free-only with
  the accepted-risk rationale recorded in ADR-0003; and a "fail closed on
  any partial provider discovery error" gate this branch added (
  _require_complete_discovery), which main never adopted and whose
  philosophy directly conflicts with main's demonstrated-in-production
  "log the failure, continue with whatever succeeded" handling -- live
  BandScope evidence in this PR's own comments shows single-provider
  hiccups (Bytez 5xx) are common and should not be fatal to the whole pool.
- Updates the two main-side tests whose literal worst-case-time assertions
  were computed for the old sequential (non-batched) design
  (test_preflight_stage_limits_share_one_startup_budget,
  test_fallback_escalation_budget_is_shared_with_primary_and_bounds_worst_case)
  to the batching-aware arithmetic, and drops this branch's now-superseded
  tests (orchestrator/auto Strix routing, fail-closed-on-partial-discovery,
  single-attempt gateway transport classification).

Verification: coverage run -m pytest tests (2096 passed, 1 pre-existing
skip, 21 subtests, 100% coverage on scripts/ci); interrogate (100%
docstrings); git diff --check clean; bash -n on both changed shell scripts;
ruff check clean.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPmJErfkcHer4UVEgrQxUX
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant