Release Notes
Fixed
-
wt removerefuses a registered path that now holds a different repository: A clone made at a stale registration's path was removed whole, uncommitted work included — and wt routed the user there, since the dirty gate read the occupant's files as this worktree's and offered--forceas the cure. Removal now compares the directory's git dir against this repository's;--forcewaives uncommitted changes, not the check for whose directory it is. (#3785) -
The Nix flake names three systems, dropping Intel macOS: nixpkgs drops
x86_64-darwinin 26.11, so the flake would stop evaluating there onceflake.lockadvances past it. (Breaking:nix build,nix run, and the home-manager module no longer resolve on Intel macOS. Release binaries are unaffected and still ship for it.) (#3776) -
NO_COLORand a redirected stream reach every surface: Escapes still landed in progressivewt list,-vdiagnostics, clap's error tips, and parts of stderr — the deprecation warning, thewt config updatepreview, the[y/N]prompt — so a redirected log carried escapes on one line and not the next. Color now resolves in one place. (#3777, #3771) -
A trailing separator no longer hides the branch: Git's ref format forbids a name ending in
/, and shell completion produces exactly that spelling whenever adocsdirectory sits beside the branch, sowt switch docs/never had a candidate. Selectors are normalized before resolution now —wt remove, merge targets,--base, and thepre-switchhook'stargetalike. (#3785) -
A path holding no worktree is reported as a path:
wt remove ../repo.ghostansweredNo branch named …and pointed at a listing it could never appear in;wt switchandwt mergeoffered--create <path>, which git rejects; andwt config state marker set --branch <path>silently stored state keyed by a path. (#3773, thanks @judewang for reporting) -
A failed GitLab project lookup carries
glab's own verdict:wt switch mr:<n>on a fork MR answered a 401, a 404, and a network failure with the sameFailed to fetch project 456, swallowing the output every otherremote_reffailure path forwards. A non-project response body now says so too. (#3799) -
A deleted-and-recreated worktree directory is reported, not leaked as git's exit 128: An
rm -rffollowed by amkdirpasses thePath::exists()probe, sowt switch,wt merge,wt step push, andwt removewalked into a raw git failure. All four now name the missing worktree and thegit worktree prunethat clears it. (#3785)
Internal
-
Library API rework (Breaking library API):
cargo-semver-checksfails four lints —GitErrorgainedWorktreeNotFoundAtPathandWorktreePathNotOurs, shifting seven later discriminants, itsDetachedHeadvariant gained aworktreefield,ResolvedWorktreegainedNoWorktreeAtPath, andRepository::resolve_worktree_namewas removed. (#3785, #3773) -
Tests and benches spawn a pinned
wtbinary: a concurrentcargoremoves and recreatestarget/debug/wtas it uplifts, so spawns hit a one-offNotFound; every spawn now routes through a hardlinked pin. (#3784, #3792) -
The nix devShell and
task setup-webinstall what the test suite drives: both were missingnushell,pwsh, andjq, which--features shell-integration-testsshells out to. (#3768, #3776) -
Benchmark fixtures reduced to two provenance-based bases:
Generatedbuilds a repository locally andImportedcopies the pinnedrust-lang/rustcorpus, with worktree, branch, and remote-ref populations as parameters. (#3761)
Install worktrunk 0.73.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/max-sixty/worktrunk/releases/download/v0.73.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.73.0/worktrunk-installer.ps1 | iex"; git-wt config shell installInstall prebuilt binaries via Homebrew
brew install worktrunk && wt config shell installDownload worktrunk 0.73.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