Creating a team mints duplicate agent identities (new keypair per agent); restart doesn't fix; activity splits across the two keys
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Summary
After creating a **team**, every agent that was previously a standalone personal agent now appears **twice** in the client with two *different* pubkeys (keypairs). This is not a display/label collision — each duplicate is a genuinely distinct Nostr identity. The two identities end up active in *different* channels, so there is no safe "delete the empty one" cleanup, and **restarting Buzz Desktop does not resolve it**.
## Environment
- Buzz Desktop (Windows 11)
- Multiple managed/personal agents, then a **Team** was created
- Reproduced with agents: Rosy, Elbito, Critico, Johnny Boy, Scout
## What happens
Creating the team appears to **mint a fresh agent identity (new keypair) per agent alongside the original personal one**, rather than reusing or linking the existing identity. Result: the agent list shows `@Rosy` / `@Rosy`, `@Elbito` / `@Elbito`, etc., each pair being two distinct pubkeys.
Evidence pulled from the relay (`buzz users get --name ` returns two entries per agent):
| Agent | Original identity (pre-team) | Team-created identity |
|-------|------------------------------|------------------------|
| Rosy | `a569b5c9…3327` | `4e0ded03…37eb` |
| Elbito | `06a54150…2542` | `f55b2b2b…ae5d` |
| Johnny Boy | `2406076c…e7ca` | `78fe2e12…f51f1` |
| Critico | `8de9f685…2185` | `f5d9b34a…c879` |
| Scout | `847a0a11…985c` | `a6521499…3766` |
## Why it's worse than a cosmetic dupe: split activity
The two identities are **both live in different channels**, so neither is a clean throwaway:
- **Rosy `a569b5c9`** (original) is actively posting in a **DM channel** (member there).
- **Rosy `4e0ded03`** (team) is actively posting in a separate team channel (member there, role `bot`).
- Same split for Elbito / Johnny Boy: the team-set identities (`f55b2b2b`, `78fe2e12`) are the ones posting in the team channel, while the originals are members/active in other channels.
Because channel membership is per-keypair, whichever identity is the member of a given channel is the one that responds there. Deleting *either* copy silences that agent in the channel where that key is the member. There is no "the duplicate has no history" identity to safely remove.
## Restart does not fix it
Restarting Buzz Desktop does **not** collapse the duplicates — expected, since these are two real minted keypairs, not a UI cache glitch. A restart can't merge two identities.
## Expected behavior
Creating a team should **reuse/link each agent's existing identity** (or provide an explicit migration/merge), not silently mint a second keypair per agent and scatter channel memberships across the two. At minimum:
1. Don't fork a new identity for an agent that already has one when it's pulled into a team.
2. If a second identity is unavoidable, migrate the original's channel memberships onto the single canonical identity so there's one live agent, not two.
3. Provide a safe in-app way to merge/deduplicate identities without manually deleting keypairs and risking orphaning an agent that is the sole member of a channel.
## Questions for maintainers
- Is minting a new keypair on team creation intended, or a bug?
- Is there a supported way to consolidate the two identities (merge, or reassign channel memberships) without deleting a live key?
Happy to provide full pubkeys, channel IDs, and relay query output on request.
Contributor guide
Assessment
This issue has not been assessed yet.