3.0.0 (2026-09-25)
⚠ BREAKING CHANGES
- cmd:
treehouse returnnow exits 3, not 0, when it leaves a dirty worktree in place, andtreehouse getdoes the same when its subshell exits leaving one dirty. Callers that read exit 0 as "the slot was released" were reading the bug this fixes; scripts underset -e, or usingtreehouse return "$p" && next-step, will now stop or branch differently at a dirty abort. Pass --force to clean and return, or treat exit 3 as "not returned".
Features
- add Nix package manager install support (#113) (4307a30)
- add opt-in branch creation to treehouse get (#150) (e4f59d1)
- add per-acquisition file seeding manifests (#131) (67c9f2f)
- cmd: report checked-out branches in status (#134) (ee8652b)
- cmd: return a worktree by name and add return --all (#143) (99f4db2)
- fileclone: add opt-in APFS sharing for fresh Git worktrees (#153) (438e9c1)
- pool: add lease command to durably lease an existing worktree (#128) (b227e59)
- pool: make where a new pool worktree is placed configurable (#140) (6d33753)
- pool: opt-in unique worktree directory names for get (#126) (cee9ea1)
- pool: seed ignored files from .worktreeinclude (#129) (0e87c62)
- pool: support configurable base branch for get (#119) (c98e9de)
Bug Fixes
- cmd: exit non-zero when a dirty worktree is not returned (#138) (e57daab)
- cmd: paste-safe dirty non-TTY return --force hints (#122) (59762c9)
- config: warn when repository hooks are ignored (#141) (8e3ceff)
- pin nix-build to flake-locked nixpkgs and extract package.nix (#135) (30723fc)
- pool: let prune and destroy reclaim worktrees from other clones in a shared pool (#146) (94c092f)
- pool: report only the processes return would terminate in status (#139) (af57b33)
- pool: reuse a pooled worktree only for the clone that owns it (#145) (1185dc6)
- shell: start supported user shells as interactive login sessions (#120) (db06078)
- updater: replace a running Windows exe without a fixed .old backup (#121) (bdbd0f8)