# Changelog All notable changes to the hardened Spooty branch are documented here. This project follows a practical chronological changelog rather than autogenerated dependency noise. --- # Unreleased ## Added ### Spotify OAuth Integration - Added Spotify OAuth login flow - Added `/api/spotify/login` - Added `/api/spotify/callback` - Added `/api/spotify/status` - Added persistent Spotify user access token storage - Added authenticated Spotify playlist retrieval - Added OAuth frontend bootstrap flow ### Large Playlist Support - Fixed Spotify playlist truncation at 100 tracks - Added full Spotify pagination support - Verified support for playlists exceeding 300 tracks - Improved playlist queue handling stability ### Queue Hardening - Added configurable YouTube search pacing - Added configurable YouTube download pacing - Added sequential search queue behavior - Reduced aggressive request bursts toward YouTube - Improved queue logging visibility ### Security - Added token-based frontend access mode - Added external secret handling recommendations - Added isolated Spotify credential storage - Improved Docker credential handling documentation ### Frontend - Added Spotify login integration - Added auth token bootstrap from URL - Improved playlist rendering behavior - Improved large playlist progress tracking ### Docker - Improved hardened Docker runtime flow - Added explicit environment variable examples - Added safer default pacing recommendations - Improved deployment documentation ## Unreleased ### Added - Spotify OAuth login flow - Persistent Spotify user token handling - Large playlist pagination support (>100 tracks) - Deterministic YouTube candidate scoring - Duration-aware YouTube matching - Detailed YouTube candidate debug logging - Improved Docker deployment guidance ### Improved - YouTube pacing and throttling resistance - Cover art embedding resilience - Queue stability during large playlist imports ### Fixed - Spotify playlist truncation at 100 tracks - Incorrect live/acoustic YouTube selections - Playlist retrieval failures on large public playlists --- # 2.4.2 ## Fixed - Fixed Spotify playlist pagination using `data.next` - Fixed incomplete playlist retrieval behavior --- # 2.4.1 ## Fixed - Fixed Docker Node.js version compatibility --- # 2.4.0 ## Added - Added configurable audio quality selection ## Fixed - Fixed special character download issues - Fixed EJS runtime issue --- # 2.3.0 ## Added - Added individual track downloads - Added cover art support --- # 2.2.0 ## Added - Added Spotify API integration - Added YouTube cookie support - Added download timeout handling --- # 2.0.0 ## Added - Introduced queue-based backend architecture --- # 1.0.0 ## Added - Initial release