Design 36 §4: the console is registered in the exclusive managed tool-server file, because the managed-settings key refuses a non-https URL

This commit is contained in:
jochen
2026-10-03 23:41:10 +02:00
parent ce0dc7b55b
commit 88fd7d9739
@@ -112,15 +112,18 @@ the playbooks in the record.
## 4. The console
The module tells the agent where the console is, and the port is the console's to say. **The console
provides a node-scoped provision** — its MCP endpoint on loopback — serving the port the machine gave
it, and the module requires it. A requirement names what the consumer is coupled to
([ADR 0027](../../02-DECISIONS/0027-a-provision-names-what-the-consumer-is-coupled-to.md)); co-location
resolves it; a machine without the console refuses the module by name. [To-be 34](34-the-console.md) is
amended in the same change; issue 192 (open) found the gap.
> **Revised 2026-10-03, building it.** The vendor's managed-settings key for tool servers refuses any
> URL that is not `https://`, including one on loopback, so it cannot carry the console. The module
> owns the vendor's **exclusive** managed tool-server file instead (operator's choice): the console as
> `mesh`, over HTTP on loopback, and every server in the module's `mcp_servers` setting — and no other.
> A server added by hand, a project's own file and a plugin's servers stop loading; claude.ai's
> connectors are kept by a managed setting. A person's own servers move into the setting, for the mesh
> or for one node. Stdio straight to the bus, through the runtime's own client, was weighed and left
> for later: it needs a verb the delivered runtime does not have, and a session holding its own bus
> connection breaks on a credential rotation.
**Other tool servers** a person wants on every machine, or on one, are a declared setting of this module
— mesh layer or node layer — rendered into the same managed key. The person sets them with the
— mesh layer or node layer — rendered into the same managed file. The person sets them with the
controller's `settings` verb on this module, so the list stays declared state; a tool of this module
cannot set it, because a bundle calls nothing (ADR 0192). The agent's own HTTP-only constraint for managed servers applies; a person's local
command-based servers stay their own, in their own file.