Accept ADR 0038; close issue 091 #104

Merged
jschoubben merged 1 commits from issue/091-ports-are-mesh-assigned-not-manifest-fixed into main 2026-09-24 13:53:37 +00:00
Owner

ADR 0038 ("the mesh assigns the port, and a module does not care") was proposed 2026-09-01. The machinery already implements it fully — mesh-controller's internal/inventory/ports.go (PortFor, an actual free-port allocator, 20000–29999) and declaration.go's publishedOn already rewrite a bare container port automatically. What was missing was catalogue compliance: issue 091 measured 14 of 46 modules baking a machine-side port into their own shared manifest anyway.

Companion PR in mesh-catalog (#53) fixes 11 of them — the two defensible kinds the issue itself names (foundation ports rewritten per ADR 0100, and unifi's protocol/device-discovery-fixed ports) are left alone.

Accepting the decision now that it's actually enforced, and closing the issue it was blocking. Checks pass (records.py, cycle.py, index.py).

ADR 0038 ("the mesh assigns the port, and a module does not care") was proposed 2026-09-01. The machinery already implements it fully — `mesh-controller`'s `internal/inventory/ports.go` (`PortFor`, an actual free-port allocator, 20000–29999) and `declaration.go`'s `publishedOn` already rewrite a bare container port automatically. What was missing was catalogue compliance: issue 091 measured 14 of 46 modules baking a machine-side port into their own shared manifest anyway. Companion PR in `mesh-catalog` (#53) fixes 11 of them — the two defensible kinds the issue itself names (foundation ports rewritten per ADR 0100, and `unifi`'s protocol/device-discovery-fixed ports) are left alone. Accepting the decision now that it's actually enforced, and closing the issue it was blocking. Checks pass (`records.py`, `cycle.py`, `index.py`).
jschoubben added 1 commit 2026-09-24 13:52:56 +00:00
The decision (the mesh assigns a container's machine-side port; a module
says only what it needs) was proposed 2026-09-01, and the machinery
already implements it in full -- internal/inventory/ports.go's PortFor,
declaration.go's publishedOn. What was missing was the catalogue actually
complying: 14 of 46 modules baked a machine-side number into their own
manifest anyway. mesh-catalog PR fixes 11 of them (the two defensible
kinds -- foundation, protocol-fixed -- are left alone, per the issue's own
categories). Accepting the decision now that it's actually enforced, and
closing the issue it was blocking.

Checks pass.
jschoubben merged commit a458f751c6 into main 2026-09-24 13:53:37 +00:00
jschoubben deleted branch issue/091-ports-are-mesh-assigned-not-manifest-fixed 2026-09-24 13:53:37 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/hq#104