Skip to content

Release 2.1.167 (2026-07-26)

Bug fixes

  • demote workflow-file push refusal to a warning + success (#2544) When an agent's branch touches .github/workflows/**, the git push refusal is expected and routine: the agent never pushes a workflow branch, and the human's vrg-submit-pr pushes it at submit time. The old handling framed this as a hard error (non-zero exit, 'Push rejected'/'escalate' wording), which led agents to mistreat a normal case as an exception.

The push handler now returns 0 (success) when the stderr matches the workflow-permission pattern, and prints a warning that tells the agent to proceed as usual and run vrg-pr-workflow report-ready, with a short caution not to strip the workflow files from the commit to force a push. Any other push failure keeps its original non-zero returncode unchanged.

Features

  • add --kind retrospective (PR-workable label + scaffold) (#2541) Add a retrospective kind to vrg-issue-create mirroring the validation/deployment machinery: it stamps a retrospective label and renders a minimal epic-retrospective scaffold. Unlike the operational kinds, retrospective is deliberately excluded from epics._OPERATIONAL_LABELS, so vrg-submit-pr and vrg-pr-workflow report-ready accept it — its finalizing docs PR publishes retrospective.md. Adds the label to the registry and tests covering the label, the scaffold, body-file/blocked-by rejection, and PR-workability. Ref: vergil-project/vergil-tooling#2537

  • add machine-readable epic sub-issue enumeration (--epic) (#2542) Provide a reliable, trivially-parseable listing of an epic's child tasks with their open/closed state, replacing the brittle 'gh issue view --json subIssues --jq' path that failed with 'expected an object but got: array' (issue #2538).

  • ChildState now carries the child's title (defaulted, backward-compatible), fetched in both the native GraphQL sub-issue traversal and the portable Parent: reflink fallback.

  • epic_audit.render_epic_children emits a stable JSON object: {epic: , children: [{repo, number, title, state}, ...]}, sorted deterministically, so callers filter .children[] | select(.state==OPEN) over a proper array of objects.
  • vrg-epic-audit gains a read-only --epic mode that resolves the epic and prints the enumeration, bypassing the drift audit.

Tests cover title propagation (native + reflink), the JSON renderer with mixed open/closed children, and the CLI mode including non-epic and malformed-ref rejection.

  • add read-only release subcommand to the allowlist (#2543) Add release (list/view) to the vrg-gh subcommand allowlist so release facts can be queried directly instead of inferred. Write actions (create/edit/delete/upload/download) stay denied by the action-level deny-by-default. Ref #2539.

CI Evidence: All gates passed — full audit bundle available. Download →