Task · CFO-0048.03

Digital Experience Monitoring test results

Description

DEX HTTP and traceroute tests measure the user-to-app path. Their results (fetch time, round-trip time, hops, packet loss, availability) are not exported.

Acceptance Criteria

Definition of Done

Implementation Plan

Root official DEX docs and current successful empty overview canary are recorded in doc-0003. Add disabled-by-default dex.tests snapshot collector, five-minute poll, bounded current one-hour result window (configurable one hour to seven days), complete page/per_page fifty test enumeration with a documented maximum test count. Fetch each test independently via the existing shared retrying client. Publish only complete valid results per test, atomically replace the metric-family snapshots for the successful subset, and return a safe joined collection error for failed tests so successful data is not suppressed. All failed requests preserve original expiry without refresh; genuine empty catalog clears snapshots. No window checkpoint, persistent ledger or new shared interface. Gauges use documented per-test average fetch/RTT/hops/percentage fields; units and bounded test labels frozen in the root brief before code. Missing optional values are omitted, not zero. API drift and permissions documentation in own scope; dashboard later; no populated-row/live-runtime claim.

Loop16 E48C fixture-only disabled DEX results: documented overview and per-test HTTP/traceroute endpoints; test name and kind under cap, never test-ID label. Gauge units remain documented milliseconds, percent and hops. Remainder is explicitly mean of per-test provider averages per kind, not pooled/device-weighted average. Production paths are all registered; only overview is live-probed, per-test paths have explicit documented-only reason and offline coverage, not a claimed live pass. Root authorises this additive contract representation to fulfil the commissioned list-only live canary without omitting production paths or weakening existing entries. New representation must reject invalid/missing reason and include a failing skip-boundary test. No dependency or existing test weakening.

Loop17 CON uses current successful live empty catalog envelope and existing documented-only detail templates. Preserve explicit unobserved fields; fresh canary and root doc-0003 update gate AC3.

Implementation Notes

Loop15 E48C I1 is parked, not exhausted. Uncommitted/unstaged candidate preserved at base 0b80718c1be4b2ca9d22258cb23f04567ca0bf92; content SHA256 d75cfc8cd3597081856cde5c44882be64fa0d8d7985d1d06ee18d7159aeb944f. Narrow DEX/config/semconv tests passed but API coverage failed on the per-test REST template missing from the executable contract. Final gate and CodeRabbit not run; no leaf or source acceptance. Worker correctly stopped rather than obscure the path, weaken coverage or probe invented test IDs. The frozen overview-only probe seam does not currently cover doc-derived per-test endpoints; source needs an authorized follow-up contract decision. Separate DRIFT3 major: root mistakenly admitted a test-ID metric attribute contrary to the packet identifier-label prohibition. This authorization is withdrawn, not retroactively exempted. Future correction keeps IDs internal to requests, uses bounded test name/kind labels, and rejects ambiguous distinct-ID name/kind collisions before result publication. The stopped candidate still contains the prohibited design and must not be accepted or published. Corrective steer missed the already terminal run; no claim of delivery. I1 consumed; implementation3 remain, review-repair0 used, infrastructure0. No further implementation commissioned in this run while the shared contract decision remains ungranted.

Loop16 fresh REV PASS9b3f76499d01a5b55e7696313e96169c10e967c4, source fixture proof for units, averages, retry/isolation, snapshot lifecycle and capped test names without test-ID labels. Source pushed65089d58a8068ea4fb7f3f22f80512489a617fc1; integrated gate and list-only canary matched, R0 run37052805358 success. Detail templates explicitly documented-only/unprobed, AC3 partial not checked; dashboardAC4 remains open. This loop used I2 and I3 implementation cycles, zero review-repairs/infra; one implementation and three review-repairs remain. No populated live detail or least-privilege proof.

Loop16 source panels AC4 landed ca207018dec85ab25e8a51ab32844e8e4bd26bc8, fresh REV-DASH3-R1 PASS9508d0fd846911662f072ee3f504e2c7ae18738e. Five actual Prometheus-translated provider-average gauges, per-test remainder means, independent tuples/real zero/absence verified with Promtool; no percentile/device-weighted/fleet availability claim. Existing content preserved, integrated gate/scans passed. AC3 detail paths remain explicitly documented-only/unprobed; no populated live or browser proof. Exact CI/SYNC pending.

Loop17 existing contract at597f2bfe3fedf08c5f9a5594fbe3f6a7e0aa48da independently REV-CON PASS, complete exact-source gate green. Current live DEX overview200 successful empty tests envelope; unchanged actual full canary matched at12:13UTC, doc-0003 records entry and explicit documented shape, no live rows observed. HTTP/traceroute details documented-only/unprobed; no populated detail, deployed measurement or browser claim. No source or contract churn.

View the source file on GitHub