hyperhive/hive-core-agent-sock
Repository files (latest commit first)
Filename Latest commit message Latest commit date
damocles 79c43a15d8 hive-c0re: scope list_schedules to what the requester can actually act on
handle_list_schedules took no requester and returned every schedule
unfiltered, unlike cancel_schedule/edit_schedule/fire_schedule_now
which all gate on the shared ownership predicate (self, operator, or
subtree via topology::is_descendant_of). list_schedules now filters
through the same predicate, renamed cancel_authorized ->
schedule_authorized since it backs all four verbs now, not just
cancel.

Fixed five stale 'every schedule' / 'unfiltered' claims found while in
here: filter_ghost_schedule_targets's doc comment, the list_schedules
MCP tool description, docs/tools/scheduling.md's per-verb section
(already self-contradicting its own top-of-file subtree-scoping claim
before this fix), and hive-core-agent-sock's ListSchedules/Schedules
wire-type doc comments (including a stale '(privileged)' marker from
the pre-topology-subtree model).

Credit to atlas: independently found the same fix while finishing
PR #4233 (which documents this bug per mara's 'fix it, don't document
it' ruling) and caught two stale doc spots I'd missed
(hive-core-agent-sock's comments) plus proposed the
schedule_authorized rename. Compared diffs directly before either of
us pushed; he dropped his scheduling.rs changes so we didn't collide.

fixes #4237
2026-09-11 18:05:13 +02:00
..
src hive-c0re: scope list_schedules to what the requester can actually act on 2026-09-11 18:05:13 +02:00
Cargo.toml docs(#2627): add READMEs for the remaining infra crates 2026-07-23 13:16:29 +02:00
README.md treefmt: apply prettier 2026-09-02 15:25:07 +02:00

hive-core-agent-sock

Wire types for the per-agent + manager socket (/run/hive/mcp.sock) — the unified Request / Response protocol spoken between an agent's in-container harness (and the manager) and the hive-c0re daemon.

Why it's its own crate

Re-homed out of hive-sh4re so this one socket owns its protocol crate, mirroring the hive-host-sock / hive-priv-sock splits. The shared payload types it references (Message, LooseEnd, Approval, …) stay in hive-sh4re, which this crate depends on — this crate is just the request/response envelope for this socket.

Not to be confused with hive-agent-sock

This is the host-served protocol: the harness talks out to hive-c0re over /run/hive/mcp.sock (broker sends, approvals, lifecycle). hive-agent-sock is the separate in-container socket the harness serves to its own local producers — that one never leaves the container. See docs/trust-boundary/boundary.md for the socket topology.