v0.4.0
Immutable
release. Only release title and notes can be modified.
0.4.0 (2026-07-14)
⚠ BREAKING CHANGES
- shell: S now lands you in tmux (prefix C-a), not a bare shell. Closing the terminal detaches instead of ending the session. There is no --no-tmux escape hatch, by decision.
Features
- lima: add the guest tmux attach-command builder (78a8eef)
- provision: add per-phase timings and enable ansible task profiling (6bd73dd)
- provision: base tool-set, 30-day self-refresh, and a host apt cache (b447afa)
- provision: bootstrap ansible-core and stamp the base by playbook content (9e86b4f)
- provision: one apt transaction, and in-place base re-apply under the lock (0ad221f)
- shell: attach both entrypoints to the guest's persistent tmux session (e09c365)
- toolset: default the tool-set to what the base was actually built with (36fda44)
- toolset: make Claude Code optional, like the other dev tooling (67c7baf)
- ui,provision,ci: tool-set toggles, conditional bounce, and a CI reuse path (79998f5)
- ui: enter does the obvious thing for the tile it is on (c6370a8)
- ui: frame the messages strip in a titled "Messages" box (e2a5d84)
- ui: move the Messages box below the tiles (8cb6f2c)
- ui: the Messages box shows up to 10 lines (4897cd2)
Bug Fixes
- lima: drop ssh debug chatter from copy output (e5edf2e)
- provision,ui,ci: nine defects from the high-effort review of this branch (926c8d9)
- provision: a cancelled create cleans up the VM it half-created (184e33e)
- provision: install python3-passlib, or the user role can't hash a password (75be96f)
- provision: pass --no-install-recommends, or ansible-core drags the bundle back (00e5e52)
- shell:
sand shellworks while another VM is being created (a45e00a) - ui: a cancelled build whose VM was cleaned up leaves no tile (4b7483f)
- ui: line the Messages box up with the tiles (9b1bf0f)
- ui: stop printing every message twice on the board (e30c5b8)
- ui: the log box lost its right-hand border to a clip (6efae08)