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.
- Create a team containing managed agents A, B, C (keyed).
- Quit the app; remove A/B/C's entries from
managed-agents.json; relaunch.
- 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.
Summary. If managed-agent definitions are deleted from
managed-agents.jsonwhile 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 — withstart_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.
managed-agents.json; relaunch.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.