New features
- Gapless playback on the local audio backend (experimental) — consecutive tracks now play back-to-back with no silence between them.
- Cleaner speaker list — Sonos stereo pair members and home theater satellites are hidden from discovery, and Sonos speakers are listed by room name. (#16)
Playback fixes
- Scrobbles and listening history now report correctly: play context is included, duplicate scrobbles across pause/resume are gone, and the final track is reported when you skip past the end of the queue.
- Repeat-one now actually restarts the track instead of going silent.
- Position is reported accurately when starting mid-track, and no longer snaps to 0:00 on renderers that don't report position.
- Paused state is more reliable — it survives a failed resume and no longer flips to a false "stopped".
- Queue position stays in sync when the app sets state or loads a new queue. (#10)
Local backend fixes
- Starting a new track while paused no longer plays silence, and the previous track's audio stops immediately when you switch.
- Resuming after a stop no longer pretends to play.
DLNA & connection fixes
- Recovers automatically from expired streaming URLs instead of failing the stream. (#10)
- No longer downloads the entire track just to answer a device's HEAD probe.
- Speakers that fail to start are now retried in the background instead of being dropped until restart. (#15, #10)
- Connection failures to a renderer now clean up properly instead of leaking sessions. (#10)
Full Changelog: v1.4.0...v1.5.0