fix(noema): dispatch capacity continuation with scoped write token - #2371
seonghobae wants to merge 2 commits into
Conversation
|
Warning Review limit reachedNext included review available in 52 minutes. View limit detailsLimit 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. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (5)
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 |
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head product diff. Coverage is a separate gate.
Changed files
.github/workflows/noema-review.yml— GitHub Actions review jobdocs/adr/0031-noema-transport-capacity-redispatch.md— operator or user guidancetests/test_noema_orchestrator_workflow_contract.py— regression suitetests/test_noema_reviewer_token_lifetime.py— regression suitetests/test_noema_transport_dispatch_capability.py— regression suite
Changed behavior
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: noema-review.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: noema-review.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Docs: 0031-noema-transport-capacity-redispatch.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: 0031-noema-transport-capacity-redispatch.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test: test_noema_orchestrator_workflow_contract.py (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_noema_orchestrator_workflow_contract.py (3 files)"]
R3 --> V3["targeted test run"]
Findings
No source-backed product finding is synthesized from the coverage gate. A coverage miss belongs in the status comment.
- Head SHA:
ab59ca40c1cf8cdd20659d3a2f5ae424e79ffd24 - Workflow run: 36189849721
- 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["Workflow: noema-review.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: noema-review.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Docs: 0031-noema-transport-capacity-redispatch.md"]
S2 --> I2["operator or user guidance"]
I2 --> R2["Review risk: Docs: 0031-noema-transport-capacity-redispatch.md"]
R2 --> V2["docs review"]
Evidence --> S3["Test: test_noema_orchestrator_workflow_contract.py (3 files)"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_noema_orchestrator_workflow_contract.py (3 files)"]
R3 --> V3["targeted test run"]
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. |
Failure and cause
On contextual-orchestrator PR #1209, Noema run 36024200990 exhausted its admitted free gateway routes with HTTP 429. Its bounded same-head continuation then failed with HTTP 403 at
POST /repos/{owner}/{repo}/dispatches: the reviewer App token requestedContents: read, whereas this REST endpoint requiresContents: write.Repair
Move only the continuation dispatch into a separate job. The model and sidecar job retain
contents: read; the trusted dispatch job receives target-repositoryGITHUB_TOKENwithcontents: writeandpull-requests: read. It accepts only a failed, admitted capacity result, validates the PR number, head SHA, bounded delay, and exact attempt transition (0→1 or 1→2), re-reads the live head after the delay, and dispatches only togithub.repository. No reviewer credential or provider secret enters this job.This does not alter gateway routing or treat a failed review as approval. Gateway pin adoption is separately tracked in #2366; all-429 preflight classification is separately tracked in #2339.
Verification at
ab59ca40c1cf8cdd20659d3a2f5ae424e79ffd24GITHUB_ACTIONS=true.actionlint .github/workflows/noema-review.ymlandgit diff --checkpassed.