Allow long OpenCode reviews#279
Conversation
There was a problem hiding this comment.
Pull request overview
This PR increases the allowed wall-clock time for the OpenCode PR review workflow to support large repositories by raising the job timeout to GitHub Actions’ 6-hour ceiling and extending the model-pool step/runtime budgets accordingly.
Changes:
- Increase the
opencode-review-targetjob timeout from 75 minutes to 360 minutes. - Increase the “Run OpenCode PR Review model pool” step timeout to 330 minutes and extend OpenCode runtime/retry budgets to 5 hours (
18000seconds). - Update the OpenCode workflow contract test to assert the new timeout values.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| tests/test_opencode_agent_contract.py | Updates workflow contract assertions to match the new OpenCode job/step/runtime timeout budgets. |
| .github/workflows/opencode-review.yml | Raises job/step timeouts and increases opencode run / retry-budget environment values to allow longer review runs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| NO_COLOR: "1" | ||
| OPENCODE_MODEL_CANDIDATES: "github-models/openai/gpt-5-nano" | ||
| OPENCODE_MODEL_ATTEMPTS: "1" | ||
| OPENCODE_RUN_TIMEOUT_SECONDS: "240" | ||
| OPENCODE_RUN_TIMEOUT_SECONDS: "18000" | ||
| OPENCODE_EXPORT_TIMEOUT_SECONDS: "120" | ||
| OPENCODE_TOTAL_RETRY_BUDGET_SECONDS: "360" | ||
| OPENCODE_TOTAL_RETRY_BUDGET_SECONDS: "18000" |
There was a problem hiding this comment.
Fixed in commit 4ede35e. The test_strix_quick_gate.sh assertions now use "18000" for both OPENCODE_RUN_TIMEOUT_SECONDS and OPENCODE_TOTAL_RETRY_BUDGET_SECONDS, matching the updated workflow values. All contract tests pass.
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head evidence but found unresolved reviewer or review-agent threads before approval.
Findings
1. HIGH .github/workflows/opencode-review.yml:1 - Unresolved reviewer thread blocks automated approval
- Problem: OpenCode reached an APPROVE control result, but the approval step found unresolved, non-outdated human or review-agent thread evidence on the current pull request.
- Root cause: Reviewer and review-agent feedback can arrive after bounded model evidence is prepared, so the approval step must re-query GitHub immediately before publishing an approval.
- Fix: Address or resolve the listed reviewer thread(s), then re-run OpenCode on the current head.
- Regression test: Keep the approval gate querying reviewThreads(first: 100) after model output and before create_pull_review APPROVE, including bot review agents other than OpenCode itself.
Review thread evidence
Latest unresolved reviewer thread evidence
.github/workflows/opencode-review.yml line 2254
-
Latest reviewer comment: @copilot-pull-request-reviewer at 2026-07-01T09:31:44Z
-
Comment URL: #279 (comment)
-
Comment excerpt: The Strix quick-gate regression script still hard-codes the previous OpenCode model-pool timeout settings (e.g., it asserts 'OPENCODE_RUN_TIMEOUT_SECONDS: "600"' and 'OPENCODE_TOTAL_RETRY_BUDGET_SECONDS: "3600"'). With these workflow values changed to 18000, 'scripts/ci/test_strix_quick_gate.sh' will fail when Strix runs its self-tests, blocking required checks.
-
Result: REQUEST_CHANGES
-
Reason: unresolved reviewer or review-agent thread(s) were present before approval.
-
Head SHA:
5e2aee94ece7571f1b44a3dd9b40e3d751c58b05 -
Workflow run: 28507529260
-
Workflow attempt: 1
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: opencode-review.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: opencode-review.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Test: test_opencode_agent_contract.py"]
S2 --> I2["regression suite"]
I2 --> R2["Review risk: Test: test_opencode_agent_contract.py"]
R2 --> V2["targeted test run"]
OpenCode Review Overview
Pull request overviewOpenCode reviewed the current-head evidence but found unresolved reviewer or review-agent threads before approval. Findings1. HIGH .github/workflows/opencode-review.yml:1 - Unresolved reviewer thread blocks automated approval
Review thread evidenceLatest unresolved reviewer thread evidence
|
There was a problem hiding this comment.
Pull request overview
OpenCode reviewed the current-head evidence but found unresolved reviewer or review-agent threads before approval.
Findings
1. HIGH .github/workflows/opencode-review.yml:1 - Unresolved reviewer thread blocks automated approval
- Problem: OpenCode reached an APPROVE control result, but the approval step found unresolved, non-outdated human or review-agent thread evidence on the current pull request.
- Root cause: Reviewer and review-agent feedback can arrive after bounded model evidence is prepared, so the approval step must re-query GitHub immediately before publishing an approval.
- Fix: Address or resolve the listed reviewer thread(s), then re-run OpenCode on the current head.
- Regression test: Keep the approval gate querying reviewThreads(first: 100) after model output and before create_pull_review APPROVE, including bot review agents other than OpenCode itself.
Review thread evidence
Latest unresolved reviewer thread evidence
.github/workflows/opencode-review.yml line 2254
-
Latest reviewer comment: @copilot-pull-request-reviewer at 2026-07-01T09:31:44Z
-
Comment URL: #279 (comment)
-
Comment excerpt: The Strix quick-gate regression script still hard-codes the previous OpenCode model-pool timeout settings (e.g., it asserts 'OPENCODE_RUN_TIMEOUT_SECONDS: "600"' and 'OPENCODE_TOTAL_RETRY_BUDGET_SECONDS: "3600"'). With these workflow values changed to 18000, 'scripts/ci/test_strix_quick_gate.sh' will fail when Strix runs its self-tests, blocking required checks.
-
Result: REQUEST_CHANGES
-
Reason: unresolved reviewer or review-agent thread(s) were present before approval.
-
Head SHA:
4ede35e2b0bc0fab81faeddf2a8fb76a18a53906 -
Workflow run: 28511481675
-
Workflow attempt: 2
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: opencode-review.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: opencode-review.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["CI script: test_strix_quick_gate.sh"]
S2 --> I2["review and security gate shell path"]
I2 --> R2["Review risk: CI script: test_strix_quick_gate.sh"]
R2 --> V2["bash -n plus Strix self-test"]
Evidence --> S3["Test: test_opencode_agent_contract.py"]
S3 --> I3["regression suite"]
I3 --> R3["Review risk: Test: test_opencode_agent_contract.py"]
R3 --> V3["targeted test run"]
@copilot 고칩시다 |
해당 지적은 커밋 |
Summary
opencode runa five-hour budget for large repositoriesVerification
py -3 -m pytest tests/test_opencode_agent_contract.py tests/test_opencode_workflow_shell_syntax.py tests/test_review_execution_contracts.py -qgit diff --check -- .github/workflows/opencode-review.yml tests/test_opencode_agent_contract.py