Release Notes
Improved
-
Summary column in
wt list --full: LLM-generated one-line branch descriptions. Opt-in via[list] summary = truein config (experimental). Requires[commit.generation]config. (#1100) -
wt step diffcommand: Show all uncommitted and untracked changes thatwt mergewould include as a unified diff against the merge base. Pass-- --statfor a summary. Docs Closes #1043. (#1074, thanks @davidbeesley for the feature discussion) -
pre-switchhook: New hook that runs beforewt switchvalidation. Use it to fetch-if-stale or run pre-flight checks before switching. Respects--no-verify. Docs (#1094, thanks @jdb8 for the use case in #1085) -
wt config updatecommand: Automatically apply config migrations — detects deprecated patterns (template variables,[commit-generation],approved-commands), shows a diff preview, and applies with confirmation. Use--yesto skip the prompt. (#1083) -
Configurable picker timeout: New
[switch.picker] timeout-mssetting (default: 200ms,0to disable). The[select]config section is deprecated in favor of[switch.picker]— runwt config updateto migrate. (#1087) -
Command audit log: All hook executions and LLM commands are logged to
.git/wt-logs/commands.jsonlwith timestamps, exit codes, and duration. Auto-rotates at 1MB. View withwt config state logs getor query withjq. (#1088)
Fixed
-
Hook CWD wrong from subdirectories: Hooks invoked from a subdirectory within a worktree ran with incorrect CWD and
{{ worktree_path }}/{{ worktree_name }}template variables resolved incorrectly. (#1097) -
copy-ignoredverbose output and error handling:-vflag was silently ignored, error messages lacked file paths, and broken symlinks from interrupted copies caused failures. Also skips non-regular files (sockets, FIFOs) instead of failing. Fixes #1084. (#1090, thanks @jdb8 for reporting) -
Nushell
wt listpiping:wt list --format json | from jsonfailed in nushell because the wrapper's stdout capture prevented piping. Fixes #1062. (#1081, thanks @omerxx for reporting) -
Approved-commands lost during config migration: Running the config migration could silently discard existing approval data. Now copies
approved-commandsentries toapprovals.tomlbefore migration. (#1079) -
Deprecation messages reference
wt config update: Deprecation warnings now point to the newwt config updatecommand for one-step migration instead of manualmvinstructions. (#1089)
Documentation
-
wt switchhelp text: Updated description to "Switch to a worktree; create if needed" to surface auto-create behavior. (#1082) -
Docs syntax highlighting: Migrated to giallo engine with a warm theme. (#1080)
Internal
-
CI reviewer improvements: File-based GraphQL queries, centralized shell quoting guidance, artifact upload path fixes. (#1091, #1098, #1099)
-
Issue triage for external contributors: CI triage workflow now runs for all external contributor issues. (#1086)
Install worktrunk 0.26.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.26.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.26.0/worktrunk-installer.ps1 | iex"; git-wt config shell installInstall prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.26.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