Problem
The interface conformance tests at interfaces/flux/conformance/stream.spec.js all fail (8/8 tests) with "socket hang up" errors. The API tests at tests/flux/api/stream.test.js all pass (4 passed, 1 skipped).
Root Cause
Architectural mismatch between conformance spec and starter implementation:
| Aspect |
Conformance Spec |
Starter Implementation |
| Endpoint |
/flux/stream |
/api/flux |
| Audio source |
stream_url query param (external HTTP stream) |
Binary WebSocket frames from client (microphone) |
| Model |
model query param |
Hardcoded flux-general-en |
| Error codes expected |
INVALID_STREAM_URL, MODEL_NOT_FOUND, STREAM_UNREACHABLE |
None (proxy design) |
The conformance spec was written for a "stream URL proxy" design where the server fetches audio from an external URL. The actual node-flux starter implements a "microphone proxy" design where audio flows directly from the client WebSocket to Deepgram.
Test Results (local conformance run)
Passing:
tests/flux/api/metadata.test.js — 2 passed
tests/flux/api/stream.test.js — 4 passed, 1 skipped
tests/flux/ui/workflow.spec.js — 2 passed (Playwright)
Failing:
interfaces/flux/conformance/stream.spec.js — 8 failed
- All connection tests:
socket hang up (server has no /flux/stream endpoint)
- All error tests:
expected 0 to be greater than 0 (no error messages received)
Recommendation
This is not a starter bug — the API tests confirm the implementation works correctly. The interface conformance spec needs to be updated to match the actual Flux API proxy design (/api/flux, microphone-based, no stream_url parameter). This may be a contracts issue rather than a starter issue.
Problem
The interface conformance tests at
interfaces/flux/conformance/stream.spec.jsall fail (8/8 tests) with "socket hang up" errors. The API tests attests/flux/api/stream.test.jsall pass (4 passed, 1 skipped).Root Cause
Architectural mismatch between conformance spec and starter implementation:
/flux/stream/api/fluxstream_urlquery param (external HTTP stream)modelquery paramflux-general-enINVALID_STREAM_URL,MODEL_NOT_FOUND,STREAM_UNREACHABLEThe conformance spec was written for a "stream URL proxy" design where the server fetches audio from an external URL. The actual node-flux starter implements a "microphone proxy" design where audio flows directly from the client WebSocket to Deepgram.
Test Results (local conformance run)
Passing:
tests/flux/api/metadata.test.js— 2 passedtests/flux/api/stream.test.js— 4 passed, 1 skippedtests/flux/ui/workflow.spec.js— 2 passed (Playwright)Failing:
interfaces/flux/conformance/stream.spec.js— 8 failedsocket hang up(server has no/flux/streamendpoint)expected 0 to be greater than 0(no error messages received)Recommendation
This is not a starter bug — the API tests confirm the implementation works correctly. The interface conformance spec needs to be updated to match the actual Flux API proxy design (
/api/flux, microphone-based, no stream_url parameter). This may be a contracts issue rather than a starter issue.