Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph hyperhive/docs
Author SHA1 Message Date
atlas
5d2b0c9a54 swarm-builder: an agent option whose eval failed is left out of the reply, not read as its default 2026-11-06 11:36:32 +01:00
atlas
76f5ede645 make a userns data move resumable and refuse before the first chown 2026-11-06 11:36:17 +01:00
atlas
aed7c8451a read the running rev and the hyperhive flake from /etc files, not the unit 2026-11-06 11:35:48 +01:00
atlas
18e4f195e5 hive-priv: refuse injecting strings in the limits drop-in and the container conf
memory_max and cpu_quota are checked against the shapes systemd takes
before write_resource_limits makes any file. validate_bind_path also
refuses whitespace, control bytes, backslash, dollar and backtick, which
the start script expands unquoted in EXTRA_NSPAWN_FLAGS. bridge must be
an interface name and gateway_ip an IPv4 literal. Each refusal names its
field.

Closes #6086
2026-11-06 10:06:11 +01:00
atlas
04870fbdb0 docs: registration follows the secret within five minutes, not at once 2026-11-06 09:21:59 +01:00
atlas
68b38a9d44 swarm-controller: keep retrying the forge webhook secret and registration after a startup outage
The webhook secret slot is filled in the background, on the forge token's
capped unbounded backoff, when the store can't answer at start. The hook
registration waits for the secret and retries on the same backoff instead
of giving up after five tries.

Closes #6101
2026-11-06 09:21:59 +01:00
atlas
febac5eaa9 serialise the agent-sockets and gateway publishes and give each its own tmp file
Closes #6094
2026-11-06 09:20:21 +01:00
atlas
f930571e38 nixBuilds none: turn the container's own nix-daemon socket and service off 2026-11-06 09:18:42 +01:00
atlas
5485151ba6 add a per-agent nix builds mode, host or none, carried like privateUsers 2026-11-06 09:18:42 +01:00
atlas
b9484e62a0 put the socket-dir test above the records-flag comment, and say the activation logs on the new link 2026-11-06 09:18:16 +01:00
atlas
6847ed865a bind a namespaced agent's socket dir off /run so its owner maps to the agent user 2026-11-06 09:18:16 +01:00
iris
23f4f1823b hive-agent: the per-agent page has no message box; its send route and the broker's operator message are removed
The page's composer (its input, slash commands and completion), POST /send in
hive-agent, the OperatorMsg request of the agent socket and its handler in
hive-c0re, and the broker-error helper only the send route used are deleted:
writing to an agent is the swarm UI's terminal. cancel turn, new session and
log out stay in the state badge's menu; POST /api/compact stays, with nothing
on the page calling it. The request-line limit keeps its size, and its comment
says it is a generous bound now. The docs describe the actions in place of the
footer and the prompt.
2026-11-06 01:13:44 +01:00
iris
e149ff3315 swarm-ui: the hives card and the alerts table show placeholder rows under their own header while they load
TableSkeleton is the twin of Table: the same columns, so the same header cells,
with a placeholder shape in each cell of three blank rows and no sort or
filter, which have nothing to work on yet. The hives card and the alerts table
use it in place of their "loading…" text.
2026-11-06 00:55:50 +01:00
iris
33c230665b swarm-ui: the permissions box lists every permission instead of a narrow scroll area
The checkbox list was capped at 12em and scrolled, and the box shrinks the
list to its widest label, so the scrollbar sat in the middle of the popover
with the lower permissions hidden. The permissions are a short fixed list:
MultiselectFilterOptions takes scrollable={false} and the permissions box
uses it. Filter lists that can grow long keep the scroll area.
2026-11-06 00:27:53 +01:00
iris
27c4a593bb swarm-ui: the agents page shows placeholder cards in the shape of the real ones while the roster loads
A new Skeleton (a shimmering shape, still where motion is off) and a region
that tells assistive tech once that something is loading. The agent card's
header is split into AgentCardLayout, a layout with a slot for each part: the
card fills the slots with the real icon, badges and controls, its new
AgentCardSkeleton twin fills the same slots with placeholder shapes, so the
card that replaces it lands in the same place. The agents page uses the twin in
place of its "loading…" text.
2026-11-06 00:22:58 +01:00
iris
fd51cbd19d swarm-ui: pages that only display start from the answer they last saw, then refresh behind it
usePolled takes a cache key: it saves each answer in localStorage and starts
from the saved one, so opening the agents, alerts, builds, review runs or hives
view shows the last data at once and the refresh spinner marks the update. A
saved answer is dropped after a day, when it was saved by another build of the
UI, at log out (a new onLogout of the shared user menu) and when the gateway
ends the login (a new onSessionEnded of the session guard). Pages with an
editor (schedules, notification flows, broadcast) do not use it.
2026-11-05 23:14:25 +01:00
iris
47c447409b swarm-ui: the refresh picker shows a spinner in place of its clock while its page is fetching
usePolled reports when a request is in flight (through a new onBusy of the
poller) and holds it on for at least 0.4 seconds, so a quick answer still
reads as a refresh. The picker swaps its clock for the spinner, in the same
box so its width stays, and the spinner stands still where motion is off.
Every page with a picker passes it; a page with several polled requests shows
it while any of them runs. The Jobs page fetches through shared components
and has none yet.
2026-11-05 23:09:07 +01:00
atlas
89bbeb9757 the bridge resolver answers other record types for its own names locally instead of waiting on an upstream 2026-11-05 16:04:40 +01:00
iris
4876acd02a swarm-ui: a group pane's maximize and close are icon-only badges in its top right corner
The two controls sat among the pane's header badges as a labelled badge and a
cross glyph. They are now icon badges in the top right corner, through a
`trailing` slot of the terminal preview, so the header on the left keeps the
agent, split, subagents and state badges and a narrow pane wraps less.
2026-11-05 13:33:12 +01:00
iris
d733b1e2a9 swarm-ui: choosing a subagent in the subagents menu splits its terminal in beside the agent's
The menu on an agent's terminal page used to open the subagent on a tab of
its own. It now starts a group of this terminal and the subagent's, split to
the right; in a group's pane it splits that pane. A pane's layout key is the
agent, or `agent/subagent` for a subagent's pane, so the layout operations
stay as they are and a destroyed agent takes its subagent panes with it. A
subagent already in the group shows a marker and does nothing when chosen,
and maximize opens a subagent pane's terminal on its own.
2026-11-05 12:45:35 +01:00
iris
5665bbf827 swarm-ui: a maximize button on each pane of a terminal group opens that agent's own terminal 2026-11-05 12:42:56 +01:00
iris
2b78634944 swarm-grafana: dashboards for the swarm builder, the CI runner, Matrix and the notification router 2026-11-05 10:44:33 +01:00
damocles
c8c5a19761 hive-forge: pr reviews names the poster of an inline comment that is not the reviewer's 2026-11-05 09:56:08 +01:00
atlas
cb5a9b2bd7 report the real error when the granter role's bootstrap step fails, and retry on a standby store 2026-11-05 08:57:10 +01:00
damocles
66837e7c10 hive-forge: pr review-reply answers an inline review comment in its conversation 2026-11-05 08:31:43 +01:00
atlas
bef9d401a4 matrix: report homeserver up, latency and database size through existing collectors
tuwunel 1.9.4 exports no metrics. The host collector gets an httpcheck
receiver on the gateway's /_matrix/client/versions (new
services.hyperhive.otel.httpChecks, declared by hive-matrix), and a timer in
the hive-matrix container pushes the database directory's size through the
forwarder's OTLP port, as the attic cache-size unit does. The size step
dereferences the state directory's symlink and pushes nothing for a result
under 4096 bytes.
2026-11-05 08:30:06 +01:00
iris
839dbd642a swarm-ui: groups of agent terminals: drag a terminal tab onto a terminal to split it, tmux style, with resizable panes, a split button, and a name you can edit 2026-11-05 08:24:58 +01:00
iris
d1f83c64ce swarm-grafana: a dashboard for grafana itself 2026-11-05 08:08:57 +01:00
iris
b82d4d4722 swarm-ui: dimmed text on the light palette keeps enough of the text colour to pass AA contrast 2026-11-05 07:53:07 +01:00
damocles
3adfcb3843 docs: contraction in the login minter's metric notes for the prose lint 2026-11-05 01:31:23 +01:00
damocles
6733d2ac30 docs: say who reads the router's consumer counts 2026-11-05 01:31:23 +01:00
damocles
652c0e9614 swarm-claude-login: export login step, duration, expiry and active session metrics 2026-11-05 01:31:23 +01:00
damocles
7efcfd0644 swarm-notify-router: export event, todo, review request and consumer metrics 2026-11-05 01:31:23 +01:00
iris
bc5c36dba6 swarm-grafana: the forge and CI runs boards become one forge board with content, runtime and CI runs tabs 2026-11-05 00:47:17 +01:00
atlas
e30f5849d5 swarm-builder: export build counts, durations, queue wait and publish failures through the host's collector
The builder pushes its build metrics (builds by kind and outcome, build
duration, queue depth and wait, reply publish failures) to its forwarder's
OTLP receiver, which relays them to the swarm collector.

It also registers the standard store client-certificate gauges
(bao.client_cert.*, cert=builder) on the same exporter. They are the
builder's liveness signal: exported every minute whether or not a build
runs. The cert-metrics table in docs/scheduler/observability.md gains the
builder row.
2026-11-05 00:43:25 +01:00
iris
3b8f7ff630 docs: the deny list paragraph in active voice, for the prose lint 2026-11-04 23:53:03 +01:00
iris
0421f28d49 swarm-ui: the egress card on the swarm page lists and edits the swarm-wide denied domains, and says which hives have not applied them 2026-11-04 23:53:03 +01:00
atlas
0bc350a8a1 ci runner: export its built-in metrics through the container's forwarder 2026-11-04 22:26:54 +01:00
atlas
dd5fde848f squid blocks a runtime deny list from the controller in every egress mode, ahead of the allow list 2026-11-04 22:16:35 +01:00
iris
ad76e7e937 swarm-ui: an egress card on the swarm page for the swarm-wide allowed domains, sharing the agent card's add form and list hook 2026-11-04 21:14:43 +01:00
iris
0302582d1c swarm-ui: a swarm tab after agents holding the hives card and the beta notification router; /notifications redirects to it 2026-11-04 21:12:39 +01:00
atlas
3cc4fdb54c agent: say claude-code is only on PATH for the claude runtime in acp.command 2026-11-04 21:02:49 +01:00
atlas
1ce5996c49 agent: pull in and allow claude-code only for the claude runtime 2026-11-04 20:52:49 +01:00
atlas
adaabe6f51 docs: order the setup steps bao, sso account, swarm ui login, clippy then ruth
Follows the order and short steps asked for in #6021: bao, SSO account, swarm UI login, clippy then ruth, then ask ruth for further help (new step 5). The old forge-admin step moves into the swarm UI login step.

Ends the page after step 5 with a pointer to the swarm UI. The hive dashboard and hivectl sections are dropped because they are deprecated in favour of swarm-level ops (mara, #114764).
2026-11-04 20:16:31 +01:00
atlas
86ec5d12c3 docs: add a getting-started page for the nixos flake, module import and required options 2026-11-04 19:59:13 +01:00
atlas
12c7d7c01a cap the kept bearer's age at one hour 2026-11-04 17:36:57 +01:00
atlas
dff2f3ca4d metrics auth responders keep the last good bearer while the store doesn't answer 2026-11-04 17:26:39 +01:00
iris
5e23734667 swarm-ui: restructure the agent card into status, terminal, subagents and settings, with badge controls for internet, permissions and allowed domains 2026-11-04 17:21:56 +01:00
iris
23c2527199 harness metrics for tool calls, bash commands, reminders and first-turn context, on the agents board
The per-agent /stats page read these from its sqlite; the swarm board had
none of them. hive-agent now counts the tools a turn called, the commands
bash tasks ran (from the bash daemon's own table, newer rows only),
reminders scheduled and delivered, and records the first turn of a fresh
session; the turns tab shows them, with fresh sessions per agent. Claude's
own export has no tool-call counter, so the docs no longer say it does.
2026-11-03 16:05:49 +01:00
atlas
5f9629dfc7 store_seeded: report a failed read instead of minting over it 2026-11-03 15:53:33 +01:00