Case
sendspin-go -> SendspinKit
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
sendspin-go
Client
SendspinKit
Status
Passed
PCM hashes match exactly
Inspection
Summaries, logs, and builds
Matrix result
RAW{
"case_dir": "artifacts/results/data/macos__client-initiated-pcm__sendspin-go__to__SendspinKit",
"client_exit_code": 0,
"client_impl": "SendspinKit",
"reason": "PCM hashes match exactly",
"scenario_id": "client-initiated-pcm",
"server_exit_code": 0,
"server_impl": "sendspin-go",
"status": "passed"
}Server summary (JSON)
RAW{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5,
"duration_seconds": 5,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_count": 40000,
"sample_rate": 8000,
"sent_audio_chunk_count": 100,
"sent_encoded_byte_count": 80000,
"sent_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e"
},
"client": {
"client_id": "SendspinKit-client-id",
"name": "SendspinKit-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_advertised",
"implementation": "sendspin-go",
"initiator_role": "client",
"peer_hello": {
"payload": {
"client_id": "SendspinKit-client-id",
"device_info": {
"manufacturer": "Apple",
"product_name": "Mac",
"software_version": "Version 15.7.4 (Build 24G517)"
},
"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": "client-initiated-pcm",
"server_id": "sendspin-go-server",
"server_name": "sendspin-go server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
}Server log
RAW{
"audio": {
"bit_depth": 16,
"channels": 1,
"clip_seconds": 5,
"duration_seconds": 5,
"fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac",
"frame_count": 40000,
"sample_rate": 8000,
"sent_audio_chunk_count": 100,
"sent_encoded_byte_count": 80000,
"sent_encoded_sha256": "b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2",
"source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17",
"source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e"
},
"client": {
"client_id": "SendspinKit-client-id",
"name": "SendspinKit-client",
"supported_roles": [
"player@v1"
]
},
"discovery_method": "registry_advertised",
"implementation": "sendspin-go",
"initiator_role": "client",
"peer_hello": {
"payload": {
"client_id": "SendspinKit-client-id",
"device_info": {
"manufacturer": "Apple",
"product_name": "Mac",
"software_version": "Version 15.7.4 (Build 24G517)"
},
"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": "client-initiated-pcm",
"server_id": "sendspin-go-server",
"server_name": "sendspin-go server",
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"sample_rate": 8000
}
}
Client summary (JSON)
RAW{
"audio": {
"audio_chunk_count": 100,
"received_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"received_sample_count": 40000
},
"client_id": "SendspinKit-client-id",
"client_name": "SendspinKit-client",
"implementation": "SendspinKit",
"initiator_role": "client",
"peer_hello": {
"payload": {
"connection_reason": "playback",
"name": "sendspin-go server",
"server_id": "sendspin-go-server",
"version": 1
},
"type": "server/hello"
},
"preferred_codec": "pcm",
"role": "client",
"scenario_id": "client-initiated-pcm",
"server": {
"connection_reason": "playback",
"name": "sendspin-go server",
"server_id": "sendspin-go-server",
"version": 1
},
"status": "ok",
"stream": {
"bit_depth": 16,
"channels": 1,
"codec": "pcm",
"codec_header": null,
"sample_rate": 8000
}
}Client log
RAW[ADAPTER] Connecting to server at ws://127.0.0.1:18942/sendspin
[ADAPTER] Connected to server: sendspin-go server
[ADAPTER] Stream started: pcm 8000Hz 1ch 16bit
[ADAPTER] Metadata: Almost Silent
[ADAPTER] Disconnected: connectionLost
{
"audio" : {
"audio_chunk_count" : 100,
"received_pcm_sha256" : "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e",
"received_sample_count" : 40000
},
"client_id" : "SendspinKit-client-id",
"client_name" : "SendspinKit-client",
"implementation" : "SendspinKit",
"initiator_role" : "client",
"peer_hello" : {
"payload" : {
"connection_reason" : "playback",
"name" : "sendspin-go server",
"server_id" : "sendspin-go-server",
"version" : 1
},
"type" : "server\/hello"
},
"preferred_codec" : "pcm",
"role" : "client",
"scenario_id" : "client-initiated-pcm",
"server" : {
"connection_reason" : "playback",
"name" : "sendspin-go server",
"server_id" : "sendspin-go-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__client-initiated-pcm__sendspin-go__to__SendspinKit/client-summary.json
Server build log · sendspin-go-server · built · 1.01s
RAWNo build detail was recorded.
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