From e470dfc244dc752f5bba49ebdc5d93fca8d9ef37 Mon Sep 17 00:00:00 2001 From: operator-main Date: Sun, 4 Oct 2026 03:50:57 +0000 Subject: [PATCH] DOM reference: notifications and activity\n\n- No bell icon; toast live region + Activity tab documented\n- Chat nav unread via aria-label flip (match on testid, not label) --- docs/DOM-NOTIFICATIONS.md | 242 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100644 docs/DOM-NOTIFICATIONS.md diff --git a/docs/DOM-NOTIFICATIONS.md b/docs/DOM-NOTIFICATIONS.md new file mode 100644 index 0000000..bd82b74 --- /dev/null +++ b/docs/DOM-NOTIFICATIONS.md @@ -0,0 +1,242 @@ +# DOM reference: notifications & activity (muse.ai) + +Inspected live via CDP on the opm browser (warp-opm netns, port 9440), +2026-10-04. Companion docs: `DOM-CHAT-PANEL.md`, `DOM-MESSAGES.md`, +`DOM-PAGE-STRUCTURE.md`. + +## TL;DR + +muse.ai has **no bell icon and no notification center/dropdown**. The +notification surface is three separate things: + +1. **Toast live region** — `section[aria-label="Notifications alt+T"]` + (transient toasts, aria-live). +2. **Activity tab** — `button[aria-label="Activity"]` in the status-panel + toolbar (activity feed; tabs: Activity / Approvals / Upcoming / Identity). +3. **Chat nav unread** — `a[data-testid="hatch-nav-chat"]` whose `aria-label` + becomes `"Chat, N notification(s)"` when chats are unread. + +There are no badge/dot/pill unread elements in the DOM, and no element with +`notif` in its `data-testid`. + +--- + +## 1. Toast live region + +The only element carrying the word "notification" in an aria-label. + +```js +document.querySelector('section[aria-label="Notifications alt+T"]') +``` + +| Property | Value | +|---|---| +| Tag | `
` | +| `aria-label` | `Notifications alt+T` (stable — safe to match on) | +| `tabindex` | `-1` | +| `aria-live` | `polite` | +| `aria-relevant` | `additions text` | +| `aria-atomic` | `false` | +| `data-testid` | none | +| Parent chain | direct child of `` (no intermediate wrappers) | +| Content when idle | empty — `childCount: 0`, `innerHTML === ""` | + +Semantics: an aria-live toast container. Toasts are injected as children and +announced politely. `Alt+T` presumably moves focus to it (unverified — +shortcut named in the label). + +**Visibility condition:** always in the DOM (even when empty). Presence of +children = a toast is/was showing. + +**Automation note:** to detect a toast, poll +`document.querySelector('section[aria-label="Notifications alt+T"]').childElementCount > 0` +or read `innerText`. + +--- + +## 2. Activity tab button + +```js +document.querySelector('button[aria-label="Activity"]') +``` + +| Property | Value | +|---|---| +| Tag | `