b4a6958129
`hermes doctor` printed the same informational "WAL journal mode" line for a database that is still WAL although the operator configured `database.journal_mode: delete`. The runtime never live-downgrades an existing WAL database (a downgrade under open connections corrupts it) and says so only once per process in the gateway log, so the one surface operators check told them they were protected when every process was still writing WAL on the filesystem they configured `delete` for (#111729). Doctor now compares the configured mode (`resolve_journal_mode`) with the on-disk header and warns `<db> is in WAL mode despite database.journal_mode=delete`, naming the never-live-downgraded rule and the one-time offline `PRAGMA journal_mode=DELETE` remedy; a vulnerable SQLite still counts the database as WAL-reset exposed. This check outranks the cross-VM hint (whose remedy, "set journal_mode: delete", is already applied). A configured `wal` is unchanged. Core hunk ported from #104714 (@jonpol01); its holder enumeration (`foreign_state_db_holders(include_scan_gaps=True)` + per-PID report) is not included here — that half is a 600-line change under separate review.