diff --git a/frontend/src/lib/notifications.ts b/frontend/src/lib/notifications.ts index bf8dd27..530ce68 100644 --- a/frontend/src/lib/notifications.ts +++ b/frontend/src/lib/notifications.ts @@ -118,7 +118,11 @@ function load(): Notification[] { try { const raw = JSON.parse(localStorage.getItem(HISTORY_KEY) || "[]"); if (!Array.isArray(raw)) return []; - return raw.map((n) => ({ ...n, action: undefined }) as Notification); + // Restored entries are history only. Mark them dismissed so they don't + // resurrect as active toasts on reload — their auto-dismiss timers aren't + // re-armed across a reload, so otherwise they'd stick forever. Also drop the + // live `action` callback, which can't survive serialization. + return raw.map((n) => ({ ...n, action: undefined, dismissed: true }) as Notification); } catch { return []; }