From bea65b8ed326367d22533256a22901708630384a Mon Sep 17 00:00:00 2001 From: Clay Delk Date: Tue, 28 Jul 2026 13:22:00 -0400 Subject: [PATCH] fix(desktop): restore the inbox icon in the sidebar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Inbox surface kept the bell icon from the interim rename to Activity. Inbox is a destination for work relevant to you, not a notification tray, so the bell reads as the wrong affordance now that the name is back. Switch the sidebar entry to the Lucide inbox glyph, which also matches what mobile already uses (LucideIcons.inbox300/500), and assert the icon in the screenshot spec — nothing pinned it before, which is how it drifted in the first place. The bell on reminder rows in the list pane is unchanged; a bell is the right glyph for a reminder. Co-Authored-By: Claude Opus 5 (1M context) Signed-off-by: Clay Delk --- .../features/sidebar/ui/AppSidebarPinnedHeader.tsx | 4 ++-- .../tests/e2e/inbox-refactor-screenshots.spec.ts | 14 ++++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/desktop/src/features/sidebar/ui/AppSidebarPinnedHeader.tsx b/desktop/src/features/sidebar/ui/AppSidebarPinnedHeader.tsx index 95a0a47ef1..a673492ef1 100644 --- a/desktop/src/features/sidebar/ui/AppSidebarPinnedHeader.tsx +++ b/desktop/src/features/sidebar/ui/AppSidebarPinnedHeader.tsx @@ -1,4 +1,4 @@ -import { Activity, Bell, Bot, FolderGit2, Zap } from "lucide-react"; +import { Activity, Bot, FolderGit2, Inbox, Zap } from "lucide-react"; import { TopbarSearch } from "@/features/search/ui/TopbarSearch"; import { FeatureGate } from "@/shared/features"; @@ -103,7 +103,7 @@ export function AppSidebarPrimaryMenu({ tooltip="Inbox" type="button" > - + Inbox {homeBadgeCount > 0 ? ( diff --git a/desktop/tests/e2e/inbox-refactor-screenshots.spec.ts b/desktop/tests/e2e/inbox-refactor-screenshots.spec.ts index b7d5b2af2e..15a804d71f 100644 --- a/desktop/tests/e2e/inbox-refactor-screenshots.spec.ts +++ b/desktop/tests/e2e/inbox-refactor-screenshots.spec.ts @@ -174,7 +174,7 @@ test.describe("inbox refactor screenshots", () => { await page.screenshot({ path: `${SHOTS}/01-current-filters.png` }); }); - test("02 — Inbox label, bell icon, and overflow controls", async ({ + test("02 — Inbox label, inbox icon, and overflow controls", async ({ page, }) => { await installMockBridge(page, { mode: "mock" }); @@ -185,11 +185,13 @@ test.describe("inbox refactor screenshots", () => { }); // The sidebar must be in frame — the label is the point of this shot. - await expect( - page - .getByTestId("sidebar-primary-menu") - .getByRole("button", { name: "Inbox", exact: true }), - ).toBeVisible(); + const inboxButton = page + .getByTestId("sidebar-primary-menu") + .getByRole("button", { name: "Inbox", exact: true }); + await expect(inboxButton).toBeVisible(); + // Inbox is a destination, not a notification tray, so it carries the inbox + // glyph rather than a bell. Asserted because nothing else pins the icon. + await expect(inboxButton.locator("svg.lucide-inbox")).toHaveCount(1); await page.getByTestId("inbox-options-trigger").click(); await expect(page.getByText("Show unread only")).toBeVisible();