feat(desktop): clean up the workspaces board cards
Follows #7142 (merged). Replaces #7146, which GitHub closed when that PR's base branch was deleted on merge; this is the same three commits rebased onto main, with the card's Lingui calls updated to the English-text-as-id convention from #7092.
What changed
The board cards were carrying a lot of repeated chrome: "This device" on every local card, the branch name printed under a title that was already the branch name, and unstyled metadata. This reworks the card after Linear's board anatomy (checked on Mobbin) while keeping the page's existing vocabulary.
Card
- Muted project line at the top: project icon, project name, a laptop mark on main checkouts (same tooltip as the list row). The host chip only appears for remote devices.
- State glyph beside a medium-weight title. This is the same
WorkspaceStateGlyphthe list row uses, so the green review dot, the working spinner, and the column pies read the same on both layouts. - Branch line only when it says something the title doesn't (the list row's rule): hidden for sessions and when branch and name match.
- Footer of outlined pills: PR number with checks dot,
+adds −delschurn when present, Merged/Deleted for tombstones, with the activity age on the right. Age now tracks activity like the list, not creation. - Done states (merged PR, archived) recede to muted text.
Column
- Lanes get a surface one step above the page (
bg-muted/30) with the header inside, so cards read as items in a column. Card gap 8px, lane gap 12px. Works in both themes: page < lane < card.
Refactor commit: WorkspaceStateGlyph moves from the row's private folder up to v2-workspaces/components since two components share it now.
Checks
bun run typecheck(apps/desktop): exit 0bun testfor the workspaces page directory: 17 passbun run check:i18n: exit 0, no catalog changes. The card reuses the row's existing ids, so no new strings.- Rendered in the dev app over CDP; screenshots in the session.
A later commit moves the age to the header's right slot and the state glyph to the footer's right slot, and widens the card inset to 14/12px.
https://claude.ai/code/session_01BjVLqU1kEE6SQqKSYem9ax
Summary by cubic
Reworks the workspaces board cards and columns after Linear's board anatomy so cards read as items in a lane and drop repeated chrome like "This device" and the redundant branch line.
What changed
- Cards show a muted project line, state glyph beside the title, and outlined pills for PR, diff churn, and archive state.
- Branch line only appears when it says something the title doesn't; age tracks last activity like the list row, not creation.
- Done states (merged PR, archived) recede to muted text; columns get a surface one step above the page.
WorkspaceStateGlyphmoves up tov2-workspaces/componentssince the card and list row share it.