Description
Default-off T2 source iterating gcom.fetch_inventory; owns its enable flag in config.py. Isolated ReadOnlyClient with its own deadline slice at a stated number of seconds and position in run_t2; budget exhaustion yields partial(deadline). Metrics per-label distinct counts from the proven cardinality/label_names route (one call per stack, head-only window recorded). Value reads per signal capped like label_risk Bounds.keys with deterministic priority (name-pattern hits first, then cardinality order). Loki and Tempo via label-values routes; Pyroscope only via label_risk.profile_read under amendment (a). D-LBL1 name minimisation; only non-PII shape classes (D-LBL9); bounded register rows per stack and signal; coverage state complete|partial|unavailable with reason enum. label_risk is unchanged.
Acceptance Criteria
- #1 Contract tests run over recorded response shapes for every signal
- #2 A disabled source makes zero calls, and a test proves it
- #3 A canary test sends unique sentinel values through a fake transport and asserts their absence from the scan envelope, every view, Loki events, metrics, stdout, –out and error strings
- #4 INPUT_OWNER gains label_inventory=t2, each input records its window (head or 24h), and the limited-run guard still refuses publication
Definition of Done
- #1 just test
- #2 just tf-validate
- #3 just check-identifiers and just no-em-dashes both return clean
Implementation Plan
Implement already-proven default-off T2 reads into frozen serialized seam; deterministic bounded sampling/minimization and private diagnostics fencing; fail-first disabled/privacy/shape/limited-run checks, CodeRabbit, then candidate for guarded review.
Implementation Notes
loop14:4 implementation attempts exhausted,3 guarded verdict rounds (two framing failures, finalPASS), no ceiling reset. Exact realCLI short/duplicate Content-Length fail-first controls fixed with unavailable/withheld input and no identity pass;130 narrow tests/6140 subtests and final CodeRabbit0 findings. Stable composede6d8717 gate2302pass/2skips and CI37572599149 all required leaves green. Root one-key unavailable fixture integration prerequisite preserved all existing bytes/assertions. Live label source proof remains separate dev task, not claimed here.