-- H1: export generation guard. A reopen (which clears `export_released_at`) followed by a -- re-release could spawn a fresh export worker while a worker from the PRIOR release was -- still streaming a now-stale snapshot to `Gallery.zip`. The stale worker's finalize then -- re-set `export_*_ready = TRUE` on an archive that predated the reopen — a silent, -- permanent data loss (new uploads missing from a "ready" keepsake). -- -- `release_seq` is a per-(event,type) generation counter bumped on every (re)release. -- A worker captures the seq it claimed and only finalizes / flips the ready flag while -- that seq is still current; a superseded worker discards its output instead. ALTER TABLE export_job ADD COLUMN release_seq BIGINT NOT NULL DEFAULT 0;