Watch
0
0
Fork
You've already forked hyperhive
0
Commit graph

6,177 commits

Author SHA1 Message Date
atlas
868c57321c order the store's readers after its container without wanting it 2026-11-01 13:35:52 +01:00
atlas
b1c828dbf8 let the store container's cold start finish, and order its readers after it 2026-11-01 13:35:52 +01:00
iris
0e840bd34b swarm ui: the start page ends with the slug, its gradients animated
hyperhive / we are the wired between two shaded gradients that pulse in a
wave, still under reduced motion. It sits under 2em from the bottom edge,
clear of the setup assistant.
2026-11-01 13:35:35 +01:00
atlas
abf21683b9 agent trust bundle: retry the root fetch inside its start job so a dns blip at boot queues the harness instead of failing it 2026-11-01 13:35:01 +01:00
iris
fec66af1c8 agents board: a busiest-agents table, joined by agent
Five instant table-format queries, one per column, joined on the agent label,
sorted by turns. Checked in a real Grafana 13 against a mock Prometheus.
2026-11-01 13:21:09 +01:00
iris
696c199621 swarm ui: drop a doubled line from the agents page docs; keep + agent while the roster loads or fails
The buttons sat in the filter card, which only shows once the roster
has loaded, so a failed load left no way to create an agent.
2026-11-01 13:16:13 +01:00
iris
e5fb4bbe6c docs: no contraction in the agents page description 2026-11-01 13:16:13 +01:00
iris
6e5dc3dd30 swarm ui: the agents page is separate cards, not one big agents card
The filter bar is a card of its own, holding the + agent button and the
refresh picker; the hives card and each agent card sit beside it.
2026-11-01 13:16:13 +01:00
iris
70901115a2 docs: the egress dashboard's host lists are tables 2026-11-01 13:12:31 +01:00
iris
ed86356928 egress board: join the host tables by labels, one row per group
labelsToFields and merge left a __name__ column and one row per stat on
the multi-stat table. joinByLabels gives a column per stat.
2026-11-01 13:12:31 +01:00
iris
728e1beb6a egress board: the host tables merge their frames, so they are tables and not a series dropdown
A grouped stats query is one frame per group. Labels become columns,
then the frames merge into rows.
2026-11-01 13:12:31 +01:00
iris
81cdf75055 shared: drop the links.js export nothing imports 2026-11-01 12:57:32 +01:00
iris
464b52004b the hive dashboard uses the swarm UI's links menu, beside the profile avatar
The links menu moves into @hive/shared and takes its links as a prop. The swarm
UI feeds it /api/links as before; the dashboard feeds it stats, API docs and the
swarm, and mounts it next to the profile menu in place of its own hamburger on
the left. A link opens in a new tab unless its entry says it is a page of the
same site.
2026-11-01 12:57:32 +01:00
damocles
b2e3b05198 subagent: compare haiku max to sonnet on low, and warn that sonnet defaults to high 2026-11-01 12:55:37 +01:00
damocles
a1f1f04657 subagent: haiku 5-5 is near free up to high effort on a small context, but max costs about what sonnet does 2026-11-01 12:55:37 +01:00
damocles
69de09e0f9 subagent: drop the unsupported 'raise effort for extra reasoning' claim on haiku 2026-11-01 12:55:37 +01:00
damocles
2ca2c6c42e subagent: tell agents they can liberally spawn haiku, even at high effort 2026-11-01 12:55:37 +01:00
iris
5b66a83112 swarm ui: the agent card has a terminal icon beside the wanted menu
It opens the agent's terminal tab without opening the card.
2026-11-01 12:51:59 +01:00
damocles
0912e2ca06 claude usage dashboard: count the token and cost panels as increase per step so review classifier sessions show up 2026-11-01 12:02:31 +01:00
atlas
2eb46c562b back off the matrix daemon's restarts so a homeserver outage can't flood the store with logins 2026-11-01 11:36:55 +01:00
atlas
81a57a9f81 containers reach network-online only with a dhcp lease, and bao users wait for it 2026-11-01 11:06:41 +01:00
atlas
04f8683f99 force tuwunel's start limit off over the upstream value 2026-11-01 10:56:22 +01:00
atlas
c4924d227b retry the authelia mint and the appservice render until the store answers, and let tuwunel retry 2026-11-01 10:47:50 +01:00
flake-bot
f13c78cd2d nix flake update 2026-11-01 04:00:38 +01:00
damocles
1dc18d41d4 forge cli: unresolved filter drops only resolved comments, position-less ones stay labelled 2026-11-01 02:26:29 +01:00
damocles
219d85a15d forge cli: show comment ids and resolved state on inline review comments, --only unresolved, and list them in pr timeline 2026-11-01 02:26:29 +01:00
damocles
e334513244 forge notify docs: rewrite the inline comments section for the prose lint 2026-11-01 02:17:49 +01:00
damocles
c6958c7baa forge-notify: list inline comment locations in the wake, not their text 2026-11-01 02:17:49 +01:00
damocles
6494c5d7f4 forge-notify: show unseen inline review comments in PR wakes 2026-11-01 02:17:49 +01:00
iris
ff3d119c63 the agent state stream sends a new client the latest header first
The stream was a live tail with no replay, and the agent re-sends its header
once a minute, so a card opened mid-idle read "no report yet" for up to a
minute. The controller already follows every agent's header for the inference
route; it now keeps the newest one as published, and the stream sends it
first when it is under 150 seconds old. An agent that stopped keeps no state
older than that.
2026-11-01 01:59:09 +01:00
iris
cfd2f340fb shared: drop Dropdown's portal mode, which only the agents table used
The agents table passed portal so a wanted menu on its last row escaped the
table's scroll clip. The table is gone from that page and nothing else passes
it, so the prop, its position tracking and the portal render go with it.
2026-11-01 01:32:47 +01:00
iris
a3628bd9ce swarm-ui: an agent card shows a chevron, and no select highlight
The card header gets the same chevron a folded card has, right while shut and
down while open. The outline for an opened card goes: the sections say it is
open.
2026-11-01 01:29:47 +01:00
iris
3058a5871e swarm-ui: drop the wanted menu's two dead options, and two stale test headers
showDestroy and portal were each passed by one caller, the old card and the old
table cell, and neither exists now. Two test headers still named the detail
panel.
2026-11-01 01:26:40 +01:00
iris
2eaa02e892 swarm-ui: the agents page is one column of cards that open in place
The roster loses its second column and its table view. Selecting a card opens
its details under it as four folded sections: overview, settings, accounts and
the terminal. The status, message and wanted rows, which the card header
already shows, are gone from the details. The terminal page's details dialog
keeps the flat list.
2026-11-01 01:21:43 +01:00
flake-bot
04fcb4ca5c nix flake update 2026-10-31 04:00:39 +01:00
atlas
3a4b0ffabf render the matrix appservice registration from the store onto tmpfs
swarm-matrix-ctl appservice render now reads the registration's tokens
from the store and renders swarm.yaml under /run/swarm-matrix-appservice,
which tuwunel loads through LoadCredential. It mints a pair only when the
store answers and holds none; a host that has the old files stores their
pair once instead. A store that does not answer fails the unit and keeps
tuwunel down; sync starts it once the store answers.

Refs #4998 (item 3)
2026-10-30 17:38:29 +01:00
atlas
7813337548 agents dashboard: count agents reporting over the selected range 2026-10-30 17:12:11 +01:00
atlas
1e572d59a9 egress: a github link also derives raw, codeload and objects hosts 2026-10-30 17:07:46 +01:00
atlas
204abb1d0e read grafana's datasource key from the store into /run, seeding an empty store from the old file 2026-10-30 16:59:07 +01:00
atlas
fcc9c8d0ba drop the one-time migration: seed the store from a leftover file once, leave the file
A leftover plaintext client secret is stored once with -cas=0 when the store holds none, so nothing rotates. A store value wins over a different file. The file is no longer read back, compared or removed, and the migration unit is gone.
2026-10-30 16:57:58 +01:00
atlas
2fc63d844b name the mint, not the publisher, as the writer of the client secrets
Finishes the sweep of prose that said the publisher unit writes or carries the OIDC client secrets: rust docs, nix comments and option descriptions, test names and docs.
2026-10-30 16:57:58 +01:00
atlas
05665c05f3 derive a missing client digest from the secret that exists
A client with a secret in the store or in a leftover file but no digest gets the digest of that secret instead of stopping the unit. The password reaches authelia's prompt through a pty, not argv. A lost mint race takes the winner's secret. Also name the mint, not the publisher, in the remaining rust docs.
2026-10-30 16:57:58 +01:00
atlas
d30cb7d122 keep authelia's oidc client secrets in the store, not on disk
The mint creates each client's secret in the swarm secret store and writes only the digest to disk. It mints only when the store answers and holds none. A new unit moves the plaintext files an earlier release left into the store and removes each once the store holds the same value. The bridge reads its secret from the store into /run before each start. The secret publisher unit and its path unit are gone.
2026-10-30 16:57:58 +01:00
iris
e334e677e0 egress dashboard: match squid's result codes by prefix
"TCP_" alone is a word filter for the token TCP_, which no result code is, so
the overview and refused tabs read zero. "TCP_"* matches TCP_TUNNEL and the
rest. The module-eval case now fails on the bare form.
2026-10-30 16:15:19 +01:00
iris
6b0c06800b egress dashboard: tabs like the agents board, with totals on the first
The board was one page of would-deny panels. It now has three tabs: overview
(requests, agents active, refused, credential challenges, data transferred,
status over time, busiest agents and destinations), refused (the hosts each
agent was refused) and would-deny (the old panels). The module-eval check pins
the tab layout and both squid log layouts the queries parse.
2026-10-30 16:10:02 +01:00
atlas
9193f37963 derive per-agent egress entries from operator-linked accounts 2026-10-30 12:28:51 +01:00
atlas
7eb9db47d6 declare the root-check link on hosts without a controller too 2026-10-30 11:18:53 +01:00
atlas
29c57e058a run the platform containers' root check through a build-independent path 2026-10-30 11:13:16 +01:00
atlas
700279026f add the egress log dashboard 2026-10-30 08:53:03 +01:00
atlas
fd2861c097 reset the failed container unit before stopping it in the link-refusal vm subtest 2026-10-30 08:52:50 +01:00