Skip to content

Grey out opening a private channel that has other members - #3145

Draft
loganj wants to merge 1 commit into
mainfrom
loganj/private-open-guard
Draft

loganj wants to merge 1 commit into
mainfrom
loganj/private-open-guard

Conversation

@loganj

@loganj loganj commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The relay will refuse to make a private channel or Solo chat open when it has, or had, a member other than you and your own agents (Refuse opening a private channel that has other members buzz#9307). Before this change the app offered Public and View only anyway, and the change failed after you picked one.
  • Now, when the app can tell that such a member is present, it greys out Public and View only with the reason "Has other members. Create a new public channel instead." This covers General access in Manage members (channels and Solo chats) and in Convert to channel.
  • Sharing a Solo chat that has another person in it now stops with "This chat has other members, so it can't be shared. Create a new channel instead." It no longer saves an access change the relay would refuse.
  • Private chats and channels that hold only you and your agents can still be opened, as before.

Details

  • The relay decides. The app only predicts what the relay will do, and it greys out the options only when it has evidence:
    • A member that is in your agent list is yours.
    • A member whose verified owner is someone else blocks.
    • A member whose profile has loaded with no agent tag counts as a person and blocks, but only once your agent list has fully loaded.
    • A member whose profile has not loaded, or an agent with no verified owner, does not block. If the relay refuses, the existing error appears.
  • Known limitation: if one of your own agents has a profile with no agent tag and is missing from your agent list, the app greys out opening even though the relay would allow it. You can still create a new channel.
  • The app sees only current members. If a removed member makes the relay refuse, the options stay enabled and the relay's error appears.
  • The check re-runs when profiles, owner verification or your agent list change. An owner can be verified after the profile loads, and that does not create a new profile snapshot.
  • docs/buzz-help.md explains the rule.

Screenshots

A private channel with another person, in Manage members:

Manage members for a private channel with another person General access menu with Public and View only greyed out

A private Solo chat with another person: Share, then General access:

Solo chat share access Solo chat General access with Public and View only greyed out Solo chat share refused because the chat has other members

The same chat in Convert to channel:

Convert to channel with View only and Public greyed out

Testing

  • Unit tests for the prediction, including an unloaded profile, an unverified agent, an agent list still loading, and owner verification that arrives after the profile.
  • Component tests for General access, Convert to channel and Share.

🤖 Generated with Claude Code

The relay refuses to make a private channel or chat open while it has a
member who is neither the person changing it nor one of their own agents.
General access and Convert to channel now disable View only and Public
in that case and say why. Sharing such a Solo chat stops before the
access confirmation with the same reason.

Co-authored-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Logan Johnson <loganj@squareup.com>
@loganj
loganj force-pushed the loganj/private-open-guard branch from 5eb929b to 5a50f27 Compare November 9, 2026 22:53

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant