/* ── the first run stamps when it goes away, whatever closed it ──── The foot's button calls finishSetup itself; the scrim, the back gesture and the Soulseek row (which navigates, and navigating clears the half sheet) do not — and a tour that ran is a tour that ran. finishSetup writes only in boot mode and only once, so all four doors land in the same place, and a PREVIEW opened from You writes nothing at all. untrack is not optional here: finishSetup calls closeHalf, which reads nav.half, which is exactly what this effect tracks. Read your own write in a Svelte 5 effect and the subtree dies painted. */ let setupWasUp = false; $effect(() => { const up = nav.half?.kind === "setup"; if (setupWasUp && !up) untrack(() => { void finishSetup(); }); setupWasUp = up; });