From c03f2cd4c688936e2076742eae59362418c70e59 Mon Sep 17 00:00:00 2001 From: jochen Date: Sat, 3 Oct 2026 11:43:53 +0200 Subject: [PATCH] Design 18 and ADR 0190: shared build work proven live on all four machines, and the five gaps the switch found --- ...its-holders-and-building-is-the-first-such-role.md | 2 +- 03-DESIGN/01-to-be/18-building-a-module.md | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/02-DECISIONS/0190-a-seats-work-is-shared-by-its-holders-and-building-is-the-first-such-role.md b/02-DECISIONS/0190-a-seats-work-is-shared-by-its-holders-and-building-is-the-first-such-role.md index 6ddfd73..6fa93df 100644 --- a/02-DECISIONS/0190-a-seats-work-is-shared-by-its-holders-and-building-is-the-first-such-role.md +++ b/02-DECISIONS/0190-a-seats-work-is-shared-by-its-holders-and-building-is-the-first-such-role.md @@ -102,7 +102,7 @@ is unchanged: a tier's asks go out together and are now worked together. | An ask is never delivered to a busy holder | the same test: the busy holder's ask count stays at one until it acknowledges | | A holder that dies mid-work leaves its ask for another | the same test, one holder closed mid-ask | | The asker names no machine | the controller's seat table: `node-build-agent` accepts `build` and the asking side publishes to the seat's accept subject, as the existing tests of `build` already require | -| Live | `builds` shows a tier's builds `on` more than one machine within one plan; `seats` shows `node-build-agent` held on every machine with a container runtime | +| Live | `builds` shows a tier's builds `on` more than one machine within one plan; `seats` shows `node-build-agent` held on every machine with a container runtime — *held on all four machines and a build taken by a workstation's agent, 2026-10-03* | ## References 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 cd1d272..965c5b6 100644 --- a/03-DESIGN/01-to-be/18-building-a-module.md +++ b/03-DESIGN/01-to-be/18-building-a-module.md @@ -5,7 +5,7 @@ code: - mesh-controller cmd/mesh-builder - mesh-controller internal/builder - mesh-catalog modules/build-agent -updated: 2026-10-02 +updated: 2026-10-03 decisions: - 02-DECISIONS/0190-a-seats-work-is-shared-by-its-holders-and-building-is-the-first-such-role.md - 02-DECISIONS/0157-a-build-says-what-it-does-on-the-bus-as-it-happens.md @@ -283,6 +283,15 @@ the bus credential — said once in the module's manifest. The outcome names the This is the bus's shared-work pattern, not a build-specific one: any module declaring a node seat with `accepts` has its work shared by its holders the same way. Building is the first use. +*Built and proven live 2026-10-03.* `build-agent` holds `node-build-agent` on all four machines; the first +build taken by a workstation's agent was a catalogue module at 09:35 UTC; the one-holder `builder` is +retired. The switch found five gaps, each an issue: a worker whose type changed stranded its holder +([206](../../04-ISSUES/206-a-seats-worker-changing-type-strands-the-holder-and-the-build-that-would-fix-it/00-report.md)), +a re-made worker replayed the stream's history ([207](../../04-ISSUES/207-a-re-made-worker-replayed-every-ask-the-stream-kept/00-report.md)), +a seat's worker is made only when the controller starts ([208](../../04-ISSUES/208-a-seats-worker-is-made-only-when-the-controller-starts/00-report.md)), +a module's identifier must fit the tightest backend's key (the slug), and an idle machine's empty fetch +was read as the end (fixed in the controller the same day). + ## A build says what it does, as it happens *2026-10-01 — [ADR 0157](../../02-DECISIONS/0157-a-build-says-what-it-does-on-the-bus-as-it-happens.md).* -- 2.54.0