ADR 0195: the mesh's tools are found by address, not announced whole; research 021; to-be 34 §3a

This commit is contained in:
jochen
2026-10-03 21:49:26 +02:00
parent 4ee8e3905d
commit 77813f4613
4 changed files with 166 additions and 2 deletions
+20 -2
View File
@@ -1,9 +1,10 @@
---
layer: to-be
status: implemented
status: designed
code: [mesh-catalog, mesh-tools, mesh-controller]
updated: 2026-10-02
updated: 2026-10-03
decisions:
- 02-DECISIONS/0195-the-meshs-tools-are-found-by-address-not-announced-whole.md
- 02-DECISIONS/0160-the-mesh-issues-an-assignments-subjects-and-a-runtime-serves-what-it-is-issued.md
- 02-DECISIONS/0159-a-tool-call-names-the-machine-and-a-holder-serves-its-seats-verbs.md
- 02-DECISIONS/0152-the-operators-surface-is-a-module-the-console.md
@@ -93,6 +94,23 @@ prerequisites are listed in that record. When the seat serves them, the console
modules' own, and the person stops opening a shell for the mesh's own questions. Until then the console
says so in its handshake.
## 3a. Found by address, not announced whole (2026-10-03)
*By [ADR 0195](../../02-DECISIONS/0195-the-meshs-tools-are-found-by-address-not-announced-whole.md);
this section governs where it and §2–§3 disagree.* The console announces five tools —
`mesh_overview`, `mesh_machine`, `mesh_search`, `mesh_describe`, `mesh_call` — and every tool the mesh
answers is reached through them by its address: `<seat>.<verb>` for a seat held once for the mesh,
`<node>/<seat>.<verb>` for one held per machine, `<node>/<module>.<tool>` for an assignment, and
`<module>.<tool>` as well for a module whose instances are interchangeable. A module that is not
interchangeable is called with its machine or refused with the machines it runs on. Each discovery
verb asks the mesh when it is called, so nothing is kept for a session's length; the flat catalogue
stays reachable through the `mesh` client and a setting, unannounced.
*Found 2026-10-03, measuring for that record:* §3's statement that a stateful module on two machines is
listed once per machine does not hold on the live console — postgres and mssql are listed once, `node`
optional, answered by whichever instance replies. The address replaces that statement rather than
repairing it.
## 4. Where it runs
On whichever machines an operator sits at, by assignment. It is not on the control node by default and