package main import ( "testing" "github.com/novox/mesh-controller/internal/inventory" ) // novox/hq issue 348: on 2026-10-09 the control node's resolver stopped answering on its private address // at 10:57:57 UTC; the machine's network condition was raised at 10:58:45. The node-engine and the // controller were sent at 10:59:34. The new node-engine's first statement judged the names once — unknown, // "one look failed; a second decides" — and that statement cleared the condition, though its last evidence // still said "connection refused". The next look raised it again at 11:00:23, after the send, and both // builds failed their gate at 11:10 with "raised since it was sent" and were put back, for a fault that // began before they were sent. // TestReplay348 replays the statements of the outage: the condition raised before the send is not // cleared by the restarted engine's first, undecided statement, and the gate does not count it against // the builds sent after it began. // A release walks its modules without a record per module: D10 counts what its tier names as rolling, // so the node-engine a release walks is not "behind, and no plan is rolling it out" on its first machine. func TestAReleaseRollsOutWhatItsTierNames(t *testing.T) { plans := []inventory.Plan{ {ID: "release-1", State: inventory.PlanRolling, Tiers: [][]string{{"mesh-host"}}, Modules: map[string]*inventory.PlanModule{}}, {ID: "plan-2", State: inventory.PlanRolling, Modules: map[string]*inventory.PlanModule{"letta": {}}}, } got := rollingModules(plans) if !got["mesh-host"] || !got["letta"] || len(got) != 2 { t.Fatalf("rolling: %v", got) } }