Case
aiosendspin -> SendspinKit
Start the server first, then the client. The client advertises a listener and PCM as its only supported audio format, the server connects in, streams audio derived from almost_silent.flac, disconnects, and the matrix compares canonical PCM hashes.
Server
aiosendspin
Client
SendspinKit
Status
Failed
PCM hash mismatch: server=9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e client=e51058cd5684a3bf3554b6ff60bf81612fda220c05120bdb0c9aa4195f7d08d2
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-pcm__aiosendspin__to__SendspinKit",
"client_exit_code": 0,
"client_impl": "SendspinKit",
"reason": "PCM hash mismatch: server=9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e client=e51058cd5684a3bf3554b6ff60bf81612fda220c05120bdb0c9aa4195f7d08d2",
"scenario_id": "server-initiated-pcm",
"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": 200,
"sent_codec_header_sha256": null,
"sent_encoded_byte_count": 80000,
"sent_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"trimmed_source_frames": 0
},
"client": {
"active_roles": [
"player@v1"
],
"client_id": "SendspinKit-client-id",
"name": "SendspinKit-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "SendspinKit-client-id",
"device_info": {
"manufacturer": "Apple"
},
"name": "SendspinKit-client",
"player@v1_support": {
"buffer_capacity": 960000,
"supported_commands": [],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 48000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 48000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "server-initiated-pcm",
"server_id": "aiosendspin-server",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
}
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 18950
INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:18950
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.
WARNING:aiosendspin.server.client.SendspinKit-client-id:Client sent volume field without declaring 'volume' in supported_commands
WARNING:aiosendspin.server.client.SendspinKit-client-id:Client sent muted field without declaring 'mute' in supported_commands
WARNING:aiosendspin.server.client.SendspinKit-client-id:Client sent volume field without declaring 'volume' in supported_commands
WARNING:aiosendspin.server.client.SendspinKit-client-id:Client sent muted field without declaring 'mute' in supported_commands
WARNING:aiosendspin.server.connection.SendspinKit-client-id:WebSocket closed, close_code=1006
{
"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": 200,
"sent_codec_header_sha256": null,
"sent_encoded_byte_count": 80000,
"sent_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"trimmed_source_frames": 0
},
"client": {
"active_roles": [
"player@v1"
],
"client_id": "SendspinKit-client-id",
"name": "SendspinKit-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "SendspinKit-client-id",
"device_info": {
"manufacturer": "Apple"
},
"name": "SendspinKit-client",
"player@v1_support": {
"buffer_capacity": 960000,
"supported_commands": [],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 48000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 48000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "pcm",
"role": "server",
"scenario_id": "server-initiated-pcm",
"server_id": "aiosendspin-server",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
}
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 200,
"received_pcm_sha256": "e51058cd5684a3bf3554b6ff60bf81612fda220c05120bdb0c9aa4195f7d08d2",
"received_sample_count": 40000
},
"client_id": "SendspinKit-client-id",
"client_name": "SendspinKit-client",
"implementation": "SendspinKit",
"initiator_role": "server",
"peer_hello": {
"payload": {
"connection_reason": "playback",
"name": "aiosendspin server",
"server_id": "aiosendspin-server",
"version": 1
},
"type": "server/hello"
},
"preferred_codec": "pcm",
"role": "client",
"scenario_id": "server-initiated-pcm",
"server": {
"connection_reason": "playback",
"name": "aiosendspin server",
"server_id": "aiosendspin-server",
"version": 1
},
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
}
}Client log
RAW[ADAPTER] Listening for server connection on ws://127.0.0.1:19950/sendspin
[ADAPTER] Connected to server: aiosendspin server
[ADAPTER] Stream started: pcm 8000Hz 1ch 16bit
[ADAPTER] Stream ended
{
"audio" : {
"audio_chunk_count" : 200,
"received_pcm_sha256" : "e51058cd5684a3bf3554b6ff60bf81612fda220c05120bdb0c9aa4195f7d08d2",
"received_sample_count" : 40000
},
"client_id" : "SendspinKit-client-id",
"client_name" : "SendspinKit-client",
"implementation" : "SendspinKit",
"initiator_role" : "server",
"peer_hello" : {
"payload" : {
"connection_reason" : "playback",
"name" : "aiosendspin server",
"server_id" : "aiosendspin-server",
"version" : 1
},
"type" : "server\/hello"
},
"preferred_codec" : "pcm",
"role" : "client",
"scenario_id" : "server-initiated-pcm",
"server" : {
"connection_reason" : "playback",
"name" : "aiosendspin server",
"server_id" : "aiosendspin-server",
"version" : 1
},
"status" : "ok",
"stream" : {
"bit_depth" : 16,
"channels" : 1,
"codec" : "pcm",
"codec_header" : null,
"sample_rate" : 8000
}
}
[ADAPTER] Summary written to artifacts/results/data/macos__server-initiated-pcm__aiosendspin__to__SendspinKit/client-summary.json
Server build log · python-adapters · built · 0.07s
RAWListing 'src'... Listing 'src/conformance'... Listing 'src/conformance/adapters'... Compiling 'src/conformance/adapters/__init__.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 · SendspinKit-client · built · 44.65s
RAWmpiling SendspinKit MonotonicClock.swift
[207/215] Compiling SendspinKit SendspinTimeFilter.swift
[208/215] Compiling SendspinKit TimeFilterSnapshot.swift
[209/215] Compiling SendspinKit NWWebSocketTransport.swift
[210/215] Compiling SendspinKit SendspinEncoding.swift
[211/215] Compiling SendspinKit SendspinTransport.swift
[212/215] Compiling SendspinKit WebSocketTransport.swift
[213/217] Compiling ConformanceSendspinKitClient main.swift
/Users/runner/work/conformance/conformance/adapters/SendspinKit/client/Sources/ConformanceSendspinKitClient/main.swift:176:13: warning: variable 'copy' was never mutated; consider changing to 'let' constant
174 |
175 | func hexdigest() -> String {
176 | var copy = hasher
| `- warning: variable 'copy' was never mutated; consider changing to 'let' constant
177 | return copy.finalize().map { String(format: "%02x", $0) }.joined()
178 | }
/Users/runner/work/conformance/conformance/adapters/SendspinKit/client/Sources/ConformanceSendspinKitClient/main.swift:236:13: warning: variable 'copy' was never mutated; consider changing to 'let' constant
234 |
235 | func hexdigest() -> String {
236 | var copy = hasher
| `- warning: variable 'copy' was never mutated; consider changing to 'let' constant
237 | return copy.finalize().map { String(format: "%02x", $0) }.joined()
238 | }
[214/217] Emitting module ConformanceSendspinKitClient
[214/217] Write Objects.LinkFileList
[215/217] Linking ConformanceSendspinKitClient
[216/217] Applying ConformanceSendspinKitClient
Build complete! (39.10s)
Fetching https://github.com/sbooth/flac-binary-xcframework.git
Fetching https://github.com/daltoniam/Starscream.git
[1/32] Fetching flac-binary-xcframework
[33/5140] Fetching flac-binary-xcframework, starscream
Fetched https://github.com/daltoniam/Starscream.git from cache (0.79s)
Fetched https://github.com/sbooth/flac-binary-xcframework.git from cache (0.79s)
Fetching https://github.com/sbooth/ogg-binary-xcframework.git
Fetching https://github.com/alta/swift-opus.git
[1/23] Fetching ogg-binary-xcframework
[24/806] Fetching ogg-binary-xcframework, swift-opus
Fetched https://github.com/alta/swift-opus.git from cache (0.53s)
Fetched https://github.com/sbooth/ogg-binary-xcframework.git from cache (0.53s)
Creating working copy for https://github.com/daltoniam/Starscream.git
Working copy of https://github.com/daltoniam/Starscream.git resolved at 4.0.8
Creating working copy for https://github.com/sbooth/ogg-binary-xcframework.git
Working copy of https://github.com/sbooth/ogg-binary-xcframework.git resolved at 0.1.3
Creating working copy for https://github.com/sbooth/flac-binary-xcframework.git
Working copy of https://github.com/sbooth/flac-binary-xcframework.git resolved at 0.2.0
Creating working copy for https://github.com/alta/swift-opus.git
Working copy of https://github.com/alta/swift-opus.git resolved at 0.0.2
Downloading binary artifact https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip
Downloading binary artifact https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip
[32768/3922418] Downloading https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip
[98277/4541165] Downloading https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip, https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip
Downloaded https://github.com/sbooth/ogg-binary-xcframework/releases/download/0.1.3/ogg.xcframework.zip (2.50s)
Downloaded https://github.com/sbooth/flac-binary-xcframework/releases/download/0.2.0/FLAC.xcframework.zip (2.94s)
warning: 'starscream': found 1 file(s) which are unhandled; explicitly declare them as resources or exclude from the target
/Users/runner/work/conformance/conformance/adapters/SendspinKit/client/.build/checkouts/Starscream/Sources/Info.plist