From 16c667ca150a1524c58b652d52546054b8aa30d1 Mon Sep 17 00:00:00 2001 From: "alexei.dolgolyov" Date: Thu, 28 May 2026 15:40:23 +0300 Subject: [PATCH] feat(status): per-browser dismissal for Recent Incidents The Recent Incidents list is derived server-side from raw AppStatus health-check samples, so there is no incident row to delete and deleting the underlying samples would corrupt uptime % and the sparkline timeline. Per-browser, non-destructive dismissal is the right model: localStorage holds the dismissed (appId, ISO startedAt) keys, the page filters them out on render, and a Restore affordance brings them back. - Per-row Dismiss (X) and section-level Clear all - Restore link appears whenever any incident on the current page is hidden - Dismissal key is (appId, startedAt) so it survives 24h/7d/30d switches - Focus is moved to the Restore link after Clear all empties the list (otherwise the unmounting button would drop focus to ) - Quota / disabled-localStorage failure is swallowed; in-memory state still works for the active session Hand-rolled