From 253878e02732a157024f596524f32cf718c23f79 Mon Sep 17 00:00:00 2001 From: MechaCat02 Date: Sat, 8 Aug 2026 22:48:22 +0200 Subject: [PATCH] fix(export): give the keepsake viewer the two-phase preflight it was meant to get MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The two-phase preflight from eb0e405 landed in ONE place and was spliced inside the other. `run_zip_export` ended up containing both blocks nested, so the Gallery path pruned "Memories" archives that were not its to reclaim, while `run_html_export` silently kept the single-phase form. That left the exact deadlock the two-phase preflight exists to break, still open on half the product. At a gallery size where a rebuild needs the previous generation's bytes: the ZIP prunes its own superseded archive and rebuilds, and the HTML preflight fails against a Memories archive still on disk. The prune that would free it runs only after a success that can never happen, and any epoch bump — a guest deleting one photo — retires the current viewer immediately. Permanently stuck, unreachable from any handler, discovered at the end of the night with nobody there. Both halves now call one `ensure_export_space_reclaiming`, keyed on the caller's OWN prefix, so they cannot drift again. Three smaller things found in the same pass: - The boot-failure panel hardcoded light-mode colours, and its heading set none at all — the UA default black on the `#100f0f` dark background. On the one screen whose entire job is to be readable, and in the failure mode where the app's own stylesheet may be what did not load. Moved to classes in the inline