Background
The redesigned topbar shows a ⌘K pill but the underlying search box is non-functional, gated behind NEXT_PUBLIC_SEARCH_ENABLED (default false). This is a known dead affordance.
Two paths
Option A — Ship it
- Full-text search across agents, messages, domains.
- Implementation: Postgres
tsvector on messages.subject, messages.body_text, agents.email, domains.domain. Materialized indexes per type.
- Or external (Meilisearch, Typesense) if we want fuzzy + typo-tolerant out of the box.
- ⌘K opens a modal palette (recent items + live results, keyboard-driven).
- Effort: M (Postgres tsvector path) or L (external service).
Option B — Remove the affordance
- Strip the ⌘K pill from the topbar.
- Remove the
NEXT_PUBLIC_SEARCH_ENABLED flag.
- Effort: XS.
Recommendation
Decide based on product-led signal: are users asking for cross-resource search, or is the topbar pill just visual noise today? If the latter, Option B is the honest call.
Source
BACKEND_TODO.md #13 (deferred bucket).
Background
The redesigned topbar shows a ⌘K pill but the underlying search box is non-functional, gated behind
NEXT_PUBLIC_SEARCH_ENABLED(default false). This is a known dead affordance.Two paths
Option A — Ship it
tsvectoronmessages.subject,messages.body_text,agents.email,domains.domain. Materialized indexes per type.Option B — Remove the affordance
NEXT_PUBLIC_SEARCH_ENABLEDflag.Recommendation
Decide based on product-led signal: are users asking for cross-resource search, or is the topbar pill just visual noise today? If the latter, Option B is the honest call.
Source
BACKEND_TODO.md #13 (deferred bucket).