Gap
Servers currently emit group/update during player scenarios (adapters/sendspin-go/server/main.go:434-439, :497-502) but:
- No client summary includes the received
playback_state, group_id, or group_name.
runner.py has no comparator for these fields.
- The spec's delta-merge / null-clearing semantics are not exercised.
Proposed coverage
- Record received
group/update fields in the client summary and assert that the server's declared values (e.g. playback_state: 'playing', a stable group_id) match.
- A scenario where the server emits an initial
group/update with group_name set, then a second with group_name: null, and assert the client clears the field.
- A scenario that exercises a group transition (stopped → playing → stopped) and verifies every state transition arrives as a delta.
Spec references
- "Server → Client:
group/update"
- "Contains delta updates with only the changed fields... Fields set to null should be cleared from the client's state."
Gap
Servers currently emit
group/updateduring player scenarios (adapters/sendspin-go/server/main.go:434-439,:497-502) but:playback_state,group_id, orgroup_name.runner.pyhas no comparator for these fields.Proposed coverage
group/updatefields in the client summary and assert that the server's declared values (e.g.playback_state: 'playing', a stablegroup_id) match.group/updatewithgroup_nameset, then a second withgroup_name: null, and assert the client clears the field.Spec references
group/update"