diff --git a/.claude/skills/upgrade-all/SKILL.md b/.claude/skills/upgrade-all/SKILL.md index c79e178..02522c6 100644 --- a/.claude/skills/upgrade-all/SKILL.md +++ b/.claude/skills/upgrade-all/SKILL.md @@ -77,8 +77,9 @@ if [ "${VIPFAIL:-0}" -gt 0 ]; then ssh cc-ci 'docker node ls && docker service ls --format "{{.Replicas}}" | grep -c "/"' # sanity: node Ready, infra back fi ``` -(The durable fix — enlarging the `proxy` subnet to a /16 so it never exhausts — is tracked in -`plan-proxy-vip-exhaustion-fix.md`; this guard is the per-run safety net until that lands.) +(The durable fix — enlarging the `proxy` subnet to a /16 — landed 2026-06-13 (phase pvfix). This guard +remains as belt-and-suspenders even after the /16 fix: it fires on the exact error signature and restarts +docker to reclaim leaked endpoints if VIP exhaustion ever recurs despite the larger subnet.) ## 1. Build the candidate list Enrolled recipes = the cc-ci `tests//` dirs (same set `ci-test-review` sweeps):