Coverage was DEFERRED for the 0.69.1 pre-publish dogfood by operator ruling, 2026-09-22. This row is the obligation. The release did not pass coverage and does not claim to.
What was deferred
824853 / 939270 = 87.82% enforced floor COV_FLOOR := 88 (Makefile:508)
Red in Coverage Nightly for 8 consecutive runs back to 2026-09-15 (latest 35672739017, a9502d992), independent of the 0.69.1 batch. dogfood.sh:613 runs gate coverage make coverage-check, gate sets FAILED=1, and VERDICT is GO only when FAILED -eq 0 — so without the deferral this is a hard publish stop via preflight R5.
Two pieces of work, and they are not the same piece
1. The measurement has described a different tree since April
COVERAGE_EXCLUDE_REGEX (Makefile:492) was last touched 2026-02-08. APR-MONO Phase 2c moved realizar to crates/aprender-serve, entrenar to crates/aprender-train, trueno to crates/aprender-compute on 2026-04-06. Nothing updated the patterns (measured by @aprender-d8):
| pattern |
intends to exclude |
actually matches |
realizar/ |
the inference engine |
2 of 2194 .rs in crates/aprender-serve, plus 7 unrelated in aprender-train/src/ecosystem/realizar/ |
entrenar/ |
the training engine |
0 files. The pattern is dead. |
trueno |
the SIMD/GPU crate |
0 of 580 .rs in crates/aprender-compute — but 73 in aprender-zram, plus orchestrate/profile/viz/core |
Wrong in both directions: ~3900 files it means to exclude are measured, 88 it never meant to touch are excluded.
And the denominator contains code the target is configured never to execute. Ten of the top 28 entries in the nightly gap report (#2307) are crates/aprender-compute/src/backends/gpu/device/... at 0.0% — the crate the dead trueno pattern is supposed to remove — while Makefile:628 passes --skip cuda --skip gpu_. That code is 0% by construction, on every host, forever, including hosts with a GPU. It is not a coverage regression; it is a measurement artifact.
2. The real gap, once the measurement is honest
Unknown until (1) is computed. The nominal gap is ~1,700 lines. Repairing the regex to its documented intent changes the denominator and must be done as its own change, with the before/after LH/LF and excluded-file counts recorded, not folded into feature work and not done during a release — it moves a release gate's number in the direction that helps whoever is moving it.
Also owed: the coupling that hides the number
make coverage runs cargo llvm-cov test --workspace --lib, which includes aprender-contracts --lib, which contains lint::tests::lint_passes_on_real_contracts — a test that reads the live contracts/ tree and the on-disk receipts. So the coverage gate is coupled to release-receipt state. During 0.69.1 it died in the instrumented test run on the ladder-green shape violation, never reached its threshold check, never wrote an lcov.info, and reported [FAIL] coverage with no percentage at all — pointing at the wrong subsystem. Nobody would predict that flipping a ladder rung to required: true breaks coverage.
It is invisible for a second reason: dogfood.sh:196 picks the row note by grepping the output for the first line matching error/fail/warning/denied/regression, so a build warning becomes the visible note for the whole row. The same picker mislabelled the contracts row in the same rehearsal.
Done when
Refs #2307, #2333, #3835
🤖 Generated with Claude Code
Coverage was DEFERRED for the 0.69.1 pre-publish dogfood by operator ruling, 2026-09-22. This row is the obligation. The release did not pass coverage and does not claim to.
What was deferred
Red in Coverage Nightly for 8 consecutive runs back to 2026-09-15 (latest 35672739017,
a9502d992), independent of the 0.69.1 batch.dogfood.sh:613runsgate coverage make coverage-check,gatesetsFAILED=1, andVERDICTisGOonly whenFAILED -eq 0— so without the deferral this is a hard publish stop via preflight R5.Two pieces of work, and they are not the same piece
1. The measurement has described a different tree since April
COVERAGE_EXCLUDE_REGEX(Makefile:492) was last touched 2026-02-08. APR-MONO Phase 2c moved realizar tocrates/aprender-serve, entrenar tocrates/aprender-train, trueno tocrates/aprender-computeon 2026-04-06. Nothing updated the patterns (measured by @aprender-d8):realizar/.rsincrates/aprender-serve, plus 7 unrelated inaprender-train/src/ecosystem/realizar/entrenar/trueno.rsincrates/aprender-compute— but 73 inaprender-zram, plus orchestrate/profile/viz/coreWrong in both directions: ~3900 files it means to exclude are measured, 88 it never meant to touch are excluded.
And the denominator contains code the target is configured never to execute. Ten of the top 28 entries in the nightly gap report (#2307) are
crates/aprender-compute/src/backends/gpu/device/...at 0.0% — the crate the deadtruenopattern is supposed to remove — whileMakefile:628passes--skip cuda --skip gpu_. That code is 0% by construction, on every host, forever, including hosts with a GPU. It is not a coverage regression; it is a measurement artifact.2. The real gap, once the measurement is honest
Unknown until (1) is computed. The nominal gap is ~1,700 lines. Repairing the regex to its documented intent changes the denominator and must be done as its own change, with the before/after LH/LF and excluded-file counts recorded, not folded into feature work and not done during a release — it moves a release gate's number in the direction that helps whoever is moving it.
Also owed: the coupling that hides the number
make coveragerunscargo llvm-cov test --workspace --lib, which includesaprender-contracts --lib, which containslint::tests::lint_passes_on_real_contracts— a test that reads the livecontracts/tree and the on-disk receipts. So the coverage gate is coupled to release-receipt state. During 0.69.1 it died in the instrumented test run on theladder-greenshape violation, never reached its threshold check, never wrote anlcov.info, and reported[FAIL] coveragewith no percentage at all — pointing at the wrong subsystem. Nobody would predict that flipping a ladder rung torequired: truebreaks coverage.It is invisible for a second reason:
dogfood.sh:196picks the row note by grepping the output for the first line matching error/fail/warning/denied/regression, so a build warning becomes the visible note for the whole row. The same picker mislabelled thecontractsrow in the same rehearsal.Done when
COVERAGE_EXCLUDE_REGEXrepaired to its documented intent, with before/after LH, LF, percentage and excluded-file count in the commit messageCOV_FLOORreset to the newly measured value as a separate commit, so the floor move is reviewable apart from the measurement fixcoverageremoved fromPREPUBLISH_DEFERRABLEonce it can pass on its meritsRefs #2307, #2333, #3835
🤖 Generated with Claude Code