The largest gap in the coverage list is not a gap
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.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user