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:
parent
6942f8fd27
commit
49015eb553
12 changed files with 254 additions and 201 deletions
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in a new issue