Skip to content

feat(app): add switchboard for focused work - #111

Merged
sean-brydon merged 6 commits into
mainfrom
feat/app-switchboard
Oct 14, 2026
Merged

sean-brydon merged 6 commits into
mainfrom
feat/app-switchboard

Conversation

@sean-brydon

@sean-brydon sean-brydon commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

What changed

  • Add a global Switchboard overlay for focused and recent agent conversations and worktrees, available from Home, the command palette, and ⌘⇧K.
  • Use existing project sections as initial areas. People can add areas, assign individual items, star work, and leave pickup notes. Focus, custom areas, assignments, and notes are saved on this computer.
  • Show home-folder agent sessions as work alongside project work. Resume a structured conversation whose old session has gone away.
  • Keep recent rows compact, distinguish agent attention from Focus, and preserve a focused conversation's identity when its session ends.

Screenshots

Focus across areas (dark theme, synthetic mock data):

Switchboard with three focused work threads and pickup notes in the dark theme

Work area (light theme, synthetic mock data):

Switchboard filtered to the Work area in the light theme

Checks

  • go vet ./... && go test -race ./...
  • (cd app/src-tauri && cargo check)
  • (cd app && CI=true pnpm install --frozen-lockfile)
  • (cd app && pnpm typecheck:plugins && pnpm check:titles && pnpm check:csp && pnpm check:themes && pnpm test && pnpm build)
  • (cd app && npx tsc -p e2e)
  • (cd app && E2E_PORT=1428 npx playwright test e2e/switchboard.spec.ts)
  • (cd docs-site && CI=true pnpm install --frozen-lockfile && pnpm build)

@vercel

vercel Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
berth Ready Ready Preview Oct 14, 2026 5:49pm UTC
berth-docs Ready Ready Preview Oct 14, 2026 5:49pm UTC

Request Review

sean-brydon and others added 3 commits October 14, 2026 18:34
It now reads like the command palette: type to filter, arrow keys and
enter to open, with Focus above Recent as compact rows. Each row leads
with its agent's state, says Needs you in words, and keeps its controls
out of sight until you hover it. Cmd+S stars, Cmd+E leaves a pickup note,
Tab steps through areas, and a row's menu (right-click, the dots button
or Shift+F10) moves it to an area.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ead clearly

Agent glyphs in the Switchboard are muted, the highlighted row shows
plainly in dark themes (the palette's too), the search and footer sit
above the shell's tint so they read at full contrast, and the footer
keeps to four keys with Tab shown beside the areas it steps through.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sean-brydon

Copy link
Copy Markdown
Collaborator Author

UI pass: from about 4/10 to 8/10

The Switchboard is now a quiet, keyboard-first switcher that sits beside the ⌘K palette. Every feature stays: areas, stars, pickup notes and resume. Pushed as 3 commits: f22bfc8, 8da154c and f6577a6.

Before After
Keyboard highlight Hover actions Row menu
Pickup note Search Empty area

Next to the ⌘K palette:

What changed

  • Search first. The search input matches the palette's. The area tabs are quiet, with "+" as an icon button, and the instructional copy is gone.
  • Rows lead with the agent's state, as the sidebar does. "Needs you" is amber, in words. Agent glyphs are muted (a new muted prop on AgentIcon), so colour belongs to state.
  • Focus rows are two lines, with the pickup note as a quiet second line.
  • Controls appear on hover. The full set is in a row menu (⋯, right-click, ⇧F10): Open, Focus, pickup note, and Move to area or a new area.
  • Keys: type to filter, ↑↓ move, ↵ opens, ⌘S stars, ⌘E edits the note, ⇥ changes area. Esc closes the menu or the field first, then the Switchboard. The footer shows four hints.
  • The highlight reads clearly in dark themes. The same fix applies to the ⌘K palette's CommandItem, in dark only; light is unchanged.
  • The faint search was a layering bug. The popup's tinted ::before layer covered the search, tabs and footer because they weren't positioned. The palette's own footer still has it; making CommandFooter relative would fix that.

Checks

  • tsc, check:titles, check:csp, check:themes, pnpm test (452 tests) and pnpm build pass.
  • e2e/switchboard.spec.ts was rewritten for the keyboard, hover, menu and note flows. It passed 15/15 runs (--repeat-each=5).
  • a11y.spec.ts has 3 failures, on artifact and visual-diff cards (aria-hidden-focus, nested-interactive). They fail the same way on this PR's base, so they're not from this pass.

🤖 Generated with Claude Code

@sean-brydon
sean-brydon merged commit ccc83cf into main Oct 14, 2026
6 of 8 checks passed
@linear-code

linear-code Bot commented Oct 14, 2026

Copy link
Copy Markdown

ENG-6101

This branch was successfully deployed

2 active deployments
Preview – berth-docs — ae02ac29 Deployed Oct 14, 2026 by vercel[bot]
Preview – berth — ae02ac29 Deployed Oct 14, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant