What's Changed
- fix: resolve post-reconnection state desync by @chrisuthe in #51
- fix: flush AudioTrack on pause so audio stops immediately by @chrisuthe in #52
- feat: persist album artists only filter across sessions by @chrisuthe in #53
- fix: add @volatile to pendingExitDraining for thread safety by @chrisuthe in #54
- fix: remove redundant scaleArtwork() call by @chrisuthe in #55
- Remove dead isAvailable stub from MusicAssistantManager by @chrisuthe in #56
- fix: move bitmap decoding off main thread in onArtwork by @chrisuthe in #57
- fix: guard against TOCTOU race on syncAudioPlayer from WebSocket thread by @chrisuthe in #60
- fix: move pendingExitDraining access to main thread in onReconnecting by @chrisuthe in #59
- fix: make scanning poll loop lifecycle-aware by @chrisuthe in #58
- feat: add HEADUNIT form factor with dedicated Now Playing layout by @chrisuthe in #61
- perf: reduce notification artwork to 300px max by @chrisuthe in #64
- perf: use lifecycle-aware flow collection in Compose UI by @chrisuthe in #63
- Add stable keys to LazyColumn/LazyRow items by @chrisuthe in #62
- fix: skip unchanged server state and group updates by @chrisuthe in #65
- Standardize error handling in MusicAssistantManager by @chrisuthe in #66
- fix: reset clock sync state on reconnect by @chrisuthe in #67
- refactor: extract magic numbers into named constants by @chrisuthe in #68
- Replace inline fully-qualified names with imports by @chrisuthe in #69
- fix: replace deprecated NSD resolve APIs for API 34+ by @chrisuthe in #73
- fix: remove redundant elvis operator in PlaylistDetailScreen by @chrisuthe in #72
- fix: convert freeze/thaw to block body for Kotlin 2.4 by @chrisuthe in #71
- fix: remove redundant null check in auth message handling by @chrisuthe in #70
- test: SendSpinClient state, reconnect, and network tests by @chrisuthe in #74
- test: protocol handler and decoder unit tests by @chrisuthe in #75
- test: add player and infrastructure unit tests by @chrisuthe in #76
- test: add Compose UI tests for 10 screen areas by @chrisuthe in #77
- test: add SyncAudioPlayer unit tests by @chrisuthe in #78
- test: add component integration tests by @chrisuthe in #79
- fix: resolve slow metadata updates and volume showing zero on song ch… by @chrisuthe in #80
- test: add E2E test suite for core scenarios by @chrisuthe in #81
Full Changelog: v2.0.0-Beta5...v2.0.0-Beta6