What's Changed
Features
- feat(playback): sync Navidrome playlists through API by @lklynet in #591
- feat(playback): retire Navidrome M3U playlists by @lklynet in #593
- feat(settings): make playback adapter settings declarative by @lklynet in #599
- feat(settings): add sidebar environment art toggle by @lklynet in #600
Bug fixes
- fix(playback): preserve Navidrome playlist during rename by @lklynet in #594
- fix(playback): preserve pending Navidrome migrations by @lklynet in #595
- fix(playback): require complete imported playlist matches by @lklynet in #596
- fix(lidarr): use the v1 API path by @lklynet in #601
Dependencies
- build(deps): bump undici from 7.29.0 to 8.10.0 by @dependabot[bot] in #582
Other changes
- refactor(playback): define playback destination contract by @lklynet in #578
- refactor(playback): move Navidrome behind destination by @lklynet in #587
- refactor(playback): move Plex behind destination by @lklynet in #589
- refactor(playback): add destination registry by @lklynet in #590
- chore: ignore local generated files by @lklynet in #598
- test: remove obsolete fallback regression cases by @lklynet in #602
- Retry transient Navidrome rate limits by @lklynet in #603
Full Changelog: v2.3.0...v2.4.0