Repository navigation
Conversation
…ir owner Agents lose the `dm` tool, and `send` and `reply_in_subthread` refuse a DM channel. Plugin agents' keys no longer sign DM opens (41010). A Solo chat an agent starts always adds its owner. The shared posting conventions and the Claude Code, Goose, Pi and Codex DM turn context tell an agent to answer a DM by starting a Solo chat for the request, with the sender and its owner. AGNTOPS-780 Co-authored-by: Hertz <c6741012416ef5c49a865db79682113385c5fb998e8c890234fb442b59e22748@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Joah Gerstenberg <joah@squareup.com>
A DM whose only members are the agent and its owner, such as Bestie's pinned chat, stays open to the agent: send accepts it, and the Claude Code and Codex turns keep the ordinary DM routing there instead of sending the answer to a Solo chat. Every other DM stays closed. AGNTOPS-780 Co-authored-by: Hertz <c6741012416ef5c49a865db79682113385c5fb998e8c890234fb442b59e22748@buzz.block.builderlab.xyz> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Joah Gerstenberg <joah@squareup.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AGNTOPS-780
Agents can no longer DM people or each other. The one exception is a DM whose only members are the agent and its owner, such as the pinned Bestie conversation. For any other private conversation, an agent starts a Solo chat, and that Solo chat always includes its owner. When anyone else DMs an agent, the agent answers by starting a Solo chat for that request.
Changes
dmis removed from the Buzz MCP tools.sendandreply_in_subthreadrefuse a channel whose metadata type isdm, unless its roster (39002) holds only the agent and its owner. The error tells the agent to start a Solo chat instead.crates/agent-controllerapp_agentKINDS, so the app won't sign a DM open with a plugin agent's key. Bestie's DM is opened by the owner's app, so it doesn't need this.channel_createwithsolo: trueadds the agent's owner (client.owner) to the members. If the host doesn't know the owner, it refuses. The node client now exposesownerfrom its NIP-OA auth tag. The owner counts toward the relay's 32-member limit at create.prompt.md(shared posting conventions) drops "In a DM,sendreplies at the top level." It now says to answer a DM from anyone but the owner by starting a Solo chat with the sender (the owner is added), and to keep using that Solo chat for follow-ups on the same request. The newDM_PROMPTreplaces the "passreply" routing line in those DM turns for Claude Code, Goose and Pi (which shareturnPrompt) and Codex.ownerDminfeatures/agents/reads.tsidentifies owner-only DMs from the channel's members, and those turns keep the ordinary DM routing.Not covered here
reply()posts, like the failed-turn notice that tags the owner, still go to the conversation, and that includes a DM.Testing
vitest run src/buzz-mcp/tools.test.ts: pass. Tests cover:dmtoolsendandreply_in_subthreadrefused in a DM that has another person in it, allowed in a DM with only the owner, and refused there when the host doesn't know the ownersrc/features/agents/reads.test.ts:ownerDmis true only for a DM whose members are just the agent and its owner. It's false for unknown members, an absent owner, or any third member.replyrouting. The Codex prompt tests cover the DM turn instruction.cargo test -p buzz-agent-controller: pass, including 41010 now refused.tsc --noEmit, biome and rustfmt hooks: clean.src/buzz-mcp,src/bundled/{claude-code,codex},src/features/agentsandsrc/features/agent-harness: every failure is in a file this PR doesn't touch, and each one either passes when rerun alone or also fails on unmodifiedmain(codex/tabseffort refresh).🤖 Generated with Claude Code