From bd33abf3ddac1bed0d694afb7314b79eef85c814 Mon Sep 17 00:00:00 2001 From: mesh-admin Date: Mon, 12 Oct 2026 14:24:32 +0000 Subject: [PATCH] Register R237: assign's answer agrees with plan right after the act (hq issue 237) Rebase of #81 (a020f60) onto main after #80 (R358) merged into the same spot in register.go. The R237 block is byte-identical to the one approved at a020f60; only its place in the file differs, now after R358. Proved with go run ./cmd/prove R237: fails on mesh-controller #253's commit before (72edb45), passes on the fix (5facd8b, mesh-controller #253). TestReplay237 needs MESH_TEST_POSTGRES (inventory.ForTest raises a throwaway database), same as the controller's other store-backed replays. --- replays/register.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/replays/register.go b/replays/register.go index a38b02f..4fc97c9 100644 --- a/replays/register.go +++ b/replays/register.go @@ -327,6 +327,21 @@ var Register = []Replay{ "and the account that could have made it", Package: "./internal/apply", Test: "TestAParentSwappedForALinkLeavesItsTargetUntouched", Files: []string{"internal/apply/replay358_test.go"}}, + // assign said two things that could not both be true (2026-10-04): a workstation already ran a module + // contributing node-hotkeys, and the module holding that seat was assigned to it; the answer said in + // order that the seat was now held, then that the node was left out of the rest of the mesh for lack + // of it, naming the assignment just made as the remedy. `plan` for the node right after resolved. A + // test in the controller, written with only what it had before its fix — register, assign's command, + // planFor — laid over the commit before. Needs a store: raised by inventory.ForTest against + // MESH_TEST_POSTGRES, same as the controller's other store-backed replays. Fix is the merge of its + // pull request (mesh-controller #253). + {ID: "R237", Issue: 237, Kind: InRepository, Repository: "mesh-controller", Fix: "5facd8b08e245545fb7656dd4af11280d9306a08", + What: "assign on a workstation already running a module that contributed node-hotkeys, after " + + "assigning the module holding that seat, said the seat was now held and then that the node was " + + "left out of the mesh for lack of it, naming the assignment just made as the remedy", + Asserts: "every line of assign's answer is derived from one resolution of the node taken after the " + + "write committed, and agrees with plan for the node run right after the act", + Package: "./cmd/mesh-controller", Test: "TestReplay237", Files: []string{"cmd/mesh-controller/replay237_test.go"}}, // Not a core incident, and the first of its kind: a module's. The crash loop was found by a person // reading the agent server's log for another reason (issue 268); research 032 measured it, and ADR // 0240 makes the node-engine judge it and the gate fail it. -- 2.54.0