| Filename | Latest commit message | Latest commit date |
|---|---|---|
The last two claim-driven tests were both arranging node states to observe something that never needed a run: `settled_dag_leaves_the_snapshot_despite_its_skipped_branch` completed all seven nodes of a rebuild to assert the DAG left the snapshot. That is one predicate over a list of states. `shown_on_wire` is it, split out of `dag_view`, and the cases can now be named rather than arranged — including the empty set, the one input where "any" and "all" disagree. It takes states rather than projected nodes so the caller skips projecting what it is about to discard; a `NodeView` costs a `build_logs` lookup. `failed_node_cancels_downstream_but_afterany_reconcile_runs` asserted three unrelated things from one arranged failure: the cascade (hive_jobq's, and already tested there), the wire filter (now `shown_on_wire`), and the roll-up. `DagView::rollup_state` lives in hive-host-sock, which had no tests at all — it does now, next to the invariant, covering the ordering its own doc comment says has silently disagreed with the frontend before. With nothing left claiming, `Claimed` / `ClaimReady` / `CompleteNode` / `claim_one` / `settle_rebuild_tail` are deleted. Claim/complete sites in `job_queue/tests.rs`: 109 -> 0. jobq narrows to match: `settle` is gone (it was a `claim_one` loop returning a Vec, and its only callers were tests — it lives in the test module now), `claim_one` is private, and `complete_growing` is `pub(crate)`. `claim_next` is the whole run-loop surface. `complete` stays `pub` for one caller, noted at the definition: `submit` completes a group root with no logic of its own so it parks in `Finishing` and its children unblock. That is a statement about the node, not an event to report, and it wants to be expressible at insert time. |
||
| .. | ||
| src | ||
| Cargo.toml | ||
| README.md | ||
hive-host-sock
Wire types for the host admin socket (/run/hyperhive/host.sock) — the
host-control protocol spoken between the hivectl operator CLI and the
hive-c0re daemon.
Why it's its own crate
Re-homed out of hive-sh4re so a standalone hivectl depends on just this
protocol crate instead of the whole daemon-shared crate. hivectl drives the
full hive (spawn / kill / destroy / rebuild / deploy) over this socket without
linking hive-c0re; keeping the request/response shapes here is what makes that
thin dependency possible.
Shape
Serde-derived request/response enums for the host admin protocol. The larger
shared payload types some variants reference (Approval, AgentStatusRow,
jobs::DagView) stay in hive-sh4re — this crate is only the protocol
envelope, no server or client implementation.
See docs/boundary.md (host admin socket access) for the trust model around who
may connect to the socket, and hive-priv-sock for the sibling split on the
privileged-helper socket.