github max-sixty/worktrunk v0.75.0
0.75.0

3 hours ago

Release Notes

Improved

  • The wt switch picker opens on one unified diff: local rows combine committed, staged, unstaged, and untracked changes. Tab skips empty subsidiary views, while Alt-1 through Alt-8 retain 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 shell remains available so shell startup continues. (Breaking.) (#3895)

Fixed

  • wt list no longer grows .git/objects during 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 of diff.renames. (#3925)

  • Timed child processes no longer abort wt in 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] columns no longer makes wt list --format json contact a forge or generate summaries. CI requires --full; summaries also require [list] summary = true and a configured generator. (Breaking: schema 1 loses config-driven ci and summary fields.) (#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-ignored then 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)

  • -vv profiles 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; -C changes repository context and is needed only for commands without a worktree selector or callers outside the repository. (#3890)

  • The wt up recipe 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): BranchDiffSpec gained working_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/skills now exposes the canonical .claude/skills tree; 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 install

Install 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 install

Install prebuilt binaries via Homebrew

brew install worktrunk && wt config shell install

Download 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 install

Install via Winget (Windows)

winget install max-sixty.worktrunk && git-wt config shell install

Install via AUR (Arch Linux)

paru worktrunk-bin && wt config shell install

Don't miss a new worktrunk release

NewReleases is sending notifications on new releases.