Repository navigation
Trashing a song mid-extraction stops it, imports stay in the background, and a clear message for read-only portable installs - #752
Merged
Conversation
added 2 commits
October 3, 2026 16:14
…t write its folder (#746) A portable zip extracted under Program Files is not writable without admin. Setup, the CUDA torch swap and the updater all write inside the install, so it failed part way with "failed to write migration flag: Access is denied". At startup, a portable package that cannot write its own folder now shows a native error dialog naming the folder and where to move it, then exits. Elevation is not offered: an elevated window cannot receive drag and drop from Explorer, and every launch would prompt. The writability probe only runs for a portable package, so no other install gets a file written into its root at startup. Closes #746
…r take the studio (#747, #748) #748: deleting a song from the library while it was extracting moved it to the Trash and left the job running, hidden. A stuck one held the queue with no way out, and after a restart it came back as a Paused row. - Trashing a queued or running job now stops it on the server, so the phone gets it too. It settles as the new "stopped" status with its files kept: only emptying the Trash deletes files, the rule finished tracks follow. - Restore brings it back to the library as Stopped. It does not queue it. An Extract button on the row (POST /api/jobs/{id}/extract) runs it again. - A stopped job is saved to registry.json and survives a restart in the Trash. A trashed job interrupted by a restart is stopped, never resumed. - Cancel now reaches the analyze stage: its ffmpeg is registered and it checks for cancel between steps. - A cancel or trash that lost the race to a finishing job no longer leaves its flags set, which made later vocal splits cancel themselves at once. - A cancelled job's folder is removed with the same retry delete_job uses. - On load, a library row still saying Processing asks the server where the job stands. - Queue rows use the library's trash icon. #747: an import with nothing open put its name and "Extracting" on the Now Playing card. Imports now always run in the background, and the first to finish opens by itself only if the studio is still empty and nothing, including a Sync again import, holds it. Closes #747 Closes #748 Closes #750 Closes #751
Merged
thcp
added a commit
that referenced
this pull request
Oct 4, 2026
…nd, and a clear message for read-only portable installs (#752) fix(desktop): stop with a clear message when a portable install cannot write its folder (#746) A portable zip extracted under Program Files is not writable without admin. Setup, the CUDA torch swap and the updater all write inside the install, so it failed part way with "failed to write migration flag: Access is denied". At startup, a portable package that cannot write its own folder now shows a native error dialog naming the folder and where to move it, then exits. Elevation is not offered: an elevated window cannot receive drag and drop from Explorer, and every launch would prompt. The writability probe only runs for a portable package, so no other install gets a file written into its root at startup. Closes #746 fix(queue): trashing a song mid-extraction stops it, and imports never take the studio (#747, #748) #748: deleting a song from the library while it was extracting moved it to the Trash and left the job running, hidden. A stuck one held the queue with no way out, and after a restart it came back as a Paused row. - Trashing a queued or running job now stops it on the server, so the phone gets it too. It settles as the new "stopped" status with its files kept: only emptying the Trash deletes files, the rule finished tracks follow. - Restore brings it back to the library as Stopped. It does not queue it. An Extract button on the row (POST /api/jobs/{id}/extract) runs it again. - A stopped job is saved to registry.json and survives a restart in the Trash. A trashed job interrupted by a restart is stopped, never resumed. - Cancel now reaches the analyze stage: its ffmpeg is registered and it checks for cancel between steps. - A cancel or trash that lost the race to a finishing job no longer leaves its flags set, which made later vocal splits cancel themselves at once. - A cancelled job's folder is removed with the same retry delete_job uses. - On load, a library row still saying Processing asks the server where the job stands. - Queue rows use the library's trash icon. #747: an import with nothing open put its name and "Extracting" on the Now Playing card. Imports now always run in the background, and the first to finish opens by itself only if the studio is still empty and nothing, including a Sync again import, holds it. Closes #747 Closes #748 Closes #750 Closes #751
This was referenced Oct 4, 2026
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.
Fixes for the three reports from @wastedbits after 0.19.1, plus two smaller bugs found along the way.
What works now
Deleting a song while it extracts (#748)
Now Playing card during an import (#747)
Portable install in Program Files (#746)
C:\StemDeck. It no longer fails part way with "Access is denied".Found along the way
Not in this PR
#749 (stem folders left after deleting songs) is waiting on the reporter. Files are removed when the Trash is emptied, so that one may be expected behaviour rather than a bug.
Testing
cargo fmt,cargo clippy --tests -D warningsandcargo test(131 passed) on Windows, and clippy on Linux through WSL.Closes #746
Closes #747
Closes #748
Closes #750
Closes #751