Skip to content

Fuzzy search conversations by title (browser palette + Cmd+Shift+F dialog) #336

Description

@germanescobar

Context

Right now there's no way to find an existing conversation other than scrolling through the list. For users with long histories (or multiple projects/worktrees) this becomes a real friction point — we should be able to jump to a conversation by typing a few characters of its title.

Closely related to #237, which proposes splitting the command surface into an action palette and a browser palette for navigation. This issue defines what the browser palette should be able to find, in particular conversations.

Proposal (v1)

Add fuzzy search by conversation title as the first search capability. Keep it deliberately small and shippable:

  • Match against the conversation title only (v1). Transcript search and metadata filters are intentionally out of scope for this issue.
  • Fuzzy matching in the existing style (e.g. fzf-style subsequence match) — case-insensitive, score-ranked.
  • No backend indexing required: the conversation list is already loaded for the browser palette, so matching happens in-memory.

Surfaces

Expose the search in two places, so it's always one keystroke away:

  • Browser palette (Cmd+P) — conversations appear as the user types, mixed in with projects, worktrees, and sessions. This builds directly on Add command palette for actions + separate browser for navigation #237 and is the primary surface.
  • Dedicated search dialog (Cmd+Shift+F) — opens a focused, full-screen-ish fuzzy search scoped to conversations only. Useful when the user knows they're looking for a conversation and wants maximum result density.

The dedicated dialog is a thin shell over the same matching code as the palette entry.

Acceptance criteria

  • Fuzzy-matching algorithm is reused between the browser palette and the dedicated dialog
  • Browser palette (Cmd+P) shows conversations interleaved with projects, worktrees, and sessions, ranked by fuzzy score against the title
  • Dedicated conversation search dialog opens via Cmd+Shift+F and searches titles only
  • No new backend indexing or persistence — matching operates on the already-loaded conversation list
  • Empty/no-match states are handled (clear message, no crash)
  • Document the keybindings and how the dedicated dialog relates to the browser palette

Out of scope (v1)

  • Full-text search across conversation transcripts
  • Filters by project, worktree, status, date range, model, etc.
  • Saved searches or search history
  • Server-side indexing or pagination across very large histories (the in-memory approach should be revisited if conversation lists grow large enough to make this noticeable)

These can be follow-up issues once v1 ships and we have feedback on whether the title-only match is enough.

Related

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions