S6: the condition keeper reads the node-engine's findings
ace's node-engine wrote seat-list-unread in its state findings, and no condition rose: the keeper's observers did not name the node-engine. It now reads mesh-host.findings, so ADR 0636 §1's condition is raised and clears at the first full read (issue 1966). Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
assignerclient "git.novox.be/novox/mesh-contracts/go/clients/meshmoduleassignerclient"
|
||||
mesh "git.novox.be/novox/mesh-contracts/go/seats/meshmoduleassigner"
|
||||
stdio "git.novox.be/novox/mesh-sdk/go"
|
||||
"git.novox.be/novox/mesh-sdk/go/buscompose"
|
||||
"git.novox.be/novox/mesh-sdk/go/motion"
|
||||
|
||||
cc "git.novox.be/novox/mesh-contracts/health-and-repair/go/clients/meshconditionsclient"
|
||||
@@ -65,7 +66,10 @@ var Observers = []string{watchmanModule, selfCheckModule, healersModule, assigne
|
||||
// readers' of the indexer's and the assigner's state (the registry milestone's join).
|
||||
builder, indexer, "mesh-delivery-checker", "mesh-delivery-teller", "mesh-delivery-view", enrolment,
|
||||
// The tool runner's and claude-code's own first views (views.UnansweredFinding in their findings, ADR 0615 §6).
|
||||
"node-tools", "claude-code"}
|
||||
"node-tools", "claude-code",
|
||||
// The node-engine's: a node that has read no seat list five minutes after its start, seat-list-unread (ADR 0636 §1;
|
||||
// issue 1966: written on ace and raised by nobody).
|
||||
buscompose.EngineModule}
|
||||
|
||||
// The other states it reads, as `<module>.<name>`.
|
||||
const (
|
||||
|
||||
@@ -334,8 +334,9 @@ func TestEveryControllerKindHasItsHome(t *testing.T) {
|
||||
// Each module that writes a reader's unanswered first view (ADR 0615 §6), or that a delivery part's consumer stopped
|
||||
// hearing, is read: the delivery parts and the tool runner by name (other repositories), and every catalogue module
|
||||
// whose code writes a views finding, found in the catalogue's tree, so a new writer cannot go unobserved.
|
||||
// And the node-engine, whose node writes seat-list-unread when it has read no seat list (ADR 0636 §1, issue 1966).
|
||||
readers := []string{watchman, "mesh-delivery-teller", enrolment, builder, "mesh-delivery-checker", "mesh-delivery-view",
|
||||
indexer, assignerModule, configModule, vaultModule, gitea, "node-tools"}
|
||||
indexer, assignerModule, configModule, vaultModule, gitea, "node-tools", "mesh-host"}
|
||||
readers = append(readers, viewFindingWriters(t, "../../..")...)
|
||||
for _, reader := range readers {
|
||||
if !slices.Contains(Observers, reader) {
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
"mesh-enrolment.findings",
|
||||
"node-tools.findings",
|
||||
"claude-code.findings",
|
||||
"mesh-host.findings",
|
||||
"mesh-healers.attempts",
|
||||
"node-engine.have"
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user