diff --git a/02-DECISIONS/0141-the-host-delivers-its-own-successor.md b/02-DECISIONS/0141-the-host-delivers-its-own-successor.md index d1f58e5..c32bd6c 100644 --- a/02-DECISIONS/0141-the-host-delivers-its-own-successor.md +++ b/02-DECISIONS/0141-the-host-delivers-its-own-successor.md @@ -83,6 +83,32 @@ operating system. facts it states about itself. Without it nothing can say a machine is behind, so "every machine current with its source" cannot include the host. +## Progressive insight — 2026-09-29, the same day + +**The delivery is not "nothing new", and this record said it was.** The decision above stands and is +built: versions side by side, the newest runs, the running host stands aside between reconciles, a +completed reconcile retires what is older than the predecessor, rollback picks a directory. What was +wrong was a claim about how a version reaches a machine. The paragraph on delivery said the +declaration "names it like any other archive… nothing new travels, no new resource kind"; the second +half is true and the first is not, because two things the delivery needs do not exist: + +- **Nothing can compile it.** A `bundle` artifact is compiled by a closed list of toolchains — + typescript and python — whose own comment says adding a language is a decision, because a language + used by *modules* needs an SDK carrying the broker client, the event envelope and tool serving. The + host uses none of that: it is what applies modules, not one of them. So the obligation that list + warns about attaches to a module written in a language, not to the language being buildable, and + the control plane — also written in Go — is built as an image from a Dockerfile rather than through + a toolchain at all. +- **A version cannot reach the path.** An `archive` resource names a fixed path in the manifest, and + nothing interpolates the built version into it, so nothing can ask for + `…/versions//`. + +Neither changes what was decided, which options were weighed, or any consequence: the shape is +unaffected and the host half is merged and tested. What it changes is the cost, which this record +understated as none. The remaining work is a way to build the host and a way to name a version in a +path, and until both exist nothing delivers a version and every machine takes the fallback — which is +what every machine does today. + ## Consequences - **The host becomes a build target and a module** — a module whose resource is the next host, applied