Persistent notification log behind the transient toasts.
Every toast the admin UI shows (policy saved, save rejected, store pinged…)
is also appended here so an outcome that flashed by — typically a red
"Failed to save policy" during a busy moment — can be inspected afterwards
in the Notifications panel, with the full server response attached.
Pure data layer: newest-first list, capped, (de)serialized to a Storage
(localStorage per browser). Every storage access is guarded — a private
window, cleared site data or a blocked accessor must degrade to an empty
log, never break the UI.
Persistent notification log behind the transient toasts.
Every toast the admin UI shows (policy saved, save rejected, store pinged…) is also appended here so an outcome that flashed by — typically a red "Failed to save policy" during a busy moment — can be inspected afterwards in the Notifications panel, with the full server response attached.
Pure data layer: newest-first list, capped, (de)serialized to a
Storage(localStorage per browser). Every storage access is guarded — a private window, cleared site data or a blocked accessor must degrade to an empty log, never break the UI.