Case
aiosendspin -> sendspin-cpp
Start the server first, then the client. The client discovers or looks up the server, initiates the WebSocket connection, advertises PCM as its only supported audio format, streams audio derived from almost_silent.flac, and compares canonical PCM hashes.
Server
aiosendspin
Client
sendspin-cpp
Status
Failed
Server summary status is 'error'
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__client-initiated-pcm__aiosendspin__to__sendspin-cpp",
"client_exit_code": 1,
"client_impl": "sendspin-cpp",
"reason": "Server summary status is 'error'",
"scenario_id": "client-initiated-pcm",
"server_exit_code": 1,
"server_impl": "aiosendspin",
"status": "failed"
}Server summary (JSON)
RAW{
"implementation": "aiosendspin",
"reason": "Timed out waiting for client 'sendspin-cpp-client'",
"role": "server",
"scenario_id": "client-initiated-pcm",
"status": "error"
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 18928 INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:18928 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. INFO:aiohttp.access:127.0.0.1 [05/Sep/2026:06:49:53 +0000] "GET /sendspin HTTP/1.1" 101 0 "-" "ixwebsocket/11.4.4 macos nossl"
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 0,
"chunks_before_stream_start": 0,
"chunks_without_bit_depth": 0,
"hash_bit_depth": null,
"received_encoded_sha256": null,
"received_pcm_sha256": null,
"received_sample_count": 0
},
"client_id": "sendspin-cpp-client-id",
"client_name": "sendspin-cpp-client",
"implementation": "sendspin-cpp",
"initiator_role": "client",
"preferred_codec": "pcm",
"reason": "Timed out waiting for server connection",
"role": "client",
"scenario_id": "client-initiated-pcm",
"server": null,
"status": "error",
"stream": null
}Client log
RAWI sendspin.ws_server: Starting server on port: 19928 (max connections: 4)
I sendspin.conn_mgr: Initiating client connection to: ws://127.0.0.1:18928/sendspin
{"status":"error","reason":"Timed out waiting for server connection","implementation":"sendspin-cpp","role":"client","scenario_id":"client-initiated-pcm","initiator_role":"client","preferred_codec":"pcm","client_name":"sendspin-cpp-client","client_id":"sendspin-cpp-client-id","server":null,"stream":null,"audio":{"audio_chunk_count":0,"chunks_before_stream_start":0,"chunks_without_bit_depth":0,"hash_bit_depth":null,"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-cpp-client · built · 68.81s
RAW| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp:209:97: warning: unused parameter 'out' [-Wunused-parameter]
209 | bool WebSocketPerMessageDeflateDecompressor::decompress(const std::string& in, std::string& out)
| ^
In file included from /Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.cpp:7:
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:39:13: warning: private field '_flush' is not used [-Wunused-private-field]
39 | int _flush;
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:40:44: warning: private field '_compressBuffer' is not used [-Wunused-private-field]
40 | std::array<unsigned char, 1 << 14> _compressBuffer;
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:57:13: warning: private field '_flush' is not used [-Wunused-private-field]
57 | int _flush;
| ^
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateCodec.h:58:44: warning: private field '_compressBuffer' is not used [-Wunused-private-field]
58 | std::array<unsigned char, 1 << 14> _compressBuffer;
| ^
12 warnings generated.
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:17:26: warning: unused variable 'minServerMaxWindowBits' [-Wunused-const-variable]
17 | static const uint8_t minServerMaxWindowBits = 8;
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:18:26: warning: unused variable 'maxServerMaxWindowBits' [-Wunused-const-variable]
18 | static const uint8_t maxServerMaxWindowBits = 15;
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:21:26: warning: unused variable 'minClientMaxWindowBits' [-Wunused-const-variable]
21 | static const uint8_t minClientMaxWindowBits = 8;
| ^~~~~~~~~~~~~~~~~~~~~~
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/build/_deps/ixwebsocket-src/ixwebsocket/IXWebSocketPerMessageDeflateOptions.cpp:22:26: warning: unused variable 'maxClientMaxWindowBits' [-Wunused-const-variable]
22 | static const uint8_t maxClientMaxWindowBits = 15;
| ^~~~~~~~~~~~~~~~~~~~~~
4 warnings generated.
/Users/runner/work/conformance/conformance/adapters/sendspin-cpp/client/main.cpp:451:21: warning: 'send_command' is deprecated: use send_command(const ClientCommandControllerObject&); this overload cannot carry seek parameters and will be removed in v0.8.0 [-Wdeprecated-declarations]
451 | controller_.send_command(target.value());
| ^
/Users/runner/work/conformance/conformance/repos/sendspin-cpp/include/sendspin/controller_role.h:164:7: note: 'send_command' has been explicitly marked deprecated here
164 | [[deprecated(
| ^
1 warning generated.