Files
buzz/docs
Logan Johnson 1c33575769 🤖 fix(desktop): consolidate fresh mention action admission and stable choices (#7191)
🤖
## Summary
Keeps @ mention choices accurate and safe while membership and access
change.

- **Membership changes reach @ search immediately.** Additions,
removals, and channel creation refresh the @-mention directory right
away; bursts coalesce and queued work is dropped on community or
identity switch.
- **The list you see is the list you choose from.** While a suggestion
list is open, rows never move or change: Enter, Tab, and clicks pick the
identity shown, even when agents share a name. Availability labels
(Checking → Mention / Unavailable, with Retry) resolve in place, never
moving your selection.
- **Your choice is re-checked when you make it.** Selecting or pinning
freshly re-checks that the agent can be mentioned here ("Checking
access…"); changed access leaves the draft untouched with a clear
message, failed or timed-out checks fail closed without clearing the
draft; selecting again retries. Removing or unpinning needs no
permission check.
- **Choosing someone is not a send permit.** Publication still
independently re-validates authority for the destination, so an agent
revoked after selection cannot receive your message.
- **Recent choices behave predictably.** Same-name agents are marked
ambiguous; recent choices rank first per viewer and channel (never a
permission; cleared on community switch); pending mention actions are
abandoned on edit, navigate, or submit.

Part of the mention-editor stack: #7190 → this PR → #7192 (review in
order).

### Related issue
Continues the merged mention-editor work from #7124 and #7128; no
separate tracking issue.

### Testing
- Unit suites drive the production chat and forum composers: membership
refresh, stable choices with fresh re-check, native-edit abandonment,
selection history.
- Extended browser specs cover reorder-stable choices and exact
same-name selection.
- All PR checks pass on this head. Limits: revalidation/revocation
coverage is unit-level with mock IPC — no native Tauri/WebKit,
VoiceOver, IME, or live-relay claim.

Signed-off-by: Logan Johnson <loganj@squareup.com>
Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
2026-09-11 13:28:07 -04:00
..
2026-07-21 17:16:23 +00:00