Releases
v0.9.0
Compare
Sorry, something went wrong.
No results found
0.9.0 (2026-08-13)
⚠ BREAKING CHANGES
deps: the frontend now requires the Inertia v3 client, Vite 8, and @sveltejs/vite-plugin-svelte 7.
deps: requires Node.js 24 or above.
Features
listen-later: show link fetch progress (11a17c2 ), closes #45
ui: mobile-first library and touch targets (7b08741 )
Bug Fixes
a11y: announce a sort change (9936eb7 ), closes #36 #56
a11y: announce the state the duplicate dialog resolves to (7e0ce6a ), closes #36 #56
a11y: bring the palette to WCAG AA in light and dark (b7aad49 ), closes #36
a11y: give a result option its artists (3b77328 ), closes #36 #56
a11y: head each row with its title (71285bb ), closes #36 #56
a11y: head every column with its own name (6cae89a ), closes #36 #56
a11y: hold the columns menu open on a tick (2041c0a ), closes #36 #56
a11y: honour prefers-reduced-motion on every animated surface (061af45 )
a11y: keep the row badges from reading as pictures (31261e1 ), closes #36 #56
a11y: kill the tap delay on interactive controls (cd358d4 ), closes #36
a11y: let a menu paint before it takes focus (990086a ), closes #36 #56
a11y: let the platform draw the selects (f653ea0 ), closes #36 #56
a11y: let the results listbox own its options (60cc2d4 ), closes #36 #56
a11y: let the select triggers say what they hold (ba5d2d6 ), closes #36 #56
a11y: name a result option by what it prints (45ce718 ), closes #36 #56
a11y: name every row menu after its item (21e07a3 ), closes #36 #56
a11y: name the dialog a reader lands on (60f8719 ), closes #36 #56
a11y: name the item each menu action acts on (d5d9049 ), closes #36 #56
a11y: name what the delete dialog will remove (e4a3d18 ), closes #36 #56
a11y: put the artists in every list toast (e10d114 ), closes #36 #56
a11y: say "artists" where a duplicate needs the whole set (de51506 ), closes #36
a11y: say when an item is marked listened (25e7a4e ), closes #36 #56
a11y: say which key reaches the search results (58fba3a ), closes #36 #56
a11y: say which row a control belongs to (547192e ), closes #36 #56
ci: declare a build decision for core-js (b529988 )
search: pulse a skeleton block for the cover while results load (82e89fd )
types: check Svelte frontend (f3e13dc ), closes #52
ui: correct mobile list controls (e121908 )
ui: correct the default mobile sort label (51c4500 )
ui: hide the column chooser on mobile (04ebb5b )
ui: make library page mobile-first (3a1480e )
ui: refine mobile cards and list controls (9001b91 )
ui: widen max container width to screen-2xl (091eaf3 )
Performance Improvements
link: stop searching for cover art the platform already supplied (1634366 )
search: cache MusicBrainz search results in memory (29a3386 )
search: derive cover art urls instead of fetching them per result (f8ee406 )
ui: render added items before external links resolve (482f09a )
Miscellaneous Chores
Build System
deps: adopt Inertia v3 (917a2e3 )
deps: upgrade to AdonisJS v7 (e5d64e8 )
You can’t perform that action at this time.