H4 (review r2, A-307): the node-engine's manifest names no uses; its invoke of seat:mesh-grants.withheld is the edge

Builds: design 47 G §635
This commit is contained in:
2026-11-12 22:16:40 +01:00
parent 3167f0104f
commit 302dcc098f
2 changed files with 4 additions and 3 deletions
-3
View File
@@ -39,9 +39,6 @@
]
}
],
"uses": [
"mesh-grants"
],
"invokes": [
"seat:mesh-catalog.entry",
{"verb": "seat:mesh-catalog.revision", "fields": ["none-yet"]},
+4
View File
@@ -63,6 +63,7 @@ func TestTheManifestConsumesTheBackupEvent(t *testing.T) {
}
var m struct {
Consumes []string `json:"consumes"`
Uses []string `json:"uses"`
Invokes []any `json:"invokes"` // a verb, or the long form {verb, fields} (§558)
Config map[string]struct {
Default any `json:"default"`
@@ -73,6 +74,9 @@ func TestTheManifestConsumesTheBackupEvent(t *testing.T) {
}
// Design 47 G §630, §633, A-77: the recovery module's three verbs it asks, and its bound as a config key of 90.
// §635, §558, §617: it invokes `withheld` and names no `uses`; the catalog's revision in the long form with the field none-yet.
if len(m.Uses) != 0 {
t.Errorf("uses is %v, want none: the invoke of seat:mesh-grants.withheld is the edge (§635, A-307)", m.Uses)
}
for _, v := range []any{"seat:mesh-recovery.kept-points", "seat:mesh-recovery.restore-kept", "seat:mesh-recovery.snapshot-kept",
"seat:mesh-grants.withheld", map[string]any{"verb": "seat:mesh-catalog.revision", "fields": []any{"none-yet"}}} {
if !slices.ContainsFunc(m.Invokes, func(have any) bool { return reflect.DeepEqual(have, v) }) {