Complete permission-aware native search indexing
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# Search Interface Pattern Migration
|
||||
|
||||
This is the bounded interface-pattern evidence for GovOPlaN Search. Search owns
|
||||
presentation and aggregation; source modules continue to own result data and
|
||||
authorization, and optional external engines remain provider capabilities.
|
||||
|
||||
| Surface | Task and archetype | Consequence and state contract |
|
||||
| --- | --- | --- |
|
||||
| Title-bar search and anchored overlay | Global or context-sensitive focused lookup | F3 and Ctrl/Cmd+K open the same focus-contained Core dialog. Arrow keys move through the listbox, Enter opens the selected result, Escape closes it and restores focus. |
|
||||
| Overlay filters | Progressive-disclosure filter popover | Module and resource filters only narrow authorized results. Active filters stay visible and removable by keyboard. |
|
||||
| `/search` | Full-page search/results fallback | Query and filters are URL-stable. Loading, empty, provider-partial, failed, and paged states remain inside the result region. |
|
||||
| Result entries | Permission-filtered list-detail destinations | A source module supplies the title, safe summary, breadcrumbs, and destination. Search does not infer or bypass source authorization. |
|
||||
| Administration > Search index | Operator table and bounded recovery actions | Operators inspect source coverage and queue health, process pending changes, reconcile module activation, and advance one bounded rebuild page at a time. Quarantined work remains visible. |
|
||||
|
||||
All surfaces use Core buttons, icon buttons, dialog, alerts, loading, scrolling,
|
||||
and documentation-help primitives. Provider diagnostics are partial-state
|
||||
evidence: safe results remain usable and a failing provider is identified
|
||||
without exposing source data. Search has no destructive action. The responsive
|
||||
layout collapses filters and results at narrow widths, and result activation is
|
||||
available without pointer interaction.
|
||||
|
||||
Verification:
|
||||
|
||||
- `npm run test:search-overlay`
|
||||
- `npm run test:interface-pattern`
|
||||
- the Core TypeScript graph, structural localization audit, theme check, module
|
||||
permutations, and full-product bundle budget
|
||||
- Search backend and manifest tests
|
||||
Reference in New Issue
Block a user