Skip to content

v0.9.0 — sweep and slot anchors

Latest

Choose a tag to compare

@dcolliervb23 dcolliervb23 released this 01 Oct 03:18

Fold everything finished back in — and give agents an anchor that survives their own harness.

warmtree sweep (#21)

One command folds every merged branch's worktree or slot back into the pool:

warmtree sweep --fetch
  • Taken slots whose branch git certifies as merged are released; hand-made worktrees are adopted and released in one step, folder and dependencies joining the pool.
  • --fetch first, so branches merged only upstream count; a branch folded from its upstream is deleted under that certificate even without a local tracking ref.
  • Dirty trees, unmerged branches, foreign directories, and slots other live sessions hold are left exactly where they are.
  • release now refuses a directory that is no longer a working tree of this repository, protecting every caller, not just sweep.

warmtree init && warmtree sweep --fetch is now the whole onboarding for a repo with years of worktree clutter. Known honest limit: squash-merged branches are not ancestors of base, so sweep does not detect them.

Slot anchors for agents (#22)

Dogfooding kept hitting the same failure: an agent runs cd "$(warmtree take <branch>)", but agent harnesses reset the working directory between commands, so later commands silently run against the main worktree.

  • warmtree path <branch> prints the absolute path of the taken slot holding a branch: git -C "$(warmtree path feat/x)" status works no matter how often the harness resets.
  • Repeat takes are idempotent. warmtree take of a branch already in a taken slot returns that slot's path again with a stderr note, instead of git's "already checked out" error — and adopts a stale lease so liveness checks see the actual occupant. A live foreign holder is preserved and warned about.
  • The agent skill and the managed instructions block now lead with path-anchored addressing; the cd one-liner is demoted to a note for humans in persistent terminals.

Also

  • take's stderr notes moved into the pool layer so they are always truthful.
  • README: sweep-based onboarding, path, and a correction — take claims the most recently used ready slot (MRU, since 0.8.0), not the oldest.

Upgrade: uv tool upgrade warmtree or pipx upgrade warmtree, then warmtree skill to refresh installed copies (unedited copies update automatically; edited ones are kept).