Skip to content

v0.6.2

Latest

Choose a tag to compare

@rudyberends rudyberends released this 15 Sep 08:02
fix(controller): withhold commands a peer's library cannot name (v0.6.2)

`supported_commands` is a typed enum list on the far side, so a value the
client has never heard of does not degrade one feature — it invalidates the
whole `server/state`. An aiosendspin below 6.1.0 meets `seek`/`seek_relative`
that way: it drops the message, never starts the stream, and stays silent
while the server's log looks perfectly healthy.

The protocol cannot be asked. `client/hello` has no controller support object
and the core version has stayed 1 across every release, so a later enum entry
is indistinguishable from an original one. What a peer does tell us is which
library it is, in `device_info.software_version`, so filter there: a deny-list
of peers known to be blind, with everything unrecognised keeping the full set.

Filtering at the session rather than at the caller covers group members too,
which are sent the leader's payload verbatim. `seek_max_ms` goes out with
`seek`, and the tolerance is reported once through `onNoncompliance`.