Skip to content

Move thread search into the command palette - #2474

Open
brsbl wants to merge 7 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 7 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 was owned by the sidebar while the quick palette mixed no domain-search model into its command surface. That left thread.search tied to sidebar visibility and provided no reusable boundary between root commands and searchable content modes.

What changed

  • made the palette root command-only, grouped at rest into Threads, Actions, and Plugins, while preserving flat relevance ranking and metadata attribution during queries
  • added a reusable palette shell and mode registration contract, with thread search as the first registered mode entered through the existing thread.search command and binding
  • added one active → draft → archived result list, lifecycle attribution, local draft matching/count derivation, message deep links, split opening, match-window clipping, and the All / Active / Drafts / Archived scope filter
  • implemented one-level Escape behavior and mode/filter reset semantics without adding a keybinding
  • removed the sidebar search field, handler, results, stories, fixtures, and dedicated tests while preserving the public PluginThreadList search contract
  • no wire, daemon protocol, CLI, SDK, plugin API, or keybinding changes

How you verified

  • pnpm exec turbo run test --filter=@bb/app -- --run ... — 14 focused test files, 78 tests passed, covering the palette/root/mode contract, local drafts, match clipping, split state, AppLayout integration, and sidebar regressions
  • pnpm exec turbo run typecheck --filter=@bb/app — passed
  • pnpm exec turbo run lint --filter=@bb/app — passed with 0 errors; oxlint reported the repository's existing warnings, with none in the new palette files
  • node packages/plugin-sdk/scripts/check-npm-version-guard.mjs — passed against Phase 4's current SDK version
  • git diff --check — passed

Visual QA pending

Visual QA was not run because this implementation host is headless. Chrome for Testing, real Safari, and before/after screenshots still need to verify:

  • root grouping at rest
  • flat ranked typing
  • mode entry via thread.search
  • scope dropdown keyboard path
  • esc popping one level
  • sidebar field removal

Fixes: N/A — stacked implementation layer; no issue was supplied.

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
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