| Filename | Latest commit message | Latest commit date |
|---|---|---|
`topology.json` was a map of `name -> parent | null`, and that value fed the whole agent hierarchy: `<parent>` / `<children>` recipient sentinels, the reparenting API (CLI verb, wire verb, dashboard endpoints, DAG node), the dashboard tree, the rebuild depth sort, and an unconditional bind-mount grant giving every agent RW on its direct children's state. Per the operator's ruling the field goes, and with it all of the above. The file survives as what remains once the value is gone: the roster of agent names, which is the set `ManageRootAgent` grants mounts over. It is now a JSON array; `read` still accepts the old map shape and keeps its keys, so a hive that upgrades across this does not blank its roster (and so no capability holder loses its mounts for the length of that window). Two sites kept their behaviour under a different recipient rather than losing it. Both addressed `<parent>`, which the broker already resolved to `operator` for a root agent, and every agent is now what that fallback called a root: - the harness's turn-failure / plugin-failure notification (`Surface::send_to_parent` -> `send_to_operator`), and - the send allow-list's always-permitted escape hatch, so an agent with a restrictive allow-list still has a way to say it is stuck. What is NOT preserved, deliberately: an agent with no capability no longer sees any other agent's dirs. `ManageRootAgent`'s own grant is unchanged -- still every agent in the roster, still state RW + config RO, still no `harness`. The dashboard's reparenting control (the M0V3 picker) is deleted with its CSS. The tree rendering that reads `ContainerView.parent` is left for the frontend owner -- it degrades to a flat list with the field gone. |
||
| .. | ||
| src | ||
| Cargo.toml | ||
| README.md | ||
hive-agent-mcp
The built-in hyperhive MCP server every agent gets by default. Runs a
long-lived streamable-http listener (the hive-mcp-http systemd unit)
that claude reconnects to each turn via --mcp-config — this avoids
the per-turn stdio re-registration race that a spawned-per-turn server
would hit. HTTP is the sole transport; there is no stdio mode here.
When to use it
This is where the core hyperhive tool surface lives: send, recv,
remind, get_loose_ends, set_status,
get_agent_meta, scheduling, and the approval-request tools. Reach
for this crate when you're adding or changing a built-in tool rather
than an extraMcpServers add-on — those are separate stdio bridges
(see hive-bash-mcp, hive-matrix-mcp) that dial the harness socket
or their own daemon instead of living here.
Shape
mcp/— the tool surface itself: one handler per tool, dispatch throughclient.rsback into the hyperhive broker (/run/hive/mcp.sock) or, for loose-ends v2 (todos/reminders), the in-agent socket thehive-agentharness serves.client.rs— socket client to the hyperhive broker.send_allow.rs— enforces the per-agenthyperhive.allowedRecipientsallow-list onsend.paths.rs— socket + state path resolution shared with the harness's ownpaths.rsconventions.
Sibling of hive-agent (the serve loop that renders the
--mcp-config blob pointing here). Standalone bin crate so the
always-on MCP server doesn't need to link the whole turn-loop lib.