Skip to content

v2.3.1

Choose a tag to compare

@aquantumofdonuts aquantumofdonuts released this 04 Jul 03:23
9dfae8e

Mixarr v2.3.1

Release Date: 2026-07-03
Type: Feature patch

Summary

Discovery breadth restoration: raises limits across the entire discovery pipeline, adds a lenient MBID fallback for unresolved artist names, improves feed visibility for large libraries, and fixes the Spotify artist search regression that was silently returning no results.

What's New

Discovery breadth controls

  • Library page limit raised 100 → 250 in the discover UI
  • Similar-artist request limit raised 50 → 100 results per call
  • Seed artist schema max raised 200 → 500 accepted names per discovery request

Lenient MBID fallback

When strict MusicBrainz name matching fails, a secondary lenient pass now accepts the top result when its confidence score is ≥ 95. This recovers MBID resolution for single-token stage names, transliterations, and romanised artist names that have no lexical overlap with the canonical MusicBrainz spelling. Resolved mappings are logged at info level for auditing.

Feed visibility

  • Aggregation cap raised 5 000 → 15 000 rows, reducing the number of valid pending candidates that were invisible to users with large subscription histories
  • GET /api/feed now includes truncation.totalBeforeAggregationCap and truncation.aggregationTruncated in the response — the UI can use these to warn when candidates are being hidden by the cap
  • A warn log line is emitted whenever the cap is reached

Discovery funnel metrics

Each subscription run now emits a structured completion log with per-run counters:

fetched / deduped / already_in_library / no_mbid_found / queued / added

These enable before/after comparisons to measure the impact of breadth changes.

Configurable review-queue dedup

findOrCreateReviewItem now accepts a dedupStrategy option:

  • default — existing behaviour: MBID > SpotifyId > normalized name
  • relaxed — skips normalized-name collapse to avoid incorrectly merging distinct artists that share a common token (e.g. artists whose names normalize to the same string)

Bug Fixes

Spotify artist search returning no results (#62)

Spotify's /v1/search API now rejects limit=25 with HTTP 400. The SpotifyService.searchArtists method was passing the raw limit directly, causing all Spotify-backed artist searches in the discover UI to silently fail and show "No results found". Fixed by clamping the limit to Math.min(limit, 10). Provider errors in multiSourceSearch now log at warn instead of being swallowed silently.

Upgrade Notes

No database migrations or configuration changes required. Standard Docker image update.

Comparison

Full diff: v2.2.0...v2.3.1