Skip to content

fix(actions): pin opencode-review-dispatch.yml off starved ubuntu-latest - #1870

Merged
seonghobae merged 3 commits into
mainfrom
fix/opencode-review-dispatch-runner-image
Sep 4, 2026
Merged

fix(actions): pin opencode-review-dispatch.yml off starved ubuntu-latest#1870
seonghobae merged 3 commits into
mainfrom
fix/opencode-review-dispatch-runner-image

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

  • opencode-review-dispatch.yml — the workflow the required opencode-review check's own repository_dispatch lands on to actually run the OpenCode CLI and post the exact-head verdict — still requested the floating ubuntu-latest runner image on all 4 jobs, unlike the three required-check gates (strix.yml, opencode-review.yml, noema-review.yml) already pinned to ubuntu-24.04 by the 2026-09-01 fix (whose own "Residual" note flagged remaining unpinned central workflows as an open follow-up).
  • Confirmed live on contextual-orchestrator#1017: its dispatch run (33916313804) sat queued with no runner ever assigned from creation. A 30-run sample of recent opencode-review-dispatch.yml runs org-wide showed 14 still queued (several 10+ hours old) and 0 clean successes.
  • Pinned all 4 runs-on: occurrences to ubuntu-24.04, matching the established pattern exactly (a literal value swap, no other job semantics touched).

Test plan

  • Extended tests/test_required_review_runner_image_contract.py with a fourth case for opencode-review-dispatch.yml (using the shared assert_explicit_supported_image helper already refactored in by concurrent work on main).
  • Updated the two byte-for-byte blob-pin regression tests (test_pr_review_autofix_nvidia_nim_contract.py::test_independent_review_agent_workflow_matches_reviewed_blob, test_opencode_rust_coverage_toolchain_contract.py::test_review_dispatch_blob_sha_stays_paired_with_trusted_workflow) to the new blob SHA.
  • Full suite: 2829 passed locally (excluding two pre-existing PEP-701 f-string collection failures under local Python 3.11, unrelated — CI pins 3.14); the only test failures present are pre-existing on a clean main checkout independent of this diff (a local-sandbox gh CLI absence, and one already-documented stale scheduler-cadence assertion tracked separately in docs/product-technical-gap-baseline.md).
  • coverage/interrogate on scripts/ci reproduce identically (99%/98.3%) on clean main — confirmed pre-existing local-sandbox artifact (missing gh binary), not a regression from this diff.
  • YAML re-parses valid.
  • docs/product-technical-gap-baseline.md updated with a new dated entry documenting the gap, fix, and residual scope.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KPmJErfkcHer4UVEgrQxUX


Generated by Claude Code

The 2026-09-01 floating-image fix pinned the three required-check gates
(strix.yml, opencode-review.yml, noema-review.yml) to explicit
ubuntu-24.04, flagging remaining unpinned central workflows as an open
follow-up. opencode-review-dispatch.yml is the workflow the required
opencode-review check's own repository_dispatch lands on to actually run
the OpenCode CLI and post the exact-head verdict, so a starved runner here
queues the real review work for hours just as surely as on the required
check itself.

Confirmed live on contextual-orchestrator#1017: its dispatch run
(33916313804) sat queued with no runner assigned from creation, and a
30-run sample of recent opencode-review-dispatch.yml runs org-wide showed
14 still queued (several 10+ hours old) and 0 clean successes.

Pinned all 4 occurrences to ubuntu-24.04 and extended
test_required_review_runner_image_contract.py with a fourth case. Updated
the byte-for-byte blob-pin tests in test_pr_review_autofix_nvidia_nim_contract.py
and test_opencode_rust_coverage_toolchain_contract.py to the new blob SHA.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KPmJErfkcHer4UVEgrQxUX
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown

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

Run ID: a09fd4a8-51d2-46e8-825b-07bcfbd44a85

📥 Commits

Reviewing files that changed from the base of the PR and between f43dcb8 and 398f563.

📒 Files selected for processing (5)
  • .github/workflows/opencode-review-dispatch.yml
  • CHANGELOG.md
  • docs/product-technical-gap-baseline.md
  • tests/test_pr_review_autofix_nvidia_nim_contract.py
  • tests/test_required_review_runner_image_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 merged commit a9aeee8 into main Sep 4, 2026
4 of 18 checks passed
@seonghobae
seonghobae deleted the fix/opencode-review-dispatch-runner-image branch September 4, 2026 23:16
seonghobae pushed a commit that referenced this pull request Sep 5, 2026
Resolves the dirty mergeable_state caused by #1877 independently
re-authoring most of this PR's fixes on main.

- tests/test_hourly_review_repair_callers.py and
  tests/test_github_hourly_conflict_repair.py: dropped this branch's
  now-redundant duplicate hunks (same cron assertions fixed to the same
  values) in favor of main's versions verbatim, including main's
  test_central_repository_has_daily_self_caller rename.
- tests/test_pr_review_autofix_nvidia_nim_contract.py: kept the two
  assertions genuinely not covered anywhere on main -- the negative
  cron: "23 */2 * * *" check and the product-neutrality check that
  ContextualWisdomLab/clearfolio is never hard-coded into
  pr-review-fix-scheduler.yml -- layered onto main's already-fixed
  test_review_fix_caller_keeps_the_github_daily_recovery_slot (#1870).
- CHANGELOG.md: kept both this branch's and main's Unreleased bullets
  (additive convention), rewriting this branch's bullet to correctly
  attribute the now-shared-on-main fixes to #1870/#1877 and describe
  only the residual scope this PR still closes.
- docs/product-technical-gap-baseline.md: corrected the
  "opencode-review-dispatch.yml still requesting the starved floating
  image" entry's stale "not yet fixed" sub-note -- the core cron
  assertion was already fixed by #1870 itself, and the other two files
  were fixed on main via #1877. The entry now states this accurately
  and lists the two extra assertions as the actual remaining scope.

Validated: targeted 3-file suite (59 passed), full suite minus the two
excluded queue-cancellation-revalidation files (2833 passed, 1 skipped),
git diff --check clean. Final diff vs origin/main is limited to
CHANGELOG.md, docs/product-technical-gap-baseline.md, and the two new
assertions in tests/test_pr_review_autofix_nvidia_nim_contract.py.

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.

2 participants