From 0760280bc65ad1d6b0f5163076d4cca324bb0ef2 Mon Sep 17 00:00:00 2001 From: jochen Date: Tue, 1 Sep 2026 03:09:11 +0200 Subject: [PATCH] The largest gap in the coverage list is not a gap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tool servers — 56 modules, over half — were written up as the biggest missing thing. They are expressible with what exists, and the first framing was wrong in a way worth keeping: a module provides `tools` and the session requires them does not work, because a requirement has one answer and 56 modules offering tools would be 56 answers. Turned around it fits exactly. The session provides `tool-host`; every module offering tools requires it and contributes where its tools are. Many-to-one is what `contributes` has always been, and the session receives all of them in one file. Verified by resolving it rather than by reading the code. It only became possible today: until 022, several modules on one node requiring the same thing was refused outright. Worth noting because it means the credential fix bought more than credentials. What remains is a decision about what a tool server is, which is work rather than a missing shape. The entry stays in the list rather than being deleted — a checklist that quietly loses its biggest item reads as though nobody looked. --- 03-DESIGN/01-to-be/16-module-coverage.md | 33 ++++++++++++++++++------ 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/03-DESIGN/01-to-be/16-module-coverage.md b/03-DESIGN/01-to-be/16-module-coverage.md index e2a2642..cedef65 100644 --- a/03-DESIGN/01-to-be/16-module-coverage.md +++ b/03-DESIGN/01-to-be/16-module-coverage.md @@ -50,17 +50,34 @@ is `extends` chains, which were doing inheritance and are better as separate mod ## Missing, and what each would take -Ordered by how many modules need it. +Ordered by how many modules need it. The largest entry turned out not to be a gap at all, which +is left in place rather than deleted: the first framing of it was wrong in an instructive way, and +a checklist that quietly loses its biggest item reads as though nobody looked. -### Tool servers — 56 modules +### Tool servers — 56 modules — *not a gap* -**The largest single gap.** Over half the modules ship a `tools/` directory that becomes tools an -agent can call on that node. Nothing in the new manifest says *this module offers tools*. +Over half the modules ship a `tools/` directory that becomes tools an agent can call on that node. +This was written up as the largest single gap. **It is expressible with what exists**, and the +first framing of it was wrong in a way worth keeping: *a module provides `tools`, the session +requires them* does not work, because a requirement has exactly one answer and 56 modules offering +tools would be 56 answers to one question. -A module can already run the server — it is a container or a service. What is missing is the -convention that makes it reachable: something has to know the tools exist and route to them. That -is plausibly not a manifest feature at all but a **provision** — a module provides `tools`, the -session on that node requires them — which would need no new vocabulary. **Not yet decided.** +Turn it around and it fits exactly. The session **provides** `tool-host`; every module offering +tools **requires** it and **contributes** where its tools are. Many-to-one is what `contributes` +has always been, and the session receives all of them in one file: + +``` +given: { from: gitea, values: { at: … } } + { from: minio, values: { at: … } } + { from: umami, values: { at: … } } +``` + +Verified by resolving it, not by reading the code. It also only became possible today: until +[`022`](../../04-ISSUES/022-one-credential-per-node-per-provision-not-per-module/00-report.md) was +fixed, several modules on one node requiring the same thing was refused outright. + +What remains is not vocabulary but a decision about **what a tool server is** — a container the +module already runs, and what the session does with the list. That is work, not a missing shape. ### Schema migrations — 14 modules