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

6,599 commits

Author SHA1 Message Date
atlas
8847fa48c9 the classifier alert also fires on an undecodable request and an unpublished reply 2026-11-11 22:35:05 +01:00
damocles
1c3551b030 hyperhive-the-movie: date-only clock, milestone captions, less elasticity, AV1 webm, --help
The clock shows the date without the time of day. Elasticity drops from 0.3 to 0.1 so the tree sways less through large refactors. Captions come from the git tags and a tracked milestones file with a milestone per component and service at the commit that introduced it, plus growth markers (commit counts, 50k-line steps, issue and PR id doublings). --record writes gource-hyperhive.webm, AV1 in WebM through SVT-AV1, instead of a near-lossless H.264 file. --help (or -h) lists the flags; an unknown argument prints it on stderr and exits 2.
2026-11-11 22:20:50 +01:00
damocles
ca977fda36 docs: the web UI's bulk mark-done deadline and id cap 2026-11-11 22:07:37 +01:00
damocles
93d9c56e2b web ui: bulk mark-done shares one deadline and takes at most 200 ids 2026-11-11 22:07:37 +01:00
atlas
d8703f40dc destroying an agent clears its per-agent archetype-flow switch-offs 2026-11-11 21:40:17 +01:00
atlas
13ff33ead0 archetype flows on the board list the agents the router sends to, and the docs say a switch-off key outlives its flow 2026-11-11 21:40:17 +01:00
atlas
68c24643f6 archetype flows behave like the built-ins: switch off per archetype or per agent, board cards, duplicate
The document's disabled list takes archetype:<archetype>/<flow> (off for every member) and the same with @<agent> (off for one member); a key naming nothing is ignored. GET /api/notify/flows lists the archetype flows with their members, the board draws a card for each with a switch, a checkbox per agent and duplicate, and the dry run counts their hits. The flows keep following the archetype.
2026-11-11 21:40:17 +01:00
atlas
1efbb72fdd an archetype carries its own notification-router flows for its agents
ArchetypeMeta gets flows, checked when the controller stores the record: every todo must go to the new members recipient, which the router expands to the agents of the archetype. The operator's flows document refuses members. The router reads the archetype records and each roster agent's archetype key, and its NATS grant gains read on both buckets.
2026-11-11 21:40:17 +01:00
damocles
ca339b7ba3 acp runtime: write the session id by rename, and fail the first prompt when the system prompt is unreadable 2026-11-11 21:13:44 +01:00
atlas
4782f69110 a review-classifier key in the wrong shape or rejected by anthropic logs how to fix it 2026-11-11 20:34:43 +01:00
atlas
493d2e6c37 ci-runner: warn when the host has no nix store gc 2026-11-11 20:34:11 +01:00
damocles
c5729b4124 forge notify: a review stays in the todo's inline block until the agent answers it, not just until it was delivered once
The todo row is last-write-wins, so a review delivered in one version of the row disappeared when a later comment rewrote it, because the inline tail only listed reviews newer than the last delivery. The baseline is now the agent's own last review or comment on the thread.
2026-11-11 19:12:06 +01:00
iris
119e225c17 docs: reword the set-key note without passive voice 2026-11-11 19:01:01 +01:00
iris
2370f99229 docs: a classifier key shown as set may still not work
The controller can only see that the leaf exists, so a key under the wrong field name or a deleted latest version still shows as set.
2026-11-11 19:01:01 +01:00
iris
6875a4f0f8 swarm-ui: set the review classifier's keys from the classifier settings
The classifier's Anthropic and ACP provider keys were written by hand in the
secret store's UI. The controller now stores them: GET
/api/review-classifier/keys says whether each is set and when it changed, and
PUT /api/review-classifier/keys/{runtime} writes one. No route answers a key.

The controller's store policy gains create and update on the two leaves with
no read of their values, and a metadata read for the set state. The swarm UI's
classifier settings card gets a key form beside the settings, saved apart
because it goes to the secret store.
2026-11-11 19:01:01 +01:00
atlas
c5d601e3a2 alert when a review-classifier run fails 2026-11-11 18:39:44 +01:00
damocles
b89ca3955a hive-matrix: the unread sweep after a sync looks at the rooms the sync touched, not at every joined room
Each room the sweep looks at costs a live /messages fetch of up to 50 events, and the sweep ran for every joined room after every sync response, so a busy account fetched thousands of times an hour whatever the sync itself carried. The sweep now covers the rooms the response names (sliding sync's UpdateSummary rooms, classic's joined rooms), with a full pass first and every five minutes.
2026-11-11 17:05:57 +01:00
atlas
eb39a90057 load the agent-bridge to loopback drop in its own nft table 2026-11-11 16:54:07 +01:00
damocles
748ef2da08 hives report an agent being updated: its status shows updating from the update's stop until the container is back up
A hive marks an agent updating when StopForUpdate stops its running container and clears it when the tail Reconcile or Start settles it, success or failure. The flag rides in the agent status snapshot (absent when false, so older readers and documents are unchanged), the status publisher sends a change at once instead of at the next sweep, and the swarm UI card shows an updating badge.
2026-11-11 16:51:42 +01:00
iris
ca1e25b21e grafana: the egress board filters by domain as well as by agent
A domain variable, the destination host from the proxy's access log, sits beside
the agent one and every query on the board filters on both, so one domain and
its agents show which agents queried it and when.
2026-11-11 15:28:13 +01:00
atlas
5233259b3b ruth is created from a ruth archetype that runs sonnet 2026-11-11 12:24:40 +01:00
iris
aff8cf629d docs: three anchors that were already broken point at their headings
The swarm UI reference links the try-out section by its heading, and drops a
pointer to a hivectl section that never existed along with the sentence that
claimed hivectl sets the hive's limits. The turn-loop index links the
persistence reference's /harness/paused heading by its real slug.
2026-11-11 10:31:14 +01:00
atlas
26152161ca semi-spread vm test: bao on the store machine uses the operator leaf 2026-11-11 10:10:18 +01:00
iris
77ac5bab4a docs: the swarm UI reference describes the archetype tiles in the create dialog 2026-11-11 10:09:50 +01:00
iris
53224d877e swarm ui: the create form picks an archetype from tiles with their icons
An archetype's meta gets an optional icon, the SVG text (at most 16 KiB), which
the controller checks, stores and serves on GET /api/archetypes. The built-in
archetypes read theirs from nix/archetypes/icons. The create form shows each
archetype as a tile with its icon and name, laid out like the broadcast screen's
agent tiles, in place of the dropdown, and draws the SVG through an img data URL.
2026-11-11 10:09:50 +01:00
damocles
f8beca4e6a hive-matrix: sliding sync starts again, the crypto store's classic /sync token is reset before it is sent as to_device.since
The sdk sends the crypto store's next_batch_token as extensions.to_device.since. Classic /sync writes its own token there, which the homeserver refuses (400, should look like an int), so every start fell back to /sync and wrote the classic token again. The daemon now replaces a non-integer token with 0 before the client opens the store.
2026-11-11 10:09:33 +01:00
atlas
ea1564fba7 hive-squid test: wait for the agent, retry no-answer connects, print evidence on failure 2026-11-11 10:08:19 +01:00
iris
f52bc673c6 docs: the roster pages use contractions and the active voice 2026-11-11 10:07:46 +01:00
iris
e746ed1888 docs: the agent roster page keeps the operator view and moves the topology detail out
The page says who is on the roster, who may reach whose state and that the
manager is a normal agent. How topology.json is read and rebuilt, the wire
protocol and the prompt blocks move to 4-implementation/agent-state/roster.md,
unchanged, since the code they describe still exists.
2026-11-11 10:07:46 +01:00
atlas
02f21940a4 pr conflicts: bound the forge list and skip branches no pr targets 2026-11-11 09:12:05 +01:00
atlas
11eb7dac9c an agent gets one todo when its pr starts conflicting with the target branch 2026-11-11 09:12:05 +01:00
atlas
32155f70aa the operator's bao works on a store host without a hive 2026-11-11 09:10:50 +01:00
atlas
039896c506 the built-in archetypes come with a default prompt 2026-11-11 09:10:12 +01:00
atlas
fa07f32cdf semi-spread test: bao on the store host presents a client certificate 2026-11-11 09:07:00 +01:00
atlas
2ef62a3cc8 swarm-archive vm test: the forget control picks a snapshot to delete and reads the refusal 2026-11-11 09:06:35 +01:00
iris
7053dcffc0 docs: the claude login reference names the stored-login routes 2026-11-11 09:05:59 +01:00
iris
33970ec537 docs: the index entry for claude login uses a contraction 2026-11-11 09:05:59 +01:00
iris
aa1ae2729f docs: the claude login page keeps the operator steps and moves the minter detail out
The queue subjects, scratch directory and stdio steps of a login, the harness's
newer-version rule, the minter's grants, the caveat and the metrics move to
4-implementation/swarm/claude-login.md. The handbook page keeps how to log an agent
in, the stored login and who may do it. Design pointers in the nix module, the
crate README and AGENTS.md name the new page.
2026-11-11 09:05:59 +01:00
damocles
c0eb6780ec templates: the agent system prompt is a Jinja template, rendered through hive-template
system.md carries {{ label }}-style variables and an {% if not archetype %} block in place of the config:repo / config:archetype marker pairs, so prompt.rs drops its line filter, marker parsers and string replaces. The rendered prompt is byte for byte the old one for a custom agent, an archetype agent and an empty archetype name, with and without hive, swarm, docs and operators. hive-template now drops a block tag's own line.
2026-11-11 09:04:42 +01:00
iris
4adbc939f2 docs: the swarm UI page shrinks to an overview
The page-by-page and control-by-control description of the swarm UI moves to
4-implementation/web-ui/swarm-ui.md, with the quick-links wiring. The handbook
page keeps the route table, how to reach the UI, who may and what the browser
keeps. Links to the moved sections point at the new page.
2026-11-11 09:03:05 +01:00
iris
5cdf51fcfc archetypes: each built-in archetype ships an icon
reviewer, android-dev and reverse-engineer set services.hyperhive.agent.icon, with
lib.mkDefault, to an SVG under nix/archetypes/icons, so an agent built from one
shows an icon in the swarm UI until its config sets another. The archetype
module-eval check requires an svg icon on each.
2026-11-11 09:02:34 +01:00
atlas
d48cc83dcb collectors: retry a failed start forever with a growing delay instead of hitting start-limit 2026-11-11 09:01:44 +01:00
damocles
8ef3138863 templates: one Jinja language (hive-template) for the notify router's flows, flows document version 2
A todo node's key and text were hand-expanded `{field}` strings. They are now Jinja templates rendered through the new hive-template crate (minijinja, an unknown variable is an error), and the controller's save check reads the variables the template uses. The flows document is version 2; a version 1 document reads as version 2 with each `{field}` converted to `{{ field }}`, and the next save writes it.
2026-11-11 03:40:22 +01:00
atlas
11393bc538 budgeted agents throttle at 90% of the cap; alert on repeated oom kills 2026-11-11 02:38:53 +01:00
atlas
c014b48c22 document budgeted-agent swap and oom metrics; add oom kills panel 2026-11-11 02:38:53 +01:00
atlas
4eb27046a0 budgeted agent containers get no swap; export oom kills and swap use 2026-11-11 02:38:53 +01:00
atlas
a5470d82ae an archetype's prompt prefills the new agent's agents.md in the create form 2026-11-11 02:16:22 +01:00
iris
2acde41e54 docs: the hive dashboard and agent page shrink to overviews
The hive dashboard and the per-agent page lose their control-by-control UI
description and endpoint tables from the handbook. The full text moves to
4-implementation/web-ui/dashboard.md and agent-page.md, and the handbook pages
keep what an operator needs to find and use them. Code comments that named the
old sections point at the new pages.
2026-11-11 01:50:55 +01:00
iris
ce0db01937 docs: the per-principal identities link no longer says below 2026-11-11 01:50:55 +01:00
iris
ead667da42 docs: the credentials page keeps the approach and moves the mechanics out
credentials.md drops the target-shape framing and keeps the rules, where a
secret lives, the swarm- and hive-level secrets and how to add one. The queue
responder's keys, per-principal identities, how a reader reaches the store, the
store UI's login and where the root lives move to
4-implementation/swarm/credentials.md. The per-secret reference moves to
4-implementation/swarm/credentials-reference.md. Links and comments follow.
2026-11-11 01:50:55 +01:00