Release 2.0.54 (2026-05-25)¶
Documentation¶
-
stateless VM lifecycle design spec Supersedes distribution and dynamic tooling management sections of #894. VMs are dataless and stateless — all persistent data lives on the host via selective mounts (projects/, skills/) and file copies (CLAUDE.md, settings.json). vergil-tooling is the sole in-place-updatable component; everything else updates via VM rebuild on a 3-day staleness threshold. Ref #907
-
stateless VM lifecycle implementation plan Seven-task TDD implementation plan for issue #907: vm_age_days, copy_claude_config, try_update_tooling, staleness enforcement in start and session, rebuild command, and test updates.
Features¶
-
vm_age_days reads VM creation time from Lima metadata Returns fractional days since VM creation using the Lima instance directory birth time. Falls back to mtime on platforms without st_birthtime.
-
copy_claude_config copies CLAUDE.md and settings.json into VM One-way host-to-VM copy for files that cannot be mounted (Lima mounts directories only).
-
try_update_tooling wraps update with graceful fallback Returns False and warns on failure instead of aborting. Used by start and session to avoid blocking on network errors.
-
staleness enforcement and auto-update in vrg-vm start Refuses to start VMs older than 3 days unless --allow-stale-vm is passed. Auto-updates vergil-tooling and copies Claude config on start.
-
staleness enforcement in vrg-vm session Session refuses to connect to VMs older than 3 days unless --allow-stale-vm is passed. Also copies Claude config and uses graceful tooling update.
-
vrg-vm rebuild command for stateless VM lifecycle Destroys and recreates the VM in one step. Safe because VMs are stateless — all persistent data lives on host mounts. Also fixes mypy st_birthtime error and adds missing coverage tests.