DDL applied on every LauncherSagaLog::open(). Idempotent:
CREATE TABLE IF NOT EXISTS and CREATE INDEX IF NOT EXISTS make
reopening the same DB a no-op. Schema mirrors LSD spec ยง3.2 verbatim
(timestamps as RFC3339 TEXT โ easier to grep in SQLite shells than
epoch ms; PR LSD-2โs coordinator wiring serializes via
chrono::DateTime<Utc>::to_rfc3339).
user_version value stamped into launcher-sagas.db. Mirrors srvโs
stamp_and_check_version tripwire (AUDIT_SQLITE_SYSTEMS ยง8.5). The
launcher is a separate crate from srv, so the helper is duplicated
here rather than shared.
Read PRAGMA user_version; warn loudly if the file was written by a
newer launcher build (downgrade tripwire), then stamp the current
version. The idempotent DDL above remains the schema mechanism โ this
only records the version.