PR 12469 · type @ten, press Tab: search narrows to tenants

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.

1 · Before (main): "@ten" is just text

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.

Before (main): "@ten" is just text
Provenance. Captured from commit 901f227628, read from the worktree the server was started from (/Users/miniclaw/code/PropFlow/propflowai-sr-search-at-tags-main) — the server could not report its own commit, so this is the weaker of the two sources. That commit is already merged into origin/main.

2 · After: "@ten" offers @tenants

This branch: an @prefix shows a list of matching tags.

Accessibility

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.

After: "@ten" offers @tenants

3 · Tab turns it into a removable chip

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.

Tab turns it into a removable chip

4 · With the chip on, only tenants come back

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.

With the chip on, only tenants come back

5 · @settings inside Settings is unchanged

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.

@settings inside Settings is unchanged
PropFlow Docs