Files
hq/04-ISSUES/199-a-node-scoped-seats-verb-could-not-be-called-through-the-console/00-report.md
T
jschoubben 98eb3aa76f ADR 0169 → 0170: the firewall seat's record renumbered after a collision on main; its built note; cycle.py refuses two records sharing a number
Another session's 0169 landed first. The collision check from issue 155
covered issue folders only; it covers decision records now, and would have
refused this.
2026-10-02 14:51:22 +02:00

1.9 KiB

status, opened, located-in, fixed-by, amended-design
status opened located-in fixed-by amended-design
resolved 2026-10-02
mesh-tools src/client.ts (toolsOn left node-scoped seats out of the listing)
mesh-tools src/mcp.ts (the call resolved the key against that listing)
mesh-tools 27 — node-scoped seats are listed with their scope, the verb requires the machine, and the call carries it in the subject

199 — A node-scoped seat's verb could not be called through the console

What was observed

2026-10-02, the first time a node-scoped seat declared verbs (ADR 0170). The packet filter's holder on every machine served rules, reload and remove on the seat's per-machine subjects, and the bus admitted them. The console answered every call with nothing serves node-packet-filter.rules@.

Design 33 §4 says a node-scoped seat's tool carries the node it is asked of, as <seat>.<verb>@<node>. The console's listing left node-scoped seats out — the comment said they wait for a caller naming the node — but the roles map the console resolves a name against is built from that same listing. So the name never resolved as a seat's verb, fell through to a module's subject nobody served, and the refusal named the wrong cause.

Why it matters beyond this instance

A stated behaviour that did not happen, with a refusal that pointed elsewhere: the seat's verbs were live on four machines and unreachable from the one surface a person uses. It could only be found by a node-scoped seat declaring verbs, which none had.

Resolved, 2026-10-02

mesh-tools 27: node-scoped seats are listed with their scope, their verbs take a required node, the call carries it in the subject, and a call without one is refused in words. Tested with a round trip asking one machine's holder and being refused without a machine.