What's Changed in 0.15.7
- chore: version++
- docs: remove completed critical, high, and medium priority bugs from todo.md
- fix: disable Navidrome protection on error to prevent inconsistent state with empty lists
- fix: return None instead of duration=0 for invalid metadata to prevent lyrics lookup failures
- fix: gracefully fallback to default cookie mode instead of crashing on invalid value
- fix: use proper path validation to prevent path traversal vulnerability
- fix: eliminate TOCTOU race condition in lyrics file deletion
- fix: simplify download logic and properly track failed downloads when audio_path is None
- fix: add defensive check for empty results list in mood playlist fallback parser
- fix: handle KeyError in corrupted state files gracefully
- docs: reference todo.md in CLAUDE.md and document recent bug fixes
- docs: add comprehensive bug tracking to todo.md with remaining fixes
- fix: implement automatic cleanup of old completed/failed jobs to prevent memory leak
- fix: add country code validation to explore charts endpoint
- fix: validate cookie file format with strict UTF-8 decoding and Netscape format check
- fix: add exception handling in _parse_duration() for invalid time formats
- fix: use Path.replace() instead of rename() for cross-platform atomic file writes
- fix: protect QueueManager.jobs dict with asyncio.Lock for thread-safe concurrent access
- docs: Adjust readme
- chore: version++
- fix: Improve yt-dlp arguments
- docs: Add license info
- docs: Add disclaimer
- docs: Update screenshot
- docs: Add install examples
Full Changelog: https://github.com///compare/v0.15.6...v0.15.7