Commit Graph

13 Commits

Author SHA1 Message Date
Kevin Allen
d78eaed15b Refine note on native app development plans
Removed redundant text in the Native Apps section.
2026-01-06 20:16:25 -06:00
Your Name
cc8d0f6969 Release v1.3.0: Multi-source downloads, audio analyzer resilience, mobile improvements
Major Features:
- Multi-source download system (Soulseek/Lidarr with fallback)
- Configurable enrichment speed control (1-5x)
- Mobile touch drag support for seek sliders
- iOS PWA media controls (Control Center, Lock Screen)
- Artist name alias resolution via Last.fm
- Circuit breaker pattern for audio analysis

Critical Fixes:
- Audio analyzer stability (non-ASCII, BrokenProcessPool, OOM)
- Discovery system race conditions and import failures
- Radio decade categorization using originalYear
- LastFM API response normalization
- Mood bucket infinite loop prevention

Security:
- Bull Board admin authentication
- Lidarr webhook signature verification
- JWT token expiration and refresh
- Encryption key validation on startup

Closes #2, #6, #9, #13, #21, #26, #31, #34, #35, #37, #40, #43
v1.3.0
2026-01-06 20:07:33 -06:00
Kevin Allen
8fe151a0d1 Merge pull request #24 from Kuglikrug/patch-1
added description for NUM_WORKERS as Environment Variable
2025-12-28 15:55:17 -06:00
Kevin Allen
26d73f63a3 Merge pull request #29 from danthi123/fix/issue-12-pagination-cap
fix: remove 500/1000 item cap on library pagination
2025-12-28 14:49:33 -06:00
Daniel Thiberge
e3fe3c6f48 fix: address Copilot review feedback on pagination PR
- Add MAX_LIMIT=10000 constant to prevent DoS attacks while supporting
  large libraries through pagination
- Apply MAX_LIMIT to /library/artists, /library/albums, /library/tracks
- Add trackCount field to artists endpoint (fixes "Most Tracks" sort)
- Add /library/tracks/shuffle endpoint for server-side shuffle
- Update frontend to use server-side shuffle instead of fetching 10k tracks

The shuffle endpoint uses Fisher-Yates algorithm and samples random tracks
for large libraries to avoid loading the entire database into memory.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 14:23:53 -05:00
Kevin Allen
8910ce1407 Merge pull request #15 from danthi123/fix/issue-12-pagination-cap
Remove Math.min(..., 1000) hard cap on /library/artists endpoint
Remove Math.min(..., 1000) hard cap on /library/albums endpoint
Add offset parameter and total count to /library/tracks endpoint
Rewrite useLibraryData hook for true server-side pagination
Update library page to fetch pages on demand instead of client-side slicing
Disable pagination buttons during loading to prevent race conditions
This allows libraries of any size to be fully browsable. Previously, users with 10,000+ songs were capped at seeing only 500 items.

Fixes #12
2025-12-27 11:44:34 -06:00
Kuglikrug
8dc0d3ade3 added description for NUM_WORKERS as Environment Variable 2025-12-27 15:27:47 +01:00
Daniel Thiberge
567f38e1ea fix: remove 500/1000 item cap on library pagination (Issue #12)
- Remove Math.min(..., 1000) hard cap on /library/artists endpoint
- Remove Math.min(..., 1000) hard cap on /library/albums endpoint
- Add offset parameter and total count to /library/tracks endpoint
- Rewrite useLibraryData hook for true server-side pagination
- Update library page to fetch pages on demand instead of client-side slicing
- Disable pagination buttons during loading to prevent race conditions

This allows libraries of any size to be fully browsable. Previously,
users with 10,000+ songs were capped at seeing only 500 items.

Fixes #12

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 02:44:12 -05:00
Kevin O'Neill
9e59f92fa7 v1.0.2: Mood mix optimizations and media player improvements
- Fixed player seek flicker on podcasts (30s skip buttons)
- Added dual-layer seek lock mechanism to prevent stale time updates
- Optimized cached podcast seeking (direct seek before reload fallback)
- Large skips now execute immediately for responsive feel
- Mood mix performance optimizations
v1.0.2
2025-12-26 13:14:32 -06:00
Kevin O'Neill
f8b464feec v1.0.2: Mood mix optimizations and media player improvements
- Fixed player seek flicker on podcasts (30s skip buttons)
- Added dual-layer seek lock mechanism to prevent stale time updates
- Optimized cached podcast seeking (direct seek before reload fallback)
- Large skips now execute immediately for responsive feel
- Mood mix performance optimizations
2025-12-26 13:06:17 -06:00
Kevin O'Neill
d8c608cf70 docs: update README 2025-12-26 10:19:23 -06:00
Kevin O'Neill
27b03e4b8f fix: suppress Essentia log spam in audio analyzer v1.0.1 2025-12-25 19:29:12 -06:00
Kevin O'Neill
021aec7a63 Initial release v1.0.0 v1.0.0 2025-12-25 18:58:06 -06:00