Take core-credentials out of the bus's, the provisioner's and its client's manifests until the judge that knows it runs
mesh/delivery merged: source.main moved to novox/mesh-catalog@be24f5ac387f
mesh/delivery-group group fix/l3-words-after-judge merged: every member is merged
mesh/check being carried to f2eb54820469 on be24f5ac387f | from e6de42630355, mesh-delivery 4154c3040cee, mesh-tools 01ee2ef39488

The running indexer's judge refuses the word, a refused manifest holds the bus's user list, and so the indexer build
that knows the word is never granted. The node-engine on main still finds these modules by its name list, and the
vault keeps no list, so no credential is lost; the word comes back once the new judge runs (issue 774).

Claude-Session: https://claude.ai/code/session_01JG73KG7AfSdh6FP8VrBqCn
This commit is contained in:
2026-11-03 21:28:29 +01:00
parent e6de426303
commit f2eb548204
5 changed files with 10 additions and 3 deletions
@@ -295,6 +295,11 @@ func TestTheManifestDeclaresWhatTheCodeKeeps(t *testing.T) {
if err := json.Unmarshal(raw, &m); err != nil {
t.Fatal(err)
}
// No "core-credentials" until the indexer whose judge knows the word runs (issue 774): the running judge refuses it,
// and a refused manifest holds the bus's user list, so the indexer that knows it is never granted. It comes back then.
if strings.Contains(string(raw), `"core-credentials"`) {
t.Error("the manifest says \"core-credentials\" before the judge that reads it runs")
}
if m.Module != "mesh-provisioner" || m.RunsAs != "mesh-provisioner" || m.OwnSecrets["broker"] == "" {
t.Errorf("an account of its own: module %q, runs-as %q, own secrets %v", m.Module, m.RunsAs, m.OwnSecrets)
}