Skip to content

v0.1.0

Choose a tag to compare

@release-please-lullabot release-please-lullabot released this 12 Jul 19:12
Immutable release. Only release title and notes can be modified.

0.1.0 (2026-07-12)

Features

  • add direnv support and document per-directory GitHub tokens (bf294c4)
  • add new-vm.sh to spin up Lima VMs in one command (30676d3)
  • add optional Claude Code webhook notification hooks (#13) (728366b)
  • add project role to clone an initial repo on provision (62c5789)
  • automatically recreate base images (d57f72f)
  • base: accept COLORTERM over SSH for truecolor in the VM (a8f39a8)
  • base: install ncurses-term for non-xterm terminfo (2d1bb1b)
  • claude-code: default the in-VM Claude Code theme to auto (960b8b1)
  • claude-code: enable remote control at startup by default (1267958)
  • configure direnv to load .env files and update docs (d82bc02)
  • drop SSH authorized_keys URL support (2b0f40b)
  • dynamically resolve user home directory instead of assuming /home/<username> (#5) (fd7d4e2)
  • genericize GitHub org setup with github-org-setup script (#11) (86bdcf8)
  • install gh CLI and configure git HTTPS auth via PAT (#4) (cb0f708)
  • install jq and yq by default (#9) (763ae03)
  • install Node.js from NodeSource instead of Debian repositories (#10) (cc48f89)
  • make Docker registry proxy setup optional (off by default) (#12) (0b7e675)
  • make primary system user configurable via user_name variable (#2) (c59174b)
  • mark onboarding as completed (4968973)
  • new-vm: build a base image once and clone each VM from it (29bc838)
  • new-vm: guard against reusing an existing instance's baked config (610ae4d)
  • new-vm: prompt for disk size, registry proxy, and initial clone (167ac32)
  • new-vm: provision once instead of on every boot (51e6332)
  • new-vm: surface provisioning failures instead of failing silently (a16bed7)
  • playbook: split provisioning into base/finalize phases (0122371)
  • provision CLAUDE_CODE_OAUTH_TOKEN for headless auth (#15) (7824bda)
  • registry: move data dir to sandbar with a migrate-then-cleanup (3658fa5)
  • release: GoReleaser + Homebrew tap, and migrate CI to the sand binary (5ce56e1)
  • remove Claude Code OAuth token support (efe2f69)
  • remove GitHub organization support (3e6f37d)
  • remove webhook notification support (c2f2df4)
  • samba: tune smb.conf for macOS clients via vfs_fruit (#14) (6444a26)
  • sand: drop no-op -y/-yes flags, document required flags (a7e03da)
  • sand: embed the playbook and add a headless sand create (8354431)
  • sand: make --git-name/--git-email optional, fall back to host git config (86019cb)
  • secrets: apply on set + source env from profile and bashrc (9344649)
  • secrets: edit/delete in TUI, rm auto-applies, role purges on removal (8d20a0a)
  • secrets: host secrets store + VM rendering role (plan-11 phase 1) (8b11d10)
  • secrets: sand secret CLI + provisioning integration (plan-11 phase 2) (a01a627)
  • secrets: sand secret sync for live re-render (plan-11 phase 3) (4f9293b)
  • secrets: TUI secrets panel + gated e2e tests (plan-11 phase 4) (06ce9d0)
  • skip the Samba role in the Lima flow (df22523)
  • strikethroo: right-size per-task model and effort tiers (6c7b060)
  • tui: add Bubble Tea CRUD UI and claude-vm entry point (a993f13)
  • tui: add file-transfer foundations (Copy, DirLister, dest prompt) (5defe95)
  • tui: add limactl client and Runner abstraction (cc813c2)
  • tui: add name search and disk-usage helper (plan 05 phase 1) (1055db5)
  • tui: add Reset orchestration with optional preserve (phase 2) (d868651)
  • tui: add reusable file browser + gated copy e2e test (b471f45)
  • tui: cap default memory at half host RAM and warn on disk overflow (6c1c910)
  • tui: create-form UX — field nav, info, GitHub labels; mark base image (90a453c)
  • tui: directory autocomplete for the transfer destination (9862e2c)
  • tui: guard destructive ops against non-managed VMs (2d1e327)
  • tui: per-VM sizing + staging helpers for VM reset (phase 1) (003bc09)
  • tui: port base/clone/finalize orchestration to Go (23f85b8)
  • tui: relabel Disk as Max Disk and add real Disk Used column (plan 05 phase 2) (ccebec5)
  • tui: reset flow — pre-filled form, preserve toggles (phase 3) (b7c71b4)
  • tui: scaffold Go module and VM domain model (e142765)
  • tui: shell into a VM (S) and drop the unused IP field (d940f01)
  • tui: show a spinner while VM lifecycle actions run (1b10668)
  • tui: show memory/disk as human sizes (GiB) in list and detail (a13d535)
  • tui: stream VM lifecycle steps and cancel builds with ctrl+c (2d067d7)
  • tui: wire Upload/Download actions and the transfer flow (b6975b7)

Bug Fixes

  • add ~/.local/bin to PATH in ~/.bashrc after Claude Code install (#7) (cc8b241)
  • add acl package, sort (6a65a7f)
  • any-version is now any in cloudflare repo (94a4766)
  • ci: drop removed --yes flag from lima-e2e sand create (2b4d8c3)
  • deps: update module github.com/charmbracelet/x/ansi to v0.11.7 (#13) (e86c738)
  • deps: update module golang.org/x/sys to v0.47.0 (#16) (ebb425e)
  • install gh CLI before configuring GitHub PAT (#6) (b97388c)
  • install: honor --ref in the curl | bash path (b6fb10d)
  • new-vm: clear error when a flag is missing its value (1d10815)
  • new-vm: correct ordering of the final summary banner (3794bb2)
  • new-vm: don't break apt keyrings with a global umask (6a4ca82)
  • new-vm: make --recreate discoverable over curl|bash (08acb67)
  • new-vm: restart the VM after first provision (a884224)
  • new-vm: simplify language (fd78c73)
  • new-vm: stop final-message backticks running as commands (49f52f5)
  • new-vm: validate cpus is a positive integer (ceeda8c)
  • prevent tmux from overriding SSH_AUTH_SOCK symlink on attach (#1) (39af6be)
  • project: strip trailing slash from clone URL before deriving paths (c7bad77)
  • provision: sync only the playbook fileset into the guest (8f6c7ee)
  • replace PII and internal hostnames with placeholders (0aba978)
  • sand: default headless create's user to the host username (9cafced)
  • secrets: source global env from ~/.profile; capture guest stdout cleanly (1e88166)
  • tui: clear pending selection on back-out; keep browser navigable on load error (3d6d2ee)
  • tui: clear the browser filter on navigate and select (92a3215)
  • tui: compact the file browser and return to the VM after a transfer (178f604)
  • tui: don't merge limactl stderr into parsed stdout (e17647e)
  • tui: don't reset the dest autocomplete selection on cursor blink (25235b1)
  • tui: let backspace edit form fields instead of navigating back (6058f0c)
  • tui: nest a directory transfer under the destination (49afb8d)
  • tui: read the guest home from cloud-config.yaml, not /home/<user> (e1bbe5b)
  • tui: resolve the guest home from ssh.config, not the host username (a252fad)
  • tui: seed create-form defaults and default blank fields like new-vm.sh (f2a308e)
  • tui: surface committed search filter and move disk stat off the Update loop (299f787)
  • tui: wrap streamed provision output to the viewport width (8c0f2f3)
  • user: restore optional SSH authorized_keys for non-Lima users (d81b59e)
  • wrong shell for claude code install (c5f83c5)