Skip to content

Prepare v0.3.3 release - #145

Merged
rohoswagger merged 1 commit into
mainfrom
release/v0.3.3
Aug 11, 2026
Merged

Prepare v0.3.3 release#145
rohoswagger merged 1 commit into
mainfrom
release/v0.3.3

Conversation

@rohoswagger

Copy link
Copy Markdown
Owner

Bumps to 0.3.3 and records the release in the version history. Cargo.lock is regenerated in the same commit because the release workflow runs cargo publish --locked.

0.3.2 is already tagged and published to crates.io, so this is the next version — tags are never reused.

What's in 0.3.3

All four PRs address the same underlying theme: stack metadata is a cache of git, and treating it as the source of truth produces confident wrong answers.

  • fix: derive needs_restack from git, not stale parent_head #141ez status derived needs_restack by comparing the parent tip to the cached parent_head, so a branch rebased outside ez reported that it needed a restack when it was already sitting on its parent. Now asks git, via a shared restack::branch_needs_restack that ez checkout also uses — the two commands previously disagreed about the same branch.
  • fix: run the post-merge restack through the shared engine #142ez merge's post-merge restack was its own loop predating the shared engine from 0.2.29. A stack entry whose branch was gone aborted the whole command after the PR had merged, so a successful merge exited 1. It now runs through restack_branches_with_options, gaining missing-branch skips, the effective_old_base fallback, per-branch isolation, and the worktree guard.
  • fix: never strand a merged branch when the post-merge restack fails #143 — the merged branch was cleaned up after that restack, behind a ?. A restack failure therefore skipped cleanup once the stack entry was already deleted, leaving a branch and worktree no command could see. Cleanup now runs first, and ez sync gained a safety net that collects orphans under this repo's .worktrees/.
  • fix: identify an orphan's PR by head SHA, not by branch name #144 — that safety net couldn't actually fire: its squash-merge check relied on an empty diff against trunk, which only holds for a restacked branch. Merge evidence is now identity-based — a merged PR counts only when its headRefOid matches the local tip, so a recycled branch name or a fork contributor's same-named PR can't authorize a deletion.

Backfill

The version history table stopped at 0.2.29; 0.3.0, 0.3.1, and 0.3.2 were never written down. Added from their tag ranges.

Full suite and clippy green.

Three stale-metadata and cleanup fixes since v0.3.2 (#141, #142, #143, #144).

Also backfills the 0.3.0–0.3.2 rows in the version history table, which were
never recorded.
@rohoswagger
rohoswagger merged commit 27bd7d0 into main Aug 11, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant