Description
Loop21 existing first-poll helper lacks request and limiter-wait attribution. A private bounded read-only helper is prerequisite to the authorised measure-first live table; no upstream Cloudflare calls, deploy or throughput change.
Acceptance Criteria
- #1 Fixture-proven helper fences exact build SHA and one observed epoch, waits all49 first polls or90minutes and saves sanitized per-collector request increase, duration/wait sum/count and first-poll duration with explicit gaps.
- #2 No token/IDs/hostnames emitted; only Grafana read queries; honest missing-series, counter-reset, query-gap and same-container-restart limitations.
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 Plan
Reuse inspected first-poll matrix judging and credential convention. Add private bounded helper with explicit metric inputs for M1 identifiers; authentic offline malformed/missing/reset/gap fixtures, no live calls from lane. Root drives observation only after deployment.
Implementation Notes
Loop21 helper attempt1/reviewround1: offline gate2tests green but reviewer adverse CLI proves false epoch fence and demand normalization: API samples omitted from source boundary. Candidate rejected; repair adds five API instruments to boundary/preexisting checks and two authentic regressions.
Loop21: helper attempts2,reviewrounds2; private offline CLI4tests pass, independent delta review closes epoch/API boundary false-pass across all5instruments. CodeRabbit skipped ignored helper, no coverage claimed. No committed helper SHA: source hashba4bc03f6a5763a2eb7afa84c8ff7a2caafb22c165d99cebe64b71273aee7be6; observe839781747a57029435e5b2fa3612213757d19a26a8e8f0d6f5eaf13baef1d7f6. Root-only live measurement uses confirmed metric inputs; ingestion/overlap/restart limitations remain explicit.
Final Summary
Private helper prerequisite complete by authentic offline CLI regression and independent review. No runtime code or live health acceptance claimed; no packaging or signal declarations added.