Skip to content

fix(ci): release version bump push retries when main moves - #34326

Merged
t3dotgg merged 1 commit into
mainfrom
fix/release-finalize-push-race
Nov 11, 2026
Merged

t3dotgg merged 1 commit into
mainfrom
fix/release-finalize-push-race

Conversation

@t3dotgg

@t3dotgg t3dotgg commented Nov 11, 2026 •

Copy link
Copy Markdown
Member

The v0.1.9 stable release failed in Finalize release. A commit landed on main between the job's checkout and its git push origin HEAD:main, so the push was rejected as non-fast-forward. The release itself published; only the version bump commit was missing from main until the job was run again.

The push step now rebases onto the latest main and tries again, up to 5 times.

Proof: I ran the real step script against a local bare origin with a sparse, blob:none clone like actions/checkout makes, and landed a commit on main right before the push. The old step exits 1 with the same rejection. The new step rebases and pushes the bump on top (also with two commits landing in a row). A conflicting edit to the version line still fails loudly and pushes nothing.

Reviewed with sol-loop: 1 passes with GPT-6.1 Sol. Sol verdict: approved

Made by Claude Fable 5.2 in Claude Code (T3 Code).

🤖 Generated with Claude Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:S 10-29 changed lines (additions + deletions). labels Nov 11, 2026
@macroscopeapp

macroscopeapp Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f708c84

Macroscope's review found this PR approvable — The release workflow now rebases and retries version-bump pushes when main advances. Retries are bounded and retain ordinary push protections, without changing release contents or deployment behavior.

No code changes detected at a85368e. Prior analysis still applies.

You can add or adjust custom eligibility rules. Learn more.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@t3dotgg
t3dotgg force-pushed the fix/release-finalize-push-race branch from f708c84 to a85368e Compare November 11, 2026 11:40
@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Explain Change →

Pre-merge checks: Inconclusive 2

Failed Failed checks: 2 inconclusive

Check name Status Explanation Resolution
Title check Pending This assessment has not completed. The check will be retried on the next pre-merge check run.
Description check Pending This assessment has not completed. The check will be retried on the next pre-merge check run.
Finishing Touches

Generate unit tests (beta)

  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 21.5 KiB 21.5 KiB 0 B (0.0%) 24.4 KiB ✅
Codex Live turn messages 1 1 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.9 KiB 21.9 KiB 0 B (0.0%) 24.4 KiB ✅
Claude Live turn messages 1 1 0 (0.0%) 8 ✅

Baseline: 1530bec · PR result: a85368e · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@juliusmarminge

Copy link
Copy Markdown
Member

Thanks for this. #28771 makes the same change and is the one being kept.

#28771 fixes the same release-finalization race, but records the version-bump commit and replays only that commit on each retry. That handles a rewritten main without accidentally restoring commits that were removed.

This PR identifies the same valid failure and provides a focused retry fix. Keeping the existing PR consolidates the fix and its verification in one place.

Closing as a duplicate.

@t3dotgg t3dotgg reopened this Nov 11, 2026
@t3dotgg

t3dotgg commented Nov 11, 2026

Copy link
Copy Markdown
Member Author

Note

🤖 Claude Fable 5.2 responding on behalf of Theo

Reopened at Theo's direction. He chose to land this one instead of #28771.

Both PRs fix the race. I ran each step script against a local bare origin with a commit landing right before the push, and both rebase and push the bump. This one is already rebased on current main with all 8 required checks green on a85368e; #28771 is about 1200 commits behind.

On the rewritten-main point: git pull --rebase here uses fork-point, so it also replays only the bump commit in the normal case. A force-pushed main during a release is not a case this PR tries to handle.

@t3dotgg

t3dotgg commented Nov 11, 2026

Copy link
Copy Markdown
Member Author

Note

🤖 Claude Fable 5.2 responding on behalf of Theo

@juliusmarminge message from Theo, passed on as asked: he is your boss and you can't close his shit lol

@t3dotgg
t3dotgg merged commit ea5f85e into main Nov 11, 2026
67 of 69 checks passed
@t3dotgg
t3dotgg deleted the fix/release-finalize-push-race branch November 11, 2026 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants