Secondary Desktop on the same identity auto-seeds/hosts the builtin Welcome Team, creating duplicate ghost agents that hijack @mentions
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
# Bug: Secondary Desktop on the same identity auto-seeds/hosts the builtin Welcome Team, creating duplicate ghost agents that hijack @mentions
**Environment**
- Buzz Desktop v0.5.14 (primary: macOS, always-on headless host; secondary: Windows x64)
- Same Nostr identity signed into both Desktops
- Hosted relay
**Summary**
When a second Desktop signs in with an identity whose agents are already hosted on a first Desktop, the second Desktop independently seeds and runs the builtin "Welcome Team" (Fizz/Honey/Bumble) with brand-new keypairs. These duplicate agents join the channel and capture `@mentions` typed on that device, so mentions never reach the real, configured agents on the primary host. The duplicates are unconfigured and only emit `config-nudge` / `BUZZ_ACP_SETUP_PAYLOAD ... unknown variant 'missing_binary'` errors.
**Steps to reproduce**
1. Set up Desktop A (fully configured agent host) with the builtin Welcome Team.
2. Install Desktop B on another machine, sign in with the SAME identity.
3. In a shared channel, `@mention` an agent (e.g. `@Fizz`) from Desktop B.
**Expected**
Desktop B behaves as a client: the mention reaches the existing agent hosted on Desktop A, which replies. No second agent instance is created.
**Actual**
Desktop B seeds its own Fizz/Honey/Bumble (new keys, e.g. a duplicate Fizz alongside the real one), auto-joins them to the channel, and the local unconfigured copy answers the mention with setup-error nudges. The real agents never see the mention.
**Cannot be worked around by hand**
- No "run agents on this device" / disable-hosting toggle exists.
- Deleting `managed(-|_)agents.json` re-seeds on next launch.
- GUI delete is blocked by "Fizz is still assigned to a managed agent" (persona vs managed-agent), and the builtin team (`teams.json`, `is_builtin: true`) re-seeds regardless.
- `buzz channels remove-member` is owner-only and, even when run, the duplicate re-seeds on relaunch.
**Proposed fix (any of)**
1. A secondary Desktop on an identity that already hosts agents should default to **client-only** (no auto-seed, no host).
2. Expose a per-device **"host agents on this device"** toggle (off by default on non-primary devices).
3. Make agent hosting a **single-writer lease** per identity so only one Desktop hosts a given agent, and others act as clients.
**Impact**
Multi-device use (a very common expectation) is currently broken for anyone who hosts agents: the second device cannot reliably talk to its own agents, and it litters channels with duplicate agents and error nudges.
Contributor guide
Research direction
Start by locating the Desktop startup and agent-hosting logic that reads managed_agents.json and teams.json, then reproduce the secondary-login flow described here. Done means a second Desktop does not seed or host duplicate Fizz, Honey, or Bumble agents, and @mentions from it reach the existing primary-hosted agents without setup-error nudges.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, distributed-systems
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100