Repository navigation
Fix the open issues after 0.19.0 - #740
Merged
Merged
Conversation
added 5 commits
October 1, 2026 13:36
rustls 0.23.40 -> 0.23.45 (RUSTSEC-2026-0285) is reached through reqwest at runtime: every download and the updater. plist 1.9 -> 1.10.1 moves quick-xml 0.39.3 -> 0.42.0 (RUSTSEC-2026-0194, -0195), build time only. Lockfile only: no Cargo.toml or uv.lock change, so the in-app update still applies. cargo audit now reports no vulnerabilities, only the existing unmaintained and unsound warnings. Closes #738
The top bar's right-hand end follows the layout suggested in #725: Detect structure sits over the main button, which now reads Extract stems to match the Extract row it acts on, in all ten languages, and the Collapse toggles stack in a column beside them. That end of the bar is about 50px narrower. The Now Playing card no longer leaves the bar below 1460px, which took About this song with it and left no way to open it (#735). It gives way in steps instead, by container query: the artwork and meta line first, then the title, down to the heart and the About button. The grid gives the card a 72px floor, so the Extract chips fold into their overflow button before the card can be squeezed out. Tests: about-reach.spec.mjs opens About this song at 1024, 1280, 1366 and 1600px, which fails on the old layout below 1460, and checks the stacking. favorite-reach.spec.mjs no longer expects the card's heart to be hidden. Closes #725 Closes #735
Favourites lived only in the studio's catalog store, which the phone
cannot reach: it had no heart to press, and its Favorites chip set a
filter nothing read, so it listed every track.
Each job now carries favorite (null until a client says, then true or
false), set by PUT /api/jobs/{id}/favorite with a strict bool. The
studio sends every heart there, adopts the server's value on each sync
and when its window is looked at again, and hands up a heart set before
this change while the server still says null. The phone has a heart on
every row and the chip filters for real.
Tests: test_jobs_favorite.py covers the endpoint (shape, strict body,
404, crafted ids, the record round trip); favorite-sync.spec.mjs covers
both directions and the phone. The e2e helpers stub the writes so no
spec leaves a favourite on the shared backend.
Closes #734
Lyrics were matched to a song in two places: the import's lookup on the
server, and the Lyrics tab's own LRCLIB search in the browser, each
with its own copy of which version is this song by this artist and
which length fits. They were kept equal by hand, and when they drifted
a track could get lyrics at import and none in the tab.
The tab now asks POST /api/jobs/{id}/lyrics/lookup, which runs the
import's lookup, keeps what it finds the way the import does, and
answers as GET .../lyrics then would: 502 when LRCLIB is out of reach,
404 with nothing_known when the track says too little. The band saved
in the artist box goes along, since it lives in the studio's store.
LRCLIB is still only asked when the tab is opened or at import, and a
phone or offline client still shows kept lyrics.
The browser's search, ranking and artist matching are gone from
lyricsLookup.js, and LRCLIB leaves the page's connect-src. sameSong
stays, for lyrics the tab kept before the server held them to the song.
Tests: test_lyrics_api.py covers the endpoint (kept, saved band,
nothing known, another artist, offline, crafted ids); the lyrics e2e
specs answer the lookup with stubLyricsLookup, which keeps lyrics the
way the server does; acceptance E4 answers it as LRCLIB unreachable.
Closes #719
Speed was a fixed 0.75x or 1x. Some fills want 0.75x and some only a nudge, which is what #701 asked for. The slow button now moves a hundredth at a time when scrolled over, or with the up and down arrow keys on it, between 0.50x and 0.99x, and plays at it. Its label is the speed, so the footer keeps its width, 1x stays one press away, and the slow speed is kept between sessions. The tooltip says how, in all ten languages. The 0.75x floor came from WSOLA, whose artefacts made slower speeds hard to follow (#433). Signalsmith Stretch (#729) holds up further down, so the floor is 0.5x. A turn of the wheel is applied once it stops, since each change of rate flushes the tempo stage. Tests: slow-speed.spec.mjs (wheel, arrow keys, both limits, a reload). Closes #701
Merged
thcp
added a commit
that referenced
this pull request
Oct 2, 2026
Release 0.19.1: everything on `next-release` since v0.19.0. - #727: slowed playback without stutter, doubled kicks or echo (Signalsmith Stretch as the tempo stage). - #737: the bugs reported against 0.19.0 (CUDA setup, torch that cannot load, favourites in a narrow window, minor keys, the key label). - #740: the remaining open issues (top bar and Extract stems, the card at every width, favourites on the phone, the lyrics lookup on the server, an adjustable slow speed, Rust advisories). - #741: trivy ignores the two urllib3 CVEs until the lock next moves. - #743: a 0.5x button beside the slow speed. Verified on local Windows NVIDIA builds: 0.19.1.dev0 passed 12 of 12 (#727, #737), and 0.19.1.dev1 passed 18 of 18 automated checks including #740, in an isolated profile. `uv.lock` is unchanged since v0.19.0, so the in-app update works. Closes #722 Closes #728 Closes #729 Closes #723 Closes #724 Closes #726 Closes #730 Closes #731 Closes #732 Closes #733 Closes #736 Closes #701 Closes #738 Closes #725 Closes #735 Closes #734 Closes #719 Closes #742
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The open issues after 0.19.0, apart from the duet (#638) and drum separation (#694, closed as not planned for now).
What changes
Cargo.lockonly: rustls 0.23.45 and quick-xml 0.42 (through plist 1.10.1).cargo auditreports no vulnerabilities.favoriteon each job,PUT /api/jobs/{id}/favorite). The studio syncs both ways; the phone has a heart on each row and a Favorites chip that filters.POST /api/jobs/{id}/lyrics/lookup, which runs the import's own lookup. The browser's LRCLIB search and matching are removed, and LRCLIB leaves the page'sconnect-src.Checked
uv.lockis unchanged, so the in-app update still applies.Closes #738
Closes #725
Closes #735
Closes #734
Closes #719
Closes #701