Problem
In docs/PORTS.md:135, the "Recommended Port Ranges" section summarizes the 5562-5569 block:
| 5562-5569 | Reserved for PortOS extensions. Assigned: 5562 whisper, 5563 Eidoverse bridge (on demand), 5568 llama-server. Unassigned but still reserved: 5564-5567, 5569 |
This claims port 5564 is unassigned. However, port 5564 is allocated to portos-slotstream across the codebase and in the same document:
docs/PORTS.md:39 (| 5564 | portos-slotstream | - | Loopback SSD-streaming MoE runtime...)
docs/PORTS.md:150 (The on-demand ports (5563, 5564, 5568) are the easiest to get wrong...)
server/lib/ports.js:20 (SLOTSTREAM: 5564)
ecosystem.config.cjs:124
When #5815 added slotstream, line 135 was overlooked.
Trigger
A contributor or operator consulting the Recommended Port Ranges table in docs/PORTS.md (line 135) to allocate an unused port for a new extension.
Impact
Allocating port 5564 for a new service causes a collision with portos-slotstream. As detailed in docs/PORTS.md:138-158, port collisions on on-demand loopback services can be silent rather than throwing EADDRINUSE, causing one process to quietly fail to receive connections.
Fix
- Update
docs/PORTS.md line 135:
- Add
5564 slotstream (on demand) to the Assigned: list.
- Update the unassigned range from
5564-5567, 5569 to 5565-5567, 5569.
- Ensure consistency with
server/lib/ports.js and server/lib/ports.test.js.
Alternative rejected: Reallocating slotstream to another port — rejected because 5564 is already established in ecosystem.config.cjs, server/lib/ports.js, and slotstreamServerManager.js.
Acceptance Criteria
Problem
In
docs/PORTS.md:135, the "Recommended Port Ranges" section summarizes the5562-5569block:This claims port 5564 is unassigned. However, port 5564 is allocated to
portos-slotstreamacross the codebase and in the same document:docs/PORTS.md:39(| 5564 | portos-slotstream | - | Loopback SSD-streaming MoE runtime...)docs/PORTS.md:150(The on-demand ports (5563, 5564, 5568) are the easiest to get wrong...)server/lib/ports.js:20(SLOTSTREAM: 5564)ecosystem.config.cjs:124When #5815 added slotstream, line 135 was overlooked.
Trigger
A contributor or operator consulting the Recommended Port Ranges table in
docs/PORTS.md(line 135) to allocate an unused port for a new extension.Impact
Allocating port 5564 for a new service causes a collision with
portos-slotstream. As detailed indocs/PORTS.md:138-158, port collisions on on-demand loopback services can be silent rather than throwingEADDRINUSE, causing one process to quietly fail to receive connections.Fix
docs/PORTS.mdline 135:5564 slotstream (on demand)to theAssigned:list.5564-5567, 5569to5565-5567, 5569.server/lib/ports.jsandserver/lib/ports.test.js.Alternative rejected: Reallocating slotstream to another port — rejected because 5564 is already established in
ecosystem.config.cjs,server/lib/ports.js, andslotstreamServerManager.js.Acceptance Criteria
docs/PORTS.mdline 135 marks port 5564 as assigned to slotstream.docs/PORTS.mdline 135 lists5565-5567, 5569as unassigned.npm test -- server/lib/ports.test.jspasses.