#37 — Global search + command palette
P2 differentiator batch: global cross-module search (clients, documents, tasks, forms, messages), a staff command palette (cmd-K), breadcrumb depth in the shell, and a recently-active-clients rail. The portal-shell contract notes breadcrumb depth/search as the known Beta gap.
3 Comments
Sign in to comment
·about 2 months agoShipped 2026-07-09 on master (merge e445931). Portal ⌘K palette with contact-scoped global search across tasks, documents, forms, invoices and messages, via requireContactClient + module-owned APIs. 21/21 tests incl. tenant-isolation negatives. Staff palette unchanged. E2E sweep deferred (repo-wide policy for this wave).
·2 months agoDaniel re-raised this during the 2026-07-05 portal walkthrough: clients should be able to find a to-do or a message by its content. His guidance: only build it when it will not confuse or overload anything — otherwise keep it on the roadmap. Recommended shape when we pick it up: Postgres tsvector GIN indexes per module (tasks, messages, document requests, forms, invoices), tenant- and client-scoped server-side, surfaced as a Cmd-K palette on both surfaces. No extra infra, indexed queries only.
Closed during the 2026-08-23 GitHub migration: shipped 2026-07-09 (merge e445931) — portal cmd-K contact-scoped global search, 21/21 tests incl. tenant-isolation negatives.