atlas
30fa54cbc6
feat(swarmctl): add agent create, queueing the swarm-controller creation DAG
...
`swarmctl agent create <name> --hive <hive>` POSTs `/api/agents` to
swarm-controller over the daemon's unix socket and prints the queued
job's node id.
It deliberately does not wait. The endpoint queues a DAG whose last node
*publishes* a deploy message; the hive's `hive-c0re` then converges on
its own clock, out of the controller's sight. So even a fully settled
graph would not mean the agent is up, and there is nothing this CLI
could wait for that would let it claim otherwise. Printing the id is
exactly what the response says and all of what it says.
Transport is a bare hyper HTTP/1.1 client handshaked onto a tokio
`UnixStream` via `hyper_util::rt::TokioIo` — the same crate family
`hivectl/src/watch.rs` and `hive-agent/src/web_ui/proxy.rs` already use,
all of it already workspace-pinned. The request/response shapes are a
local mirror rather than a shared crate: the controller's own types are
private to its binary and this crate does not link it, the same
separation `hivectl` keeps from `hive-c0re`.
Errors are reduced to one actionable line — the controller answers
RFC 9457 problem+json, so an unknown `--hive` reaches the operator as
the roster of hives that would have worked rather than a body dump.
Response `warnings` are printed when non-empty.
The nix module wraps the binary with `SWARM_CONTROLLER_SOCKET`, read
from the same `socketPath` the daemon binds.
Refs #4399
2026-09-14 19:40:23 +02:00
..
hive-c0re
swarm: wire the agents' queue coordinates and credential through the modules
2026-09-13 11:13:17 +02:00
hive-forge
forge: move the forgejo package to deploy — slice 10 complete
2026-09-07 20:46:38 +02:00
hive-gateway
docs: matrix gateway vhost defaults to chat.<swarm-domain>, not matrix.<domain>
2026-09-07 16:53:22 +02:00
lib
swarm: extract the name guards, so the module just says what is forbidden
2026-08-31 18:50:15 +02:00
swarm-grafana /dashboards
swarm-grafana: fix leaked test title on the agents dashboard
2026-09-14 00:21:23 +02:00
default.nix
swarm-otel: deliver the OIDC client secret through the secret store
2026-09-14 00:58:58 +02:00
deploy.nix
forge: move the forgejo package to deploy — slice 10 complete
2026-09-07 20:46:38 +02:00
glue-bao-tls.nix
swarm: publish minted OIDC client secrets into the swarm store
2026-09-12 11:22:33 +02:00
glue-controller-bao-identity.nix
swarm-controller: hand the daemon the authority hives are issued from
2026-09-10 00:25:07 +02:00
glue-grafana-oidc-client.nix
swarm-grafana: deliver the OIDC client secret through the secret store
2026-09-13 19:57:28 +02:00
glue-matrix-bao-token.nix
swarm: put the matrix registration token where the reader is granted
2026-09-12 19:46:04 +02:00
glue-queue-agent-credential.nix
swarm: run the agent queue credential reader before hive-c0re
2026-09-13 11:10:00 +02:00
glue-secret-publisher-bao-identity.nix
swarm: publish minted OIDC client secrets into the swarm store
2026-09-12 11:22:33 +02:00
glue-swarm-otel-oidc-client.nix
swarm-otel: deliver the OIDC client secret through the secret store
2026-09-14 00:58:58 +02:00
hive-ci.nix
deploy: split the forge's host decisions out of swarm.forge
2026-09-07 14:24:52 +02:00
hive-matrix.nix
swarm: move the matrix packages to deploy, where their enable already lives
2026-09-07 20:46:37 +02:00
hive-network.nix
docs: restructure into topic subdirectories, collapse duplicated index
2026-09-02 01:55:37 +02:00
hive-priv.nix
docs: restructure into topic subdirectories, collapse duplicated index
2026-09-02 01:55:37 +02:00
hive-tls.nix
docs: restructure into topic subdirectories, collapse duplicated index
2026-09-02 01:55:37 +02:00
hyperhive.nix
docs: restructure into topic subdirectories, collapse duplicated index
2026-09-02 01:55:37 +02:00
local-defaults.nix
bao: write the swarm controller's policy from inside the store
2026-09-07 18:43:09 +02:00
otel.nix
otel: scrape each collector's own loss counters
2026-09-12 10:34:06 +02:00
stylix-theme.nix
swarm-ui: apply the operator's stylix theme, same as the dashboard already does
2026-08-24 14:28:25 +02:00
swarm-authelia.nix
nix: inline the swarm sub-path aliases at their use sites
2026-09-13 20:02:20 +02:00
swarm-bao.nix
swarm-bao: reach the store through a TLS passthrough, not a vhost
2026-09-13 23:08:38 +02:00
swarm-ca.nix
swarm-ca: state the store-is-world-readable rule once, not three times
2026-09-02 09:03:35 +02:00
swarm-container-resolver.nix
fix( #3363 ): swarm containers write their own resolver file
2026-08-17 17:30:15 +02:00
swarm-controller.nix
feat(swarmctl): add agent create, queueing the swarm-controller creation DAG
2026-09-14 19:40:23 +02:00
swarm-grafana.nix
nix: inline the swarm sub-path aliases at their use sites
2026-09-13 20:02:20 +02:00
swarm-nats.nix
swarm: publish each agent's turn-state header on its own subject
2026-09-14 15:12:23 +02:00
swarm-otel.nix
swarm-otel: deliver the OIDC client secret through the secret store
2026-09-14 00:58:58 +02:00
swarm-peers-removed.nix
docs+nix: fix stale certFingerprint/HYPERHIVE_PEERS references (hyperhive#3294)
2026-08-15 19:56:11 +02:00
swarm-required-services.nix
deploy: rename enableAllLocalDefaults to deploy.singleHostSwarm
2026-08-30 20:12:16 +02:00
swarm-secret-publisher.nix
swarm-otel: deliver the OIDC client secret through the secret store
2026-09-14 00:58:58 +02:00
swarm-snapshot-store.nix
deploy: move the wireguard mesh out of the namespace hives read
2026-09-07 14:24:52 +02:00
swarm-ui.nix
swarm: move the controller's two packages to deploy
2026-09-07 20:46:38 +02:00
swarm-victorialogs.nix
nix: inline the swarm sub-path aliases at their use sites
2026-09-13 20:02:20 +02:00
swarm-victoriametrics.nix
nix: inline the swarm sub-path aliases at their use sites
2026-09-13 20:02:20 +02:00
swarm-wireguard.nix
deploy: move the wireguard mesh out of the namespace hives read
2026-09-07 14:24:52 +02:00
swarm.nix
swarm: say "no queue coordinates", never "a hive with no queue"
2026-09-13 11:13:17 +02:00