From 1bd6f4611efb50cf121521c26c57b18292bf597a Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 17 Oct 2026 22:53:10 +0200 Subject: [PATCH] Say where nine half-built designs stand (issue 1072) The records cleanup found them saying proposed or designed although their code is on main; each now says in-progress and what is built and left. --- 03-DESIGN/01-to-be/18-building-a-module.md | 6 ++++-- 03-DESIGN/01-to-be/19-the-module-protocol.md | 6 ++++-- 03-DESIGN/01-to-be/21-the-installation-in-full.md | 6 ++++-- 03-DESIGN/01-to-be/22-the-work-ahead.md | 4 +++- 03-DESIGN/01-to-be/23-choosing-a-provider.md | 8 +++++--- .../01-to-be/30-the-mesh-updates-itself-on-a-push.md | 8 +++++--- .../01-to-be/54-the-controllers-records-on-the-bus.md | 8 +++++--- 03-DESIGN/01-to-be/55-the-knowledge-base.md | 8 +++++--- .../01-to-be/56-the-mail-client-set-up-by-the-mesh.md | 8 +++++--- 9 files changed, 40 insertions(+), 22 deletions(-) diff --git a/03-DESIGN/01-to-be/18-building-a-module.md b/03-DESIGN/01-to-be/18-building-a-module.md index cc139a23..64945a4c 100644 --- a/03-DESIGN/01-to-be/18-building-a-module.md +++ b/03-DESIGN/01-to-be/18-building-a-module.md @@ -1,11 +1,11 @@ --- layer: to-be -status: proposed +status: in-progress code: - mesh-controller cmd/mesh-builder - mesh-controller internal/builder - mesh-catalog modules/build-agent -updated: 2026-10-16 +updated: 2026-10-17 decisions: - "ADR 0405" - "ADR 0262" @@ -31,6 +31,8 @@ decisions: # Building a module +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: mesh-controller's builder (internal/builder, cmd/mesh-builder) implements the recipe kinds described here, and the sections marked built and proven live match the code. Left: not broken down into milestones; issue 1072 found it saying proposed. + [`12-a-module-repository`](12-a-module-repository.md) says what a module may build — an image, an archive, an upstream mirror — and where the result goes. This says **how a build is modelled**, and why the current model does not fit what a module is. diff --git a/03-DESIGN/01-to-be/19-the-module-protocol.md b/03-DESIGN/01-to-be/19-the-module-protocol.md index 6697881e..927dd3de 100644 --- a/03-DESIGN/01-to-be/19-the-module-protocol.md +++ b/03-DESIGN/01-to-be/19-the-module-protocol.md @@ -1,13 +1,13 @@ --- layer: to-be -status: proposed +status: in-progress code: - mesh-sdk src - mesh-tools src/broker-nats.ts (and broker-amqp.ts until the rollout) - mesh-controller internal/link - mesh-controller cmd/mesh-controller (status) - mesh-catalog modules/postgres, modules/keycloak (the Go provisioner loop) -updated: 2026-10-06 +updated: 2026-10-17 decisions: - "ADR 0224" - "ADR 0230" @@ -24,6 +24,8 @@ decisions: # The module protocol +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: the wire this design describes is in mesh-sdk and mesh-controller's internal/link, and the design's own checks against the code (2026-09-16) agree. Left: not broken down into milestones; issue 1072 found it saying proposed. + **What a module's code and the mesh say to each other.** An SDK is an implementation of this in one language and nothing more (ADR 0074). diff --git a/03-DESIGN/01-to-be/21-the-installation-in-full.md b/03-DESIGN/01-to-be/21-the-installation-in-full.md index 09602ab4..8f40cb5d 100644 --- a/03-DESIGN/01-to-be/21-the-installation-in-full.md +++ b/03-DESIGN/01-to-be/21-the-installation-in-full.md @@ -1,11 +1,11 @@ --- layer: to-be -status: proposed +status: in-progress code: - mesh-host internal/bootstrap - mesh-host cmd/mesh-bootstrap - mesh-lab test/integration/one-node-mesh.test.ts -updated: 2026-10-06 +updated: 2026-10-17 decisions: - "ADR 0226" - "ADR 0067" @@ -16,6 +16,8 @@ decisions: # The installation, in full +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: the node-engine's bootstrap (mesh-host internal/bootstrap) carries phases 2 and 3 of the installation, so the steps this text calls manual are partly automated. Left: not broken down into milestones; the text is not yet corrected against the code. + Every step from a machine with nothing to a mesh that maintains itself. Written out explicitly because it is the procedure everything else depends on, and because the parts that do not exist yet are easier to see beside the parts that do. diff --git a/03-DESIGN/01-to-be/22-the-work-ahead.md b/03-DESIGN/01-to-be/22-the-work-ahead.md index e8ca36cf..60a79ed0 100644 --- a/03-DESIGN/01-to-be/22-the-work-ahead.md +++ b/03-DESIGN/01-to-be/22-the-work-ahead.md @@ -6,7 +6,7 @@ code: - mesh-controller - mesh-catalog - mesh-lab -updated: 2026-09-15 +updated: 2026-10-17 decisions: - "ADR 0067" - "ADR 0074" @@ -17,6 +17,8 @@ decisions: # The work ahead +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Phase 2's blocker (issue 053) is resolved and delivered, and the forge's module declares the package registry in full, Phase 2's done-when. Whether every phase holds is checked under issue 1073, which marks it implemented or names what is left. + Everything decided this cycle and not yet built, in the order its dependencies allow. Each phase ends at something provable on a running mesh, because a phase that ends at a claim is a phase that went missing without anything complaining. diff --git a/03-DESIGN/01-to-be/23-choosing-a-provider.md b/03-DESIGN/01-to-be/23-choosing-a-provider.md index 92db7ec0..017872aa 100644 --- a/03-DESIGN/01-to-be/23-choosing-a-provider.md +++ b/03-DESIGN/01-to-be/23-choosing-a-provider.md @@ -1,8 +1,8 @@ --- layer: to-be -status: designed -code: [] -updated: 2026-09-25 +status: in-progress +code: [mesh-controller] +updated: 2026-10-17 decisions: - "ADR 0084" - "ADR 0027" @@ -11,6 +11,8 @@ decisions: # 23 — Choosing a provider +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: mesh-controller's internal/catalogue/resolve.go implements the model described here, and designs 26, 27 and 29 rely on it. Not yet checked against this text clause by clause, nor given an as-is: issue 1074. + A provision is named for what the consumer's code is coupled to (ADR 0027): `postgres-database`, not `database`. That decides *what kind* of provider satisfies a requirement. diff --git a/03-DESIGN/01-to-be/30-the-mesh-updates-itself-on-a-push.md b/03-DESIGN/01-to-be/30-the-mesh-updates-itself-on-a-push.md index 80f05753..9a34f82b 100644 --- a/03-DESIGN/01-to-be/30-the-mesh-updates-itself-on-a-push.md +++ b/03-DESIGN/01-to-be/30-the-mesh-updates-itself-on-a-push.md @@ -1,8 +1,8 @@ --- layer: to-be -status: proposed -code: [] -updated: 2026-10-06 +status: in-progress +code: [mesh-controller] +updated: 2026-10-17 decisions: - "ADR 0238" - "ADR 0221" @@ -15,6 +15,8 @@ decisions: # 30 — The mesh updates itself on a push +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: mesh-controller's delivery plans, merge gate and merge window (plan.go, release_plan.go, merge_gate.go, merge_window_bus.go, changeplan.go, with their migrations), which design 47 builds on. Not yet checked against this text nor given an as-is: issue 1075. + **Today the mesh does not update itself; a person drives the pipeline by hand, and one class of change freezes it.** A code change lands in `mesh-controller` or `mesh-catalog`, and getting it onto the machines is a sequence somebody types. The predecessor's pipelines rebuilt and redeployed on a diff --git a/03-DESIGN/01-to-be/54-the-controllers-records-on-the-bus.md b/03-DESIGN/01-to-be/54-the-controllers-records-on-the-bus.md index fa9f3d43..d09c4900 100644 --- a/03-DESIGN/01-to-be/54-the-controllers-records-on-the-bus.md +++ b/03-DESIGN/01-to-be/54-the-controllers-records-on-the-bus.md @@ -1,8 +1,8 @@ --- layer: to-be -status: designed -code: [] -updated: 2026-10-10 +status: in-progress +code: [mesh-controller] +updated: 2026-10-17 decisions: - "ADR 0289" - "ADR 0201" @@ -12,6 +12,8 @@ decisions: # 54 — The controller's records on the bus +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: mesh-controller's record mirrors (internal/recordmirror, mirrors.go, migration 0081), the mechanism specified here. Not yet checked mirror by mirror; not broken down into milestones. + **What each node runs, how far each rollout has got, what each build is doing and what each setting holds can be watched on the bus, and what is watched never says something the controller's store does not** (ADR 0289, diff --git a/03-DESIGN/01-to-be/55-the-knowledge-base.md b/03-DESIGN/01-to-be/55-the-knowledge-base.md index af6d6061..f8124393 100644 --- a/03-DESIGN/01-to-be/55-the-knowledge-base.md +++ b/03-DESIGN/01-to-be/55-the-knowledge-base.md @@ -1,8 +1,8 @@ --- layer: to-be -status: designed -code: [] -updated: 2026-10-12 +status: in-progress +code: [mesh-catalog] +updated: 2026-10-17 decisions: - "ADR 0290" - "ADR 0321" @@ -10,6 +10,8 @@ decisions: # 55 — The knowledge base +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built and live since 2026-10-11: the knowledge base is the module mesh-knowledge in mesh-catalog, holding every decision record and research effort (issues 425 and 426, resolved and delivered). Left: the later slices, issues 428 and 429. + **The mesh keeps its decision records and research efforts whole in a module of its own, `mesh-knowledge`, one instance on the control-node, holding the seat `knowledge-base`: each record's number, status, topic, typed links, its clauses with their own status, and its reasoning, with every version kept. A record is proposed, checked when it diff --git a/03-DESIGN/01-to-be/56-the-mail-client-set-up-by-the-mesh.md b/03-DESIGN/01-to-be/56-the-mail-client-set-up-by-the-mesh.md index 6c676709..80902654 100644 --- a/03-DESIGN/01-to-be/56-the-mail-client-set-up-by-the-mesh.md +++ b/03-DESIGN/01-to-be/56-the-mail-client-set-up-by-the-mesh.md @@ -1,8 +1,8 @@ --- layer: to-be -status: designed -code: [] -updated: 2026-10-13 +status: in-progress +code: [mesh-catalog, mesh-controller] +updated: 2026-10-17 decisions: - "ADR 0316" - "ADR 0317" @@ -12,6 +12,8 @@ decisions: # 56 — The mail client, set up by the mesh +**Where it stands, 2026-10-17** (the records cleanup, issue 1072; playbook 07, "The design's state is written back"). Built on main: issue 586, this design's core, is resolved and delivered (hq#336, mesh-catalog#262, mesh-controller#286), and mesh-catalog's betterbird module has every piece named here. Not yet proven live end to end, nor given an as-is: issue 1076. + **On every node that holds a display server, the `betterbird` module installs Betterbird from a pinned upstream release, ships the Owl add-on with it through Betterbird's enterprise policy, and declares the operator's mail accounts without their credentials. A password or token never passes through the mesh: each