Register R237: assign's answer agrees with plan right after the act (hq issue 237) #83

Merged
mesh-admin merged 1 commits from replay/r237-rebased into main 2026-10-12 14:37:46 +00:00
+15
View File
@@ -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.