Cursor-style tab-to-tag in the global search. Part 1: @settings generalized into a tag model, plus @tenants.
26 Sept 2026 · branch sr-search-at-tags-p1 · captured against propflow-stage · at d26e08e630+local
Data note. Every name and balance below comes from propflow-stage, which is anonymized by construction (ADR-0097/0110 — phones in the impossible +1000 NPA, emails @example.test). The identical capture against prod would carry real tenants' names and balances and is not safe to attach anywhere, which is why the generator refuses to run against one.
On main, @ten is just a query. Nothing narrows search outside Settings.
Asserted in the captured DOM — Search across pages, sections, and your data. Unscoped footer: no tag offered.
This branch: an @prefix shows a list of matching tags.
The input is a combobox pointing at the listbox; the highlighted option is what Tab or Enter applies. Arrow keys walk the options; Shift+Tab still moves focus.
Asserted in the captured DOM — @tenants · Search tenants only. Tag list and hint rendered.
Tab turns the text into an @tenants chip. Its ✕ is named Remove tenants filter; Backspace in the empty box removes it too.
Asserted in the captured DOM — @tenants · Type a name to search tenants. · Searching tenants only. Chip, hint and scoped footer.
Same /api/search, filtered to tenants on the client. No new backend.
Asserted in the captured DOM — @tenants · TENANTS · Searching tenants only. Chip, Tenants header, scoped footer.
Inside Settings, @settings still starts on. It is now one row in the same tag table.
Asserted in the captured DOM — @settings · Searching settings only. Settings chip and footer.