- Implements pagination in getPlaylist to support large playlists (>100 tracks).
- Reworks instance management to support separate api and streaming instance groups.
- Updates instances.json to the new grouped structure.
- Refactors apiSettings for smart incremental speed testing and type-aware caching.
- Parallelizes speed tests using appropriate endpoints (/artist/ for API, /track/ for Streaming).
- Updates Settings UI to display and manage both API and Streaming instance groups.
- Fix: Card heart buttons didn't work because of button nested in anchor. Changed cards to div with data-href.\n- Fix: Home page and Artist page cards didn't have data bound or like state initialized.\n- Feature: Move Playlists to the last position in Library tabs.
Modified setVibrantColor in ui.js to darken bright colors when in light mode and lighten dark colors in dark mode, ensuring text and button readability.
Resolved TypeError where 'this.player' was undefined in UIRenderer, preventing 'isCurrentTrack' check from working correctly. Updated constructor to accept 'player' argument passed from app.js.
- Backfill album release date from tracks if missing in API response.
- Gracefully handle invalid or missing dates in UI rendering.
- Fix potential NaN in download folder naming due to invalid dates.
- Updated `renderAlbumPage` in `js/ui.js` to sort tracks by disc/volume number before track number.
- Updated `renderListWithTracks` to detect multi-disc albums.
- Updated `createTrackItemHTML` to display track numbers as `Disc-Track` (e.g., "1-1") for multi-disc albums when cover art is hidden (album view).