mirror of
https://github.com/block/buzz.git
synced 2026-11-05 00:41:28 +00:00
fix(desktop): bind duplicate mention selections to exact recipients
Extract behavior B from #7114 after the spacing fix. Preserve ambiguous-name rejection across chat, edits, forum and onboarding; keep exact labels through team selection and automatic addressing. Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz> Signed-off-by: Logan Johnson <loganj@squareup.com> (cherry picked from commit 46f9b75bcc3e735d351e0587cefc105e66d6da2c) Signed-off-by: Logan Johnson <loganj@squareup.com> (cherry picked from commit 86b4e6cef624289a6e2c033327a241c2f6031274) Signed-off-by: Logan Johnson <loganj@squareup.com>
This commit is contained in:
@@ -12,3 +12,26 @@ whitespace-run rewrites, internal spaces, and deliberate motion. The ordinary
|
||||
member browser cases in `mention-spacing.spec.ts` test immediate typing and
|
||||
ArrowLeft without requiring remote discovery or invitation; `mentions.spec.ts`
|
||||
also covers clicking chip edges and insertion before existing text.
|
||||
|
||||
## Exact recipient labels
|
||||
|
||||
A selected label is a binding to one exact public key, not a lookup by the latest
|
||||
profile name. Selecting a second identity with the same name reserves a qualified
|
||||
label containing its full key (and, if needed, a collision suffix). Team members
|
||||
reserve labels sequentially. Automatic addressing inserts/restores/removes that
|
||||
registered label, never a different recipient with the same name.
|
||||
|
||||
Manually typed member names with multiple exact-key matches are rejected with a
|
||||
visible instruction to use the mention picker. Chat, edits and standalone forum
|
||||
composition retain their draft and publish nothing on this error. An edit may
|
||||
remove an ambiguous historical label; when the old content cannot be resolved,
|
||||
all recipients in the valid replacement are revalidated. Selection stays bound
|
||||
across profile renames. This does not expand eligibility or change relay
|
||||
revalidation, invitation or publication authorization.
|
||||
|
||||
Coverage: `useMentions.test.mjs`, `useAgentAddressLockPicker.test.mjs`,
|
||||
`submitMessageEdit.test.mjs`, `mention-recipients.spec.ts`, and the existing
|
||||
same-name agent case in `mentions.spec.ts`. The integration-project
|
||||
`onboarding.spec.ts` checks that an ambiguous Fizz mention cannot complete the
|
||||
welcome flow, then selects the exact newly started starter and asserts its sole
|
||||
recipient tag before checking the original completion and layout behavior.
|
||||
|
||||
Reference in New Issue
Block a user