Skip to content

fix: channel templates should not silently omit remote managed agents from the roster #3953

Description

@dschwartzAI

Problem

A channel template can contain an agent roster expressed as Desktop persona/team IDs. When the intended agents are long-running provider/VPS identities rather than Desktop persona instances, buzz channels create --template still creates the channel and applies its metadata/canvas, but no matching member is added for those roster entries.

The command currently reports unresolved entries in skipped, but roster omission is not treated as an incomplete template application. In Desktop/operator use this looks like a successful template creation while the people/agents expected to receive mentions are absent. The failure is easy to miss and leaves workstream handoffs open.

This is distinct from #2728: groups would make bulk membership easier, but existing templates still need deterministic behavior when their saved roster cannot resolve.

Reproduction

  1. Run a managed agent on a remote/VPS provider as a stable Nostr pubkey that is not represented by a local Desktop persona instance.
  2. Save a channel template whose roster refers to the expected persona/team.
  3. Create a channel with that template.
  4. The channel, canvas, visibility, and description are applied, but the remote agent is absent. An unrecognized team ID fails loudly; an unresolved persona entry is only returned as skipped.

Expected

At least one of:

  • support direct member/agent pubkeys in TemplateAgentRoster, so provider-backed identities can be rostered deterministically; or
  • make unresolved requested roster entries an explicit incomplete/failure result requiring acknowledgement, rather than a successful template application.

The strongest flow is atomic from the operator perspective: create → resolve/add requested members → verify the resulting roster, with a machine-readable failure if any required member is missing.

Current safe workaround

Leave the template roster empty, apply its channel/canvas settings, then add the required pubkeys explicitly with buzz channels add-member and verify them with buzz channels members before declaring channel creation complete.

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