feat(desktop): the Inbox follows the listed workspace, and the switcher counts what waits in the others (workspace clarity D2/D11)
D2/D11 of the workspace clarity plan (docs/proposals/workspace-clarity.md, decisions 2 and 11, approved by Dean with option A).
Everything the window lists of the Inbox now follows the workspace in the sidebar's head:
- the Inbox's rows,
- the sidebar's Inbox count,
- Home's waiting list.
The switcher counts what waits in the other workspaces:
- a count in the attention colour beside each other workspace in its menu,
- a dot by the head's chevron while anything waits elsewhere.
The head's spoken name adds it too, e.g. "Workspace: Acme, 5 members, 2 waiting in other workspaces".
planning/workspace-inbox.tsholds the two pure reads:inWorkspace, the listed workspace's share of main's account-wide Inbox read;waitingByWorkspace, the count per workspace.
PlansControl.listedgainsinboxandinboxPlans, andwaitingIncounts per workspace. The account-wideinboxandinboxPlansstay, for what finds a plan anywhere: the open plan's own Inbox tab, and the palette.- A plan whose workspace isn't read yet counts in no workspace until the plan list holds it.
- The Dock badge and notifications stay account-wide, as the proposal decided: they belong to the Mac, not a workspace. D14 (starter only) is a separate PR.
MenuAction.waitingdraws the count at the item's end. The checked workspace shows its check; its count is the Inbox row's.
Session replay: the counts are text nodes. The dot carries no words, and what it says rides the head's aria-label, which is already masked.
Tests
Both fail without this change:
use-plans-tab.test.ts, "the Inbox lists the chosen workspace's share of what waits, and every workspace counts its own". Over two workspaces, the listed share follows the switch, and a plan the list hasn't read counts nowhere.workspace-switcher.test.ts, "the menu counts what waits in each other workspace, and the head says something does". This covers the menu counts, the dot, and the spoken label, and that nothing is marked when only the listed workspace has items waiting.
Evidence
CI builds nothing for the Mac and could not verify this visually. These screenshots are the real renderer in the design-show harness (Chrome), with two items waiting in Northwind and one in Acme. They are not a Mac verify.sh run.
| Menu, light | Menu, dark |
|---|---|
![]() | ![]() |
Closed: the dot by the chevron, and the Inbox row counting only Acme's 1 of the 3 waiting:

š¤ Generated with Claude Code

