Skip to content

v0.29.0

Choose a tag to compare

@github-actions github-actions released this 04 Oct 17:30
· 9 commits to main since this release
4bfe787

wtm opens up to other tools with a live event stream, and works on several worktrees at once.

Highlights

  • wtm events streams every worktree change as it happens, as JSON Lines for editors, terminal plugins and agents. → Event stream
  • wtm create and wtm clean take several worktrees in one run: wtm create feat/a feat/b. → Recipes
  • wtm exec runs one command in several worktrees in parallel, each with its own ports: wtm exec --all -- pnpm test. → Recipes

Breaking

  • wtm create --output json and wtm clean --output json answer with an envelope: read .results[0]. → Migrating to 0.29
  • Exit code 21 for any command run outside a git repository (was 1). → Migrating to 0.29
  • Exit code 19 for an interactive cancellation (was 0), so wtm create x && wtm go x stops there. → Migrating to 0.29

Added

  • wtm events outside a repository follows every repository wtm has been used in. → Every repository at once
  • worktree.provisioned and worktree.deprovisioned events tell when a worktree's hooks have run, and whether they passed.
  • WTM_CORRELATION_ID tags the events a command publishes, so a tool recognises its own. → Integrations
  • wtm version --output json reports the version of each machine contract, for integrations to check compatibility.
  • Locked worktrees (git worktree lock) are refused by clean and prune unless --force, and marked in list and tree.
  • wtm ui creates and deletes several worktrees at once, and picks up changes made elsewhere immediately.

Changed

  • wtm env --check exits 18 on drift, ready for CI.
  • wtm checkout and wtm extract ask the same questions as create and always show a recap before acting.
  • wtm env reports a count per file and only the keys left to handle; warnings go to stderr.
  • Invalid flag values and branch names git would reject are refused upfront with exit 2, before anything is created.

Fixed

  • wtm relocate --to rewrites base_path even when no worktree has to move.
  • wtm create and wtm checkout reject an unknown --env-from before creating a half-provisioned worktree.
  • A branch can no longer be its own parent (create b --from b).
  • wtm extract no longer ignores --from and --ff when the target is picked in the wizard.