R6: the controller writes signed per-node compositions and their digests; plans, pushes and their verbs go (issue 1945) #457

Merged
mesh-tools merged 67 commits from feat/r6 into main 2026-10-24 23:00:31 +00:00
Showing only changes of commit b879128efb - Show all commits
@@ -450,8 +450,9 @@ func TestServedARotationRewritesOnlyTheCompositionsThatUseIt(t *testing.T) {
storeKey, _ := sdkdelivery.ComposedKey("anchor", "store", fpOf('a'))
// The board's sealed credential file is new: its composition moves with the rotation.
if rev := m.waitForOrSay(t, "laptop", boardKey, before["laptop"][boardKey]); rev == 0 {
t.Fatalf("the board's composition did not move within a minute after the rotation; rotate said (holders before: %+v):\n%s\n%s",
holders, said, m.whatIsThere(t, "laptop"))
after, _ := m.open.inventory.HoldersOf(t.Context(), "postgres-database", "")
t.Fatalf("the board's composition did not move within a minute after the rotation; holders before %+v, after %+v; rotate said: %s; %s",
holders, after, strings.Join(strings.Fields(strings.ReplaceAll(said, "\n", " | ")), " "), m.whatIsThere(t, "laptop"))
}
moved := map[string]bool{}
for node, was := range before {