Skip to content

aiosendspin[server]~=6.0.1 pin locks out 6.1.x, where MediaCommand.SEEK lives — servers advertising seek silence the daemon #280

Description

@tobsch

sendspin 7.5.0 (current release) declares:

aiosendspin[server]~=6.0.1

~=6.0.1 resolves to >=6.0.1, <6.1.0, so a fresh pip install sendspin can never receive aiosendspin 6.1.x.

That matters because 6.1.0 added seek and seek_relative to MediaCommand, and servers have started advertising them. Loxone/Sonn Core 4.0.0-beta.21 puts both into controller.supported_commands for any track with a known duration. On aiosendspin 6.0.x that value cannot be parsed, and since supported_commands is typed list[MediaCommand], the whole server/state message is thrown away:

ERROR:aiosendspin.client.client:Failed to parse server message: {"type":"server/state","payload":{"controller":{"supported_commands":[...,"seek","seek_relative"],"volume":10,...,"seek_max_ms":310000}}}
ValueError: 'seek' is not a valid MediaCommand
mashumaro.exceptions.InvalidFieldValue: Field "supported_commands" of type list[MediaCommand] in ControllerStatePayload has invalid value [...]

The daemon then never starts a stream — the room is simply silent, while volume commands (a different message) still apply, so the client looks alive. Live streams with no duration keep working, which makes it look source-specific rather than protocol-specific.

Installing aiosendspin==6.1.1 fixes it completely (verified here across 5 rooms: Stream started with codec pcm immediately after the restart, audio at the card), but leaves the install outside the daemon's own declared range:

ERROR: pip's dependency resolver ... sendspin 7.5.0 requires aiosendspin[server]~=6.0.1, but you have aiosendspin 6.1.1 which is incompatible.

Would you consider relaxing the pin to >=6.0.1,<7 (or cutting a 7.5.1 that does)? The 6.0.5 → 6.1.1 delta is additive on the client side — two enum members, the matching ControllerStatePayload fields, and small server-role changes.

Server-side context and the interop side of this: sonn-audio/core#382.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions