Archiving a Desktop-managed agent permanently deletes its local runtime config - unarchive does not restore the agent
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
**Environment:** Buzz Desktop 0.5.17, macOS 26.5.2, hosted relay (`*.communities.buzz.xyz`)
**Steps:**
1. Create a Desktop-managed agent (local backend, buzz-acp).
2. Archive it (NIP-IA `kind:9035`, owner-signed).
3. Unarchive it - via the profile's "Unarchive agent" action or CLI (`kind:9036`).
**Observed:** The relay's `kind:13535` snapshot updates correctly both ways. But on archive, the agent's definition is removed from the Desktop's local `managed-agents.json`, and nothing in the app's retention store keeps a copy. After unarchive, the identity is live on the relay again but the Agents page card never returns - even after a full app restart. The agent's runtime config and key binding are unrecoverable; the only path forward is recreating the agent under a new identity, orphaning the old pubkey's history.
**Expected:** Archive should be reversible, in the spirit of NIP-IA's anti-shadowban design - either keep the local definition flagged as archived, or rebuild it on unarchive.
**Secondary UX issue:** an archived agent's profile (where the only "Unarchive agent" control lives) is unreachable unless the agent happens to be a member of some channel, since archived identities are hidden from search, the roster, and autocomplete. If the agent is in no channel, the owner has no UI path to unarchive at all - we had to add it to a channel via the CLI just to reach the button.
Contributor guide
Research direction
Trace the Desktop archive and unarchive paths around managed-agents.json, the retention store, and the profile’s “Unarchive agent” control; also inspect the CLI kind:9036 entry point. Done means archiving preserves or reconstructs the local definition and key binding, the Agents page restores the card after unarchive, and an agent with no channel membership still has an unarchive path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100