Problem
#2158 rebuilt the workbar column on Astryx primitives and made it a plate of the same kind as the conversation beside it. It stopped at the column. Every panel inside still carries a pre-Astryx interior, and the set of panels has changed since this issue was filed: Task Ledger is gone (#4400), Tasks is now SessionTodoPanel, and Work Board, Terminal and Side Chat are new. Each panel still decides on its own what an empty state, a failure, a count and a dense list look like, so the column reads as eight apps in a tab strip.
The workbar is also the surface the architecture review calls "a second window manager" (A3 in docs/frontend-architecture-astryx-review-2026-08-09.md): tab chrome, panel headers and resize affordances are product CSS on top of controls Astryx already ships.
Goal
One column, one idiom. Every panel composes Astryx Section/Heading/Toolbar/List/EmptyState/Banner/Spinner/MetadataList, obeys DESIGN.md (surface ladder, One Means Rule, two ink tiers, radius ladder), and is verified at 320px, 400px and the stacked layout below 990px. Inspector stays the reference.
Work items
Each sub-issue is one PR with BEFORE/AFTER Storybook captures (light and dark) in the Product/Session Workbar story group.
Shell (I take this first; it sets the frame the panels land in)
Panel interiors (one sub-issue each, open for claiming)
Cross-panel
How to claim a panel
Comment with the panel name; I will open the sub-issue, assign it, and link it here. Start from the Inspector as the reference and from the shell PR once it lands. Keep each PR to one panel.
Out of scope
Panel behaviour and data flow (owned by the feature slice, apps/desktop/src/renderer/features/workbar/README.md); AppShell composition (#4582); WorkHub (#3492).
Refs #2158, #4400, #4582, #4679
Problem
#2158 rebuilt the workbar column on Astryx primitives and made it a plate of the same kind as the conversation beside it. It stopped at the column. Every panel inside still carries a pre-Astryx interior, and the set of panels has changed since this issue was filed: Task Ledger is gone (#4400), Tasks is now
SessionTodoPanel, and Work Board, Terminal and Side Chat are new. Each panel still decides on its own what an empty state, a failure, a count and a dense list look like, so the column reads as eight apps in a tab strip.The workbar is also the surface the architecture review calls "a second window manager" (A3 in
docs/frontend-architecture-astryx-review-2026-08-09.md): tab chrome, panel headers and resize affordances are product CSS on top of controls Astryx already ships.Goal
One column, one idiom. Every panel composes Astryx
Section/Heading/Toolbar/List/EmptyState/Banner/Spinner/MetadataList, obeysDESIGN.md(surface ladder, One Means Rule, two ink tiers, radius ladder), and is verified at 320px, 400px and the stacked layout below 990px. Inspector stays the reference.Work items
Each sub-issue is one PR with BEFORE/AFTER Storybook captures (light and dark) in the
Product/Session Workbarstory group.Shell (I take this first; it sets the frame the panels land in)
Toolbar/Button/Heading; retire workbar-local chrome CSS.--surface-raisedwith one separator against the canvas; no fill+border+shadow stack.--maka-*namespaces (they are undeclared and resolve to fallbacks).Panel interiors (one sub-issue each, open for claiming)
List/Item, file header asMetadataList, empty and error states onEmptyState/Banner.SessionTodoPanel) — rows on theListidiom, status viaStatusDot, no decorativeBadge.Toolbar(P2.1); audit URL field, loading and blocked states against the idiom.Banner/EmptyState; no bespoke chrome.Dialog/Button; quote chipButtonoverrides shrunk tothemeProps(P3.1).Cross-panel
Bannerwith a labelled retry.EmptyStatewith a single next action.How to claim a panel
Comment with the panel name; I will open the sub-issue, assign it, and link it here. Start from the Inspector as the reference and from the shell PR once it lands. Keep each PR to one panel.
Out of scope
Panel behaviour and data flow (owned by the feature slice,
apps/desktop/src/renderer/features/workbar/README.md); AppShell composition (#4582); WorkHub (#3492).Refs #2158, #4400, #4582, #4679