2.1.0
- refactor(prefs): make cleanup ownership-driven
- refactor(ui): align Shell widget lifecycle with GNOME practices
- refactor(mpris): replace destruction flags with cancellation ownership
- refactor(platform): trust public GNOME API contracts
- refactor(tools): focus checks on release integrity
- refactor: overhaul playback architecture:
- Centralize playback control architecture
- Unify playback action execution
- Add configurable playback controls
- Add relative seek and playback speed support
- Harden MPRIS execution and lifecycle
- Improve playback position tracking
- Stabilize active player selection
- Refine metadata and artwork handling
- Polish UI accessibility and lifecycle
- Consolidate tests, validation and documentation
- refactor: align project structure, ownership, and naming
- feat(popup): animate album art on playback state
- feat(visualizer): add spectrum and classic styles
- fix: make album art cache eviction truly LRU
- fix: recover album art cache after directory removal
- fix(PWA): make Chromium PWA resolution deterministic
- fix(settings): stop implicit writes during initialization
- fix(prefs): reflect popup seek width minimum
- fix: make scrolling text continuous and independent of playback
- fix(shell): restore app selector dismiss
- chore(shell): increase track info scroll cycle gap
- chore(tests): update artwork test to check LRU
- chore: organize project files and arch
- docs: align validation guidance with project behavior
Full Changelog: 2.0...2.1