---
title: Notification History (past toasts and dismissed alerts)
---

# Notification History (past toasts + dismissed alerts)

## What it is

### What it is

**Notification History** is the one combined place to look back at notifications you may have missed. It opens from a single **"Notification History"** row in the sidebar's **System** group and works the same on desktop and mobile. It has two tabs:

- **Toasts** — the pop-up notifications that appear briefly in the corner (e.g. "Settings saved", a session finishing, an error). They normally vanish after a few seconds; this tab keeps the recent ones (newest first) so you can re-read one you missed. The list is saved on your device and **survives an app restart**.
- **Alerts** — agent-raised inbox alerts you have dismissed. The Alerts screen's "Recently dismissed" section only shows the last 7 days; this tab shows the **full archive** (most recent ~200), and each row can be **restored** back into your active alerts.

## Where to find it

The **Notification History** row in the sidebar's **System** group — the same entry on desktop and on a phone.

## How it behaves

### Reading one — tap to expand in place

Every row **expands in place**: tap it to reveal the full notification right there, tap again to collapse it. One row is open at a time, and there is no separate screen to drill into — so nothing to get lost in and no back button to hunt for. It is the same gesture on desktop and mobile.

- A **toast** expands to its **full message** (untruncated), its kind (success / error / warning / info), and the exact time it fired — so a toast that was cut off in the row is always readable.
- A **dismissed alert** expands to its **content** (read-only), which session raised it, a **Go to session** link, and its **Restore** button — so you can see exactly what it said and, if you want, bring it back.

### Why

Toasts are deliberately ephemeral — they auto-dismiss so they don't pile up. On mobile they stack **behind each other** as a compact deck (newest in front, older ones peeking behind) instead of filling the screen, so a burst is even easier to glance past. Notification History is the durable record so a toast you missed — or a dismissed alert you want back — is never truly lost, and now it can be read in full without leaving the list.

### How it works

- **Toasts tab** reads the in-app fired-toast trail (`firedToasts`), capped at the 50 most recent and persisted to `localStorage` so it survives a relaunch. It is read-only — opening the history never re-fires a toast. (The same trail also powers Settings → Notifications → "Recent notifications", where you can mute a category on the spot.)
- **Alerts tab** reads the dismissed (archived) agent alerts from the database. Archived alerts are never purged, so the full history is available; the panel requests it with the `allTime` flag on the existing dismissed-alerts lookup and caps the payload at the 200 most-recently-dismissed. **Restore** un-archives an alert — the same action as the Alerts screen's "Recently dismissed" Restore, and it's undoable with Ctrl+Z.
- **Self-contained + read-only (the invariant).** The panel renders each expanded notification **inline from the already-loaded data** — it never opens a dismissed alert in the inbox reading pane. That reading pane (`AlertInboxViewer`) resolves the selected alert only from your **active** inbox, so a dismissed alert (which lives in the archive, never the active list) used to leave it stuck forever on a "Loading alert" spinner. Rendering inline instead means a past notification opens instantly and can never hang. The **Agent Alerts** screen shows a dismissed alert through the same shared read-only detail (in the reading pane beside its list) for the same reason.

## Related

### Related

- [Inbox Alerts](inbox-alerts.md) — the agent-raised persistent inbox rows whose dismissed history this surfaces.

