Description
Universal Search and Command Palette is the shell-wide launcher for finding knowledge, invoking actions, and navigating modules. Users open a single keyboard-first surface and either type a natural query, prefix an action mode, or switch to the entitled module roster. Search results use a two-pane layout with scopes, lenses, filters, recent queries, recent rows, result previews, and direct open-in-peek actions.
The palette is intentionally non-modal: it sits over the interactive app without presenting itself as a blocking dialog or trapping focus. Search requests are debounced and issued only in search mode; Actions and Modules resolve locally from the same runtime registry that controls the shell. Missing result metadata is omitted rather than replaced with plausible-looking values, and degraded search still communicates what remains usable.
Selling Points
- Collapses “find,” “go,” and “do” into one learned shortcut, speeding up both occasional and expert use.
- Searches across Dotabases instead of forcing users to remember which module or schema holds an item.
- Shows previews and recent destinations before navigation, helping users distinguish similar results without losing context.
- Keeps command availability aligned with live entitlements and registered modules, avoiding dead actions and inaccessible destinations.
- Preserves keyboard flow while remaining compatible with the interactive page behind it.
User Story
A researcher presses the global shortcut, searches for “customer onboarding decision,” narrows the scope to Memory Bank, previews the strongest result, and opens it in a side peek. Without closing their current Chat, they then switch the palette to Actions and start a new conversation using the selected context.
Extension Surface
The feature is extensible through registered action and module declarations. apps/web/src/modules/registry.tsx contributes entitled module actions, and apps/web/src/modules/shell/search-palette/ActionsModeResults.tsx renders the composed action catalog. These are designed in-repo seams rather than an independently documented external palette-plugin interface, so the capability is rated extensible.
Capabilities & Limits
- Searches workspace rows with scope, lens, recency, preview, and filter controls.
- Runs registered actions and navigates the live entitled module roster.
- Opens compatible rows in a shared detail peek without abandoning the current page.
- Limit: action and module modes do not run universal-search requests, and results cannot display source metadata the search response did not actually provide.
Implementation Map
apps/web/src/modules/shell/search-palette/SearchPalette.tsxapps/web/src/modules/shell/search-palette/SearchResultsPaneConnected.tsxapps/web/src/modules/shell/search-palette/ActionsModeResults.tsxapps/web/src/modules/shell/search-palette/open-in-peek.ts