| Filename | Latest commit message | Latest commit date |
|---|---|---|
Follow-up from #2955 (mara: 'make core able to give agent a todo'). First migration slice: Spawned was pure FYI-check-when-convenient material, not something needing an immediate turn. Coordinator::push_todo/push_todo_submitter do a best-effort live dial of the target agent's own hive-agent-sock (hive_host_sock::agent_todo_ socket), sending the exact UpsertTodo request in-container producers (matrix/bash/forge-notify) already send. Push, not queue: agent offline (socket absent) or dial failure is a silent no-op, no retry, no fallback delivery -- matches mara's 'not available if offline' call exactly. HelperEvent::Spawned removed entirely (enum variant + all 3 call sites migrated: handle_spawn's two arms, finish_approval's Spawn approval-kind arm) rather than kept alongside a translation layer -- per mara's correction on the first design attempt, migrating the producer means deleting the old path, not bridging it. Verified: cargo build/clippy/test -p hive-c0re -p hive-host-sock -p hive-sh4re clean (318 tests), nix fmt clean. |
||
| .. | ||
| src | ||
| Cargo.toml | ||
| README.md | ||
hive-sh4re
The shared payload vocabulary between hive-c0re and the in-container
harness — the common types (Message, Approval, LooseEnd, HelperEvent, …)
that the per-socket wire protocols are built from. The request/response
envelopes themselves now live in the per-socket crates (below); this crate
holds the payloads they carry.
Where it sits
This is the shared payload crate; the per-socket protocol envelopes have been
split into their own smaller crates so specialised binaries don't have to pull
in all of hive-sh4re:
hive-host-sock— host admin socket (hivectl↔hive-c0re)hive-core-agent-sock— per-agent/manager socket (/run/hive/mcp.sock)hive-priv-sock— the privileged-helper socket
Those crates re-export or reference the payload types that still live here
(Approval, Message, LooseEnd, …).
Modules
jobs— the job-queue wire types (DagView) surfaced to the dashboard SSE stream + hivectl.wire_time— the timestamp convention: wire fields arechrono::DateTime<Utc>(serialized RFC 3339), while sqlite storage + input args stay unix-epochi64; this module owns the two boundary conversions.paths— well-known on-disk path helpers.assets— resolves bundled runtime asset paths (branding, prompts) underHIVE_ASSETS_DIR.
Agent-name fields are typed as hive_types::Ident for serde-validated parsing at
the socket boundary.