v0.12.0 #556
temidaradev
announced in
Announcements
v0.12.0
#556
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
This release is about the library itself: local sources become plural and isolated, scanning stops blocking on artwork, and the settings page gets a top-to-bottom revision with real keyboard-navigable dropdowns.
Highlights
Isolated local libraries. You can now create multiple named local libraries, give each its own set of folders, and switch between them from the source switcher exactly like a media server. Under the hood this is a new
Source::LocalLibrary(id)variant whose id carries alocal:namespace so it can safely share the DBsourcecolumn with server ids. The originalmusic_directorystays as the built-in Local source for backwards compatibility, and is now presented alongside the new ones in a single unified Local Libraries settings section with add/switch/delete, name and folder validation (#550).Scans finish first, artwork catches up. The foreground scan no longer decodes cover art at all (lofty parses with
read_cover_art(false)), so a scan is pure metadata. That parsing is now spread across up to four blocking workers (chunked, minimum 100 files per worker, progress reported every 25 files) instead of serialized behind one mutex on the whole library, and merging scanned results into the library is hash-index based rather than a linear search per track, removing the quadratic behavior on large libraries. Covers are then indexed in a background task that opens one representative track per album, so artwork I/O scales with album count instead of track count; resolved covers are written straight to the DB viaupdate_album_cover_if_not_manual, so a cover you picked yourself is never overwritten. Album ids gain the album artist (alb2_<len>_<artist>_<album>), so two same-titled albums by different artists no longer collide, and legacyalb_albums only carry forward covers that were explicitly chosen (#554).Artwork is yours as-is. Local artwork is now served as the original file bytes with the correct MIME type per extension (png, gif, webp, bmp, avif, svg, tiff, ico, jpeg) instead of always being resized to a 400 px JPEG. If you'd rather have it downscaled, a new Optimize Local Artwork toggle turns it back on with a chosen maximum size of 128 / 256 / 512 / 1024 px (JPEG quality raised 75 to 85, cache keyed by size). The separate HQ cache path is gone, as are the old "clear cover cache" and "force rescan photos" buttons, which the background indexer makes unnecessary (#554).
Settings, revised. Sections are collapsible with a chevron, rows are tighter with zebra striping and hover states, and subsection labels group related settings. Every native
<select>is replaced by a customAppSelect: arrow-key navigation, typeahead, scroll-into-view for the active option, and full combobox/listbox ARIA (#551).Fixes
What's Changed
Full Changelog: v0.11.0...v0.12.0
This discussion was created from the release v0.12.0.
All reactions