I sendspin.record_store: Provisioned Sendspin Pairing PSK: 9tgw33cHrNMSmBh8rE4UPc0aPsB-g5TXbb5yq7tWhvI I sendspin.client: Generated ephemeral static keypair (no provider); client_id=fC8iNQUfyvqk_8-4NErY3zY4LpheH_mhvf0J-S-2tgs I sendspin.ws_server: Starting server on port: 19958 (max connections: 4) I sendspin.noise_handshake: Noise handshake complete: server_id=u9hev1XgGvexIv-ugxx1aTrMRYWwHkjMTlerv90KHxU psk_category=2 I sendspin.connection: Noise transport active (server_id=u9hev1XgGvexIv-ugxx1aTrMRYWwHkjMTlerv90KHxU, psk_category=2) I sendspin.conn_mgr: Connection admitted: server_id=u9hev1XgGvexIv-ugxx1aTrMRYWwHkjMTlerv90KHxU I sendspin.sync_task: Processed new codec header: pcm, 8000 Hz, 1 ch, 16-bit I sendspin.conn_mgr: Admitted connection lost {"status":"ok","reason":null,"implementation":"sendspin-cpp","role":"client","scenario_id":"server-initiated-protocol-baseline-v1","initiator_role":"server","preferred_codec":"pcm","client_name":"sendspin-cpp-client","client_id":"fC8iNQUfyvqk_8-4NErY3zY4LpheH_mhvf0J-S-2tgs","server":{"server_id":"u9hev1XgGvexIv-ugxx1aTrMRYWwHkjMTlerv90KHxU","name":"sendspin-server-cpp server","version":1,"connection_reason":null},"peer_hello":{"type":"server/hello","payload":{"name":"sendspin-server-cpp server","source@v1_support":{"supported_codecs":["pcm","flac","opus"]}}},"stream":{"codec":"pcm","sample_rate":8000,"channels":1,"bit_depth":16,"codec_header":null},"audio":{"audio_chunk_count":50,"received_encoded_sha256":"b3481a3f75dea856a961e7842d12f8344c7147b3925f9f0b67c5445700bd4cf2","received_pcm_sha256":"9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e","received_sample_count":40000},"protocol":{"spec_revision":"8c9577ea8719ad082d051ec13cc73ef15ed68948","assertions":{"CORE-001":{"status":"passed","detail":"the trace shows the seven handshake messages in order, the cleartext ones in text frames and the encrypted ones in binary frames","events":[{"event":"handshake_message","direction":"outbound","message_type":"client/init","frame":"text"},{"event":"handshake_message","direction":"inbound","message_type":"server/init","frame":"text"},{"event":"handshake_message","direction":"inbound","message_type":"noise/handshake","frame":"text"},{"event":"handshake_message","direction":"outbound","message_type":"noise/handshake","frame":"text"},{"event":"handshake_message","direction":"inbound","message_type":"server/hello","frame":"binary"},{"event":"handshake_message","direction":"outbound","message_type":"client/hello","frame":"binary"},{"event":"handshake_message","direction":"inbound","message_type":"server/activate","frame":"binary"}]},"CORE-002":{"status":"passed","detail":"only handshake messages preceded the first server/activate","events":[{"event":"message_before_activation","direction":"outbound","message_type":"client/init","frame":"text"},{"event":"message_before_activation","direction":"inbound","message_type":"server/init","frame":"text"},{"event":"message_before_activation","direction":"inbound","message_type":"noise/handshake","frame":"text"},{"event":"message_before_activation","direction":"outbound","message_type":"noise/handshake","frame":"text"},{"event":"message_before_activation","direction":"inbound","message_type":"server/hello","frame":"binary"},{"event":"message_before_activation","direction":"outbound","message_type":"client/hello","frame":"binary"},{"event":"message_before_activation","direction":"inbound","message_type":"server/activate","frame":"binary"}]},"CORE-003":{"status":"passed","detail":"every active role was advertised, with the support object its role requires","events":[{"event":"server_activate_checked_against_client_hello","active_roles":["player@v1"],"supported_roles":["player@v1"],"support_objects":["player@v1_support"]}]},"CORE-004":{"status":"passed","detail":"the initial client/state preceded the first role binary data","events":[{"event":"server_activate","direction":"inbound","message_type":"server/activate","frame":"binary"},{"event":"initial_client_state","direction":"outbound","message_type":"client/state","frame":"binary"},{"event":"first_role_binary_data","direction":"inbound","message_type":"binary:4","frame":"binary"}]},"PLAYER-001":{"status":"passed","detail":"the server selected an advertised format and sent 50 audio chunks in timestamp order","events":[{"event":"stream_start_observed","negotiated_format":{"codec":"pcm","sample_rate":8000,"channels":1,"bit_depth":16},"advertised_formats":[{"codec":"pcm","channels":1,"sample_rate":8000,"bit_depth":16}]},{"event":"audio_chunks_observed","chunk_count":50,"first_timestamp_us":728162754,"last_timestamp_us":733062754}]}}}}