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

6,634 commits

Author SHA1 Message Date
damocles
ea4df08ff8 swarm-stt: the board's descriptions fit the lint 2026-11-12 12:18:32 +01:00
damocles
b180680427 swarm-stt: metrics and a Grafana board for the speech-to-text service 2026-11-12 12:18:32 +01:00
damocles
96b5b83fa4 swarm-stt: the deploy module (deploy.stt.*, sandboxed container, store leaf, queue grants) and its docs 2026-11-12 12:18:32 +01:00
damocles
423860cadc transcribe_audio: wait for the service's reply deadline, cap the read, say what each failure is 2026-11-12 12:18:18 +01:00
damocles
eff209f756 agents can transcribe an audio file: the transcribe_audio tool, through the harness and the speech-to-text service 2026-11-12 12:18:18 +01:00
iris
c42db99f27 swarm-ui: the badge tooltips are built by a tested helper 2026-11-12 10:37:30 +01:00
iris
ebcf838dd8 docs: the terminal's model and effort badges open the inference settings 2026-11-12 10:37:30 +01:00
iris
f7c8d4c14c swarm-ui: the model and effort badges on an agent's terminal open its inference settings
Clicking either opens the settings in a popover under the badge, the same panel the agent's card has. A subagent's terminal keeps plain badges.
2026-11-12 10:37:30 +01:00
atlas
bd79b58e78 log the agent bridge's forwarded flows in the hive_egress table
A forward chain in the hive-owned nft table logs each new flow from the agent bridge to the uplink (v4 and v6) and counts every packet. It never blocks. The mesh interface is skipped. Logging is rate limited per source address; a flow that limit cannot log gets one line from a shared limit with its own prefix. services.hyperhive.network.egress.forward selects accept, log (default) or drop; drop is refused at evaluation until the interception it needs exists.
2026-11-12 09:20:51 +01:00
damocles
f5e7caa2eb swarm-stt: reply deadline agrees with the limits, one request per agent, short errors to the sender 2026-11-12 09:07:04 +01:00
damocles
ee10acb154 swarm-stt: the daemon (queue connection, request/reply, busy limit, hourly purge) and its settings docs 2026-11-12 09:07:04 +01:00
damocles
47bec6bef3 swarm-stt: the request subject, the service's NATS permissions and the --stt-client flag 2026-11-12 09:07:04 +01:00
damocles
40ec5ac9e0 acp runtime: the queue cap's comment says it drops the newest item 2026-11-12 08:15:47 +01:00
damocles
e58e842a9f acp runtime: bound the agent's output queue between turns 2026-11-12 08:15:47 +01:00
atlas
8530a5b7fd swarm-nats: the auth responder has no start limit, always restarts, and is started after the server's restarts 2026-11-12 07:42:25 +01:00
atlas
a95fdc6281 full-setup vm test: a failed create also dumps the swarm queue's nats and auth units 2026-11-12 07:42:11 +01:00
atlas
8fbb3c65fd semi-spread vm test: the merged swarm machine keeps attic private, like heavyduty 2026-11-12 07:41:50 +01:00
atlas
2a0b2dcc1f swarm-archive vm test: the fake store is readable by the prune whatever the writer's umask 2026-11-12 04:24:44 +01:00
iris
bb735d2e35 swarm-ui: the broadcast's loading skeleton uses the shared picker's class names
The archetype tiles keep their own classes; only the comment in
ArchetypePicker.css that named the old broadcast classes now names the
picker's.
2026-11-12 00:34:22 +01:00
iris
79b1fc35c5 swarm-ui: the schedule form picks agents from the same card grid as the broadcast
The grid becomes a shared AgentPicker; the broadcast composer uses it too.
2026-11-12 00:34:22 +01:00
iris
175019607c docs: the swarm UI pages say agent list where they said roster 2026-11-12 00:05:08 +01:00
iris
d831f7df2d swarm-ui: format the shortened error texts 2026-11-12 00:05:08 +01:00
iris
169a39515d swarm-ui: the web app manifest says agents, not agent roster 2026-11-12 00:05:08 +01:00
iris
8966ddbd85 swarm-ui: the error and empty texts say agents and hives, not roster
The word named three different things. Only the four strings an operator reads change; code comments and names stay.
2026-11-12 00:05:08 +01:00
iris
7ba684a1da docs: the agent roster page is Agent permissions, and the docs say agent list
Roster named the permissions page, the hive's topology file and the swarm's list of agents without saying which. The page and its links are renamed; the implementation docs and UI text follow separately.
2026-11-11 23:52:15 +01:00
iris
f13d3426ee docs: choom runs Claude Code, so it needs the claude runtime 2026-11-11 23:30:54 +01:00
iris
f3093c8a5c docs: an agent is a model-driven worker, not one Claude instance
The operator chooses the runtime (claude or any ACP agent) and the model.
2026-11-11 23:26:45 +01:00
atlas
70e4c63ff7 add a triage archetype: haiku, a triage prompt, flows for new issues and prs 2026-11-11 23:25:59 +01:00
iris
757e6fc1a7 docs: the swarm decides who is on the roster, so that text moves to the swarm page
The agent roster page opened with how an agent comes to exist (the identity
store, swarmctl, the swarm UI, the ruth archetype), which is the swarm's
doing. That text now sits in a "Who is on the roster" section of the swarm
page, and the roster page keeps what is a hive's and an agent's: the hive's
own list, who may reach whose state, and that the manager is a normal agent.
2026-11-11 23:23:07 +01:00
damocles
33e63091d5 swarm-stt: only files that start like an audio container reach ffmpeg 2026-11-11 23:10:17 +01:00
damocles
f8e1d0fbbd swarm-stt: time-box a run and decode pipe-only 2026-11-11 23:10:17 +01:00
damocles
df4b2f1838 swarm-stt: the speech-to-text core (hash cache, shared runs, ffmpeg and whisper-cli engine) 2026-11-11 23:10:17 +01:00
atlas
5443c1c9ba an archetype flow can be customized for one agent 2026-11-11 22:57:02 +01:00
atlas
f2e735a98f treefmt covers python with ruff-format and ruff-check, ruff in the dev shell 2026-11-11 22:35:54 +01:00
atlas
c1c5fe9704 vm-tests: full-setup script lives in full-setup.py, build-time values in env, ruff in ci 2026-11-11 22:35:54 +01:00
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