listens names the port the software uses; serves is the mesh's to fill

Over-corrected: taking the port out of listens as well as serves made the module
declare it listens on nothing, and the parser said so.

ADR 0038 splits it. A module names the port its own software listens on, because
that is a fact about the software and it knows it. The mesh assigns the
machine-side number, because only the mesh knows what else is on the machine, and
it is the mesh that fills the assigned number into serves so a consumer is told
one number rather than three that agree by luck.

So what was wrong was writing a port into serves, not into listens.

Claude-Session: https://claude.ai/code/session_01D6qtiYU3P9jk3pnAXyAFyx
This commit is contained in:
2026-09-15 12:59:00 +02:00
parent 9a41add136
commit bf1f67a485
+2 -2
View File
@@ -18,8 +18,8 @@
"consumes": ["module.showcase.greeted"],
"listens": [
{ "protocol": "tcp", "from": "mesh",
"why": "the showcase daemon answers here, so the mesh can reach it" }
{ "port": 8080, "protocol": "tcp", "from": "mesh",
"why": "the port the daemon itself listens on. The mesh assigns the machine-side number and tells consumers that one (ADR 0038)" }
],
"build": {