Release 2.5.2
Summary
- Per-Download Audit Trail Modal — every library history row gets an "audit" button that opens a vertical decision-block view of the full download lifecycle (request → source → match → verification → post-process → final placement). new embedded-tags section reads the file live via mutagen and shows every tag actually on disk.
- Write Artist Image (artist.jpg) — new button on artist detail page. writes
artist.jpgto the artist's folder so navidrome (which has no artist-image API) gets a real artist photo instead of the album-art fallback. plex / jellyfin pick it up too. respects existingartist.jpgfiles. - Discography 50-cap fix —
download discographyno longer truncates prolific artists. bumped the limit from 50 → 200 so deezer / itunes / discogs / hydrabase users see full catalogues. spotify behavior unchanged. - $albumtype template fix for non-spotify sources — discographies downloaded from deezer / tidal / musicbrainz no longer dump every release under
Album/. legacy album-info builder now checksrecord_type/type/primary-typealongsidealbum_typeand normalizes through a shared helper. EPs and singles route to the right folder. - Search source picker default fix — enhanced + global search no longer silently default to spotify when the user's primary metadata source is deezer / itunes / discogs / hydrabase. backend was returning
metadata_sourceas a dict, frontend was reading it as a string, validation guard never fired. - Download Missing Modal: tracklist polish — visual tune-up (column layout untouched). hairline row dividers, accent gradient + edge bar on hover, monospace track numbers / duration, status text picks up colored dot indicators with soft halos, pulses while in-flight.