ci / vet-and-test (pull_request) Successful in 40s
Why: The consecutive-failure counter never fired in the live suite (0 reminders despite 20 failures) because real failures interleave with successes - each success reset the streak. The pattern to catch is "spinning overall", not "N in a row". Evidence: go test ./... green; the anchor test now covers scattered failures (3 in the last 6 outcomes escalates, 2 does not, once per run); the next live run must show the reminder actually appearing in the transcript. Impact: recentOutcomes ring (last 6) replaces consecToolFailures; the zero-hit search trigger keeps its own threshold (2); message wording matches the window semantics. Refs: Dev task feature/agent-e4-escalation-ledger (second fix-up).