From ba3fd46e8222997c0ea0d784ce2517c4dcba1faa Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 12 Nov 2026 02:09:42 +0100 Subject: [PATCH] Join 9: mesh-conditions marks owner-handover-seconds runtime, as the keeper reads it itself MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The validator refused it as placed nowhere (ADR 0348 §5): the keeper reads it from its settings beside ask-bound-seconds and view-waits-seconds, which are marked so. Builds: design 47 G §557 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h --- .../mesh-conditions/cmd/mesh-conditions/manifest_test.go | 6 ++++++ modules/mesh-conditions/module.json | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/mesh-conditions/cmd/mesh-conditions/manifest_test.go b/modules/mesh-conditions/cmd/mesh-conditions/manifest_test.go index 62f46aa07..627dfec9c 100644 --- a/modules/mesh-conditions/cmd/mesh-conditions/manifest_test.go +++ b/modules/mesh-conditions/cmd/mesh-conditions/manifest_test.go @@ -27,6 +27,12 @@ func TestTheManifestSaysWhatTheCodeDoes(t *testing.T) { if err != nil { t.Fatalf("the manifest does not decode: %v", err) } + // Every setting the keeper reads itself is marked runtime (ADR 0348 §5): no file places it. + for _, key := range []string{SettingAskBound, SettingViewWaits, SettingHandover} { + if d, ok := m.Settings[key]; !ok || !d.Runtime { + t.Errorf("the setting %s the keeper reads itself is not declared runtime: %+v", key, d) + } + } catalogue.UseSeats(catalogue.SeatsFromDefinitions(seatlisttest.Definitions())) def, _ := catalogue.SeatNamed(Seat) if m.Module != Module || m.RunsAs != Module || len(m.Claims) != 1 || m.Claims[0].Name != Seat || diff --git a/modules/mesh-conditions/module.json b/modules/mesh-conditions/module.json index 2036a41b8..f8b9ca440 100644 --- a/modules/mesh-conditions/module.json +++ b/modules/mesh-conditions/module.json @@ -65,7 +65,8 @@ "type": "number", "description": "How long a failed head stays its commit's author's, in seconds, before the keeper hands its condition to the operator: 7200 is two hours.", "minimum": 1, - "default": 7200 + "default": 7200, + "runtime": true }, "view-waits-seconds": { "type": "number",