Skip to content

fix(review): pin sidecar to 429-recovering gateway - #2366

Open
seonghobae wants to merge 2 commits into
mainfrom
fix/review-sidecar-429-recovery-pin
Open

seonghobae wants to merge 2 commits into
mainfrom
fix/review-sidecar-429-recovery-pin

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Cause

The central OpenCode, Noema, and Strix sidecar still vendors contextual-orchestrator at protected main@767e67f, before the gateway's bounded provider-429 failover and cooldown recovery landed. Noema job 106510155855 ended with HTTP 429 after one caller request and 1506 seconds; its log does not identify the internal gateway stage that exhausted the pool. Ordinary orchestrator/free routing can end review without the recovery already present in gateway source. Noema's structured-synthesis path has a separate 429-storm defect under repair in ContextualWisdomLab/contextual-orchestrator#1220; this pin alone does not fix that path.

Change

Pin the sidecar to protected main@b1352648, the newest first-parent main revision I found that includes the 429 recovery (529c5f6f is an ancestor) while retaining a hash-bound released fast-mlsirm dependency. Keep the exact-SHA checkout, free/ZDR policy, provider credential scope, and one gateway request per consumer job. Gateway main@5665b0ad is not pin-compatible yet: its VCS fast-mlsirm entry fails the sidecar's pip --require-hashes install. ContextualWisdomLab/contextual-orchestrator#995 is the separate packaging repair.

Verification

  • Gateway tests/test_rate_limit_aware_admission.py at b1352648: 23 passed (one pre-existing pytest config warning in the reused isolated interpreter).
  • Sidecar contract tests at this PR head: 29 passed.
  • Sidecar launcher imports against the pinned source: pass.
  • bash -n and git diff --check: pass.

Hosted review requests and exact-head required checks are pending; local tests do not establish a Noema, OpenCode, or Strix approval. The structured-synthesis repair must land and be included in a later sidecar pin before that particular Noema 429 path is fixed in the central runner.

@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 33 minutes.

Check out review usage here.

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: Advanced

Run ID: e5e4737b-bb47-43ab-8b60-35e059c6eeab

📥 Commits

Reviewing files that changed from the base of the PR and between e6334e2 and e76ed33.

📒 Files selected for processing (4)
  • CHANGELOG.md
  • docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md
  • scripts/ci/contextual_orchestrator_review_sidecar.sh
  • tests/test_contextual_orchestrator_review_sidecar_contract.py

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.

@seonghobae
seonghobae enabled auto-merge (squash) September 25, 2026 13:04

Copy link
Copy Markdown
Contributor Author

CO owner handoff for exact e76ed33e: the PR body names contextual-orchestrator#1220 as the structured-synthesis 429 repair. CO #1220 is the document-diff review envelope. The actual JSON-schema all-429 owner is CO #1251, current head aa00d635, stacked on unmerged #1209. The proposed b1352648 pin contains ordinary free-pool cooldown recovery but not #1251. Please correct the owner reference and keep this pin a partial source update until protected integration, immutable release, and a new hosted Noema/OpenCode verdict.

@cwl-noema-review cwl-noema-review 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.

Noema LLM review

The PR correctly updates the contextual-orchestrator pin to SHA b1352648d2f23278cb12c7a1768c20fae2d6c5f1 across the ADR, the provisioning script, and the contract tests. This coordinated update ensures consistent runtime behavior and prevents CI failures. The CHANGELOG accurately documents the purpose of the pin (429 recovery) and the specific dependency constraints.

Reviewed changed lines

  • docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md:27 (RIGHT): The SHA b1352648d2f23278cb12c7a1768c20fae2d6c5f1 is consistently updated and matches the implementation in scripts/ci/contextual_orchestrator_review_sidecar.sh (line 17) and tests/test_contextual_orchestrator_review_sidecar_contract.py (line 43), falsifying the hypothesis of a version mismatch.
  • scripts/ci/contextual_orchestrator_review_sidecar.sh:17 (RIGHT): The pin update is synchronized with the contract test at tests/test_contextual_orchestrator_review_sidecar_contract.py (line 43), ensuring that the CI gate will validate the exact SHA b1352648d2f23278cb12c7a1768c20fae2d6c5f1.
  • tests/test_contextual_orchestrator_review_sidecar_contract.py:43 (RIGHT): The contract test's ORCH_PIN_SHA matches the implementation in scripts/ci/contextual_orchestrator_review_sidecar.sh (line 17), confirming the intended version lock.
  • CHANGELOG.md:1 (RIGHT): The entry accurately describes the pin advance to b1352648 and aligns with the PR goal of implementing 429 recovery/cooldown.

Adversarial validation

  • scripts/ci/contextual_orchestrator_review_sidecar.sh:17 (RIGHT) falsified: The pin update is inconsistent with the contract test, causing CI failure. — Both files contain identical SHA b1352648d2f23278cb12c7a1768c20fae2d6c5f1.
  • docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md:27 (RIGHT) falsified: The ADR documents a different SHA than the one deployed in the shell script. — Both locations specify b1352648d2f23278cb12c7a1768c20fae2d6c5f1.
  • Residual risk: none

Findings

  • No blocking findings.
  • Result: APPROVE
  • Head SHA: e76ed33aea995bac415933c87b47e827125f48b8
  • Reviewer credential: noema-review-github-app-refresh
  • Actor: cwl-noema-review[bot]

@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 reviewed the current-head product diff. Coverage is a separate gate.

Changed files

  • CHANGELOG.md — repository behavior
  • docs/adr/0003-contextual-orchestrator-vendored-free-zdr.md — operator or user guidance
  • scripts/ci/contextual_orchestrator_review_sidecar.sh — review and security gate shell path
  • tests/test_contextual_orchestrator_review_sidecar_contract.py — regression suite

Changed behavior

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: CHANGELOG.md"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Repository file: CHANGELOG.md"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: 0003-contextual-orchestrator-vendored-free-zdr.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: 0003-contextual-orchestrator-vendored-free-zdr.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script: contextual_orchestrator_review_sidecar.sh"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script: contextual_orchestrator_review_sidecar.sh"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test: test_contextual_orchestrator_review_sidecar_contract.py"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test: test_contextual_orchestrator_review_sidecar_contract.py"]
  R4 --> V4["targeted test run"]
Loading

Findings

No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.

  • Head SHA: e76ed33aea995bac415933c87b47e827125f48b8
  • Workflow run: 36181624701
  • Workflow attempt: 1
  • Coverage gate: failure

Review outcome

Coverage is a gate, not the review. This body reviews the changed product files.

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: CHANGELOG.md"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Repository file: CHANGELOG.md"]
  R1 --> V1["required checks"]
  Evidence --> S2["Docs: 0003-contextual-orchestrator-vendored-free-zdr.md"]
  S2 --> I2["operator or user guidance"]
  I2 --> R2["Review risk: Docs: 0003-contextual-orchestrator-vendored-free-zdr.md"]
  R2 --> V2["docs review"]
  Evidence --> S3["CI script: contextual_orchestrator_review_sidecar.sh"]
  S3 --> I3["review and security gate shell path"]
  I3 --> R3["Review risk: CI script: contextual_orchestrator_review_sidecar.sh"]
  R3 --> V3["bash -n plus Strix self-test"]
  Evidence --> S4["Test: test_contextual_orchestrator_review_sidecar_contract.py"]
  S4 --> I4["regression suite"]
  I4 --> R4["Review risk: Test: test_contextual_orchestrator_review_sidecar_contract.py"]
  R4 --> V4["targeted test run"]
Loading

@opencode-agent

opencode-agent Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

Coverage evidence did not pass, so approval is blocked. The formal pull-request review is the source-backed diff review, not this status comment.

This branch has not been deployed

No deployments
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