From 3daedac1bba7f9b41866bcc3b267c270231399f2 Mon Sep 17 00:00:00 2001 From: jochen Date: Wed, 4 Nov 2026 12:46:10 +0100 Subject: [PATCH] =?UTF-8?q?CAT-N1:=20the=20keeper's=20bus=20declares=20kee?= =?UTF-8?q?ps,=20the=20one=20key=20more=20ADR=200626=20=C2=A71=20allows=20?= =?UTF-8?q?the=20bus=20module's=20keeper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig --- modules/nats/cmd/nats-tools/manifest_test.go | 9 +++++++++ modules/nats/module.json | 1 + 2 files changed, 10 insertions(+) diff --git a/modules/nats/cmd/nats-tools/manifest_test.go b/modules/nats/cmd/nats-tools/manifest_test.go index 08067236d..8a3245d21 100644 --- a/modules/nats/cmd/nats-tools/manifest_test.go +++ b/modules/nats/cmd/nats-tools/manifest_test.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "git.novox.be/novox/mesh-sdk/go/catalogue" "os" "slices" "strings" @@ -220,6 +221,14 @@ func TestTheBussManifestMountsItsProgramsIntoTheUpstreamImage(t *testing.T) { health["kind"] != "tool" || health["tool"] != "nats_keeper_health" { t.Errorf("the keeper is %v: a process of the tools bundle, run as keep, keeping asked and requests, judged by nats_keeper_health", keeper) } + // Its bus declares keeps, the one key more ADR 0626 §1 allows it, read through the SDK as the grant composition reads it. + var whole catalogue.Manifest + if err := json.Unmarshal(raw, &whole); err != nil { + t.Fatal(err) + } + if b := whole.ProcessBuses()["keeper"]; !b.Keeps { + t.Errorf("the keeper's bus declares no keeps, so it would be composed no bus state to keep (ADR 0626 §1): %+v", b) + } if h, _ := server["health"].(map[string]any); h["kind"] != "tcp" || h["endpoint"] != "bus" { t.Errorf("the server's health is %v: tcp on bus, the check the keeper's tool check stands beside", server["health"]) } diff --git a/modules/nats/module.json b/modules/nats/module.json index b704efbe9..5cc9edeab 100644 --- a/modules/nats/module.json +++ b/modules/nats/module.json @@ -247,6 +247,7 @@ "requests" ], "asks": true, + "keeps": true, "invokes": [ "mesh-delivery-indexer.indexer_bus_state", "seat:mesh-hand-acts.hand-act"