store.sh quarantine-audit on a clean sweep prints an OK message that names only ONE unprovable class: "rows without surviving dead-letter evidence are not provable and were not judged."
There is a second unprovable class the message does not name: a consumed-hashes row whose dead-letter evidence survives but carries an empty observed_hash cannot be convicted either, because conviction requires a match on all four of (kind, id, observed_seq, observed_hash).
An operator reading the current OK concludes no evidence exists, when in fact evidence exists and is unusable. This is a wording fix, not a logic fix — the audit's conviction predicate is correct and must not change.
Real specimen
Dead-letter seq 13, kind bench, id malformed-locator-test: its locator extracts observed_hash: "", and its own note says "deliberately non-conformant."
Fix constraints
Wording only: the clean-sweep message must name both residual classes (evidence pruned → unprovable; evidence surviving with empty observed_hash → unprovable).
Test fixture MUST be taken from a live lane's own files, not hand-built from the schema or from a description: consumed-hashes rows are genuinely FLAT, dead-letter rows are genuinely NESTED under .locators.*. A hand-built flat dead-letter fixture makes the audit's correct non-conviction look exactly like the defect under hunt (this false-defect near-miss actually happened during the #951 review). The flat/nested asymmetry is correct and is not the finding.
Severity
Upgraded during review from cosmetic to measurement defect: the message misdescribes the audit's own residual class, in the exact place an operator decides whether further investigation is needed.
Follow-up to #946 / PR #951 (review finding 1, non-gating). Owner: pepper.
## Defect
`store.sh quarantine-audit` on a clean sweep prints an OK message that names only ONE unprovable class: "rows without surviving dead-letter evidence are not provable and were not judged."
There is a second unprovable class the message does not name: a consumed-hashes row whose dead-letter evidence **survives** but carries an **empty `observed_hash`** cannot be convicted either, because conviction requires a match on all four of (kind, id, observed_seq, observed_hash).
An operator reading the current OK concludes *no evidence exists*, when in fact evidence exists and is unusable. This is a wording fix, not a logic fix — the audit's conviction predicate is correct and must not change.
## Real specimen
Dead-letter seq 13, kind `bench`, id `malformed-locator-test`: its locator extracts `observed_hash: ""`, and its own note says "deliberately non-conformant."
## Fix constraints
- Wording only: the clean-sweep message must name both residual classes (evidence pruned → unprovable; evidence surviving with empty `observed_hash` → unprovable).
- Test fixture MUST be taken from a live lane's own files, not hand-built from the schema or from a description: consumed-hashes rows are genuinely FLAT, dead-letter rows are genuinely NESTED under `.locators.*`. A hand-built flat dead-letter fixture makes the audit's correct non-conviction look exactly like the defect under hunt (this false-defect near-miss actually happened during the #951 review). The flat/nested asymmetry is correct and is not the finding.
## Severity
Upgraded during review from cosmetic to **measurement defect**: the message misdescribes the audit's own residual class, in the exact place an operator decides whether further investigation is needed.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Follow-up to #946 / PR #951 (review finding 1, non-gating). Owner: pepper.
Defect
store.sh quarantine-auditon a clean sweep prints an OK message that names only ONE unprovable class: "rows without surviving dead-letter evidence are not provable and were not judged."There is a second unprovable class the message does not name: a consumed-hashes row whose dead-letter evidence survives but carries an empty
observed_hashcannot be convicted either, because conviction requires a match on all four of (kind, id, observed_seq, observed_hash).An operator reading the current OK concludes no evidence exists, when in fact evidence exists and is unusable. This is a wording fix, not a logic fix — the audit's conviction predicate is correct and must not change.
Real specimen
Dead-letter seq 13, kind
bench, idmalformed-locator-test: its locator extractsobserved_hash: "", and its own note says "deliberately non-conformant."Fix constraints
observed_hash→ unprovable)..locators.*. A hand-built flat dead-letter fixture makes the audit's correct non-conviction look exactly like the defect under hunt (this false-defect near-miss actually happened during the #951 review). The flat/nested asymmetry is correct and is not the finding.Severity
Upgraded during review from cosmetic to measurement defect: the message misdescribes the audit's own residual class, in the exact place an operator decides whether further investigation is needed.