Description
Loop20 live acceptance needs build identity, all49 first completed polls and final twice-interval ages. Existing sustained-hour helper lacks those preconditions and must remain unchanged. Add only private local proof tooling, with no exporter behavior change or live mutation.
Acceptance Criteria
- #1 Helper produces effective default interval map for candidate and final strict age below twice interval check; unchanged live-hour command remains usable for65minute proof.
- #2 Fixture exercise proves wrong commit, multiple instances, missing collector and stale age are rejected; helper syntax validates.
- #3 Read-only helper fences candidate build commit to one observed exporter instance; identifies first completed poll source samples for all49; detects observed counter resets or identity/build changes and explicitly discloses that hostname identity cannot exclude every unobserved same-container restart.
Implementation Plan
Inspect actual metric labels/source defaults, write private bounded Grafana proof CLI under authorized loop directory, validate with synthetic process-edge fixtures and return exact commands without live queries.
Implementation Notes
Loop20 helper source-only escalation verified: instance identity is hostname, no process-start gauge. Root corrects stronger-than-goal helper seam to observational proof matching frozen unchanged hour counter contract, with explicit residual limit. No exporter change authorized.
Loop20 private helper attempts3 (initial fixture candidate, reviewed startup/identity repair, mechanical live-identifier repair); two review-repair rounds. Fixtures reproduce delayed build/startup, reject prebuild conflicts/resets and ambiguity; independent review accepts repaired source. Live introspection identified cf2otel_build_info_ratio; actual fetch-boundary fixture failed before correction and passes after. CodeRabbit cannot review ignored private helpers (3 files uncovered); independent local review used. Actual Grafana helper execution remains pending deployment, hostname cannot exclude every unobserved same-container restart. Tracker closure waits landing/composed gate.
Loop20: helper implementation attempts4 and review-repairrounds3; final source/CLI reviewed pass and runtime source matrices exercised. Last correction handles unique firstsuccess within1second instrument timestamp skew, with sum/count exact; real firstpoll receipt then captured48 durations without ambiguity. All49 cannot complete because deployed polling remains slow; no hour helper pass claimed. Ignored private Python files have no CodeRabbit service coverage; independent source/fixture reviewers used. Task deliverable complete as observational tool, not acceptance of parent delivery.
Final Summary
Private bounded observational build/firstpoll/hour/finalage helpers implemented and independently reviewed; red/green CLI fixtures catch startup association, identity/reset, wrong metric and1ms source skew. Actual Grafana source matrices exercised; live parent fails polling performance, not helper fixture contract. No production changes in this child.