diff --git a/modules/mesh-grants/grants_test.go b/modules/mesh-grants/grants_test.go index 807b85a6..2bace7a8 100644 --- a/modules/mesh-grants/grants_test.go +++ b/modules/mesh-grants/grants_test.go @@ -1274,8 +1274,10 @@ func TestGrants(t *testing.T) { n.manifestOf("node-tools", `{"module":"node-tools","version":"1","tool-runner":true}`) // the machine's tool runner, which carries the seat n.assign("novox", "node-tools") // The live placement names mesh-host; with its manifest's state the runner once carried it and the whole list was - // refused as a second writer of the engine's health (issue 774, 2026-10-30): the shadow below now composes. - n.manifestOf(buscompose.EngineModule, `{"module":"mesh-host","version":"1","consumes":["restic.backed-up"],"state":[{"name":"health"}]}`) + // refused as a second writer of the engine's health (issue 774, 2026-10-30): the shadow below now composes, with the states the + // engine's manifest declares today (health, findings, data, packages): the findings state, written by each node's engine + // alone (ADR 0636 ยง1), does not bring the refusal back, and the runner is granted none of them. + n.manifestOf(buscompose.EngineModule, `{"module":"mesh-host","version":"1","consumes":["restic.backed-up"],"state":[{"name":"health"},{"name":"findings"},{"name":"data"},{"name":"packages"}]}`) n.put(grants.ReadHave, "novox.node", map[string]any{"v": 1}) pl, _ = delivery.EncodePlacement(seed) n.states[grants.ReadPlacement] = map[string][]byte{"placement.novox": pl}