The assigner's state and verb placement are assignments, with its events, tools, views and every caller; the assigner copies the retired state at its start (issue 1966)

Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
This commit is contained in:
2026-11-05 22:13:20 +01:00
parent 369ebd092d
commit 0eafb2fe95
164 changed files with 1699 additions and 1498 deletions
+9 -9
View File
@@ -71,20 +71,20 @@ type Request struct {
// Case is one catalogue composed: every module's manifest by name, and per node the manifests kept at the build it runs.
//
// Placements are, by node, the placement the case composes that node with in place of what Input says of it: a change's
// own placement files, so a check composes a catalogue pull request's placement (issue 1126, frombus.Placed); a null
// placement leaves nothing placed on the node. A case without them composes Input's.
// Assignments are, by node, the assignments the case composes that node with in place of what Input says of it: a change's
// own assignments files, so a check composes a catalogue pull request's assignments (issue 1126, frombus.Placed); a null
// assignments leaves nothing placed on the node. A case without them composes Input's.
//
// Verdicts are, by module, as raw JSON (this package is seat-neutral, novox/hq ADR 0635 §4; the node-engine's composer decodes the
// mesh-catalog seat's manifest verdict, and Placements the mesh-module-assigner seat's placement), the indexer's judge's verdict on its manifest in Manifests (novox/hq ADR 0578 §5), put in by
// mesh-catalog seat's manifest verdict, and Assignments the mesh-module-assigner seat's assignments), the indexer's judge's verdict on its manifest in Manifests (novox/hq ADR 0578 §5), put in by
// the assigner or the checker that runs the composer: a refused one is held, composed as its stub so what it offers
// still shapes the rest, and named in the case's verdict. A module without one is accepted (the mesh-catalog seat's ManifestVerdict, taken by its readers).
type Case struct {
Name string `json:"name"`
Manifests map[string]Manifest `json:"manifests"`
Verdicts map[string]json.RawMessage `json:"verdicts,omitempty"`
Kept map[string]map[string]Manifest `json:"kept,omitempty"`
Placements map[string]json.RawMessage `json:"placements,omitempty"`
Name string `json:"name"`
Manifests map[string]Manifest `json:"manifests"`
Verdicts map[string]json.RawMessage `json:"verdicts,omitempty"`
Kept map[string]map[string]Manifest `json:"kept,omitempty"`
Assignments map[string]json.RawMessage `json:"assignments,omitempty"`
}
// Manifest is a module's manifest as its repository holds it (Raw, the bytes), or the digest the delivery indexer keeps
+1 -1
View File
@@ -21,7 +21,7 @@ type WindowHeld struct {
// StepWindow is the one rule every window keeper steps its window by (security-upgrade review F3, the second of a
// kind): named is every node the read named, dropped ones included, and holding those of them that hold the window at
// now. A read that names no node judges nothing, as a first view's empty answer at revision 0 is no empty state (ADR
// 0615): an empty node_haves or a placement not yet read never closes a window, and the window stays as it was. A read
// 0615): an empty node_haves or assignments not yet read never closes a window, and the window stays as it was. A read
// naming nodes, none holding, closes an open window (closed true, once); one naming a holder opens it, each holder's
// since kept from w. overdue are the holders whose since is at least findingAfter before now (the keeper's finding,
// cleared for every other node); a read naming no node keeps w's holders' overdue as they stand at now.
+1 -1
View File
@@ -7,7 +7,7 @@ import (
)
// The one rule every window keeper steps by (design 51; security-upgrade review F3): a read naming no node judges
// nothing, so an empty node_haves or an unread placement never closes a window.
// nothing, so an empty node_haves or an unread assignments never closes a window.
func TestStepWindow(t *testing.T) {
now := time.Date(2026, 11, 4, 17, 0, 0, 0, time.UTC)
week := 7 * 24 * time.Hour