forked from mosaicstack/stack
Wording-only measurement fix (#951 review finding 1, upgraded to measurement defect): the clean-sweep OK named only "rows without surviving dead-letter evidence", so an operator concluded NO evidence exists when evidence can exist and be UNUSABLE — a surviving dead-letter row whose locator extracts an empty observed_hash (live specimen: mos-dt seq 13, bench/malformed-locator-test) can never satisfy the four-field conviction match, because _record_last_consumed only writes rows with a non-empty hash. The conviction predicate is UNCHANGED. - store.sh: clean-sweep message + PROVABILITY BOUND comment name both classes ("no evidence" vs "evidence unusable"). - test T17: drives the REAL writer flow (12 fillers + bench key at seq 13) and plants the VERBATIM live specimen — nested .locators.* with no observed_hash key, never a hand-built flat dead-letter row (the #951 false-defect near-miss); asserts clean sweep exits 0, both classes named, no conviction, --repair removes nothing, ledger untouched. - manifest: wake 0.6.15 -> 0.6.16. Red-first: pre-fix fails exactly the two wording assertions (and the non-conviction guards pass pre-fix — predicate correct all along); fixed 18/18. All wake suites green; detector D4 intermittent red is a pre-existing lock-handoff timing flake in unmodified files, filed as #966. Written-by: pepper (sb-it-1-dt) Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01NsKce8iZuSuRnu3gVMCBKB