Multiple fixes: the vault bed keeps two secrets, the confluence bed asks through the control plane, the runtime build installs its SDK and speaks #44

Merged
jschoubben merged 3 commits from multiple-fixes into main 2026-09-21 19:05:12 +00:00
Showing only changes of commit 85dc827660 - Show all commits
@@ -204,6 +204,15 @@ test("the mesh assigns confluence: its tools-only runtime comes up and serves th
assert.match(served2, /serve\.confluence\.confluence_search/,
`confluence's runtime never bound its serve queue:\n${(await on(`docker logs mesh-runtime-confluence 2>&1 | tail -20`)).out}\n---\n${served2}`);
// --- and the control plane is the way to ask it (novox/hq ADR 0095, issue 049) ------------------
// No account in the mesh but the control plane's may create a reply queue and publish to a
// module's request key. Asked through it, the tool ANSWERS — with an error, since the lab has no
// Confluence and no token, which is an answer: the round trip is what is under test, and a
// timeout would read differently.
const asked = await on(`docker exec mesh-controller /mesh-controller ask confluence confluence_search '{"query":"mesh"}' --wait 60s`, 90_000);
assert.doesNotMatch(asked.out, /did not answer/, `the tool was never reached through the control plane:\n${asked.out}`);
assert.match(asked.out, /"(result|error)"/, `the control plane printed no answer:\n${asked.out}`);
// --- confluence got its own scoped broker account -----------------------------------------------
const users = await must(`docker exec mesh-broker lavinmqctl list_users 2>&1`);
assert.match(users, /anchor-confluence/, `the scoped account anchor-confluence is not on the broker:\n${users}`);