fix: channel templates should not silently omit remote managed agents from the roster
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## 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.
Contributor guide
Research direction
Start with the `buzz channels create --template` entry point and trace how `TemplateAgentRoster` entries become members and how unresolved entries are reported in `skipped`. Compare the related `buzz channels add-member` and `buzz channels members` flows. Done means unresolved required roster entries cannot look like a successful template application and the result is machine-readable for acknowledgement or failure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100