Introduced a dedicated revaer-runtime crate that owns runtime migrations and a RuntimeStore facade wired through sqlx.
Schema mirrors the spec (revaer_runtime.torrents + fs_jobs) with typed enums, timestamps, JSON file snapshots, and trigger-managed updated_at.
TorrentOrchestrator now hydrates its catalog from the store on boot and persists every event (upsert/remove) to keep the DB authoritative.
FsOpsService gained runtime hooks that record job starts, completions, and failures (including transfer mode & destination) alongside the existing .revaer.meta.
Added integration tests (testcontainers Postgres) covering torrent upsert/remove and FsOps job transitions to guard the persistence layer.
Runtime persistence is additive. Rolling back to the previous build leaves the new tables unused; removing the crate simply reverts to in-memory behaviour.
Any unexpected DB load can be mitigated by disabling the store wiring in a hotfix (the traits still tolerate None).