From 69d8ae80e26ef9885794fdb263f1e807eeec4b3f Mon Sep 17 00:00:00 2001 From: canvas-bot Date: Mon, 15 Jun 2026 04:20:02 +0400 Subject: [PATCH] feat(topbar): aggregated notification bell MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a Bell icon button to the topbar that sums chatUnreadCount + queueCount and shows a single amber dot with the total. Click goes to Chat if there are unread messages, otherwise to Approvals — the scene most likely to be relevant. Per-tab badges on Approvals and Chat tabs stay (they answer 'where' specifically), but operators who just want 'do I have anything waiting' now get a single one-glance signal in the topbar. Title attr names the breakdown for accessibility. 31/31 vitest pass. --- src/App.tsx | 19 ++++++++++++++++++- src/components/icons.tsx | 1 + src/index.css | 21 +++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/App.tsx b/src/App.tsx index c8cf1df..1674ce6 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -18,7 +18,7 @@ import Documents from "./scenes/Documents"; import CommandBar from "./components/CommandBar"; import Toaster from "./components/Toaster"; import Console from "./components/Console"; -import { Cmd, Home, Layers, HistoryIcon, Pulse, Refresh, Branch, Cog, User, Sun, Moon, Bot } from "./components/icons"; +import { Cmd, Home, Layers, HistoryIcon, Pulse, Refresh, Branch, Cog, User, Sun, Moon, Bot, Bell } from "./components/icons"; import { useBackendHealth } from "./lib/useBackendHealth"; @@ -216,6 +216,23 @@ export default function App() { Refresh )} +