Add AppLogger singleton (ring buffer, 500 lines) and LogsView with
auto-scroll and color-coded output. Button in Settings opens a resizable
logs window. Log track start, device active changes, and network errors.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add POST /api/player/lastfm/now-playing call on every track start via
onTrackStarted callback in PlayerManager, matching other clients.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
likedTrackIds loads async after views appear, so isLiked was always
false on initial render. Add onChange(of: likedTrackIds) to all track
row types and the player bar to re-sync when the set is populated.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Unified queue model: replace history/queue split with tracks[]+currentIndex
- Connected devices: fix Mac not pausing when another device becomes active
- Fix applyFullState playing wrong track (stale currentTrack reference)
- Fix seek in client mode (use `time` field per web client convention)
- Fix seek UI snapping back with optimistic seek override
- Add play count scrobbling via POST /api/player/history
- Playlists tab auto-loads on switch (no retry button needed)
- Fix share button to copy proper server-based track URL
- Device icon color: primary when active, accent when remote
- Full queue transfer between devices via transfer_state command
- Bump version to 1.2
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>