Skip to content

Ask before mentioning people outside the channel - #257

Merged
loganj merged 3 commits into
mainfrom
feat/mention-nonmember-admission
Sep 25, 2026
Merged

loganj merged 3 commits into
mainfrom
feat/mention-nonmember-admission

Conversation

@loganj

@loganj loganj commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

🤖

Summary

  • You can now @mention people and agents who are not in the current channel. Both the toolbar picker and inline @ completion find them in the community directory (the list of everyone in this community).
  • Before, a mention could only notify people already in the channel, plus a special case that silently added managed agents on Send. Now Send pauses and asks what to do with people outside the channel:
    • Invite: adds them to the channel, waits until they are confirmed as members, then sends and notifies them. This button shows only if you have permission to add people.
    • Do nothing: sends the message with a visible reference to them, but does not add or notify them. If you cannot add people, this button is named Send anyway.
    • Escape or the close button keeps your draft and returns focus to the composer. Nothing is sent.
  • The prompt matches the block/buzz desktop prompt (NonMemberMentionDialog.tsx).
  • Nobody gets channel access just because they were selected. The silent adding of managed agents is removed, and agents get the same prompt.
  • If an outside person has the same name as someone else in the list, both rows show a short key suffix so you can tell them apart. This works even when the app has no saved profile for that person.

Screenshots

The chooser marks a person who is not in the channel.

Chooser row for Outside Person, marked Not in channel

When you send, Buzz asks what to do before it sends. If you can add people, you choose Do nothing or Invite.

Dialog: Mention people outside this channel? with Do nothing and Invite

If you cannot add people, the only action is Send anyway.

Dialog: Mention people outside this channel? with Send anyway only

Details

  • "Do nothing" and "Send anyway" references are sent as separate two-field mention tags, not p tags (the tags that trigger notifications). So they show as names but do not notify anyone or wake an agent. Readers add these keys to the message's set of profiles so the names resolve.
  • Adding someone from this prompt does not start an agent directly. The confirmed outgoing message is what wakes it.
  • If the draft or its attachments change while adding is in progress, the send stops and the draft is kept. Partial additions are reported.
  • DMs and session invitations keep their existing rules for who can join.
  • Mentions of existing members in a mixed send still notify as before.

@loganj loganj closed this Sep 25, 2026
@loganj loganj reopened this Sep 25, 2026
@loganj
loganj force-pushed the feat/mention-nonmember-admission branch from ffe9ca9 to 4ed2a70 Compare September 25, 2026 13:52
@loganj
loganj marked this pull request as ready for review September 25, 2026 14:52
@loganj
loganj requested review from a team, comp615 and wesbillman as code owners September 25, 2026 14:52
Larry added 2 commits September 25, 2026 10:53
Signed-off-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
Signed-off-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>
@loganj
loganj force-pushed the feat/mention-nonmember-admission branch from 4ed2a70 to f58b7b7 Compare September 25, 2026 14:54
The dialog had Cancel and Do nothing, which looked like the same choice.
It now shows what block/buzz desktop shows. The text names the people
who are not in the channel. The actions are Do nothing and Invite, and
Invite shows Inviting… while it runs. Without add permission, the only
action is Send anyway. Close and Escape still keep the draft.

Signed-off-by: Larry <627498bd4bd1f281a16431e3c6cce3b5c25b6692798c78672298aefbf2f8f8b5@buzz.block.builderlab.xyz>

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Star Lord — automated source review via Wes’s account

No actionable introduced defects found in the reviewed diff and supported callers.

  • Head: 216a81909210ef006a4d0040e82c366f3cda222d
  • Base / merge base: bebcd66e0adb27efa2c320f2bf72b8f3e63a8a45

Traced community-directory selection, captured-draft consent, durable member-add/retry ownership, send cancellation, and reference serialization/rendering. In this app, reference identities remain separate from addressed p recipients; existing membership preflight and notification/wake consumers remain on the addressed path. Rocket’s independent relay/rendering/member-operation source review was reconciled with the integrated pass.

Validation limits: source inspection only, using pinned Git objects with no dirty source inputs. Tests, builds, app workflows, and CI were not run or assessed. Live relay/other-client reference-tag compatibility, browser focus behavior, and native agent execution remain unverified. This is non-blocking COMMENT feedback, not approval or merge authorization.

@loganj
loganj merged commit 24fcb1e into main Sep 25, 2026
12 checks passed
@loganj
loganj deleted the feat/mention-nonmember-admission branch September 25, 2026 17:41
johnmatthewtennant pushed a commit that referenced this pull request Sep 25, 2026
* origin/main:
  Explain missing Pi provider models (#263)
  Browse Goose models and enter provider API keys (#230)
  test(agents): check model lookup Cancel by visible text (#259)
  Ask before mentioning people outside the channel (#257)
  Refine direct message opening (#107)
  feat(messages): report messages to community moderators (#255)

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>
zrmarley added a commit that referenced this pull request Sep 25, 2026
…-image

* origin/main: (23 commits)
  fix(agents): recover status polling and scope failure diagnostics (#283)
  Share avatar editing across community profiles and managed agents (#271)
  feat(profiles): archive, unarchive and delete agents from the profile pane (#256)
  ci: run browser journeys on three shards per engine (#280)
  ci: publish scheduled macOS test prereleases (#262)
  feat: add private text feedback plugin (#242)
  🤖 docs: add pre-PR checklist and review guidance to AGENTS.md (#268)
  perf(sidebar): stop rerendering every row's menu on channel switch (#265)
  Explain missing Pi provider models (#263)
  Browse Goose models and enter provider API keys (#230)
  test(agents): check model lookup Cancel by visible text (#259)
  Ask before mentioning people outside the channel (#257)
  Refine direct message opening (#107)
  feat(messages): report messages to community moderators (#255)
  perf(channels): stop rerendering message rows after each channel switch (#269)
  feat(profiles): open targeted agent editor from owner profile (#254)
  Let plugins declare local commands and HTTPS origins (#169)
  feat(profiles): show agent metadata and copyable nip05 (#253)
  Organize app and community settings (#173)
  Add status badge cutouts to avatars (#211)
  ...
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.

3 participants