hyperhive/swarm-authelia-bridge/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
atlas dd1156d45c feat(#3549): refuse agent names the swarm already routes on
An agent name was checked for shape and never for meaning, so a name the
system already answers to could be taken. The list is derived, not invented:
operator/manager/root are broker recipients, and forge/reminder/schedule/
system/todo are message senders.

Senders are in it for a reason that is not cosmetic. The harness switches on
the sender name, so an agent called todo would have its messages read as
todo-wakes and one called system as helper events. That is a parse, not a
display quirk.

⚠️ The check is deliberately its own function rather than part of
validate_username, which runs over every user on every write — including
humans this bridge did not create. Folding it in would mean a store already
containing an operator named 'operator' could never be written again: a rule
about what an agent may be NAMED would have become a rule about what the file
may CONTAIN. A test pins that.

This is the static half only. The dynamic half — a name already taken by
another subject — waits on the heal-vs-refuse question open on #3550.
2026-08-19 23:10:02 +02:00
..
introspect.rs fix(#3394): distinguish the caller's bad token from the bridge failing to validate 2026-08-18 00:22:45 +02:00
main.rs feat(#3549): refuse agent names the swarm already routes on 2026-08-19 23:10:02 +02:00
store.rs feat(#3549): refuse agent names the swarm already routes on 2026-08-19 23:10:02 +02:00