Watch
0
0
Fork
You've already forked hyperhive
0

docs: state current behaviour without change-log wording

This commit is contained in:
atlas 2026-10-02 09:44:06 +02:00
commit 195cf75bbf
4 changed files with 14 additions and 18 deletions

View file

@ -220,7 +220,7 @@ appearing; the sweep then overwrites the per-hive file, no boot
required.
<!-- vale write-good.Passive = NO -->
- **Room membership follows the account the sweep currently uses.**
- **Room membership is per account.**
`ensure_hive_space` takes the stored room id first: if a different
account than the room's member created that id, the sweep's invite
comes back refused (a non-member can't invite), and the sweep logs it
@ -228,27 +228,25 @@ required.
operator-chosen: invite `@hive-<hive>:` into the existing Space and
chat room from a client, which keeps the history; or delete the
hive's stored room-id files, after which the next sweep creates a
Space and chat room owned by the current account and invites every
Space and chat room owned by the hive's sender account and invites every
agent into them. Leaving it unresolved gives a hive that provisions
no rooms.
<!-- vale write-good.Passive = YES -->
</details>
<details><summary>Appservice identity, not the registration token</summary>
<details><summary>Appservice identity</summary>
The activation script mints the appservice token and renders the
registration before the homeserver restarts, so every boot has both
halves. `registrationTokenFile` is a removed option: a config that
still sets it fails to evaluate with a message naming the appservice.
halves.
<!-- vale write-good.Passive = NO -->
- **Access tokens live on the device that minted them.**
`login_with_password` stays on, so the password fallback works
too.
- **The homeserver's `admin_execute` promotes only `@swarm` at boot**
(above); a hive's sender account is never promoted, regardless of
when it was created.
(above); a hive's sender account is never promoted.
- **The value that matters lives at `matrix/appservice-token`.**
`swarm-secret-publish` on the authelia host mints and `put`s it
there; the hive uses its locally minted token only until the first

View file

@ -2,7 +2,7 @@
Every host's nginx: the one front door for whatever this host serves. A swarm service running here (forge, matrix, SSO, the swarm UI, the metrics and log stores) declares its own vhost through the gateway; the gateway itself adds the hive's own surface — dashboard, per-agent UIs, matrix discovery.
_For the operator configuring `services.hyperhive.gateway.*` on a host._ nginx and the hive resolver (dnsmasq) run on the host next to hive-c0re, not in a container: they bind `:80`/`:443` and the bridge address.
_For the operator configuring `services.hyperhive.gateway.*` on a host._ nginx and the hive resolver (dnsmasq) run on the host next to hive-c0re: they bind `:80`/`:443` and the bridge address.
You rarely switch it on yourself. `gateway.enable` defaults to off, and every module that serves a vhost or needs hive names to resolve sets `gateway.enable` / `gateway.dns.enable` with `mkDefault true` — the hive controller, each swarm service, CI.
@ -29,7 +29,7 @@ You rarely switch it on yourself. `gateway.enable` defaults to off, and every mo
| `<hive>/api/docs/` | themed Swagger UI dist (static) | always |
| `<hive>/agent/<name>/` | per-agent harness over its unix socket | `agents.conf` (runtime-generated) |
| `<hive>/.well-known/matrix/{client,server}` | inline JSON | `deploy.matrix.enable` |
| `<hive>/matrix/` (deprecated) | 301 → `chat.<swarm>/` | `deploy.matrix.gui.enable` and `gatewayHost` set |
| `<hive>/matrix/` | 301 → `chat.<swarm>/` | `deploy.matrix.gui.enable` and `gatewayHost` set |
The catch-all `_` vhost answers any other `Host` with `444` (connection closed, no response). It's `mkDefault`, so to make your own vhost the default server, set `services.nginx.virtualHosts."_".default = false;` — an eval assertion names both when two claim it.
@ -304,7 +304,7 @@ Every agent binds its web UI on a unix-domain socket at
`<dir>/hyperhive-socket-bound` next to the socket. c0re's
`agent_sockets::write` filters its JSON map by marker presence —
only agents whose harness has bound the socket appear there.
It also accepts the older `.bound` name.
It also accepts `.bound`.
4. **Gateway side**. `gateway_nginx::write` generates
`/var/lib/hive-gateway/conf/agents.conf` — a plain nginx include
file with one `location /agent/<name>/` block per agent. Always

View file

@ -26,9 +26,8 @@ Two ideas are all there is to it:
The engine's whole job is: whenever a step's ordering and resource needs
are both satisfied, run it. It has no opinion on what the steps _do_ —
that's supplied by whoever builds the graph. The swarm controller and
hive-c0re each build their own graph on it, and nothing about the engine
is specific to either.
that's supplied by whoever builds the graph. The engine is generic: the
swarm controller and hive-c0re each build their own graph on it.
## Watching it happen

View file

@ -58,7 +58,7 @@ the control plane, so degraded telemetry isn't degraded operation.
### Why two tiers
**The hive tier isn't optional.** Exporting straight to `endpoint` would mean
**Agents export only to the hive tier.** Exporting straight to `endpoint` would mean
every agent needs the credential — and the only place to hand it to an agent
container is somewhere the agent itself can read, its own claude settings
among them. `0600` protects a secret from other containers, not from the
@ -98,10 +98,9 @@ hive's collector can label its data as any other agent.
**Logs ride the same hop, and a journal carries more than a counter does.** Each
agent container forwards its own journal through this port — every unit in it at
`info` and above, not an allowlist. That's the harness, the MCP daemons and
whatever a tool call spawned, so command lines and error text now leave the
container, not just counts. The trust boundary is unchanged (same
destination, same credential, and an agent could already send arbitrary OTLP);
what changes is how much detail leaves by default.
whatever a tool call spawned, so command lines and error text leave the
container, not just counts. Destination, credential and trust boundary are the
same as for any OTLP the agent sends.
<!-- vale write-good.Passive = YES -->