Skip to content

fix: let Auto Release wait for the full authoritative CI run - #290

Merged
HemSoft merged 1 commit into
mainfrom
fix/auto-release-authoritative-wait
Nov 10, 2026
Merged

HemSoft merged 1 commit into
mainfrom
fix/auto-release-authoritative-wait

Conversation

@HemSoft

@HemSoft HemSoft commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator

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 release job 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.

Budget Before After
verify-authoritative-run.sh watch 60 min 240 min
Mutation Testing timeout-minutes 300 225
Auto Release release job timeout-minutes unset (360 hosted limit) 350
  • Mutation limit: 225 minutes is 50 above the slowest of 39 successful hosted runs (2026-11-06 to 2026-11-10: 110 to 175 minutes). The old 300 predated any hosted measurement; its comment said so.
  • Why not just a longer watch: with the old 300-minute mutation limit, no watch long enough to outlive it fits in one 360-minute hosted job next to changelog-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.
  • Tests: validate-main-ruleset now derives the watch from the script and requires both inequalities, replacing a hard-coded timeout 60m literal. TestMergeBudgetOutlivesRequiredGates checks the same relation against executionTimeout("enable"), and TestRepositoryValidationRejectsShortReleaseWaits restores 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.go prints "main ruleset and release workflows are consistent".
  • gofmt, go vet, staticcheck, deadcode, gocritic and errcheck -exclude .errcheck_excludes are clean on ./.github/scripts/....
  • End to end, the next real release should show a green first release attempt and a docs PR merged without a rerun. That can only be observed after merge.

🤖 Generated with Claude Code

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>
@HemSoft HemSoft added bug Something isn't working github_actions Pull requests that update GitHub Actions code model:claude-opus-5.5 PR authored by claude-opus-5.5 labels Nov 10, 2026
@HemSoft

HemSoft commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator Author

@sfl review

@HemSoft

HemSoft commented Nov 10, 2026

Copy link
Copy Markdown
Collaborator Author

@codex review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 10, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-10T07:36:49.132652Z f6fa199 Manual request
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Keep them coming!

Reviewed commit: f6fa199c59

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

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".

@hemsoft-sfl-reviewer hemsoft-sfl-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ 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.json
    • docs/release-changelog-preparation.md
    • go.mod
  • Verified:
    • Compare response base_commit.sha matches 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 <= 240 and 240 + 90 + 15 <= 350 <= 360; executionTimeout supplies 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.
  • 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

@HemSoft
HemSoft merged commit 93c7f8d into main Nov 10, 2026
13 checks passed
@HemSoft
HemSoft deleted the fix/auto-release-authoritative-wait branch November 10, 2026 09:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working github_actions Pull requests that update GitHub Actions code model:claude-opus-5.5 PR authored by claude-opus-5.5

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Let Auto Release wait for the full authoritative CI run before failing

1 participant