Skip to content

Release 2.0.24 (2026-05-20)

Bug fixes

  • correct vergil.toml example in VM repository plan The example used invalid config values: bash instead of shell for primary-language, publish-packages instead of release/docs, missing branching-model, empty ci.versions, and vergil-tooling instead of vergil as the dependency key

Chores

  • bump version to 2.0.24

Documentation

  • identity-based VM isolation design spec Comparative evaluation of corral (Lima VM isolation) with Vergil's wrapper-based security model. Proposes identity-scoped VMs as the isolation boundary, combining corral's credential containment and egress filtering with Vergil's workflow enforcement tooling.

  • fix GitHub account references to use wphillipmoore GitHub identity is wphillipmoore/wphillipmoore-vergil, not pmoore/pmoore-vergil. pmoore is the local macOS username only.

  • expand credential provisioning to extensible identity model Credential section now captures the design principle: every external interaction should appear under the agent's identity, not the human's. Adds extensibility for AWS, container registries, and future services. Notes ANTHROPIC_API_KEY as the sole shared credential exception.

  • VM image management design spec (vergil-vm) Three-layer tooling architecture with CI-parity decision boundary for tooling placement. Defines vergil-vm repository structure, build pipeline, distribution model, containerd/nerdctl runtime, and VM customization policy. Companion to the identity VM isolation design (#892).

  • refine decision boundary and shell customization policy Decision boundary expanded from single CI-parity test to two-question flowchart: (1) does the agent need it, (2) does CI also need it. Adds no-duplication rule for tools in both layers. Shell customization acknowledged as legitimate demand but deferred as open design question due to risk of breaking vrg-* tooling.

  • pre-built distribution and dynamic tooling management Distribution updated to require pre-built images (OCI artifacts on GHCR preferred, GitHub Releases as fallback). Local builds are for contributors only, not end users. Vergil-tooling is no longer baked into the VM image; instead it is installed and updated dynamically at startup, mirroring the Docker cache approach. Adds vrg-vm-update concept for mid-cycle tooling updates.

  • implementation plan for vergil-vm repository Plan 1 of 6 for the identity VM isolation system. Covers repository scaffold, Lima VM template, provisioning scripts, test suite, build script, and CI workflow.

  • expand prerequisites with manual repo bootstrap steps Incorporates the manual bootstrap sequence from #807: GitHub repo creation, initial commit (bypassing vrg-commit for no-HEAD case), branch structure, default branch config, GitHub repo config, and hooks setup. Task 1 updated to start from the bootstrapped state.

  • set initial version to 2.1.0 Aligns vergil-vm with the planned v2.1 coordinated release across all Vergil repos

  • annotate wrapper restrictions and CLAUDE.md audit compliance Annotate prereq commands with wrapper restriction info and document consumer template requirement for CLAUDE.md audit.

  • design spec for eliminating hardcoded mount in vrg-docker-docs

  • move design spec to docs/specs/
  • implementation plan for build_docker_args refactor
  • implementation plans 2-6 for vergil-vm identity VM system Plan 2: Session Management (vrg-session, identities.toml), Plan 3: Credential Provisioning (GitHub PAT, SSH, GHCR), Plan 4: Egress Filtering (HAProxy, pf, iptables), Plan 5: vergil-tooling Adaptations (nerdctl, wrapper simplification), Plan 6: Distribution + Updates (GitHub Releases, vrg-vm-update)

  • defer Plan 4 (egress filtering) to v2.2 Egress filtering is the only heavy-complexity plan. The VM provides filesystem and credential isolation without it. Deferred to v2.2 milestone (#901) across all six plan documents.

  • multi-platform host support design spec

  • clarify documentation target files in platform support spec
  • move platform support spec to docs/specs/
  • apply pushback review: reframe #902 as dependency, phase documentation, clarify testing

Features

  • replace hand-built docker args with build_docker_args in vrg-docker-docs

Refactoring

  • remove flat-file audit logging from vrg-git and vrg-gh Drop _log_path(), _log(), and all invocation logging from both wrappers. Remove unused imports (datetime, json, Path) and corresponding tests. Update CLAUDE.md shell command policy to reflect the change.

The flat-file JSON-lines logs at ~/.local/share/vergil/ grew without bound and duplicated information already available in git history and shell output. Removing them simplifies the platform abstraction story for multi-platform host support (#909).

Styling

  • apply ruff formatting

Testing

  • add tests for build_docker_args delegation in vrg-docker-docs
  • update existing tests to mock build_docker_args, remove sibling mount test