Case
aiosendspin -> sendspin-js
Start the server first, then the client. The server opts into aiosendspin's non-spec unencrypted transition mode (allow_unencrypted) rather than the real encrypted Noise handshake, to keep tracking the plaintext legacy path used by implementations that have not yet adopted the spec's mandatory encryption. This scenario is expected to be dropped once every tracked implementation supports the real handshake.
Server
aiosendspin
Client
sendspin-js
Status
Failed
Client summary shows zero audio chunks
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-legacy-unencrypted__aiosendspin__to__sendspin-js",
"client_exit_code": 0,
"client_impl": "sendspin-js",
"reason": "Client summary shows zero audio chunks",
"scenario_id": "server-initiated-legacy-unencrypted",
"server_exit_code": 0,
"server_impl": "aiosendspin",
"status": "failed"
}Server summary (JSON)
RAW{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5.0,
"duration_seconds": 5.0,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": null,
"frame_count": 40000,
"sample_rate": 8000,
"sent_audio_chunk_count": 0,
"sent_codec_header_sha256": null,
"sent_encoded_byte_count": 0,
"sent_encoded_sha256": null,
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"trimmed_source_frames": 0
},
"client": {
"active_roles": [],
"client_id": "aaR3zBO39ZLpTiI77LBbFzZuB-fjupwToxHth8uYjG4",
"name": "sendspin-js-client",
"supported_roles": [
"player@v1",
"controller@v1",
"metadata@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"device_info": {
"manufacturer": "Unknown",
"software_version": "Node.js/22"
},
"name": "sendspin-js-client",
"player@v1_support": {
"buffer_capacity": 5760000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 48000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 44100
}
]
},
"supported_pair_methods": [],
"supported_roles": [
"player@v1",
"controller@v1",
"metadata@v1"
],
"trust_level": "none",
"unpaired_access": {
"enabled": true
}
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "server-initiated-legacy-unencrypted",
"server_id": "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I",
"server_name": "aiosendspin server",
"status": "ok",
"stream": null
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 19083
INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:19083
WARNING:aiosendspin.server.server:No IP addresses available for mDNS advertising. Clients may not be able to discover this server. Consider specifying addresses manually via advertise_addresses.
{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5.0,
"duration_seconds": 5.0,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": null,
"frame_count": 40000,
"sample_rate": 8000,
"sent_audio_chunk_count": 0,
"sent_codec_header_sha256": null,
"sent_encoded_byte_count": 0,
"sent_encoded_sha256": null,
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"trimmed_source_frames": 0
},
"client": {
"active_roles": [],
"client_id": "aaR3zBO39ZLpTiI77LBbFzZuB-fjupwToxHth8uYjG4",
"name": "sendspin-js-client",
"supported_roles": [
"player@v1",
"controller@v1",
"metadata@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"device_info": {
"manufacturer": "Unknown",
"software_version": "Node.js/22"
},
"name": "sendspin-js-client",
"player@v1_support": {
"buffer_capacity": 5760000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 48000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 44100
}
]
},
"supported_pair_methods": [],
"supported_roles": [
"player@v1",
"controller@v1",
"metadata@v1"
],
"trust_level": "none",
"unpaired_access": {
"enabled": true
}
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "server-initiated-legacy-unencrypted",
"server_id": "dsIlKLOY1OqUfE4ig1m3id0r6yr2D5_3R-FJLQZI30I",
"server_name": "aiosendspin server",
"status": "ok",
"stream": null
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 0,
"received_encoded_sha256": null,
"received_pcm_sha256": null,
"received_sample_count": 0
},
"client_id": "sendspin-js-client-id",
"client_name": "sendspin-js-client",
"implementation": "sendspin-js",
"initiator_role": "server",
"peer_hello": null,
"preferred_codec": "pcm",
"role": "client",
"scenario_id": "server-initiated-legacy-unencrypted",
"server": null,
"status": "ok",
"stream": null
}Client log
RAW[Opus] Native decoder not available, falling back to FLAC/PCM
Sendspin: no storage provided, using an ephemeral identity (client_id changes each session, pairing unavailable)
Sendspin: Adopted open WebSocket
Sendspin: Connected to server
[Opus] Native decoder not available, falling back to FLAC/PCM
Sendspin: WebSocket disconnected
Sendspin: Connection closed
{
"status": "ok",
"implementation": "sendspin-js",
"role": "client",
"scenario_id": "server-initiated-legacy-unencrypted",
"initiator_role": "server",
"preferred_codec": "pcm",
"client_id": "sendspin-js-client-id",
"client_name": "sendspin-js-client",
"peer_hello": null,
"server": null,
"stream": null,
"audio": {
"audio_chunk_count": 0,
"received_encoded_sha256": null,
"received_pcm_sha256": null,
"received_sample_count": 0
}
}
Server build log · python-adapters · built · 0.05s
RAWListing 'src'... Listing 'src/conformance'... Listing 'src/conformance/adapters'... Compiling 'src/conformance/adapters/__init__.py'... Compiling 'src/conformance/adapters/_aiosendspin_pairing.py'... Compiling 'src/conformance/adapters/_aiosendspin_protocol_evidence.py'... Compiling 'src/conformance/adapters/aiosendspin_client.py'... Compiling 'src/conformance/adapters/aiosendspin_server.py'... Compiling 'src/conformance/adapters/placeholder.py'... Compiling 'src/conformance/adapters/sendspin_jvm_client.py'... Compiling 'src/conformance/cli.py'... Compiling 'src/conformance/merge.py'... Compiling 'src/conformance/registry.py'... Listing 'src/sendspin_conformance.egg-info'... Listing 'scripts'... Compiling 'scripts/detect_regressions.py'... Compiling 'scripts/merge_results.py'... Compiling 'scripts/run_all.py'... Compiling 'scripts/setup_repositories.py'... Compiling 'scripts/setup_workspace.py'...
Client build log · sendspin-js-adapters · built · 68.34s
RAWNo build detail was recorded.