block / block/buzz

Creating a team mints duplicate agent identities (new keypair per agent); restart doesn't fix; activity splits across the two keys

Open
#5,360 4 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.