Desktop silently mints new agent keypairs for team/persona references to deleted managed agents
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
**Summary.** If managed-agent definitions are deleted from `managed-agents.json` while a team (or persona catalog entry) still references the agent names, the desktop app mints brand-new keypairs for the missing names on next launch — with `start_on_app_launch=true` — and connects them to the active community relay.
**Impact.** New identities appear under familiar display names with fresh keys. They pass no ownership-continuity check, are indistinguishable from the originals to other members at a glance, and act autonomously (in our case one ran ~19h and re-created scheduled jobs before containment). Key-level duplicate detection cannot catch this because the keys are genuinely new — this is name-level identity duplication.
**Repro.**
1. Create a team containing managed agents A, B, C (keyed).
2. Quit the app; remove A/B/C's entries from `managed-agents.json`; relaunch.
3. Within ~1 minute the app mints new keypairs for A, B, C (observed on a build slightly before `df9e773a1`; on current builds we verified only keyless builtin drafts re-seed once the referencing team is also deleted — the minting path appears tied to the dangling team/persona reference).
**Expected.** A dangling team/persona reference should surface as a broken reference and prompt the owner — never silently create new signing identities with autostart.
**Suggested fix.** Treat identity minting as an explicit owner action everywhere; on resolve-failure, mark the team entry unresolved and require confirmation to re-create.
Contributor guide
Research direction
Start by tracing team and persona reference resolution after managed-agents.json is loaded, then follow the keypair minting path on the next app launch. Reproduce the dangling-reference case with deleted managed-agent entries and verify that it becomes unresolved, requires owner confirmation to recreate, and never autostarts a newly minted identity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100