Skip to content

Release 2.1.181 (2026-08-08)

Documentation

  • correct stale port_forwards relay comment (#2674) (#2675) The comment above _VM_KEYS described port_forwards as relayed via systemd-socket-proxyd. The vergil-vm relay generator switched to a forking socat -T service (vergil-vm #298) to reap idle connections proxyd leaked, so name the relay accurately. Comment-only; vergil-tooling still just passes the PORT_FORWARDS param through.

Features

  • ad-hoc archiving foundations — closedAt, quarter helpers, epic finders (#2678) (#2683) Foundations for continuous ad-hoc epic archiving (epic vergil-project/.github#238), no behavior change yet.

  • Thread closedAt through child enumeration: ChildState.closed_at, fetched via the sub-issue GraphQL query and the reflink search fallback, so archiving can bucket closed children by close-quarter.

  • Add close-quarter helpers: quarter_of() buckets an ISO closedAt into YYYY-Qn (UTC); current_quarter() for the past-archive close rule.
  • Add live/archive ad-hoc epic finders: find_adhoc_epic (non-creating), ensure_adhoc_archive (create-if-missing stamped), list_open_adhoc_archives; refactor ensure_adhoc_epic onto the shared _find_epic_by_title title search.

  • add per-repo and org-wide ad-hoc drain engine (#2679) (#2684) Task 4: DrainPlan, plan_adhoc_drain buckets closed children by close-quarter and lists past archives to close; apply_adhoc_drain ensures each archive, re-parents add-before-remove, and closes past archives; drain_adhoc_repo wraps plan+apply (dry-run-capable). Task 5: github.list_org_repos and drain_adhoc_org iterate every org repo, resolving each repo's own epic home so public (.github-homed) and private (self-homed) ad-hoc epics are both covered; per-repo ValueError/RuntimeError failures are reported and skipped, never aborting the sweep.

  • drain closed child on close via rollup hook (#238) (#2685) rollup() now archives a just-closed child of a LIVE ad-hoc epic into its close-quarter archive (steady-state event path); archive and finite parents are unchanged.

  • add 'archive' subcommand (#2681) (#2686) vrg-adhoc-epic archive drains closed ad-hoc children into per-quarter archives; dry-run by default, --apply to execute, --repo or --all-in (visibility-aware). Part of epic vergil-project/.github#238.

  • drain ad-hoc epics in the daily close sweep (#2682) (#2687) The daily epic-sweep (vrg-epic-audit --close) now also runs the org-wide ad-hoc drain — the backstop for missed close events, the one-time backlog distribution, and past-archive closing — under the same human/VRG_EPIC_SWEEP gate. The read-only report path prints a preview of what the drain would archive. The write-path drain is wrapped in github.target_org(org) since main() has no other org scope. No new cron. Part of epic #238.

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