mirror of
https://github.com/block/buzz.git
synced 2026-10-28 13:01:10 +00:00
🤖 ## 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>