block / block/buzz

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

Open
#3,953 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.