Description
Standalone health checks report origin status with RTT, TTFB, TCP and TLS timings and a failure reason in healthCheckEventsAdaptiveGroups.
Acceptance Criteria
- #1 Health check event counts by status and failure reason, and average RTT/TTFB/TCP/TLS timings per origin, are exported
- #2 A new dataset or endpoint has a live-verified entry in doc-0003 and an API drift canary probe
- #3 Every new signal and attribute is declared in internal/semconv, listed in docs/signals.md, and has a panel in grafana/build_dashboard.py
Definition of Done
- #1 just check (fmt-check, lint, vet, test, tidy-check, build, vuln)
- #2 just ci before a change that touches the Dockerfile, goreleaser or the image (adds snapshot + image)
- #3 Every new signal or attribute name declared in internal/semconv and listed in docs/signals.md
Implementation Notes
Loop14 A9v2 extension is active in an isolated lane. Shared healthcheck declarations/config and contract are landed at 9705290; Free-disabled/Pro-enabled query entitlement and exact selections passed the integrated live canary, ordinary CI and doc-0003 section 15. I1 real Register/HTTP behavior proof passed but stopped on one De Morgan lint finding; bounded I2 repair is commissioned. AC1 remains unchecked until full gate, fresh review and landing. Dashboard/live AC3 remains unshipped; no further loop release or deployment is authorized.
Fresh independent review rejected candidate 5489f91: raw null count/timing datasets normalize to empty and can commit an incomplete observation; count validation occurs after float64 decoding and can accept values outside uint64 range or fractions rounded to integers. Root commissioned RR1 in owned healthcheck files using the existing raw batch boundary and source-number validation before telemetry conversion. Required Register/scheduler/real HTTP controls cover null count/timing/both versus genuine empty, malformed range/fraction counts versus true zero, and no emissions/cursor advancement on failure. The three CodeRabbit minors remain independently nonblocking under frozen 128-character fallback, per-zone atomic failure/retention, and unchanged scheduler gap semantics.
Repaired candidate 89f4991 received fresh independent PASS after real HTTP raw-null/count-range red-then-green proof. Root integration a5954e7 passed exact-SHA full gate and both privacy scans, with only documented fixture-IP matches, and was pushed. Latest containing-SHA CI watcher owns final source acceptance; no cancelled run is counted as pass. Counts are parsed as uint64 before float64 telemetry conversion; very large valid values can still round. Source implementation AC1 is locally proven and landed; AC3 dashboard/live remains unshipped beyond exhausted release/deploy quota.
Loop16 RECON-M1 checked source criteria 3 against landed tests at ced4edfbfb66f1b9ee45037bdb425b69820a8ebe. Evidence: codex/evidence-loop16/RECON-return.txt. No new live or browser observation is claimed.
Final Summary
Loop16 reconciled all acceptance criteria on the landed source and cited test evidence.