Release Notes
Improved
-
The
wt switchpicker opens on one unified diff: local rows combine committed, staged, unstaged, and untracked changes. Tab skips empty subsidiary views, whileAlt-1throughAlt-8retain direct access. Docs (#3865) -
Git 2.43 is now the minimum supported version: older Git exits with an upgrade message before Git-dependent commands run;
wt config shellremains available so shell startup continues. (Breaking.) (#3895)
Fixed
-
wt listno longer grows.git/objectsduring advisory conflict checks: untracked content stays visible but is excluded from synthetic trees, and all probe-only objects use temporary storage. (#3906, fixes #3883, thanks @srobroek for reporting and the original fix) -
HEAD±counts untracked files without inflating moves:wt list, the picker, and statusline include untracked lines. Tracked deletions paired with untracked destinations count as renames, so pure moves are line-neutral and edited moves show only their edits.HEAD±now always detects renames, regardless ofdiff.renames. (#3925) -
Timed child processes no longer abort
wtin restricted sandboxes:wt switch --create, picker pagers, and other bounded commands survive denied signal-handler wakes. TERM→KILL cleanup also returns promptly once the process group is gone. (#3857, #3887, fixes #3856, thanks @tomascamargo for reporting) -
JSON list output ignores display-column gates:
[list] columnsno longer makeswt list --format jsoncontact a forge or generate summaries. CI requires--full; summaries also require[list] summary = trueand a configured generator. (Breaking: schema 1 loses config-drivenciandsummaryfields.) (#3812, thanks @emeren for the request) -
Long Windows paths compare consistently: paths beyond 260 characters could retain a
\\?\prefix and appear to be on another drive.copy-ignoredthen refused them, while switch, remove, merge, and relocate landed at the worktree root instead of the original subdirectory. (#3899, fixes #3898, thanks @Persedes for reporting and verifying the fix) -
Shell configuration rechecks before it writes: overlapping installs lock and reread rc files; Fish completion installs preserve files created after preview; uninstall applies only previewed rc removals and rejects changed Worktrunk-owned files. (#3853, #3924)
-
-vvprofiles exclude their own collector commands: command counts and cache summaries no longer include duplicate-looking work performed only to assemble the diagnostic report; raw traces still retain it. (#3900) -
Fenced HTML comments survive picker Markdown rendering: PR descriptions and comments now preserve fenced
<!-- … -->lines; fenced<!-- wt list … -->markers also no longer affect the following block. (#3908)
Documentation
-
Agent CLIs without a plugin can publish activity markers: the integration guide now specifies the session-start, turn-end, and session-end calls, working-directory requirement, error guard, and cleanup contract. Docs (#3848, thanks @AsafMah for requesting generic-agent guidance and @ortonomy for the related Pi use case)
-
Agent guidance explains worktree selection: commands that name a branch already select its worktree;
-Cchanges repository context and is needed only for commands without a worktree selector or callers outside the repository. (#3890) -
The
wt uprecipe safely updates dirty worktrees: it fetches all remotes, fast-forwards dirty branches without autostash, rebases clean branches, and continues past an ordinary refusal or a failed remote. Docs (#3882) -
The docs site has a new responsive design: rebuilt on Astro and Starlight while preserving public routes, anchors, and crawler URLs; generated reference pages remain synchronized. (#3866)
Internal
-
Library API rework (Breaking library API):
BranchDiffSpecgainedworking_base, while remote-URL, shell-path, branch-push, approval, temporary-index, and repository helpers were removed. (#3833, #3853, #3865, #3866, #3875) -
Codex loads repository maintainer skills:
.agents/skillsnow exposes the canonical.claude/skillstree; checkouts without symlink support keep the existing limitation. (#3903)
Install worktrunk 0.75.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.75.0/worktrunk-installer.sh | sh && wt config shell installInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/max-sixty/worktrunk/releases/download/v0.75.0/worktrunk-installer.ps1 | iex"; git-wt config shell installInstall prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.75.0
| File | Platform | Checksum |
|---|---|---|
| worktrunk-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| worktrunk-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| worktrunk-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| worktrunk-aarch64-unknown-linux-musl.tar.xz | ARM64 MUSL Linux | checksum |
| worktrunk-x86_64-unknown-linux-musl.tar.xz | x64 MUSL Linux | checksum |
Install via Cargo
cargo install worktrunk && wt config shell installInstall via Winget (Windows)
winget install max-sixty.worktrunk && git-wt config shell installInstall via AUR (Arch Linux)
paru worktrunk-bin && wt config shell install