Correct A-27: the tool runner keeps its followers and writes its findings through a held writer

This commit is contained in:
2026-11-11 22:11:57 +01:00
parent efec941fa7
commit c5bdcbf0c5
@@ -103,12 +103,15 @@ names the principle that settles it, and is cited as "design 47 G A-n".
- **A-26** (§687, §689, A-22; principle 7) A part raises no follower's finding itself: every follower is adopted through
its reader (`Adopt`), and the reader raises and clears the follower's four findings through the module's writer, so
the pipeline runner, the indexer and the assigner build none of their own.
- **A-27** (A-26, A-16; principle 7) The tool runner's first views follow A-26 too: `firstview` builds a
`views.ProcessReader` over the runner's bus connection and adopts its followers, so the reader raises their findings;
the runner's `bus.Conn` gains one accessor for its JetStream, its one place (A-16).
- **A-27** (A-16, A-28, A-29; principle 7; corrected) The tool runner is no process module, so it keeps its own
consumer and its four followers as they are and builds no `views.ProcessReader`. It writes the findings it wrote
before (`first-view-unanswered` and the others of its old code, the same kinds) through one `views.HeldWriter` over
its own connection: a small state adapter over the connection's state calls, `Publish` and `Listen` from the
connection, in its one place (A-16); it writes and clears each follower's finding as that follower's status says, as
A-28 has for a single ask. Its JetStream comes from the connection as `bindings.go` already makes it.
- **A-28** (A-26, A-22, §687; principle 7) A part's own follower (mesh-config, mesh-vault) is followed through a
`views.Reader` holding the module's writer and adopted, as A-26. A single ask that is no follower (mesh-build-go's
manifest ask, the tool runner's ask) writes and clears its `first-view-unanswered` finding itself through
manifest ask) writes and clears its `first-view-unanswered` finding itself through
`Writer.Write` and `Writer.Clear` with the contract's `Finding`; mesh-sdk exports no helper for it.
- **A-29** (§686, A-3; principle 7, shared code lives in mesh-sdk) A part whose findings are raised as they happen, not
judged afresh, uses one mesh-sdk form of the writer that observes from its own state: it seeds what it holds from the