fix(aiosendspin adapters): update for encryption-era SendspinServer/SendspinClient constructors#94
Merged
Merged
Conversation
…endspinClient constructors aiosendspin's encryption support (Sendspin/aiosendspin#292-298) changed SendspinServer() and SendspinClient() to require an Identity keypair and a pairing_store instead of a plain server_id/client_id string, and dropped allow_unencrypted's default to False. The adapters' old constructor calls raised a TypeError immediately, before server-ready.json/client-ready.json could be written, timing out every conformance scenario using --from aiosendspin. Construct an Identity + in-memory pairing store on both adapters, pass allow_unencrypted=True so today's still-unencrypted client adapters keep being admitted, and update the renamed client.negotiated_roles -> active_role_ids and the removed add_server_hello_listener -> client.server_info. Fixes #93 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
aiosendspin's encryption support (Sendspin-Protocol/aiosendspin#292 through #298) changedSendspinServer()/SendspinClient()to require anIdentitykeypair and a pairing store instead of a plainserver_id/client_idstring, and defaultedallow_unencryptedtoFalse. The old constructor calls in both adapters raised aTypeErrorbeforeserver-ready.json/client-ready.jsoncould be written, timing out every conformance scenario run with--from aiosendspin(or--to aiosendspin).Identity.generate()+ in-memory pairing store on bothaiosendspin_server.pyandaiosendspin_client.py, and passallow_unencrypted=Trueon the server so today's still-unencrypted client adapters continue to be admitted.client.negotiated_roles→client.active_role_ids, and the removedadd_server_hello_listenercallback → the existingclient.server_infoproperty.Test plan
aiosendspin+sendspin-cliat HEAD into a scratch venv and ran the harness directly against this fix.Sendspin server started successfullyand writesserver-ready.json(previously: immediateTypeErrorcrash).client/hello(mimicking untouched client SDKs like sendspin-jvm) and confirmed the server logsAccepting unencrypted legacy connection (transition mode)and returns a validserver/hello, validating theallow_unencrypted=Trueadmission path called out in the issue.aiosendspin↔aiosendspinconformance self-test: connection, Noise/legacy handshake, and role negotiation now succeed (previously impossible). Remaining media-transfer-level scenario failures (audio/metadata/artwork/FLAC negotiation) are further, separate protocol drift unrelated to this constructor crash — filed as a follow-up rather than folded into this fix.Fixes #93
🤖 Generated with Claude Code