From 030509558c9c50c6bbba7545ae7b82801761f757 Mon Sep 17 00:00:00 2001 From: jochen Date: Mon, 14 Sep 2026 21:00:48 +0200 Subject: [PATCH] Name the registry where every machine can reach it, not where the builder stands MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The builder's environment said MESH_REGISTRY=127.0.0.1:${bound:artifact-store:port} — the port taken from the binding, the host pinned to loopback. So every artifact the mesh builds was recorded under an address that means something only on the machine holding the registry, and nothing else in the mesh could resolve it. Loopback is correct for exactly one reader and the builder is not special: it already requires artifact-store, and the binding states where the provider is on the private network. It now uses both halves of what it was given. Invisible with one machine, which is the only shape this had been proven in. The registry module declares that every machine pulls from it and opens its port to the mesh for that reason, so the reference it is handed has to be one a second machine can use. Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx --- modules/builder/module.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/builder/module.json b/modules/builder/module.json index d061ed7..0444466 100644 --- a/modules/builder/module.json +++ b/modules/builder/module.json @@ -37,7 +37,7 @@ "type": "file", "path": "/var/lib/mesh/builder/builder.env", "mode": "0600", - "content": "MESH_BROKER_FILE=/run/mesh/broker\nMESH_NODE=${machine:name}\nMESH_REGISTRY=127.0.0.1:${bound:artifact-store:port}\nMESH_WORKSPACE=/workspace\n" + "content": "MESH_BROKER_FILE=/run/mesh/broker\nMESH_NODE=${machine:name}\nMESH_REGISTRY=${bound:artifact-store:at}:${bound:artifact-store:port}\nMESH_WORKSPACE=/workspace\n" }, { "id": "server",