Conversation
worktrunk-bot
approved these changes
Jun 9, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v0.57.0.
cargo semver-checksreports breaking library API changes: the squash refactor (#2983) renamedRepository::commit_subjectstocommit_message_details, and the newGitError::UnbornDefaultBranchvariant (#2990) shifts the discriminants of the exhaustiveGitErrorenum. Neither is intentional public API, but together they force a minor bump pre-1.0.CHANGELOG
Improved
wt step diff --branch:wt step diffgained a-b/--branchflag, mirroringwt step commit, so the diff can target another worktree's branch without leaving the current one. The branch must have a checked-out worktree. (#2995)Squash templates can use commit bodies: The squash commit-message template gains an experimental
{{ commit_details }}variable — a list of{ subject, body }objects for the commits being squashed — alongside the existing{{ commits }}(now documented as the commit subjects). Templates can incorporate full commit bodies, not just subject lines. (#2983, thanks @florianilch)Recommended Claude Code commit command drops the
CLAUDECODE=prefix: Claude Code removed the nested-session check that rejectedclaude -plaunched from inside another session, so the workaround is gone. The recommended[commit.generation]command shown bywt config createno longer carries a leadingCLAUDECODE=, andwtno longer stripsCLAUDECODEfrom the environment before running commit-generation commands. (#2979)Fixed
Nushell wrapper installs where Nushell actually autoloads it:
wt config shell install nuwrotewt.nuto$nu.default-config-dir/vendor/autoload, which Nushell never autoloads — on Linux the wrapper was written but silently never loaded, sowtwas never wrapped (it happened to work on macOS/Windows by coincidence of path layout). It now installs to$nu.vendor-autoload-dirs | last, and install/uninstall clean up any worktrunk wrapper stranded at the old location. (#2992, thanks @nnutter for reporting)Claude Code hooks work for Fish shell users: The plugin's hook commands used
${CLAUDE_PLUGIN_ROOT}brace syntax, which Fish doesn't expand; they now use$CLAUDE_PLUGIN_ROOT, so the activity and worktree-lifecycle hooks fire correctly under Fish. (#2962, thanks @amw)Pager no longer wedges the terminal on Ctrl-C (Windows): Interrupting the
--helppager (less) with Ctrl-C on Windows could leave the terminal in a broken state;lessnow quits cleanly on interrupt. (#2969, thanks @ofek for reporting)Clearer error when the default branch has no commits: In a freshly initialized repo whose default branch is unborn,
merge/rebase/squash/push(and the diff report) failed withDefault branch main does not exist locallyplus a misleading hint to reset the cached value. They now report that the branch has no commits yet, without the wrong cache-reset suggestion. (#2990)diagnostic.mduploads as a gist again: The-vvdiagnostic report inlined raw NUL bytes from NUL-separated git output, sogh gist createrejected it as a binary file. Control bytes in the subprocess preview are now escaped. (#2991)wt listtolerates a missing index file: A repo with no<gitdir>/index(nothing ever staged) made the temp-index probe fail; a missing index is now treated as an empty one, matching git's own behavior. (#2884)Inline code renders in
--helpsection headings: Terminal--helpshowed literal backticks in headings authored with inline code (e.g. thewt config state logsheadingCommand log (commands.jsonl)). Headings now reduce inline code to plain text under the heading's uniform style. The--stage/--dry-runsubsection headings inwt step commit/squashwere also renamed to sentence case ("Staging", "Dry run"). (#3003)Documentation
wt switchdocs give forge PR/MR URLs equal billing withpr:/mr:: The switch docs now present the full forge-URL form alongside thepr:Nshortcut. (#2970)New FAQ entry on moving uncommitted changes to a new worktree. (#3002)
Internal
worktrunk.skip-bare-repo-promptmoved under theworktrunk.hints.namespace, so it now lists underwt config state hintsand clears withwt config state clear(previously a top-level key that escaped both). Clean cutover: users who already opted out are re-prompted once on their nextwt switch --createin a dotted-name bare repo. (#3001)