The confluence bed asks a tool through the control plane, and the tool answers

No account in the mesh but the control plane's may create a reply queue and publish
to a module's request key (novox/hq 04-ISSUES/049, ADR 0095).
This commit is contained in:
2026-09-21 20:34:03 +02:00
parent 2f11a29c4d
commit 85dc827660
@@ -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}`);