Skip to content

Add long-press-to-talk on session search box (uses configured dictation provider) #1594

Description

@heavygee

Context

Session search (web/src/components/SessionList.tsx) already got a clear/X button via #1544/#1545. A prior local attempt at long-press-to-dismiss on the same control stalled before ever reaching a PR (worktree session-search-longpress-dismiss, uncommitted, superseded by the X button) but its useLongPress wiring on the collapsed search trigger is reusable groundwork.

Ask

Repurpose that wiring: long-press the collapsed search trigger should start realtime dictation into the search query, using whichever dictation provider the operator currently has configured in Settings (useVoiceInputPreferences.ts / realtimeTranscription.ts) — cloud or Browser on-device, whatever is selected. Do not force or special-case any specific provider.

Scope

  • Reuse worktree ~/coding/hapi/worktrees/session-search-longpress-dismiss (branch fix/session-search-longpress-dismiss) — has existing uncommitted useLongPress wiring on the search trigger button to build from.
  • Change the long-press action from "clear query" to "start dictation" (short tap still expands to text search as today).
  • Long-press should be enabled regardless of whether there is already a query (unlike the old dismiss-only gating).
  • Reuse the existing realtime dictation hooks (useDictation/useRealtimeDictation) rather than building new STT plumbing — this is a UI wiring task, not a new STT backend.
  • Standard gates apply: typecheck, tests, Playwright + visual evidence before operator dogfood.

Not in scope

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