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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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.INFOin 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.INFOrequest; 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/infowill show the mesh's tools live.ADR 0195 and to-be 34 get mechanism notes. Checks pass.