PR Pipeline — Authorize → Validate → Review → Merge / auth (pull_request) Failing after 12m11s
PR Pipeline — Authorize → Validate → Review → Merge / validate (pull_request) Skipped
PR Pipeline — Authorize → Validate → Review → Merge / lint (pull_request) Skipped
PR Pipeline — Authorize → Validate → Review → Merge / ai-review (pull_request) Skipped
PR Pipeline — Authorize → Validate → Review → Merge / gate (pull_request) Skipped
F1: Set LAST_KIND on unexpected-status path (was unset, causing empty
placeholder in 7 failure lines).
F2: Implement TLS detection — capture curl exit code and map TLS
error codes (35|51|58|59|60|77|83) to kind=tls. Previously
TLS failures were misdiagnosed as timeout.
F3: Header comment now lists all producible kinds:
timeout | refused | tls | unexpected:<code>.
F4: Add 2 test assertions: Grafana failure line exists + kind
is non-empty (proves the gap that shipped in round 2).
Test: 20 passed / 0 failed (bash scripts/test_infra_monitoring.sh)