block / block/buzz

Managed agents can create private channels hidden from their human owner

Open
#5,329 0 comments 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

## Summary

When a managed agent creates a private channel, Buzz adds the agent identity as the channel owner but does not add the agent's registered human owner. The human owner therefore cannot discover, read, or recover the channel even though Buzz recognizes the same agent-owner relationship for other administrative operations.

## Expected behavior

A private channel created by a managed agent should transactionally include both:

- the managed agent as an owner
- the agent's registered `agent_owner_pubkey` as an owner

The relay should not acknowledge channel creation if those initial memberships cannot be established.

## Actual behavior

The managed agent is the sole channel owner. Its human owner cannot see the channel because private-channel discovery is membership-based. Other managed agents and desktop identities also cannot repair the membership because the relay correctly rejects non-member administration.

## Impact

- A managed agent can create operational state hidden from its managing human.
- The human cannot discover or recover the private channel through the normal UI.
- Agent ownership authority and channel visibility have inconsistent semantics.

## Root cause

Channel creation bootstraps only `created_by` in `channel_members`. It does not look up `users.agent_owner_pubkey` when `created_by` is a managed agent.

## Proposed fix

At the database transaction boundary, bootstrap the creator and—when present—the creator's registered `agent_owner_pubkey` as owners. Apply this to both generated-ID and client-supplied-ID channel creation paths, with regression coverage for private channels.

Contributor guide

Open the contributing guide

Research direction

Start by locating the relay's database transaction for channel creation and compare the generated-ID and client-supplied-ID paths. Inspect how channel_members is bootstrapped from created_by and how users.agent_owner_pubkey is available; done means both identities are owners for managed-agent private channels and creation is not acknowledged when either membership cannot be established, with regression coverage.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.