Watch
0
0
Fork
You've already forked hyperhive
0

hive-agent-mcp: the send allow-list is gone, agents talk to peers over matrix

This commit is contained in:
damocles 2026-11-06 23:28:05 +01:00 • committed by mara
commit c1f7bb798e
2 changed files with 14 additions and 97 deletions

View file

@ -34,6 +34,12 @@ let
sets it. Pin it host-side with
services.hyperhive.deploy.hive-controller.claudeCodePackage.
'';
sendAllowRemoved = ''
The `send` allow-list is gone: it limited only the hive-local `send` tool,
which is not the channel agents use to reach peers, and it was never a
boundary. Agents talk to peers over matrix. Remove the setting.
'';
queueRemoved = ''
The harness reads the queue's address at runtime from HIVE_AGENT_NATS_URL,
in /etc/hyperhive-hive-facts, and authenticates with the
@ -115,6 +121,12 @@ in
"agent"
"claudeCodePath"
] claudeCodePathRemoved)
(lib.mkRemovedOptionModule [
"services"
"hyperhive"
"agent"
"allowedRecipients"
] sendAllowRemoved)
(lib.mkRemovedOptionModule [ "services" "hyperhive" "agent" "queue" "natsUrl" ] queueRemoved)
(lib.mkRemovedOptionModule [ "services" "hyperhive" "agent" "queue" "tokenEndpoint" ] queueRemoved)
];

View file

@ -22,27 +22,6 @@ let
subagentReadsStore = config.services.hyperhive.agent.bao.addr != null;
in
{
options.services.hyperhive.agent.allowedRecipients = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
example = [
"alice"
"bob"
];
description = ''
Names this agent is allowed to `send` to via
`mcp__hyperhive__send`. Empty list (the default) means
unrestricted — the agent can message any peer. A non-empty list
allows only the listed names; anything else returns an error
string to claude without touching the broker.
`operator` is refused either way: agents reach the operator
over matrix.
Useful for sandboxing untrusted sub-agents — set
`[ "alice" ]` to scope one to chatter with alice.
'';
};
options.services.hyperhive.agent.extraMcpServers = lib.mkOption {
type = lib.types.attrsOf (
lib.types.submodule {
@ -304,9 +283,6 @@ in
environment.etc."hyperhive/extra-mcp.json".text =
builtins.toJSON config.services.hyperhive.agent.extraMcpServers;
environment.etc."hyperhive/send-allow.json".text =
builtins.toJSON config.services.hyperhive.agent.allowedRecipients;
# Bash task runner daemon — long-running process that owns subprocess
# monitoring + completion wake signals, and serves the MCP tools
# (`run`/`status`/`kill`) directly over streamable-http on