diff --git a/03-DESIGN/01-to-be/32-what-a-module-declares.md b/03-DESIGN/01-to-be/32-what-a-module-declares.md index d2f556b..2462aa8 100644 --- a/03-DESIGN/01-to-be/32-what-a-module-declares.md +++ b/03-DESIGN/01-to-be/32-what-a-module-declares.md @@ -1,11 +1,20 @@ --- layer: to-be -status: proposed -code: [] +status: in-progress +code: + - mesh-controller internal/catalogue/declaration.go + - mesh-controller internal/catalogue/manifest.go + - mesh-controller internal/link/serve.go + - mesh-controller internal/link/bus.go + - mesh-controller internal/broker/nats.go + - mesh-controller internal/inventory/nodes.go + - mesh-host internal/apply/apply.go + - mesh-tools src/main.ts + - mesh-catalog modules/mesh-catalog updated: 2026-09-28 decisions: - 02-DECISIONS/0126-a-module-declares-its-own-seats.md - - 02-DECISIONS/0127-amqp-is-a-provision-not-the-bus.md + - 02-DECISIONS/0131-everything-on-the-mesh-speaks-to-the-broker-seat.md - 02-DECISIONS/0128-the-mesh-bus-is-required-not-ambient.md - 02-DECISIONS/0106-the-bus-is-nats.md - 02-DECISIONS/0041-events-are-a-relationship.md @@ -261,8 +270,8 @@ queue. and publishes it last-per-subject. A node that was away gets exactly the current one, never a queue of superseded ones, and a replayed older one is refused by sequence. -**A version prepares its state before it runs.** A module version may declare an entrypoint that brings -its state to the shape that version needs — the same vocabulary as the entrypoints it declares for its +**A version prepares its state before it runs.** *Built 2026-09-28.* A module version may declare an +entrypoint that brings its state to the shape that version needs — the same vocabulary as the entrypoints it declares for its tools and its provisioner, and nothing about how a machine runs it. The mesh runs that entrypoint as it runs the module's own code, to completion, in the module's own context, and a version whose preparation did not succeed does not run: the step gates that module and nothing else on the machine @@ -277,7 +286,7 @@ mesh provisions is per consumer and preparation is too. No level to choose, and not to an address it was given at genesis. Held and retried while the store restarts ([ADR 0083](../../02-DECISIONS/0083-one-push-leaves-the-mesh-consistent.md)). -**And the mesh says what it applied.** A report is control traffic only the control plane reads, so the +**And the mesh says what it applied.** *Built 2026-09-28.* A report is control traffic only the control plane reads, so the chain above went dark at the moment it touched a machine: nothing said which version a machine now runs, or that it refused to. The control plane states those as facts under its own seat's namespace, when what a machine runs changes rather than on every convergence pass, and anything that cares subscribes the way