Re-review fixes R1 and R6 (database side), plus R3's helpers:
- R1: a row is kept inline only for its own cause: text SQLite cannot
decode, or a text that would not come back. A full disk, an I/O error, a
malformed database or a bug now fails the batch and rolls it back,
instead of listing every remaining row as "could not be rewritten".
- R6: verify_database_file names the damaged document and says what to do
(restore a backup from before the damage, or store an image with the same
workflow, which repairs it).
- R3: pre_migration_backups lists the kept backups, earliest first; the plan
says "Nothing to rewrite" and names an existing kept backup, and the older
version note says new images use the new form from the first start and
names the earliest backup as the way back.