hyperhive/hive-c0re/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
damocles 35a7ff03b7 hive-c0re: bind-mount /run/hive-agent/<name>/ per sub-agent (#784 phase 2 step 2b)
builds on step 2a (#809). lifecycle::set_nspawn_flags now adds a
--bind={socket_dir}:{socket_dir} flag per sub-agent so the harness's
HIVE_WEB_SOCKET bind (PR #800) lives in a dir both the agent
container and the host can see.

design (matches #809's a1a601d explanation):
- bind the SUBDIR, not the socket file. file bind-mounts drop on
  unlink; the harness's bind_unix unlinks any stale socket before
  binding, so a file bind would land the new socket in the agent's
  private namespace, invisible to the gateway. dir bind keeps both
  sides on the same dir inode.
- per-agent dir (one /run/hive-agent/<name>/ per agent, not a shared
  /run/hive-agent/ mount). The agent's container only sees its own
  subdir — never siblings' (mara on #800).
- manager skipped — the manager's UI serves at / via the c0re
  dashboard upstream, not via /agent/<name>/, so it never needs the
  per-agent socket dir.

mkdir source defensively before bind: nspawn refuses to start when
the bind source is missing, and /run/hive-agent/ doesn't exist on
fresh hosts.

remaining work in this phase:
- step 3 (atlas): gateway proxy_pass http://unix:/run/hive-agent/<name>/web.sock:/
- per-agent: flip HIVE_WEB_SOCKET in agent.nix to opt in (separate PRs)
- step 4 (later): drop TCP fallback once everyone's flipped
2026-05-31 15:44:26 +02:00
..
bin hivectl: extend --password to forge; clarify matrix M_USER_IN_USE asymmetry (#663 / argus) 2026-05-30 23:27:26 +02:00
actions.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
agent_ports.rs lifecycle: drop manager port special case (#753) — manager hashes into 8100..8999 like every other agent 2026-05-31 13:25:13 +02:00
agent_server.rs get_agent_meta: include hive_name + swarm_name in response (#710) 2026-05-31 12:50:19 +02:00
agent_sockets.rs hive-c0re: per-agent subdir socket layout (#809 design fix) 2026-05-31 15:38:04 +02:00
approvals.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
auto_update.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
broker.rs broker: add mark_all_read + POST /api/agent/{name}/mark-all-read (#559 backend half) 2026-05-29 13:14:31 +02:00
client.rs hive-c0re: admin socket server + client (stub dispatch) 2026-05-14 20:49:11 +02:00
container_view.rs get_agent_meta: include hive_name + swarm_name in response (#710) 2026-05-31 12:50:19 +02:00
coordinator.rs topology: drop manager-root special case + notify three agents on reparent (#743) 2026-05-31 13:27:30 +02:00
crash_watch.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
dashboard.rs topology: drop manager-root special case + notify three agents on reparent (#743) 2026-05-31 13:27:30 +02:00
dashboard_events.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
events_vacuum.rs fix #265: resolve all remaining clippy warnings (cast, too_many_lines, doc nits) 2026-05-22 19:11:40 +02:00
flake_check.rs nix: hyperhive owns nixpkgs pin via follows; bump to nixos-26.05 (#526) 2026-05-30 12:02:48 +02:00
forge.rs c0re: dedupe chown_to_agent into lifecycle (argus #678) 2026-05-31 00:40:40 +02:00
lib.rs hive-c0re: agent_sockets.json writer (#784 phase 2, step 2a) 2026-05-31 15:38:04 +02:00
lifecycle.rs hive-c0re: bind-mount /run/hive-agent/<name>/ per sub-agent (#784 phase 2 step 2b) 2026-05-31 15:44:26 +02:00
limits.rs set_status: reject multi-line and over-200-char text (#720) 2026-05-31 11:54:08 +02:00
loose_ends.rs rename: open_threads → loose_ends + cancel_thread → cancel_loose_end across wire / tools / web ui 2026-05-18 18:24:09 +02:00
main.rs hivectl: add operator-facing host CLI with forge + matrix create-user verbs (#655) 2026-05-30 20:34:59 +02:00
manager_server.rs get_agent_meta: include hive_name + swarm_name in response (#710) 2026-05-31 12:50:19 +02:00
matrix.rs c0re: dedupe chown_to_agent into lifecycle (argus #678) 2026-05-31 00:40:40 +02:00
meta.rs hive-c0re: agent_sockets.json writer (#784 phase 2, step 2a) 2026-05-31 15:38:04 +02:00
migrate.rs model/context: move context window config to host-level hive-c0re.nix 2026-05-20 15:49:03 +02:00
operator_questions.rs clippy: zero pedantic warnings across the tree 2026-05-18 22:09:34 +02:00
questions.rs questions: unit-test the manager-only guard on approval cancel (argus nit on #508) 2026-05-27 12:48:30 +02:00
rebuild_queue.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
reminder_scheduler.rs drop legacy /state mount for manager (#604) 2026-05-29 21:21:44 +02:00
scheduled_prompts.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
scheduled_prompts_worker.rs clippy: fix lints that crane's cargoClippy properly enforces (#538) 2026-05-29 01:45:48 +02:00
server.rs topology: drop manager-root special case + notify three agents on reparent (#743) 2026-05-31 13:27:30 +02:00
stats_vacuum.rs fix #265: resolve all remaining clippy warnings (cast, too_many_lines, doc nits) 2026-05-22 19:11:40 +02:00
topology.rs topology: drop manager-root special case + notify three agents on reparent (#743) 2026-05-31 13:27:30 +02:00