fix(release): finalize v4.1.0 through protected main - #568
Conversation
…in-x64@4.1.0 @relayburn/cli-linux-arm64-gnu@4.1.0 @relayburn/cli-linux-x64-gnu@4.1.0 @relayburn/sdk-darwin-arm64@4.1.0 @relayburn/sdk-darwin-x64@4.1.0 @relayburn/sdk-linux-arm64-gnu@4.1.0 @relayburn/sdk-linux-x64-gnu@4.1.0 @relayburn/sdk@4.1.0 @relayburn/mcp@4.1.0 relayburn@4.1.0
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 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. Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit dd48b09. Configure here.
| tagged_tree=$(git rev-parse "refs/tags/$tag^{tree}") | ||
| if [ "$tagged_tree" != "$expected_tree" ]; then | ||
| echo "::error title=Release tag conflict::$tag already exists but its release tree does not match this run. Refusing to move an immutable tag." | ||
| exit 1 |
There was a problem hiding this comment.
Recovery tree check blocks tag reuse
Medium Severity
Finalize release refs reuses existing tags and release/v* only when the entire HEAD tree matches. Recovery already allows publish.yml to change so a workflow repair can resume, and that delta makes the trees differ, so already-pushed immutable tags are treated as conflicts. The job then fails after registry publish and never opens the metadata PR from the tagged release commit.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit dd48b09. Configure here.


What changed
mainWhy
The 4.1.0 recovery successfully verified all npm artifacts, waited for registry propagation, refreshed the lockfile, and passed
pnpm install --frozen-lockfile. Its last step still failed becausegit push origin HEAD --follow-tagsattempted a direct update to protectedmain. The tags were pushed, but the release job was marked failed.Validation
actionlintpasses (existing SC2086 baseline ignored)git diff --checkpassesNote
High Risk
Changes the publish pipeline’s git finalization path and ships full 4.1.0 version metadata; mistakes could block merges to main or confuse release recovery, though tag immutability checks reduce retag risk.
Overview
Fixes publish failures when
mainis branch-protected by no longer pushing the version/changelog/lockfile commit directly. The workflow now finalizes immutable release tags and arelease/v<version>branch in one atomic push, then opens (or reuses) a PR intomainfor release metadata. Recovery runs reuse existing tags/branches only when the release tree matches, and PR creation iscontinue-on-errorso a failed PR does not undo a successful registry publish.This PR also records the verified 4.1.0 release: lockstep bumps across Rust/npm packages, promoted changelog entries, and
pnpm-lock.yamlpins for published optional platform deps. Workflowpull-requests: writewas added forgh pr create.Reviewed by Cursor Bugbot for commit dd48b09. Bugbot is set up for automated code reviews on this repo. Configure here.