Skip to content

Third consecutive metrics blackout: collector has never emitted a row; coverage denominator counts retro bookkeeping #124

Open

Description

@baderdean

Retro report — window 2026-10-25T23:38:20Z → 2026-10-28T02:24:42Z

Window covered

  • Digest source: boucle/metrics, fetched: yes.
  • Metrics rows in window: 0. Metrics rows on branch: 0. Last metrics row: never.
  • Issue rows considered: 0 (bounded to 40).
  • Closed issues in the window: 1 — "Landing page boucle.dev — afro-futuriste, Boucle d'or, 'construire un produit est un jeu d'enfant' #1 Second consecutive metrics blackout: retro blind, collector never produced a row".
  • metrics_coverage: 0/1. The digest carries the verbatim warning: "WARNING: metrics blackout — 0 metrics rows for 1 closed issue(s) in window; the retro evidence layer is missing (collector unwired, or its rows dropped before the window query)."

Counts

  • Per-issue rows: none (metrics blackout — the empty aggregates are absence of evidence, not evidence of no activity).
  • Outcomes: unknown (no rows). Verdicts: none. Escalations: none. Tokens/cost: null (no run reported a number).
  • Upstream posts this window: 1 enrichment (#170), 1 new proposal (see below).

Findings

  1. Third consecutive blackout, and the collector has never produced a row. The window's only closed issue is itself a blackout report, and the digest states last metrics row: never. This is no longer a transient outage: the publish path has never delivered a row on this consumer. The actionable question is no longer "why did the collector stop" but "why has it never started" — wiring, schedule, or permissions. Evidence for upstream #170 (collector liveness / persist the publish outcome): a consumer whose collector has never emitted a single row still shows a healthy-looking loop (issues close, retros run), so the failure is invisible to every signal except the retro's own coverage line. Enriched #170 with this case.
  2. The blackout is now self-referential: the loop's only closed issue is the blackout. The retro's coverage denominator (1) is the retro's own bookkeeping issue. Even a perfectly wired collector could not have produced a row for it (no agent work ran), so the digest's 0/1 coverage line can never reach 1/1 while blackout reports are the only traffic. This is a digest defect, not a collector defect: the denominator should count issues that ran agent work, or the digest should annotate bookkeeping-only issues. Filed as a new upstream proposal (Size: S).
  3. Lesson titles confirm the wiring theme is known and still open. Recent lessons Quiet retro window 2026-10-17 20:48-21:08Z: no activity, no findings #117 ("A documented switch nobody wired is worse than no switch"), Second consecutive metrics blackout: collector never produced a row (up-to-date path never converges it) #118 ("A GitHub cron asks; GitHub decides"), Retro window 2026-10-19/21: metrics blackout (collector never published), loop liveness unverifiable #120 ("Subscribe to the events you route, not the events that exist") and chore(deps): bump astro from 7.2.1 to 7.3.3 #123 ("A measurement that omits what it could not measure reads as a measurement of zero") all describe exactly this failure family. The class is documented; the instance persists. No new lesson is warranted — the admission test fails (already covered, and the fix is wiring, not documentation).

What this window could NOT see

With zero metrics rows: outcomes (terminal done vs human), iterations taken, verdicts, escalations, tokens, cost, and need-vs-delivered for every issue that closed in the window. Per the digest legend, the absence is reported as a gap, never read as a zero.

Anonymisation note

All consumer identifiers in the digest were already replaced by retro_scrub ([consumer], [host], [user], [email], boucle/N-). This report quotes only the digest and generic shapes ("a consumer repo"); no project name, host, username, path, e-mail or IID appears. Upstream posts were made through bin/retro-post, which scrubs before posting.

Upstream posts made

  • Enriched #170 (metrics collector liveness) with the never-emitted-row consumer case.
  • Created a new proposal: metrics_coverage denominator counts retro bookkeeping issues (Size: S).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions