Repository navigation
feat: implement issue #1900 — [Phase 3] Refresh the Opus 4.8 fallback-chain hops to Opus 5.5 in engine.sh - #2241
Conversation
…-chain hops to Opus 5.5 in engine.sh
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
QA Lead — test-risk advisoryRisk tier: LOW. This changes one default string in the writer's last-resort fallback hop. It is easy to revert, and the cross-provider exit-2 path still sits behind it. The bats tests were updated to match, and the new What I'd shore up (highest leverage first):
Escalate? No. Advisory only — I comment, I do not change code. Ground: BMAD Test Architecture (bmad-tea v1.19.0). Opt out on this item with the qa-lead:hands-off label. |
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-10-11T01:52:12Z. |
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
|
No description provided. |
|
This is a rate-limit notice from the Gemini code-assist bot indicating it has reached its daily quota limit. No code changes are required — this is an operational notice, not a code finding. The PR's CI checks have all completed successfully. |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
|
No description provided. |
|
No description provided. |
|
This is a CodeRabbit review rate-limit notice — the free OSS review quota has been temporarily exhausted. No code findings are reported; the rate limit will reset and CodeRabbit can resume reviews. No action required on the PR. |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
|
Maintainer disposition of @chatgpt-codex-connector's status comment by @don-petry: Codex usage-limit notice: no Codex review ran on this PR. There is no finding to act on. |
|
Maintainer disposition of @sonarqubecloud's status comment by @don-petry: SonarCloud clean status for ab23418: Quality Gate passed with 0 new issues and 0 security hotspots. Nothing to act on. |
|
You have reached your Codex usage limits. You can see your limits in the Codex usage dashboard. |
|
Neutral overview with no actionable findings. All CI checks pass, and the summary correctly reflects that the fallback chain update is safe. No code change needed. |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
Superseded by automated re-review at
|
|
No description provided. |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: ab23418410b5e987d651a126232ac5ad2b11823b
Review mode: triage-approved (single reviewer)
Summary
Changes the action tier's last Claude hop from claude-opus-4-8 to claude-opus-5-5 in ai_models_default (scripts/lib/engine-models.sh). The docs row and three bats suites are updated to match. The previous review's only blocker was metadata: the PR body lacked the channel-cut note. The body now has an Activation section saying the change is inert on merge, and Monitoring now starts after the channel cut. Nothing blocking is left.
Linked issue analysis
Closes #1900 (re-scoped 2026-10-10). All four acceptance criteria are met.
- AC1 — met.
claude:actionreturnsclaude-sonnet-5-5,claude-sonnet-5,claude-opus-5-5. - AC2 — met. The deep, audit, single, triage and duck defaults are unchanged.
- AC3 — met.
test_engine_chain.bats,test_engine_models.bats,test_engine_new_models.batsand theactionrow indocs/engine-configuration.mdare all updated. The new!= *claude-opus-4-8*assertions guard against the swap being partly undone. The only remainingclaude-sonnet-5,claude-opus-4-8string in the tree is a duck-override test fixture (test_engine_models.bats:312), not a default assertion. - AC4 — met (resolved since the prior review). shellcheck and
check-model-pinspass. The body's new Activation section says the change is inert on merge until thedev-lead/v139-*/pr-review/v1-*channel is cut, and Monitoring now starts after the cut.
Findings
Prior-review findings:
Channel-cut statement missing from PR description (blocking, metadata only)— resolved. The Activation and Monitoring sections now cover it.
Non-blocking, carried forward as advisory:
2. Missing Test-Change-Justification: trailer. #1900's Dev Notes ask for it. The test-tamper guard does not gate this PR. Consider adding it to the squash-merge message for the audit trail.
3. Effort on the opus-5-5 hop. When both sonnet hops throttle, opus-5-5 serves the writer at its CLI default effort (medium), unlike the high pinned for deep, audit and single. That is reasonable for a last-resort writer hop. A bats case asserting this would make it a deliberate, tested choice (raised by the QA Lead advisory).
4. Shared rate-limit bucket. The writer's last hop now shares opus-5-5's RPM/TPM bucket with the deep, audit and single primaries. Watch writer exit-2 rates after the channel cut, as the PR's Monitoring section already says.
Security: No secrets, auth or workflow changes. The run_secret_scanning MCP tool was not available in this run; the gitleaks CI check passed.
CI status
All required checks are green: Lint, ShellCheck, shellcheck, bats, unit-tests, unit, check-model-pins, CodeQL, SonarCloud (Quality Gate passed, 0 new issues), gitleaks, actionlint, AgentShield and Agent Security Scan. The cancelled sync-scope-guard and guard runs were superseded by successful re-runs. cubic reported NEUTRAL. CodeRabbit, Gemini and Codex were rate-limited and gave no findings; their notices have informational dispositions. There are 0 unresolved review threads.
Reviewed automatically by the PR-review agent (single-reviewer mode: opus 5.5 [opus 4.8, opus 4.7]). Reply if you need a human review.
|
pr-review approved on PARTIAL advisory evidence: 4/5 required advisory bots reported before the gate's head-age-timeout fallback proceeded. Recorded for the miss-rate metric (#1596). |
…2263) main gained three negated commands that cannot fail their test after this branch's CI last ran: two in test_claim_sweep.bats (#2231) and one in test_engine_new_models.bats (#2241). The bats-negation job runs on the merge with main, so it would have failed on the next run. Each is now `! cmd || false`; all three assertions hold (45/45 across the two suites). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Problem
[Phase 3] Refresh the Opus 4.8 fallback-chain hops to Opus 5.5 in engine.sh
From the issue: As a review-engine maintainer, I want the last Claude fallback hop that still falls back to Opus 4.8 from a non-Opus model to use Opus 5.5 instead, so that the action tier's last resort is the cheaper, proven model now that the deep-tier canary has passed (#1899).
Risk
Low — changes automation shell logic under scripts/, covered by shellcheck (--severity=warning) and the bats suite.
Test plan
Tests added/updated:
tests/dev-lead/unit/test_engine_chain.bats,tests/dev-lead/unit/test_engine_models.batstests/dev-lead/unit/test_engine_new_models.bats. Verification:bash scripts/dev-lead-lint.sh(shellcheck --severity=warning) ran pre-commit; the bats suite runs in CI.Rollback
Revert this PR. No non-revertible side effects (no tags, migrations, or external state).
Activation
Inert on merge. The action-tier default only takes effect once a release channel is cut onto this commit: dev-lead runs it from its
dev-lead/v139-*channel tags and pr-review frompr-review/v1-*. Until a channel moves, every agent keeps the previous chain.Monitoring
This PR's Lint (shellcheck) and bats checks show pass/fail. Behavioural monitoring starts after the channel cut, not after the merge: watch the writer's exit-2 (all hops rate-limited) rate, because the last hop now shares Opus 5.5's rate-limit bucket with the deep, audit and single primaries.
Closes #1900