fix(automation): cover the full BandScope review queue - #1397
Conversation
|
Warning Review limit reachedNext included review available in 29 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: Team Run ID: 📒 Files selected for processing (2)
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughBandScope 시간별 review-repair 스케줄러의 PR 스캔 한도를 50개에서 200개로 늘렸습니다. 운영 문서와 변경 로그를 갱신하고, 계약 테스트가 새 한도를 검증하도록 변경했습니다. ChangesBandScope 스캔 한도 조정
Estimated code review effort: 1 (사소함) | ~5분 Merge Risk: 🔵 Low · up to The hourly caller now scans up to 200 pull requests instead of 50, improving queue coverage while increasing read-side runtime and API usage per run. The change is mergeable with owner awareness of that bounded workload increase; dispatch and retry limits remain unchanged. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (3 skipped: 3 unsupported.) ✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 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 |
|
@opencode-agent review |
2 similar comments
|
@opencode-agent review |
|
@opencode-agent review |
There was a problem hiding this comment.
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
02487b4490b195c91752ba7a2d78e6d6849e1e8f. - 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:
- Strix Security Scan/strix: FAILURE (https://github.com/ContextualWisdomLab/.github/actions/runs/33241009930/job/99070304859)
- Strix Security Scan/strix: failure (https://github.com/ContextualWisdomLab/.github/actions/runs/33241009930/job/99070304859)
- strix: FAILURE (https://github.com/ContextualWisdomLab/.github/actions/runs/33241024964)
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: bandscope-hourly-review-repair.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: bandscope-hourly-review-repair.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Repository file: CHANGELOG.md"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Repository file: CHANGELOG.md"]
R2 --> V2["required checks"]
Evidence --> S3["Docs: bandscope-hourly-review-caller.md"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs: bandscope-hourly-review-caller.md"]
R3 --> V3["docs review"]
Evidence --> S4["Test: test_bandscope_hourly_review_caller.py"]
S4 --> I4["regression suite"]
I4 --> R4["Review risk: Test: test_bandscope_hourly_review_caller.py"]
R4 --> V4["targeted test run"]
OpenCode Review Overview
|
There was a problem hiding this comment.
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
02487b4490b195c91752ba7a2d78e6d6849e1e8f. - 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:
- Strix Security Scan/strix: FAILURE (https://github.com/ContextualWisdomLab/.github/actions/runs/33241009930/job/99070304859)
- Strix Security Scan/strix: failure (https://github.com/ContextualWisdomLab/.github/actions/runs/33241009930/job/99070304859)
- strix: FAILURE (https://github.com/ContextualWisdomLab/.github/actions/runs/33241024964)
Changed-File Evidence Map
flowchart LR
PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
Evidence --> S1["Workflow: bandscope-hourly-review-repair.yml"]
S1 --> I1["GitHub Actions review job"]
I1 --> R1["Review risk: Workflow: bandscope-hourly-review-repair.yml"]
R1 --> V1["actionlint plus required checks"]
Evidence --> S2["Repository file: CHANGELOG.md"]
S2 --> I2["repository behavior"]
I2 --> R2["Review risk: Repository file: CHANGELOG.md"]
R2 --> V2["required checks"]
Evidence --> S3["Docs: bandscope-hourly-review-caller.md"]
S3 --> I3["operator or user guidance"]
I3 --> R3["Review risk: Docs: bandscope-hourly-review-caller.md"]
R3 --> V3["docs review"]
Evidence --> S4["Test: test_bandscope_hourly_review_caller.py"]
S4 --> I4["regression suite"]
I4 --> R4["Review risk: Test: test_bandscope_hourly_review_caller.py"]
R4 --> V4["targeted test run"]
|
Current-head gate update for SHA 02487b4:
|
…urly-queue-coverage # Conflicts: # CHANGELOG.md
…queue-coverage # Conflicts: # CHANGELOG.md
|
Resolved the stale merge conflict against current Conflict: only The actual functional changes — Test evidence (post-merge, in an isolated worktree):
No security gates were touched or weakened. Ready for required checks / OpenCode re-review on the new head. Generated by Claude Code |
Superseded — target file deleted by
|
Both of this PR's targets were deleted by main, so the workflow half of the change is superseded — but the documentation half is not, and main is currently wrong. Accepted main's deletion of `.github/workflows/bandscope-hourly-review-repair.yml` and `tests/test_bandscope_hourly_review_caller.py`. Commit 29b931e ("consolidate hourly review-repair callers", #1673) collapsed 18 per-repository callers into one `hourly-review-repair.yml`, and that file already carries this PR's fix by name: max_prs: "200" # … this repository alone … had 117 open PRs as of 2026-09-03, and BandScope # independently hit 136 (see the now-superseded #1397, whose fix predates this # file and never reached main before its target file was consolidated away). # … 200 mirrors #1397's own chosen bound. Re-applying the workflow change would be a no-op: with both deletions accepted this branch's residual diff against main contains **zero** changes under `.github/`, `scripts/` or `tests/`. What is NOT superseded is the doctoring note. `docs/doctoring/bandscope-hourly-review-caller.md:24` on main still reads "Each heartbeat scans at most 50 open pull requests", while the consolidated workflow it now describes runs at 200. This branch corrects that line and adds the oldest-first rationale and the operator instruction to re-check bounded runtime if the queue approaches the bound. That correction is kept, and it is now the substance of this PR rather than a side effect of it. One staleness this branch does not fix, noted rather than silently widened into scope: that document names no workflow at all after the consolidation — neither the deleted per-repository caller (0 references, good) nor `hourly-review-repair.yml` (also 0 references). It should eventually point at its new implementation. CHANGELOG.md kept both sides. Verified: 2893 passed, 1 skipped, 0 failed; coverage 100%; interrogate 100%; `ruff check --select F821` clean; zero conflict markers. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Root cause
The BandScope hourly caller capped the central oldest-first scheduler at 50 open PRs. The live repository currently has 136 open PRs, so the 2026-08-29 heartbeat inspected only PRs #731 through #925 and never reached current non-draft work such as #1052 and #1053.
Repair
This changes queue coverage only. It does not broaden workflow permissions, credentials, dispatch allowlists, merge authority, or fail-closed review gates.
Verification
python3 -m pytest -q --cov=scripts/ci --cov-report=term-missing --cov-fail-under=100: 1731 passed, 1 skipped, 17 subtests passed; 100% statements and branchesinterrogate -q --fail-under=100 scripts/cipython3 -m compileall -q scripts/ciactionlint .github/workflows/bandscope-hourly-review-repair.ymlgit diff --checkSecurity Notes
The caller retains
contents: readandid-token: writeonly, maps the existing two scheduler secrets, and continues to denysecrets: inherit,NVIDIA_NIM_API_KEY,COPILOT_GITHUB_TOKEN, and mutation permissions. The scheduler remains bounded at one writer and fail-closed on review evidence.Summary by CodeRabbit
변경 사항
문서