Repository navigation
fix: let Auto Release wait for the full authoritative CI run - #290
Conversation
Auto Release watched the dispatched changelog CI run for only 60 minutes, while Mutation Testing takes 110 to 175 minutes on hosted runners (39 successful runs, 2026-11-06 to 2026-11-10). Every release since the per-mutant test change failed its first attempt and needed a manual docs-PR merge plus a rerun. - verify-authoritative-run.sh watches for 240 minutes. - Mutation Testing's timeout drops from 300 to 225 minutes, 50 above the slowest measured run, so the watch outlives it. - The release job gets an explicit 350-minute timeout: the watch plus the 90-minute guarded merge wait and the earlier steps, inside GitHub's 360-minute hosted job limit. - validate-main-ruleset and TestMergeBudgetOutlivesRequiredGates tie the three values together, and new validator cases reject each regression. Closes #289 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@sfl review |
|
@codex review |
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Keep them coming! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
✅ Verdict: PASS • Round 1
Confidence: 8/10 · Project risk: 3/10 (gh-x)
Review done by gpt-6.1-sol (adversarial to claude)
The change extends the authoritative CI watch to 240 minutes, sets Mutation Testing to 225 minutes and Auto Release to 350 minutes, and adds budget validation. Security, accuracy and quality review found no evidenced defects within the stated static coverage; the change appears ready to merge.
🔨 Full-Spectrum Review Summary
Effort: high
Review time: 1m 48s
Token count: Unavailable
| Pass | 🔴 Critical | 🟠 High | 🟡 Medium | ⚪ Low |
|---|---|---|---|---|
| 🔒 Security | 0 | 0 | 0 | 0 |
| ✅ Accuracy | 0 | 0 | 0 | 0 |
| 🧰 Quality & Maintainability | 0 | 0 | 0 | 0 |
| Total | 0 | 0 | 0 | 0 |
Key Findings
No material defects found.
Coverage
- Files reviewed:
.github/scripts/changelog-merge/main_test.go.github/scripts/changelog-merge/request_test.go.github/scripts/validate-main-ruleset.go.github/scripts/validate-main-ruleset_test.go.github/scripts/verify-authoritative-run.sh.github/workflows/auto-release.yml.github/workflows/ci.yml
- Context read:
.github/scripts/changelog-merge/main.go.github/scripts/changelog-merge/request.go.github/scripts/prepare-changelog-pr.sh.github/scripts/run-mutation-gate.sh.github/rulesets/main.jsondocs/release-changelog-preparation.mdgo.mod
- Verified:
- Compare response
base_commit.shamatches the reserved base; its sole commit matches the reserved head. - Inspected the complete seven-file diff and relevant exact-head source; the recursive tree lists no repository instruction files.
- Security: the verifier retains exact-head matching and requires exactly one successful
Quality Gate; timeout changes introduce no permission changes. - Accuracy:
225 + 15 <= 240and240 + 90 + 15 <= 350 <= 360;executionTimeoutsupplies the checked 90-minute merge budget. - Accuracy: unsuccessful watches stop delivery before guarded merge; candidate reuse preserves the retained head.
- Quality: regression cases cover insufficient watch duration, excessive mutation duration, insufficient release duration and an excessive release timeout.
- Quality: test fixtures now include
prepare-changelog-pr.sh, which repository validation reads.
- Compare response
- Not verified:
- End-to-end release completion, actual queue delays and future mutation duration remain unobserved.
- The claimed 39 historical hosted runs and 110–175-minute range were not independently checked.
- The stated 360-minute hosted limit and documentation's historical Actions-policy/API claims were not independently checked against service documentation or historical records.
- Unchanged release-plan publication and asset-reconciliation internals were not inspected.
- Tests run: None. Reviewer execution is disabled.
HemSoft full-spectrum review • 3 evidence-based passes • Reviewed head f6fa199c598f16e181b89b2a907296a3700c81e9 • SFL v0
Summary
Closes #289. Auto Release stopped watching its authoritative changelog CI run after 60 minutes, while that run's Mutation Testing job takes 110 to 175 minutes. The
releasejob failed on every release (most recently run 42749194628 for v0.23.17), and each docs PR had to be merged by hand and Auto Release rerun.verify-authoritative-run.shwatchtimeout-minutesreleasejobtimeout-minuteschangelog-merge enable's 90-minute merge wait. Lowering the limit to measured reality makes the chain fit: 225 + 15 ≤ 240, and 240 + 90 + 15 ≤ 350 ≤ 360.validate-main-rulesetnow derives the watch from the script and requires both inequalities, replacing a hard-codedtimeout 60mliteral.TestMergeBudgetOutlivesRequiredGateschecks the same relation againstexecutionTimeout("enable"), andTestRepositoryValidationRejectsShortReleaseWaitsrestores each old or too-large value and expects the validator to reject it.Validation
go test -count=1 ./.github/scripts/...passes (all 7 packages), including the four new rejection cases.go run .github/scripts/validate-main-ruleset.goprints "main ruleset and release workflows are consistent".gofmt,go vet,staticcheck,deadcode,gocriticanderrcheck -exclude .errcheck_excludesare clean on./.github/scripts/....releaseattempt and a docs PR merged without a rerun. That can only be observed after merge.🤖 Generated with Claude Code