Case
aiosendspin -> aiosendspin
Start the server first, then the client, let the server discover/connect, stream FLAC derived from almost_silent.flac, and compare the transported FLAC header and chunk bytes as received by the client.
Server
aiosendspin
Client
aiosendspin
Status
Passed
FLAC header and chunk bytes match exactly
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__server-initiated-flac__aiosendspin__to__aiosendspin",
"client_exit_code": 0,
"client_impl": "aiosendspin",
"reason": "FLAC header and chunk bytes match exactly",
"scenario_id": "server-initiated-flac",
"server_exit_code": 0,
"server_impl": "aiosendspin",
"status": "passed"
}Server summary (JSON)
RAW{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5.0,
"duration_seconds": 4.968,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": 576,
"frame_count": 39744,
"sample_rate": 8000,
"sent_audio_chunk_count": 69,
"sent_codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sent_encoded_byte_count": 3817,
"sent_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"trimmed_source_frames": 256
},
"client": {
"active_roles": [
"player@v1"
],
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"player@v1_support": {
"buffer_capacity": 2000000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 48000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 48000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "aiosendspin-server",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sample_rate": 8000
}
}Server log
RAWINFO:aiosendspin.server.server:Starting Sendspin server on port 18997
INFO:aiosendspin.server.server:Sendspin server started successfully on 127.0.0.1:18997
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": 4.968,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_alignment_samples": 576,
"frame_count": 39744,
"sample_rate": 8000,
"sent_audio_chunk_count": 69,
"sent_codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sent_encoded_byte_count": 3817,
"sent_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"trimmed_source_frames": 256
},
"client": {
"active_roles": [
"player@v1"
],
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_fallback",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"client_id": "aiosendspin-client-id",
"name": "aiosendspin-client",
"player@v1_support": {
"buffer_capacity": 2000000,
"supported_commands": [
"volume",
"mute"
],
"supported_formats": [
{
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "flac",
"sample_rate": 48000
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 44100
},
{
"bit_depth": 16,
"channels": 2,
"codec": "pcm",
"sample_rate": 48000
}
]
},
"supported_roles": [
"player@v1"
],
"version": 1
},
"type": "client/hello"
},
"preferred_codec": "flac",
"role": "server",
"scenario_id": "server-initiated-flac",
"server_id": "aiosendspin-server",
"server_name": "aiosendspin server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"codec_header_sha256": "cf785f756a60586c95243e827c384663e8dc4be893f3eb79a5b092b4df511214",
"sample_rate": 8000
}
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 69,
"received_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"received_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"received_sample_count": 39744
},
"client_id": "aiosendspin-client-id",
"client_name": "aiosendspin-client",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"active_roles": [
"player@v1"
],
"connection_reason": "playback",
"name": "aiosendspin server",
"server_id": "aiosendspin-server",
"version": 1
},
"type": "server/hello"
},
"preferred_codec": "flac",
"role": "client",
"scenario_id": "server-initiated-flac",
"server": null,
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"sample_rate": 8000
}
}Client log
RAWINFO:aiosendspin.client.listener:ClientListener started on port 19997, path /sendspin
INFO:aiosendspin.client.client:Connected to server 'aiosendspin server' (aiosendspin-server) version 1
INFO:aiosendspin.client.client:Handshake with server complete
INFO:aiosendspin.client.client:Stream started with codec flac
INFO:aiohttp.access:127.0.0.1 [29/Mar/2026:04:41:46 +0000] "GET /sendspin HTTP/1.1" 101 0 "-" "Python/3.12 aiohttp/3.13.4"
INFO:aiosendspin.client.listener:ClientListener stopped
{
"audio": {
"audio_chunk_count": 69,
"received_encoded_sha256": "a4be5550140f2e9d7a631318496eab0f63ca6b09ce6ff0e148b50d0364ffe49a",
"received_pcm_sha256": "ea4a8f1ced7d3ad85d46da1dea8cf98cd2cf75dbf305fb11cffea11b1e180952",
"received_sample_count": 39744
},
"client_id": "aiosendspin-client-id",
"client_name": "aiosendspin-client",
"implementation": "aiosendspin",
"initiator_role": "server",
"peer_hello": {
"payload": {
"active_roles": [
"player@v1"
],
"connection_reason": "playback",
"name": "aiosendspin server",
"server_id": "aiosendspin-server",
"version": 1
},
"type": "server/hello"
},
"preferred_codec": "flac",
"role": "client",
"scenario_id": "server-initiated-flac",
"server": null,
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "flac",
"codec_header": "ZkxhQ4AAACICQAJAAAAAAASVAfQA8AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"sample_rate": 8000
}
}
Shared build log · python-adapters · built · 0.04s
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/cli.py'... Compiling 'src/conformance/merge.py'... Compiling 'src/conformance/registry.py'... Listing 'src/sendspin_conformance.egg-info'... Listing 'scripts'... Compiling 'scripts/merge_results.py'... Compiling 'scripts/run_all.py'... Compiling 'scripts/setup_repositories.py'... Compiling 'scripts/setup_workspace.py'...