Repository navigation
Releases: LucasPcq/wtm
Releases · LucasPcq/wtm
Release list
v0.29.2
For scripts and agents: wtm events follows every repository and reports job crashes, wtm env stops printing secrets, wtm prune stays fast on repositories with many branches, and usage errors exit 2.
Added
wtm events --allfollows every repository wtm knows from any directory, ignoring an inheritedGIT_DIR; integrations should pass it instead of running from outside a repository. → Every repository at oncewtm env --addressing ports|namesmoves the main checkout's addresses onto names, or back to ports, on its own. → The main checkoutwtm eventsreports jobs starting, crashing, exiting and stopping (job.*), shared services naming the worktrees that hold them, and its snapshot lists each worktree's jobs; same schemav: 1. → Jobs
Changed
wtm envprints only the values wtm writes, in text and JSON ("redacted": truefor the others), and masks URL passwords, also inenv_ports;--show-valuesprints everything. → A .env is out of datewtm env mainkeeps the addressing its.envspells: reconciling its keys no longer moves it onto named URLs; pass--addressing namesfor that. → The main checkoutwtm prunereads only the branches that have a worktree, on git and on GitHub, so its time no longer grows with the repository's branches; it no longer refreshes the other remote-tracking refs. → Stacked pull requestswtm envasks whether to keep or switch the worktree's isolation (the main checkout: its addressing), keeping it by default; the recap's verbatim action is gone. → Isolation--output jsonwithout--yeson a command that could ask (create,checkout,sync,clean,env…) exits2, a usage error, instead of1: a script branching on1should read2. → Exit codes
Fixed
wtm pruneandwtm tree --with-prsfind a worktree's pull request however many newer ones the repository has, instead of only among the 100 newest. → Stacked pull requestswtm env mainno longer writes[[env]]namespaces into the main checkout (wt_main,acme-main), and puts back the template's value where an earlier run did. → Shared services- Usage errors exit
2instead of1: flags that cannot be combined (clean/prune --keep-data --drop-data,run up --exclusive --parallel,sync --push --no-push…),--allwith a name, andwtm checkout <not a number>, now refused before the config is read. → Exit codes wtm run listin a terminal opens its picker again instead of printingAborted.straight away.wtm env's resolver shows a kept conflict as your value alone, instead of an arrow from your value to itself.wtm prune --dry-run --output jsonreports"dry_run": truewhen there is nothing to prune.
v0.29.1
A fix release for wtm create and run.toml, with a shorter isolation question.
Changed
wtm create <branch>...with several names skips the branches step, as a single name does, and opens the wizard on the source branch.wtm createandwtm checkoutask the isolation question in one line, the detail is in the guide. → Isolation
Fixed
run.toml: a link to a.envthatconfig.tomldoes not configure is ignored with a warning, and no longer stops the other.envvalues from being written. → run.tomlwtm createkeeps the names you are typing when the branch fetch finishes, and a refreshed branch or worktree picker keeps its highlighted row.
v0.29.0
wtm opens up to other tools with a live event stream, and works on several worktrees at once.
Highlights
wtm eventsstreams every worktree change as it happens, as JSON Lines for editors, terminal plugins and agents. → Event streamwtm createandwtm cleantake several worktrees in one run:wtm create feat/a feat/b. → Recipeswtm execruns one command in several worktrees in parallel, each with its own ports:wtm exec --all -- pnpm test. → Recipes
Breaking
wtm create --output jsonandwtm clean --output jsonanswer with an envelope: read.results[0]. → Migrating to 0.29- Exit code
21for any command run outside a git repository (was1). → Migrating to 0.29 - Exit code
19for an interactive cancellation (was0), sowtm create x && wtm go xstops there. → Migrating to 0.29
Added
wtm eventsoutside a repository follows every repository wtm has been used in. → Every repository at onceworktree.provisionedandworktree.deprovisionedevents tell when a worktree's hooks have run, and whether they passed.WTM_CORRELATION_IDtags the events a command publishes, so a tool recognises its own. → Integrationswtm version --output jsonreports the version of each machine contract, for integrations to check compatibility.- Locked worktrees (
git worktree lock) are refused bycleanandpruneunless--force, and marked inlistandtree. wtm uicreates and deletes several worktrees at once, and picks up changes made elsewhere immediately.
Changed
wtm env --checkexits18on drift, ready for CI.wtm checkoutandwtm extractask the same questions ascreateand always show a recap before acting.wtm envreports 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 --torewritesbase_patheven when no worktree has to move.wtm createandwtm checkoutreject an unknown--env-frombefore creating a half-provisioned worktree.- A branch can no longer be its own parent (
create b --from b). wtm extractno longer ignores--fromand--ffwhen the target is picked in the wizard.
v0.28.0
Each worktree runs its own services on its own ports; read the migration guide if you used wtm run, wtm switch or script wtm.
Highlights
- The
runmodule: per-worktree services and tasks grouped in profiles;wtm run initwrites the config,wtm run upstarts the stack. → Jobs and profiles - Per-worktree isolation: shifted ports (
3000→3010) rewritten in.env, and its ownCOMPOSE_PROJECT_NAME;wtm envsettles them. → Isolation - Named URLs per job and worktree (
http://web.feat-login.acme.localhost:11080), on port 80 on macOS withwtm run proxy install. → Addressing
Breaking
wtm switchis removed: usewtm gothenwtm run up. → Migrating to 0.28--non-interactiveis removed: use--yes. → Migrating to 0.28- Hooks run through
/bin/sh -cwith placeholders already quoted: drop your own quotes around{{worktree}}. → Migrating to 0.28 runcommands take the worktree as argument and the job or profile as a flag, and their JSON changes shape: update scripts. → Migrating to 0.28run down --allstays in the current repository,run importreplaces instead of merging, andrun.tomlis validated more strictly. → Migrating to 0.28
Added
- Shared services: one postgres for the repository, one database per worktree, dropped on
clean. → Shared services run upstops before a migration touches data the worktree does not own.wtm run up feat-a feat-bruns several worktrees at once, andwtm uishows and drives the services.
Changed
- Output is more consistent: a
┃bar marks wtm's blocks, hooks sum up in one line, and--quietworks everywhere.
Fixed
- The
wtmshell function returns the command's exit code (open a new shell after upgrading). wtm initno longer installs every workspace package separately.- Rewriting a
.envvalue keeps its quotes, comment and line endings.