Release Notes
Improved
-
Progressive rendering in
wt switchpicker: The picker now mirrorswt list's skeleton-first model — branch and path render immediately, while status, diff stats, counts, and summaries fill in in place as they resolve. Replaces the previous ~500ms blocking freeze before first render. (#2231) -
Clean rows no longer flash the timeout glyph in the picker: The LLM semaphore is now acquired only around the actual LLM call, so the no-changes and cache-hit fast paths return immediately instead of sitting behind up to 8 concurrent LLM calls. A clean
mainrow in the picker now renders blank rather than the·"timed out" placeholder. (#2222)
Fixed
-
Picker preview styling bleed:
color_print's</>emits SGR 22 to reset<bold>/<dim>, which skim 0.20's ANSI parser silently drops. Preview spans now emit an explicit full reset (\x1b[0m), so dim and bold no longer bleed across the rest of the preview pane. (#2232) -
Picker alt-screen enter/exit asymmetry: In partial-height mode (
height=90%), skim-tuikit skippedsmcupon startup but still emittedrmcupon exit, corrupting the outer terminal's scrollback. The vendored tuikit now pairs enter/exit symmetrically. (#2230) -
Partial first render under tmux: Under tmux PTY pressure, rows past the first ~1024 bytes would silently vanish because
Output::flushusedwriteinstead ofwrite_all. Vendored skim-tuikit fixes the short-write bug. (#2226)
Library
- Expose worktree removal API from the
worktrunklibrary:remove_worktree_with_cleanup,RemoveOptions, andBranchDeletionModeare now public, letting external tools reuse the canonical removal flow (fsmonitor cleanup, trash-path staging) instead of reimplementing it with raw git commands. Motivated byworktrunk-sync. (#2227, thanks @pablospe for the request in #2053)
Documentation
-
Document
worktrunk-sync: Linked from the Extending page and the FAQ as a community-maintained companion tool for rebasing stacked worktree branches. (#2225) -
Catalog vendored skim patches:
vendor/skim-tuikit/PATCHES.mdnow records both landed and candidate patches against skim-tuikit, and a Cargo.toml comment records why skim is pinned to 0.20.x. (#2228, #2229)
Internal
- Drop unreachable
rayon::spawnfallback in the picker orchestrator. (#2216)
Install worktrunk 0.37.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.37.1/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.37.1/worktrunk-installer.ps1 | iex"; git-wt config shell installInstall prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.37.1
| 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