github music-assistant/server 2.10.0b4
2.10.0 BETA 4

pre-release4 hours ago

📦 Beta Release

Changes since 2.10.0b3

🚀 New Providers

  • Add Profiler provider for on-demand performance diagnostics (by @marcelveldt in #4653)

🚀 Features and enhancements

  • BBC Sounds: refactor for auntie-sounds 2.0 (by @kieranhogg in #4450)
  • fastmcp_server: update provider to v0.13.3 (queue, library-URI, and playback tools + localizable config) (by @trudenboy in #4486)
  • Use radio playlists in the MCP play_media tool (by @marcelveldt in #4501)
  • Add support for authors and narrators to audiobookshelf (by @fmunkes in #4526)
  • Suppress per-item media item events during library sync (by @marcelveldt in #4578)
  • Make player state change detection exact and cheap (by @marcelveldt in #4579)
  • Smart fades analyzer v2: frequency band envelopes, time signature and anti-aliased energy binning (by @MarvinSchenkel in #4580)
  • Emby Music Provider: add last played date (by @hatharry in #4582)
  • Reduce database commit overhead during library sync (by @marcelveldt in #4584)
  • Remove per-track config rebuild overhead (by @marcelveldt in #4585)
  • Resolve publish IP at startup instead of baking it into config entry defaults (by @marcelveldt in #4588)
  • Smart crossfade: content-aware 3-band EQ from frequency band analysis (by @MarvinSchenkel in #4591)
  • Add genre detection to playlist_metadata provider (by @dmoo500 in #4593)
  • Implement SQL-based explicit filter for smart playlists (by @dmoo500 in #4594)
  • Add explicit parameter to TracksController.library_items (by @dmoo500 in #4597)
  • Populate derived_from on output protocols (by @marcelveldt in #4609)
  • Add taxonomy genre icons, update genre icon image resolver (by @jozefKruszynski in #4611)
  • Expose bpm, musical key and RMS waveform to the frontend (by @MarvinSchenkel in #4626)
  • Speed up library matching with an indexed external ID lookup table (by @marcelveldt in #4628)
  • Speed up library listings by streaming from the sort index (by @marcelveldt in #4629)
  • Remove periodic garbage collection (by @marcelveldt in #4630)
  • Avoid threadsafe dispatch overhead when signalling events (by @marcelveldt in #4631)
  • Speed up library sync when nothing has changed (by @marcelveldt in #4632)
  • Raise transient provider errors instead of caching them as negatives (by @marcelveldt in #4636)
  • Fastmcp_server: Searchable log tail, whole-record tracebacks, log stats (by @trudenboy in #4640)
  • Reduce image proxy-id overhead when serializing media items (by @marcelveldt in #4642)
  • Make the external id lookup table the single source of truth (by @marcelveldt in #4645)
  • Add diagnostics feature (by @marcelveldt in #4652)
  • Add fixed genres to Phish.in tracks (by @OzGav in #4659)
  • Add join code expiry lookup to auth controller (by @marcelveldt in #4663)
  • Add support for sound effect media items (by @marcelveldt in #4669)

🐛 Bugfixes

  • Sync groups: keep slaved followers in group member dropdown after removal (by @MarvinSchenkel in #4036)
  • Improve global search reliability and database query parameter logic (by @SyedaAnshrahGillani in #4207)
  • Prevent SSRF via attacker-controlled WebRTC HTTP proxy path (by @MarvinSchenkel in #4554)
  • Harden JWT token expiration and fix guest token revocation (by @MarvinSchenkel in #4556)
  • Rate-limit join code exchange and lengthen join codes (by @MarvinSchenkel in #4558)
  • Prevent path traversal outside the filesystem provider base directory (by @MarvinSchenkel in #4559)
  • Fix XSS and cross-host request issues in MSX Bridge web player (by @MarvinSchenkel in #4562)
  • Fix playlog unique constraint errors on long-lived databases (by @MarvinSchenkel in #4567)
  • Fix smart playlist artwork not displaying in recommendations (by @dmoo500 in #4571)
  • Don't reinstall provider requirements with extras on every startup (by @marcelveldt in #4577)
  • Fix builtin Snapserver failing to load on busy MA startup (by @OzGav in #4586)
  • Prevent Qobuz credentials leaking into logs on HTTP error responses (by @OzGav in #4587)
  • Sanitize all control characters in icy-name stream header (by @OzGav in #4595)
  • Improve error presentation for folder playback resolution (by @OzGav in #4598)
  • Prevent duplicate versions of the same song in dynamic playlist queues (by @marcelveldt in #4603)
  • Fix Home Assistant integration losing authentication after restart or over time (by @MarvinSchenkel in #4620)
  • Sample smart playlist seeds evenly in discover mode (by @MarvinSchenkel in #4621)
  • Fix media position exceeding duration on squeezelite players (by @MarvinSchenkel in #4623)
  • Shuffle smart playlist seed tracks before sampling (by @MarvinSchenkel in #4625)
  • Snapcast fixes (by @OzGav in #4633)
  • Preserve universal player settings during startup restore (by @SyntaxSawdust in #4634)
  • Prevent universal player settings loss on startup restore (by @marcelveldt in #4643)
  • Prevent syncgroup self-dissolve when recovering a stuck member (by @MarvinSchenkel in #4644)
  • Advertise both IP families via mDNS and respect a specific bind IP when publishing (by @OzGav in #4646)
  • Fix broken album artists filtering (by @OzGav in #4648)
  • Prevent admin token leak to untrusted return_url during first-run setup (by @MarvinSchenkel in #4649)
  • Fix several bugs in the Jellyfin provider (by @OzGav in #4654)
  • Fix Plex artist albums not loading on servers without filter metadata (by @OzGav in #4657)
  • Don't auto-sync all Phish.in playlists to the library (by @OzGav in #4660)
  • Block long-lived token creation for guest accounts (by @MarvinSchenkel in #4661)
  • Harden MSX bridge against host-header XSS and cross-origin fetches (by @MarvinSchenkel in #4662)

🎨 Frontend Changes

Other Changes

  • Make Sendspin bridges first-class derived transports (by @marcelveldt in #4596)
  • Add typed get_config_value helper to the config-owning base models (by @marcelveldt in #4606)
  • Local Audio: promote attribution stubs to regular visible players (by @marcelveldt in #4607)
  • Lokalise translations update (by @github-actions[bot] in #4639)
  • Add CodSpeed performance benchmarks and CI integration (by @codspeed-hq[bot] in #4656)

🧰 Maintenance and dependency bumps

27 changes

🙇 Thanks to our contributors

Special thanks to the following contributors who helped with this release:

@GiuliaPassoni, @MarvinSchenkel, @OzGav, @SyedaAnshrahGillani, @SyntaxSawdust, @codspeed-hq[bot], @dmoo500, @fmunkes, @hatharry, @jozefKruszynski, @kieranhogg, @marcelveldt, @stvncode, @trudenboy

Don't miss a new server release

NewReleases is sending notifications on new releases.