ADR 0197: every tool announces itself on the bus, in the NATS services protocol #331

Merged
mesh-admin merged 2 commits from decision/0196-every-tool-announces-itself into main 2026-10-03 20:04:13 +00:00
Contributor

The operator's direction: every tool announces itself; nothing inferred, nothing parsed. (Branch named 0196; the record is 0197 because a resolver record took 0196 on main first.)

Decided: every runtime that serves tools — each machine's Go tool runtime, the TypeScript runtimes still in containers, and the controller for its seat — answers $SRV.PING/$SRV.INFO in the NATS services format with what it serves (one service per module or seat, one endpoint per tool with its served subject/queue and metadata: description, schema, machine, seat/scope, interchangeable). Serving is unchanged. The console discovers with one $SRV.INFO request; the controller's records, as JSON, say which assignments with tools should have answered, so modules without tools are never listed. Grants: subscribe the discovery subjects for what a principal serves; publish the request for the console and runtimes. Options weighed: JSON from the controller only (keeps the inference); re-serving through a services library (rewrites two serving paths for nothing). nats micro list/info will show the mesh's tools live.

ADR 0195 and to-be 34 get mechanism notes. Checks pass.

The operator's direction: every tool announces itself; nothing inferred, nothing parsed. (Branch named 0196; the record is 0197 because a resolver record took 0196 on main first.) Decided: every runtime that serves tools — each machine's Go tool runtime, the TypeScript runtimes still in containers, and the controller for its seat — answers `$SRV.PING`/`$SRV.INFO` in the NATS services format with what it serves (one service per module or seat, one endpoint per tool with its served subject/queue and metadata: description, schema, machine, seat/scope, interchangeable). Serving is unchanged. The console discovers with one `$SRV.INFO` request; the controller's records, as JSON, say which assignments with tools should have answered, so modules without tools are never listed. Grants: subscribe the discovery subjects for what a principal serves; publish the request for the console and runtimes. Options weighed: JSON from the controller only (keeps the inference); re-serving through a services library (rewrites two serving paths for nothing). `nats micro list/info` will show the mesh's tools live. ADR 0195 and to-be 34 get mechanism notes. Checks pass.
mesh-admin added 2 commits 2026-10-03 20:04:09 +00:00
mesh-admin merged commit 34325d3566 into main 2026-10-03 20:04:13 +00:00
mesh-admin deleted branch decision/0196-every-tool-announces-itself 2026-10-03 20:04:14 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#331