Skip to content

Release 2.1.114 (2026-07-04)

Features

  • add invariant-enforcement checks (report-only) (#2164)
  • feat(epic-audit): add invariant-enforcement checks (report-only) (#2127)

Phase 1 (epic #85). vrg-epic-audit gains two report-only invariant checks alongside drift: epic_outside_dotgithub flags open epic-labelled issues living outside /.github (invariant 1); stray_dotgithub_issue flags open .github issues that are neither an epic, intake (triage/idea/research), nor a managed task linked under an epic (invariant 2) — unresolvable parents are reported (fail-loud). render() grows an 'Invariant violations' section shown only when non-empty; the checks run on the read-only path only (invariant violations are never auto-closed). Guards the model against the drift that produced the old mixed .github list.

  • test(epic-audit): cover invariant-check defensive paths for 100% (#2127)

PR CI enforces --cov-fail-under=100. Drop the per-item isinstance(dict) guards in epic_outside_dotgithub/stray_dotgithub_issue (the list-level guard suffices, matching task_drift/_reflink_child_states), and add single-sided render tests so the 'if epics_outside' and 'if stray' False branches are exercised. epic_audit.py back to 100% (statements + branches).