0.1.2-beta2 (released)
Tag: v0.1.2-beta2
Title: 0.1.2-beta2
Added
- Search page: a magnifier button in the top island (next to the theme toggle) opens a dedicated search tab. The field morphs from a "Search" label; matching against title/artist/album is case-, spacing- and Cyrillic-insensitive (fold-key matching).
- Search results are full track rows (as on the Tracks tab: number, title, tech columns, duration) with hover +/list buttons, accent now-playing streak, scroll with the shared rail, and double-click plays the results as a queue starting from the picked track.
- AppImage packaging target: built in the Debian container (glibc 2.36 floor); bundles the binary, desktop file, icon and libasound.
- Volume diagnostics:
NEMESIS_VOLUME_LOG=1traces every volume application — UI requests, worker commands, pactl/WASAPI writes, fades, watchdog restarts.
Fixed
- Grid scroll no longer lags or stutters during wheel and inertia.
- End-of-scroll jitter removed — smooth stop instead of tiny bounce.
- In-app volume no longer resets to a stale value: the app no longer mirrors volume into MPRIS nor accepts desktop SetVolume events, so PipeWire stream restore cannot overwrite the slider — and the volume no longer drops mid-track when the system recreates the audio stream.
- Album/artist/folder/playlist pages no longer stutter when scrolling long lists (2000+ tracks): per-frame O(n) work (facts, row offsets, now-playing lookup, plus-states) is cached or made allocation-free.
- The invisible underlay grid is no longer rebuilt or repainted every frame while a page is open.
- Removing the last track from the queue now plays the same smooth leave animation as the Stop button (the page and cover fade out instead of snapping to the empty state).
- Playback no longer gets stuck: if sound stops, the player recovers by itself and moves on to the next track.
- Tracks keep switching automatically even when the window is minimized.
- When you switch tracks, the player immediately shows the new one — no leftovers from the previous track on screen.
- Deleting a playlist now goes smoothly, without the list jumping.
- Saving a large queue as a playlist no longer freezes the app.
- The queue page scrolls just as easily with thousands of tracks as with a short one.
- Windows: grid rebuild animation no longer freezes while resizing by the window edge (winit#3272 — the event loop does not resume during the modal resize loop, so
RedrawRequestedticks stop; a fallback tick timer keeps the morph running until it settles). Minimize/restore no longer replays the grid rearrangement: degenerate minimized sizes are ignored and the animation restarts only on a real viewport change. - Windows build fixed: the WASAPI output thread was left on the old 8-argument signature.
Changed
- Scroll wheel speed increased by 30% for all grids, queues, and album pages.
- “Save queue as playlist” on the queue page now looks and animates exactly like the “New playlist” button in the playlist picker island (accent label, morph into the name field, same confirm/cancel chips), sized to the queue panel.
- Many reliability improvements under the hood: the app starts faster, handles its music database and covers more carefully, and stays stable in situations that previously could cause glitches or a hang.