From fb13f3cc7e4e4082ee9ba189703895838e5e07d5 Mon Sep 17 00:00:00 2001 From: jochen Date: Mon, 2 Nov 2026 11:38:42 +0100 Subject: [PATCH] Drop the keeper's and config's take-over verbs, which chose the controller's sources ADR 0590 clause 3 ends the take-over and the hand-back, and with them compare: the readers follow the keeper, and config its own sources, with no switch to ask. Issue 1126 B1. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL --- go/buscompose/announced.go | 4 ++-- go/catalogue/health_seats.go | 19 +++---------------- go/catalogue/seats.go | 15 +-------------- 3 files changed, 6 insertions(+), 32 deletions(-) diff --git a/go/buscompose/announced.go b/go/buscompose/announced.go index f46295d..bdd8c49 100644 --- a/go/buscompose/announced.go +++ b/go/buscompose/announced.go @@ -9,8 +9,8 @@ import ( ) // Who may read a module's state is what the module announced (novox/hq ADR 0495 clauses 2 and 3, ADR 0513 §3; issue -// 1790). A module says on the bus which states it keeps and which others may read (announce.Subject); the controller -// keeps the last word of each (announce.KeptBucket) and grants a reader's `reads: .` only when the owner +// 1790). A module says on the bus which states it keeps and which others may read (announce.Subject); the composer is +// given the last word of each (Records.Announced) and grants a reader's `reads: .` only when the owner // announced that state readable. An owner that has announced nothing yet is read as before, from the reader's `reads` // (the transition, until every module announces), and is named as not yet announced. diff --git a/go/catalogue/health_seats.go b/go/catalogue/health_seats.go index 79ae2c6..e208f1f 100644 --- a/go/catalogue/health_seats.go +++ b/go/catalogue/health_seats.go @@ -29,7 +29,7 @@ func conditionsVerbs() []Verb { {Name: "conditions", Description: "What is wrong with the mesh now: every open condition, urgent first, then oldest, " + "raised from the observers' findings (the watchman, the self-check, the healers, the assigner) and cleared when " + "the finding goes, never by hand. Given a key, that one whole with its evidence; with history, every transition " + - "lately, the controller's before the take-over included.", + "lately.", Input: schema(map[string]string{ "key": "a condition's key: that one whole; with history, only its transitions", "scope": "only this scope: machine, plan, call, build, merge, provider, seat, bus, core, probe, mesh, delivery or module", @@ -46,17 +46,6 @@ func conditionsVerbs() []Verb { "why": "why, required and recorded", "cause": "the cause in a word (the condition's kind when absent)", }, []string{"key", "for", "why"})}, - {Name: "compare", Description: "The keeper's open conditions against the controller's: every key open in one and not " + - "the other, or open in both with another severity, each with its reason; the kinds that end with the controller " + - "and the keys held while their module is delivered listed apart and not counted. The take-over waits for it empty.", - Input: schema(map[string]string{}, nil)}, - {Name: "take-over", Description: "Ask the operator's Approve to switch who the router, the grants part and " + - "mesh-watcher hear from the controller to the keeper; refused while compare shows a difference. On the warrant " + - "the keeper writes its take-over key.", - Input: schema(map[string]string{"why": "why now, shown to the operator"}, []string{"why"})}, - {Name: "hand-back", Description: "Switch the readers back to the controller's conditions, until the controller's " + - "lease is handed away; refused after it.", - Input: schema(map[string]string{"why": "why, kept with the switch"}, []string{"why"})}, {Name: "resync", Description: "Read every observer's findings again and raise and clear what differs from the open " + "conditions: the recovery of a keeper that missed a change.", Input: schema(map[string]string{}, nil)}, @@ -78,8 +67,7 @@ func watchdogsVerbs() []Verb { Input: schema(map[string]string{"machine": "one machine"}, nil)}, {Name: "dead-letters", Description: "Every message a consumer on the bus gave up on, kept in DEAD_LETTERS: whose " + "consumer, the subject, how often it was handed over and when it was given up, newest first. With id: that one " + - "whole. With deliver or drop, a hand act with why, taken only once the controller's lease is handed away; " + - "before, refused naming the controller's verb.", + "whole. With deliver or drop, a hand act with why.", Input: schema(map[string]string{ "id": "a dead letter's id, as the list gives it: that one whole, with its message", "consumer": "a consumer's name, or .: only what that one gave up on", @@ -114,8 +102,7 @@ func selfCheckVerbs() []Verb { func healersVerbs() []Verb { return []Verb{ {Name: "healers", Description: "The healers: each registered response to one kind of condition, its repair, its " + - "budget and what happens when it is spent; every act taken lately with its outcome, the acts it would have " + - "taken while the controller's lease names a controller, and the mesh-wide brake.", + "budget and what happens when it is spent; every act taken lately with its outcome, and the mesh-wide brake.", Input: schema(map[string]string{"days": "how many days of acts back (default 7)"}, nil)}, {Name: "heal", Description: "Take one healer's act for one open condition now, within its budget and the brake.", Input: schema(map[string]string{ diff --git a/go/catalogue/seats.go b/go/catalogue/seats.go index 4b6b9bc..84bc33c 100644 --- a/go/catalogue/seats.go +++ b/go/catalogue/seats.go @@ -263,21 +263,8 @@ var defaultSeats = append([]Seat{ Serves: []Verb{ {Name: "config", Optional: true, Description: "Set, clear, list or read the history of config values: " + "mesh config or node config for a predefined key, or a module's own value on one node, each set " + - "with why, validated, and naming each module on each node whose value moves. A trusted value only " + - "from the controller's terminal.", + "with why, validated, and naming each module on each node whose value moves.", Input: configInput()}, - // The switch of config to its own sources (novox/hq ADR 0565 §4): optional until every mesh-config serves it. - {Name: "compare", Optional: true, Description: "Every difference between config's own sources and the " + - "controller's records, each with its reason: a module's declared config against the controller's mirror, " + - "the indexer's predefined list against the mirror's, and each open pull request's config candidate against " + - "what the controller told. The take-over waits for none.", - Input: schema(map[string]string{}, nil)}, - {Name: "take-over", Optional: true, Description: "Ask the operator's Approve to switch config to its own " + - "sources (the indexer); refused while compare shows a difference.", - Input: schema(map[string]string{"why": "why, in a sentence"}, []string{"why"})}, - {Name: "hand-back", Optional: true, Description: "Switch config back to the controller's mirrors, until the " + - "controller hands its lease away; refused after it.", - Input: schema(map[string]string{"why": "why, in a sentence"}, []string{"why"})}, }}, // The provisioner's server (novox/hq ADR 0349 clause 3, design 57 P4): its holder keeps the registry of which // domain answers which kind of placeholder, and the buckets mesh-provisioner_needs, _applied and _collect,