Release v2026.05.16.0 — recommendations working end-to-end + cover-art uncap #50

Merged
bvandeusen merged 262 commits from dev into main 2026-05-16 18:58:55 -04:00
bvandeusen commented 2026-05-16 18:58:48 -04:00 (Migrated from git.fabledsword.com)

Accumulated batch since v2026.05.15.1 (8 commits). Device-verified on the dev stack; CI green.

Recommendations now actually work

  • Route 1 (e2432ca): scanner extracts the MusicBrainz recording MBID into tracks.mbid (was always NULL) + a one-shot backfill — unblocks the entire ListenBrainz similarity pipeline.
  • LB Labs-API fix (4fca0e6): similarity client was calling api.listenbrainz.org/1/explore/... (a website route → 404 for every request) with an invalid algorithm. Now hits labs.api.listenbrainz.org/similar-{recordings,artists}/json with a verified-valid algorithm. Confirmed live: track_similarity/artist_similarity/artist_similarity_unmatched populate (Discover/suggestions view included).
  • Worker throughput (ca1bc5a): similarity batch 5→25/tick; track-MBID backfill uncapped (converges in one scan).
  • For-You / mix tuning (2e7b81f): tiered seed (30d → all-time → liked) so For-You never silently vanishes; deeper candidate fill to reach ~100 without LB data; Rediscover & On-this-day young-library fallbacks.

Cover art (#388)

  • 005965d: removed the global 500-album cover-art backfill cap. Local sources (sidecar/embedded) run at disk speed; remote providers self-throttle per provider. Dropped the config knob, env var, and the dead coverBackfillCap param threaded through server.New/api.Mount. Admin bulk-refetch now unbounded.

Also in this batch (already merged to dev earlier, first release since)

System playlists v2 (#411: registry refactor, generic endpoints, 5 discovery mixes, stop-force-refresh / shuffle-on-play / per-tile refresh, "Refreshed…" subtitle) and the offline cache rework (#427: reachability marker, two-bucket cache, settings UI, offline gating + Shuffle-all).

Migrations

0028 (discovery-mix CHECK constraints — shipped in v2026.05.15.1) and 0029 (tracks.mbid unique→non-unique partial index, zero-risk: column was 100% NULL). Both apply on startup.

Test plan

  • CI green on dev
  • Operator device-check (offline two-bucket cache incl. eviction, system playlists, For-You)
  • LB pipeline verified live (similarity tables populating)
  • Post-deploy: confirm release-tag APK build is fast (validates #432 runner image)

🤖 Generated with Claude Code

Accumulated batch since v2026.05.15.1 (8 commits). Device-verified on the dev stack; CI green. ## Recommendations now actually work - **Route 1** (`e2432ca`): scanner extracts the MusicBrainz *recording* MBID into `tracks.mbid` (was always NULL) + a one-shot backfill — unblocks the entire ListenBrainz similarity pipeline. - **LB Labs-API fix** (`4fca0e6`): similarity client was calling `api.listenbrainz.org/1/explore/...` (a website route → 404 for every request) with an invalid algorithm. Now hits `labs.api.listenbrainz.org/similar-{recordings,artists}/json` with a verified-valid algorithm. Confirmed live: `track_similarity`/`artist_similarity`/`artist_similarity_unmatched` populate (Discover/suggestions view included). - **Worker throughput** (`ca1bc5a`): similarity batch 5→25/tick; track-MBID backfill uncapped (converges in one scan). - **For-You / mix tuning** (`2e7b81f`): tiered seed (30d → all-time → liked) so For-You never silently vanishes; deeper candidate fill to reach ~100 without LB data; Rediscover & On-this-day young-library fallbacks. ## Cover art (#388) - **`005965d`**: removed the global 500-album cover-art backfill cap. Local sources (sidecar/embedded) run at disk speed; remote providers self-throttle per provider. Dropped the config knob, env var, and the dead `coverBackfillCap` param threaded through `server.New`/`api.Mount`. Admin bulk-refetch now unbounded. ## Also in this batch (already merged to dev earlier, first release since) System playlists v2 (#411: registry refactor, generic endpoints, 5 discovery mixes, stop-force-refresh / shuffle-on-play / per-tile refresh, "Refreshed…" subtitle) and the offline cache rework (#427: reachability marker, two-bucket cache, settings UI, offline gating + Shuffle-all). ## Migrations `0028` (discovery-mix CHECK constraints — shipped in v2026.05.15.1) and `0029` (tracks.mbid unique→non-unique partial index, zero-risk: column was 100% NULL). Both apply on startup. ## Test plan - [x] CI green on dev - [x] Operator device-check (offline two-bucket cache incl. eviction, system playlists, For-You) - [x] LB pipeline verified live (similarity tables populating) - [ ] Post-deploy: confirm release-tag APK build is fast (validates #432 runner image) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bvandeusen/minstrel#50