hyperhive/hive-c0re/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas 282bbc3709 feat(#2862): push a snapshot to a peer hive's store over the mesh
Adds the caller the fd-passing machinery existed for: hivectl agent
<name> subvol snapshot push --peer <hive> resolves the peer, connects
to its snapshot store, writes the agent header, and hands the connected
socket to hive-priv, which runs btrfs send straight into it.

The split keeps the root helper ignorant. Everything that involves
knowing where a peer is, what the wire protocol looks like, and which
hive to trust happens in the unprivileged daemon; hive-priv only ever
receives an already-open descriptor. Once btrfs send starts, neither
process is in the data path, so a multi-gigabyte transfer costs no
per-byte work and survives a hive-c0re restart.

call_with_fd takes the descriptor by value and closes it as soon as the
kernel has it. A socket stays open until every copy closes, so holding
one back would leave the receiver waiting for an EOF that never comes:
btrfs receive blocks and this side reports success for a transfer the
peer never committed. Ownership makes that unrepresentable.

The peer's store port is a new swarm.peers.<domain>.snapshotStorePort
option rather than a constant matching the module default. A pushing
hive cannot read the receiver's configuration, so assuming 51821 would
push at a port nobody promised to listen on; absent, the push fails
naming the option. swarm_peers parses the mesh address the host module
has always rendered into HYPERHIVE_PEERS but nothing read.
2026-07-31 22:15:37 +02:00
..
agent_config feat: derive BUN_JSC_forceRAMSize from effective per-agent MemoryMax= 2026-07-26 21:56:25 +02:00
dashboard hive-c0re: wire up openapi spec + swagger ui (#2872) 2026-07-31 21:48:02 +02:00
forge docs: describe the deploy subtree 2026-07-25 22:55:02 +02:00
job_queue job_queue scheduler: observe shutdown every loop iteration, document the no-persistence invariant 2026-07-30 12:17:38 +02:00
lifecycle refactor(#2754): make the container weights Option, not a 0 sentinel 2026-07-27 10:55:29 +02:00
socket_server docs: describe the deploy subtree 2026-07-25 22:55:02 +02:00
stats hive-c0re: wire up openapi spec + swagger ui (#2872) 2026-07-31 21:48:02 +02:00
stores delete c0re-side reminder plumbing (#2635 inc 1 commit 6) 2026-07-23 00:12:30 +02:00
workers hivectl: add agent <name> watch to follow live events from the CLI 2026-07-27 21:04:00 +02:00
actions.rs feat(#2772): branch on outcome in the graph, not inside the node 2026-07-27 19:06:27 +02:00
container_view.rs resource_limits: read the override map once per SSE scan 2026-07-26 14:56:36 +02:00
coordinator.rs refactor(#2693): null, not "", for the unpinned claude-code 2026-07-27 13:56:28 +02:00
dashboard_events.rs delete c0re-side reminder plumbing (#2635 inc 1 commit 6) 2026-07-23 00:12:30 +02:00
gateway_nginx.rs sweep: wire gateway-nginx reload + config-repo branch-protection into warning banners 2026-07-16 00:05:29 +02:00
loose_ends.rs feat(#2635): wire harness-local questions mirror (inc2 pt2) 2026-07-26 02:07:33 +02:00
main.rs feat(#2862): push a snapshot to a peer hive's store over the mesh 2026-07-31 22:15:37 +02:00
matrix.rs refactor(#2302): type socket wire fields as ident, validated by serde on deserialize 2026-07-20 21:46:18 +02:00
meta.rs feat(#2860): render the forge + matrix URLs as agent options 2026-07-31 20:12:44 +02:00
migrate.rs refactor(#2302): type socket wire fields as ident, validated by serde on deserialize 2026-07-20 21:46:18 +02:00
paths.rs hivectl: add agent <name> watch to follow live events from the CLI 2026-07-27 21:04:00 +02:00
priv_client.rs feat(#2862): push a snapshot to a peer hive's store over the mesh 2026-07-31 22:15:37 +02:00
questions.rs delete c0re-side reminder plumbing (#2635 inc 1 commit 6) 2026-07-23 00:12:30 +02:00
server.rs feat(#2862): push a snapshot to a peer hive's store over the mesh 2026-07-31 22:15:37 +02:00
snapshot_push.rs feat(#2862): push a snapshot to a peer hive's store over the mesh 2026-07-31 22:15:37 +02:00
swarm_peers.rs feat(#2862): push a snapshot to a peer hive's store over the mesh 2026-07-31 22:15:37 +02:00
webhook_secret.rs chore(#2510): bump indicatif/tower-http/hmac/sha2 to latest majors 2026-07-16 10:42:30 +02:00