Release Notes
Improved
-
Hooks rationalized: Every lifecycle event now has a symmetric
pre-(blocking) /post-(background) pair. This required one rename:post-create→pre-start, reflecting that it runs beforepost-startas a blocking dependency step. A newpost-commithook fires in the background after commits (including squash commits during merge).post-mergeis now background instead of blocking, consistent with all otherpost-*hooks. Configs usingpost-createget a deprecation warning on anywtcommand; runwt config updateto rename automatically. The old name continues to work during the deprecation period. Docs (#1679, closes #1670, thanks @ortonomy for reporting #1571) -
Detached worktree support: Detached HEAD worktrees can now be removed via
wt remove /path/to/worktreeand switched to viawt switch /path/to/worktree. The interactive picker also handles detached worktrees for both operations. (#1665, #1680, thanks @mjakl for reporting #1661) -
In-place worktree removal in picker: Press
alt-rin thewt switchpicker to remove the selected worktree without leaving the picker. Currently hidden from picker legend and help text pending a cursor-reset issue (#1695). (#1677, #1696) -
Smarter column dropping in
wt list: Low-priority columns (Message, Time, Commit) are now dropped when Summary needs more space, using graduated thresholds based on priority distance. Extends the no-data column dropping from v0.31.0. (#1678)
Fixed
-
Bare repo project config ignored:
.config/wt.tomlplaced in the primary worktree of a bare repository was not found when running commands from the bare repo root directory. Config is now loaded from the primary worktree as fallback, and accidental config in the bare repo root itself is skipped. Fixes #1691. (#1692, #1697, thanks @seakayone) -
pre-starthook failure was non-blocking:pre-startwas the onlypre-*hook that warned on failure instead of aborting. Allpre-*hooks now consistently use FailFast. (Breaking:pre-starthook failures that previously only warned now abort the operation.) (#1708) -
Spurious mismatch warning for detached worktree switches: Switching to a detached worktree by path produced a "Branch-worktree mismatch" warning because the directory name was treated as a branch name. (#1686)
-
Detached worktree switch output showed redundant path: Output now shows "detached worktree" instead of repeating the directory name (which duplicated the path after
@). (#1685) -
Picker alt-r removal fixes: Picker removals now validate the worktree synchronously before removing it from the list, perform the actual git removal on a background thread to prevent UI freezing, and correctly handle detached worktrees. (#1699, #1702, #1717)
Documentation
- Changelog and migration guide for hook rationalization. (#1693)