@mention picker includes duplicate out-of-channel agents and moves while selecting
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
> [!IMPORTANT]
> Do not include security vulnerabilities in a public issue. [Report them
> privately through a GitHub security advisory](https://github.com/block/buzz/security/advisories/new).
**Describe the bug**
In a channel or thread composer, the `@` mention picker mixes current channel members with agents that are **not in the current channel**. When multiple agent identities use the same display name but have different pubkeys, they appear as several nearly identical rows.
The list also repeatedly reorders and/or scrolls while it is open. The target moves while I am trying to select it, so it is difficult to mention the intended person or agent. The combination of channel members, out-of-channel agents, duplicate names, and a moving list is very confusing.
**Steps to reproduce**
1. Have multiple agent identities with the same display name but different pubkeys; at least some of them are not members of the current channel.
2. Open a channel or thread composer.
3. Type `@` (or open the mention picker).
4. Observe that several same-named agents marked `agent · not in channel` are mixed into the list.
5. Keep the picker open and try to scroll or select a result.
6. Observe that the candidates reorder and/or the list scroll position changes, causing the intended target to move.
**Actual behavior**
- Out-of-channel agents are mixed with current channel members.
- Different agent identities with the same display name are hard to distinguish; the pubkey suffix is not a useful primary discriminator for most users.
- The list moves while the user is interacting with it, making both pointer and keyboard selection unreliable.
The blue outline highlights examples of the confusing duplicate, out-of-channel agent rows:
**Expected behavior**
- Keep the candidate order and scroll position stable while the picker is open. If data refreshes, preserve the selected item by its stable identity.
- Prioritize current channel members and do not mix out-of-channel agents into the main list. Hide them by default, show them only after an explicit search, or place them in a clearly separated `Other agents` section.
- If separate same-named agent identities must remain selectable, show a stable, human-readable discriminator such as channel membership, runtime/setup, owner, or status. The pubkey can remain secondary detail.
- It should be easy to select the intended person or agent without the target moving.
Is showing every locally managed agent even when it is outside the current channel intentional? If so, the picker still needs clearer grouping and a stable interaction model.
**Version and platform**
- Buzz version: unknown (browser-hosted UI)
- OS: macOS, Chrome
**Logs / additional context**
No relevant logs.
Possibly related:
- #7251 — identities that should not be mention targets appear in the picker
- #2648 — multiple same-named agent identities with different pubkeys
This issue focuses on the user-facing mention-picker confusion and selection instability, even if keeping distinct pubkey identities is intentional.
Contributor guide
Assessment
This issue has not been assessed yet.