Skip to content

Release 2.0.29 (2026-05-21)

Bug fixes

  • use os.execvp instead of subprocess.call Matches existing pattern in vrg_docker_test.py. Avoids Semgrep subprocess finding. Ref #986.

  • shell-quote workspace path in bash command strings Use shlex.quote on workspace before embedding in bash -lc strings to prevent command injection. Ref #986.

Chores

  • bump version to 2.0.29

Features

  • identity config parser for VM session management Loads ~/.config/vergil/identities.toml, resolves project names to identity VMs and workspace paths. Workspace paths use /projects (the fixed VM mount point). Ref #984.

  • check pre-commit hook content against canonical template

  • vrg-session CLI for launching Claude Code in identity VMs SSH into identity VM, forward ANTHROPIC_API_KEY, cd to workspace, launch claude. Includes VM auto-start via limactl. Ref #986.

Refactoring

  • simplify vrg-session to use limactl native flags Remove API key forwarding, bash/env/shell string construction, and manual VM lifecycle management. Use limactl native --workdir and --start flags instead. Add passthrough of Claude CLI arguments via -- separator. Ref #986