You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
True pause/cancel semantics for downloads – Pausing a download now triggers real backend cancellation instead of UI-only state changes, and resume only requeues work that was genuinely canceled.
Partial-file cleanup and duplicate churn – Downloads now write to an in-progress temp file and only finalize to the target filename on successful completion; temp/partial files are cleaned up on failure or cancellation.
Backend request lock contention – Search and metadata command handlers no longer hold the shared client mutex across awaited network calls, reducing unnecessary request serialization and latency spikes.
Deezer URL validation hardening – URL parsing now validates scheme/host/path shape explicitly, and frontend URL handling relies on backend canonical validation messages.
Tray listener lifecycle leak – Tray manager now keeps and disposes all store subscription unsubscribers during destroy, preventing duplicate updates after re-initialization.
Out-of-order search result races – Search UI now uses a request-token guard so stale responses cannot overwrite newer query results.