CREATE TABLE IF NOT EXISTS update_jobs ( id TEXT PRIMARY KEY, status TEXT NOT NULL CHECK(status IN ('queued','downloading','verifying','staged','backing_up','applying','completed','failed','cancelled')), version TEXT NOT NULL, platform TEXT NOT NULL, release_url TEXT, asset_name TEXT, asset_url TEXT NOT NULL, expected_sha256 TEXT, actual_sha256 TEXT, download_path TEXT, backup_path TEXT, size_bytes INTEGER, error_message TEXT, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, completed_at INTEGER ) STRICT; CREATE INDEX IF NOT EXISTS update_jobs_status_idx ON update_jobs(status, created_at);