Skip to content

Move thread search into the command palette - #2474

Open
brsbl wants to merge 14 commits into
bb/sidebar-splits-thr_2e2gbjx943from
bb/build-search-palette-layer-thr_z45dnp4jyw
Open

Move thread search into the command palette#2474
brsbl wants to merge 14 commits into
bb/sidebar-splits-thr_2e2gbjx943from
bb/build-search-palette-layer-thr_z45dnp4jyw

Conversation

@brsbl

@brsbl brsbl commented Aug 26, 2026

Copy link
Copy Markdown
Collaborator

What was wrong

Thread search lived in the sidebar while the command palette had no reusable mode boundary. Root commands and searchable content were mixed, and thread search disappeared with the sidebar.

What changed

  • groups the palette root at rest into Threads, Actions, and Plugins
  • switches to one flat relevance-ranked list while typing
  • adds a dedicated Threads mode with one unlabelled active → draft → archived list and All / Active / Drafts / Archived scope
  • implements keyboard scope selection, focus transfer, one-level Escape, and scope reset
  • removes the app-owned sidebar search field while preserving plugin-provided thread-list search contracts

No wire, daemon protocol, CLI, SDK, plugin API, or keybinding contract changes are introduced by this layer.

Visual evidence

Exact comparison: fd1c3ea60b4ffeafefeab4c5bff8b893d83645314a70ddfa811e1cbc2e9f59be17beb4b1ce84d6f8.

Before — exact base fd1c3ea60b4ffeafefeab4c5bff8b893d8364531

The palette is an undifferentiated command stream.

Before — ungrouped command palette

After — exact head 4a70ddfa811e1cbc2e9f59be17beb4b1ce84d6f8

The same root state is grouped by Threads, Actions, and Plugins.

After — grouped palette root

After — flat ranked query

After — typed query uses one flat ranked list

After — Threads mode

After — one unlabelled lifecycle-ordered thread list

How you verified

  • Google Chrome for Testing 151.0.7922.71, exact branch web apps from scripts/bb-dev-app, light theme, /, 1440×900.
  • At root, observed exactly three buckets; decorative leading icons are absent there. In Threads mode, the only visible leading icon is the magnifier in the Threads mode chip.
  • Typed tog and observed one flat ranked result list without bucket headings.
  • Used Tab to enter Threads scope, ArrowDown to change All → Active, and Enter to focus search. Escape returned to root, re-entry reset scope to All, and the next Escape closed the palette.
  • Confirmed the app-owned sidebar search field was absent. No page or console errors were recorded.

Fixes: N/A — Updated Sidebar command-palette search layer.

BB-Thread-ID: thr_z45dnp4jyw

AGENT GENERATED

brsbl added 5 commits August 26, 2026 10:50
…43' into bb/build-search-palette-layer-thr_z45dnp4jyw

# Conflicts:
#	apps/app/src/components/sidebar/AppSidebar.tsx
#	apps/app/src/components/sidebar/ProjectList.tsx
#	apps/app/src/components/sidebar/SidebarThreadSearchPanel.test.tsx
@brsbl
brsbl changed the base branch from bb/sidebar-lifecycle-drafts-search-thr_2e2gbjx943 to bb/sidebar-splits-thr_2e2gbjx943 August 26, 2026 11:35
brsbl added 7 commits August 26, 2026 14:03
…palette-layer-thr_z45dnp4jyw

# Conflicts:
#	apps/app/src/components/commands/CommandPalette.test.tsx
#	apps/app/src/components/sidebar/AppSidebar.tsx
#	apps/app/src/lib/command-palette/palette-app-commands.test.ts
# Conflicts:
#	apps/app/src/app.css
#	apps/app/src/components/commands/CommandPalette.test.tsx
#	apps/app/src/components/commands/CommandPalette.tsx
#	apps/app/src/components/layout/app-chrome-selection.test.tsx
#	apps/app/src/components/sidebar/AppSidebar.tsx
#	apps/app/src/components/sidebar/ProjectList.tsx
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