📦 Beta Release
Changes since 2.10.0b1
🚀 New Providers
🚀 Features and enhancements
- Add favorites support to Digitally Incorporated provider (by @benklop in #3458)
- feat(spotify): add curated browse for new releases and genres (by @x-ingo in #4177)
- Rename 'don't stop the music' to 'autoplay' (by @marcelveldt in #4404)
- Transfer playback to a new leader when unjoining a sync group leader (by @marcelveldt in #4412)
- Support
seekSendspin controller commands (by @maximmaxim345 in #4417) - Resolve player palette only on the media owner, not per grouped member (by @marcelveldt in #4425)
- Make the demo player provider a groupable end-to-end test bed (by @marcelveldt in #4428)
- Add content_type to Genre schema with migration (by @jozefKruszynski in #4435)
- Configurable Autoplay with similar / library / playlist modes (by @marcelveldt in #4446)
🐛 Bugfixes
- Validate return_url before appending JWT token (by @s0yd4RK in #4272)
- Fix Spotify playback failing on broken Spotify CDN URLs (by @marcelveldt in #4398)
- Handle deleted image files with a typed not-found error (by @OzGav in #4400)
- Pause external sources instead of stopping them (by @marcelveldt in #4401)
- Fix unjoining a syncgroup member that joined the leader externally (by @marcelveldt in #4405)
- Recover flow stream restart on Cast groups (players that don't report idle) (by @OzGav in #4406)
- Keep universal player when its protocol links can't migrate to the native player (by @maximmaxim345 in #4413)
- Fix Home Assistant control of universal players running an external source (by @maximmaxim345 in #4415)
- Prevent a player from linking to itself on player type change (by @maximmaxim345 in #4416)
- Don't switch a playing group's output protocol when joining a player (by @marcelveldt in #4419)
- Keep radio/live streams restartable after a mid-stream disconnect (by @marcelveldt in #4421)
- Reconnect ICY radio streams on disconnect (by @marcelveldt in #4422)
- Keep AirPlay sync group playing when the leader's stream process crashes (by @marcelveldt in #4424)
- Fix WiiM UPnP event-callback binding on multi-homed / containerized hosts (by @rwlove in #4434)
- fix(snapcast): fix ~65s stop delay caused by spurious inactivity timer (by @vintvinst in #4436)
- Make live audio analysis a passive observer so it can never stall playback (by @chrisuthe in #4442)
🎨 Frontend Changes
- Always expand players when clicking the player button from the 'now playing' screen (#60) (by @joperafe in #1944)
- Add crossfade control to the player and a per-queue settings page (by @marcelveldt in #1942)
- Pnpm switch (by @stvncode in #1951)
- Revamp the fullscreen player header controls (by @marcelveldt in #1945)
- Lokalise translations update (by @github-actions[bot] in #1955)
- Possibility to hide/show browse by genre in discover page (by @stvncode in #1957)
- Allow unjoining the sync group leader to hand off playback (by @marcelveldt in #1956)
- Genre media type filtering (by @jozefKruszynski in #1952)
- Rename 'auto play' to 'autoplay' and use the new queue command (by @marcelveldt in #1953)
- Fix favorite heart state resetting on queue updates for radio and provider items (by @dmoo500 in #1725)
- Add Start Radio to the queue item menu and drop redundant move up/down (by @marcelveldt in #1963)
- Drag to reorder up next items in the fullscreen queue (by @marcelveldt in #1961)
- Redesign the fullscreen player queue as a single scrollable list (by @marcelveldt in #1960)
- Migrate timeline slider to reka-ui, fix tap not skipping correctly (by @pierosavi in #1857)
- Extract the fullscreen queue item context menu into a helper (by @marcelveldt in #1962)
- Add Lucide icon picker with custom MA device icons for player settings (by @dmoo500 in #1779)
- Add a queue mode banner to surface radio and autoplay (by @marcelveldt in #1966)
- Update context menu with shadcn comp and lucide icons (by @stvncode in #1964)
- Streamline fullscreen player header controls (by @marcelveldt in #1965)
- Fix rectangle art album not well displayed in the now playing bottom (#66) (by @joperafe in #1940)
- Fix drodpdown offset + width (by @stvncode in #1968)
Other Changes
- Lokalise translations update (by @github-actions[bot] in #4411)
- Extract library-sync config-entry building into a helper (by @zenibako in #4414)
- Share UPnP source-IP resolution across AirPlay and WiiM (by @rwlove in #4443)
🧰 Maintenance and dependency bumps
18 changes
- Bump ytmusicapi from 1.11.5 to 1.12.1 (by @dependabot[bot] in #4235)
- Enable RUF006 and fix unstored asyncio tasks (by @OzGav in #4393)
- Enable RUF012 (by @OzGav in #4394)
- Enable PYI034 (return Self from aenter/new) (by @OzGav in #4395)
- ⬆️ Update music-assistant-frontend to 2.17.195 (by @music-assistant-machine in #4396)
- Enable S307 rule - possibly insecure function (by @OzGav in #4397)
- ⬆️ Update music-assistant-frontend to 2.17.196 (by @music-assistant-machine in #4407)
- Bump zeroconf from 0.149.12 to 0.149.16 (by @dependabot[bot] in #4408)
- Move private methods to the bottom in the PocketCasts provider (by @OzGav in #4418)
- Bump actions/cache from 5 to 6 (by @dependabot[bot] in #4420)
- Dynamically update group leader capability on a zone player in MusicCast (by @fmunkes in #4423)
- ⬆️ Update music-assistant-frontend to 2.17.197 (by @music-assistant-machine in #4427)
- Bump actions/setup-python from 6.2.0 to 6.3.0 (by @dependabot[bot] in #4431)
- ⬆️ Update music-assistant-models to 1.1.144 (by @music-assistant-machine in #4433)
- ⬆️ Update music-assistant-frontend to 2.17.198 (by @music-assistant-machine in #4437)
- ⬆️ Update music-assistant-frontend to 2.17.199 (by @music-assistant-machine in #4438)
- ⬆️ Update music-assistant-frontend to 2.17.200 (by @music-assistant-machine in #4439)
- Enhance Audio Analysis Logging (by @chrisuthe in #4440)
🙇 Thanks to our contributors
Special thanks to the following contributors who helped with this release:
@OzGav, @benklop, @chrisuthe, @dmoo500, @fmunkes, @joperafe, @jozefKruszynski, @marcelveldt, @maximmaxim345, @pierosavi, @romany, @rwlove, @s0yd4RK, @stvncode, @vintvinst, @x-ingo, @yfhyou, @zenibako