Release 2.1.98 (2026-07-01)¶
CI¶
- add on: issues.closed caller for event-driven epic rollup (#2060) Thin caller (epic vergil-project/.github#75, task #2052) that fires on issues.closed and hands off to the reusable ops-epic-rollup workflow in vergil-actions (shipped in 2.1.9/2.1.10, PR #733), passing the APP_CLIENT_ID/APP_PRIVATE_KEY secrets. The reusable workflow mints a scoped app token, installs vergil-tooling, and runs vrg-epic-rollup for the closed issue. This is the vergil-tooling half of event-driven rollup; per repo convention all logic lives in the reusable workflow (cf. ops.yml). With this merged, closing a task issue rolls up its parent epic with no dependence on which command ran.
Features¶
-
descriptive --help for container-test, pr-issue-linkage, repo-profile (#2062) Give the three remaining standalone help-gap tools argparse parsers so --help explains each (purpose, scope, exit codes) instead of the tool silently running. Existing behavior is unchanged: they take no flags — the parser exists for its --help. Because main() now parses argv, no-arg library/test calls pass an explicit [] (validate_common's internal vrg_repo_profile.main([]) and the three tools' test suites), matching the convention. Removes all three from the help-coverage KNOWN_GAPS ratchet; only the wrappers and container-docs remain (task 4). Ref vergil-project/vergil-tooling#2059.
-
emit Closes for managed tasks so they auto-close on merge (#2063) vrg-submit-pr now links a managed task (an issue with an epic-labeled parent) with Closes instead of Ref, so merging its single PR to develop auto-closes the task and the on: issues.closed rollup Action closes the parent epic when the last sibling lands (epic vergil-project/.github#75, T3). Adds _task_linkage (epic-parent lookup) and _resolve_linkage (announce + apply) at all three PR-body build sites; legacy issues with no epic parent keep Ref and stay open for manual close. ALLOWED_LINKAGES gains Closes; report-ready still stores Ref (the upgrade happens at submit-time), so the pr-workflow engine is untouched.
-
add vrg-issue-create + vrg-epic-move/unlink; block raw issue create (#2064)
- feat(epics): add remove_child and resolve_epic_ref primitives
remove_child issues a removeSubIssue GraphQL mutation (the counterpart to add_child) to unlink a task from an epic. resolve_epic_ref resolves an epic ref, accepting a "standing" sentinel that discovers the repo epic+standing-labelled issue (0 or >=2 -> hard error), and validates epic-ness for explicit refs. Foundations for vrg-issue-create and vrg-epic-move/unlink.
- wrapper-specific --help for vrg-git/vrg-gh + vrg-container-docs help (#2065) vrg-git and vrg-gh now intercept a top-level -h/--help and print wrapper-specific help (subcommand allowlist, denied commands, flag deny-list, worktree convention, identity-based credential selection) before forwarding; per-subcommand help still forwards to git/gh. Adds the missing 'if name == "main"' guard to both wrappers so they run as module entrypoints (the coverage gate invokes them via python -m). vrg-container-docs now recognizes -h/--help explicitly, printing its usage with exit 0. Removes the three from the help-coverage KNOWN_GAPS ratchet. Note: #2059 also shrinks KNOWN_GAPS from different entries; whichever merges second reconciles to an empty set, and test_gap_set_matches_reality fails CI if that reconciliation is wrong. Ref vergil-project/vergil-tooling#2061.