Release 2.1.174 (2026-08-07)¶
Bug fixes¶
-
require docs / docs check + pin universal reusable-CI set (#2614) docs / docs is emitted unconditionally by the reusable CI (no if: guard) and must be a required PR gate. Add it to desired_ci_gates_ruleset and pin the universal contract set so a future universal check cannot silently become optional.
-
raise on GitHub-orphaned check-run instead of hanging (#2615) Bound the check watch and cross-check a still-pending check against its backing workflow run via gh run view; a non-terminal check over a completed run is a GitHub orphan and now aborts with guidance rather than hanging vrg-finalize-pr forever. App-posted statuses fall back to a timeout error. pr_checks now requests the link field so orphan detection can map a pending check to its Actions run. Refs #2598.
-
sweep orphaned cached dev images for abandoned branches (#2616) vrg-finalize-pr already prunes the finalized branch's cached dev image (clean_branch_images), but a branch that is never finalized — abandoned, or its PR closed out of band — leaves its ~1.3-2G per-branch image behind to accumulate and fill the VM disk (56 stale images filled a 48G Lima VM).
Add a swept safety net mirroring the orphaned-relay-ref sweep: on every finalize run, remove any cached image whose branch no longer exists locally.
- container_cache.prune_orphan_branch_images(live_branches, *, runtime): identifies cached images by their --
-- tag shape (a plain base tag never contains --) and removes those matching no live branch. - git.local_branches(): the keep signal — a cached image is a local artifact of a local branch, so a branch absent locally has no live work.
- Wire _prune_orphan_branch_images into finalize cleanup after the relay-ref sweep; honours --dry-run.
CI Evidence: All gates passed — full audit bundle available. Download →