@@ -293,25 +293,25 @@ local Undark row, run on the **same** bytes as our carve. As with recall,
293293throughput is not the headline: the survey's contribution and ours is ** false
294294positives** and ** substrate coverage** , not raw speed.
295295
296- ## Survey ideas → our backlog
297-
298- - ** Throughput benchmark. ** * Shipped: * a large-DB (≈100 MB) timing harness —
299- ` carve --format jsonl ` measures ~ 15.3 s on a 100 MB database, reported alongside
300- the survey's tools (see the Throughput section above).
301- - ** rowid → table inference for drop-recreate (the 0B nuance). ** * Shipped (Detector
302- A): * residue attributed to an ` AUTOINCREMENT ` table carries a ` table_instance_risk `
303- flag when its ` rowid ` exceeds the table's ` sqlite_sequence ` high-water mark —
304- surfaced as a non-overclaiming ** hint ** (consistent with prior-incarnation
305- residue, but also explainable by an ` UPDATE ` / ` sqlite_sequence ` edit/current-instance
306- deletion), AUTOINCREMENT-only, never a predecessor assertion, never a reroute or
307- tier change. The plain- ` INTEGER PRIMARY KEY ` case stays unflagged (genuinely
308- undecidable from a bare snapshot). * Shipped (Detector B): * Detector B now flags an
309- unambiguous sidecar ` -wal ` / ` -journal ` schema change — the prior ` sqlite_master `
310- shows a table absent or with a different CREATE SQL than current
311- ( ` sidecar_schema_changed(table) ` ) — a table-level boundary hint, still not the
312- same-schema case (a same-schema drop+recreate is indistinguishable from a benign
313- page move) and never row-level provenance.
314- - ** WAL-checkpoint acquisition warning. ** * Shipped: * the ` SQLITE-WAL-UNCHECKPOINTED `
315- audit note now carries the acquisition warning — a ` -wal ` a checkpoint would
316- reclaim is forensically load-bearing, so the note tells the examiner to acquire
317- the live ` -wal ` before any tool checkpoints it away .
296+ ## Survey-informed capabilities
297+
298+ The survey's analysis surfaced these needs — now shipped ` sqlite4n6 ` features:
299+
300+ - ** Throughput measurement. ** A large-DB (≈100 MB) timing harness — `carve
301+ --format jsonl` runs in ~ 15.3 s on a 100 MB database, reported alongside the
302+ survey's tools (see the Throughput section above).
303+ - ** ` table_instance_risk ` drop-recreate hint. ** Residue attributed to an
304+ ` AUTOINCREMENT ` table carries a ` table_instance_risk ` flag when its ` rowid `
305+ exceeds the table's ` sqlite_sequence ` high-water mark (Detector A), plus a
306+ table-level flag when a ` -wal ` / ` -journal ` sidecar's prior ` sqlite_master ` shows a
307+ table absent or with a different CREATE SQL (Detector B,
308+ ` sidecar_schema_changed(table) ` ). It is a non-overclaiming ** hint ** — consistent
309+ with prior-incarnation residue, but also explainable by an ` UPDATE ` /
310+ ` sqlite_sequence ` edit / current-instance deletion — AUTOINCREMENT-only for
311+ Detector A, never a predecessor assertion, never a reroute or tier change. The
312+ plain- ` INTEGER PRIMARY KEY ` and same-schema drop+recreate cases stay unflagged
313+ (genuinely undecidable from a bare snapshot / indistinguishable from a benign
314+ page move).
315+ - ** WAL-checkpoint acquisition warning. ** The ` SQLITE-WAL-UNCHECKPOINTED ` audit
316+ note tells the examiner to acquire the live ` -wal ` before any tool checkpoints it
317+ away — a ` -wal ` a checkpoint would reclaim is forensically load-bearing .
0 commit comments