A store row keeps its seat's protocol, and a holder may take work from its queue
The seat table has name, scope, delivers and decision, and the protocol ADR 0129 gave a seat lives only in the compiled defaults; loading the rows dropped it, so no role's work queue was ever raised and the first build submitted over the new bus met "no response from stream". Until the table gains the columns, a row with no protocol keeps the compiled one of its name. And the holder of a seat is granted what taking work from its queue needs — asking about the worker consumer it binds, and acknowledging on it — which the first machine to try was refused. The control plane's own seat placeholders no longer include the old bus's port, which the switch removed with the variable.
This commit is contained in:
@@ -294,7 +294,13 @@ func PermissionsFor(p Principal) (Permissions, error) {
|
||||
// grants nothing anybody can use.
|
||||
sub = append(sub, "_DELIVER."+consumerDurable(p))
|
||||
for _, s := range p.Holds {
|
||||
sub = append(sub, "_DELIVER.SEAT_"+upperSnake(s.Name)+"_worker")
|
||||
// Taking work from the role's queue: the worker consumer it binds (asked about,
|
||||
// delivered on, acknowledged), each on the seat's own stream. The first machine to
|
||||
// take work over the new bus was refused the asking (2026-09-28).
|
||||
worker := "SEAT_" + upperSnake(s.Name) + "_worker"
|
||||
stream := seatStreamName(s.Name)
|
||||
sub = append(sub, "_DELIVER."+worker)
|
||||
pub = append(pub, "$JS.API.CONSUMER.INFO."+stream+"."+worker, "$JS.ACK."+stream+"."+worker+".>")
|
||||
for _, a := range s.Accepts {
|
||||
sub = append(sub, seatSubject(s, "accept", a))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user