Skip to content

Provider-backed managed agents have no management surface on the owner's other desktops — sync agent records across devices #4605

Description

@gldnlab

Motivation

Anyone who runs Buzz Desktop on more than one machine and uses a buzz-backend-* provider hits this. I self-host a relay and deploy agents to an always-on cloud VM through a custom provider plugin. The agents themselves are healthy from every device — they live on the VM and in relay channels. But the management of those agents is pinned to the single desktop that created them: managed-agent records (including backend/backend_agent_id/provider_config) live only in that machine's local app data, and agent_snapshot.rs deliberately excludes backend fields from what's published to the relay. On every other desktop I own there is no card, no deploy/shutdown, no model info — and if the originating machine's local record is lost, a healthy remote deployment is permanently orphaned (no undeploy in the v1 provider protocol, per the deferral note in commands/agents.rs). The durable-agent benefit of remote backends inverts: the agent outlives any laptop, but its controls don't.

Proposed solution

Owner-scoped sync of managed-agent records through the relay, so the same owner signed in on another desktop can see and manage their provider-backed agents:

  • A NIP-44 owner-encrypted record event carrying the non-secret management fields (provider id, backend_agent_id, provider_config, runtime/model), with key material either included under owner encryption or explicitly re-paired per device.
  • When a synced record references provider X and buzz-backend-X isn't installed locally, degrade gracefully: show the card read-only with a hint ("managed via provider X — install buzz-backend-X to manage from here") instead of showing nothing.

Alternatives considered

  • Install the plugin on every machine: doesn't help — the records still don't sync, so other desktops can't see the agents to manage them.
  • Designate one "admin" machine: workable discipline, but fragile (single point of failure for management) and surprising to users who expect account-level state.
  • Manage out-of-band over SSH: what I do today; works, but bypasses the UI the feature exists to provide.

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions