Story-2495 · functions lane
Counsel's verdict survives the machine's next read
The replacement transaction
validated Deep Read envelope
↓ same PostgreSQL transaction
replace current Reading Findings projection
↓
mark prior versions superseded, retaining verdict + author + date
↓
enqueue deep_read.completed for the durable job
↓
commit all three facts together
Equivalent means lineage plus bytes
A finding receives a stable UUID on first projection. A later read carries that UUID and counsel verdict only when every old anchor reaches the new anchor through the existing remap ledger and the canonical hash of its quotes is unchanged. Positional similarity is never enough.
Unsafe identity fails pending
No match creates a new pending finding. An ambiguous remap also creates a distinct pending finding and inherits no prior Keep or Dismiss decision. The old registry version remains as history; nothing silently moves.
Changed ink explains the reopen
A mapped finding whose quoted bytes changed gets a new logical identity, returns to pending, and stores a plain-language reason plus before/after quote text. Its supersession link preserves the prior verdict, deciding user, and timestamp.
Dismiss reasons have different force
dismissed_inaccurate remains suppressed across a confidently mapped re-read. dismissed_irrelevant may return to pending when its anchored passage changes. The executable ER-06, ER-24, and ER-28 scenarios pin these rules.
The old bus fact is gone
The subscriber census found no semantic consumers of the former Insight completion fact: no repository consumer, no EventBridge rule, and no live target. The old brief remains the serving path for this wave, but it no longer announces completion. Only a successful Deep Read emits deep_read.completed, keyed by durable job so retries coalesce and later re-reads still emit.