Watch
0
0
Fork
You've already forked hyperhive
0

keep the operator list under one key and read it with one direct get

The agent read the operator-profiles bucket with a keys() listing, an
ordered consumer whose grant (STREAM.INFO, CONSUMER.CREATE) and flow-control
reply had never run against a permissioned queue. The controller now writes
the whole list as one JSON array under one key, only when it changed, and
the agent reads it with one DIRECT.GET the way agent_inference::read_own
reads its key. The agent grant shrinks to that one subject.
This commit is contained in:
atlas 2026-10-17 12:19:43 +02:00 • committed by mara
commit 49015eb553
12 changed files with 254 additions and 201 deletions

View file

@ -72,11 +72,12 @@ The swarm's control plane. The swarm UI and `swarmctl` are its clients.
writes (`GET`/`PUT /api/review-classifier/settings`) →
[`docs/swarm/review-classifier.md`](../docs/swarm/review-classifier.md#swarm-level-settings).
- **Operator profiles** — each operator's name and the pronouns on their
forge profile, one key per member of authelia's operator group in the
`operator-profiles` KV bucket, which this daemon alone writes, at start and
every five minutes. A forge read that fails keeps the stored value, and a
name that leaves the group loses its key. Every agent lists the bucket into
its system prompt →
forge profile, for every member of authelia's operator group, as one list
under the one key of the `operator-profiles` KV bucket. This daemon alone
writes it, at start and every five minutes, and only when the list changed.
A forge read that fails keeps that operator's stored entry, and a name that
leaves the group drops out of the list. Every agent reads the key into its
system prompt →
[`docs/turn-loop/claude-invocation.md`](../docs/turn-loop/claude-invocation.md).
- **Relays** — each agent's terminal and turn-state header as SSE, agent
icons, the cross-repo issue report, and the UI's quick links.