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
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Download System Rewrite
New Rust-based download backend — Replaced the Python vid-dl CLI (~150MB) with a native Rust binary (desk-downloader). Smaller, faster, and no Python dependency at runtime.
Rewrite download IPC layer — New desk-downloads.js / desk-downloader.js replacing the old downloads.js / downloader.js with a cleaner subprocess management and progress event architecture.
Bug Fixes
Downloads freezing near completion — Root cause: main window reference was captured as null at registration time, silently dropping all sendProgress IPC calls. Fixed by passing getMainWindow function reference instead.
Stop button not updating UI — stop/kill used 'stopped'/'killed' status values rejected by the DB CHECK constraint. Now maps to 'cancelled' for persistence.
Progress bar stuck at 0% — Added mapping from pct (subprocess field) to progress (UI field) so the bar updates in real time.
Download size fluctuating mid-download — First total_bytes value is now frozen; subsequent progress events no longer overwrite it.
Stray "0" rendering beside speed — Fixed ternary rendering for speed display in DownloadsPage.jsx.
Safety-net polling — Full fetchDownloads() refresh every 3 seconds catches any terminal state missed by live progress events.
UI Enhancements
Download rows now show raw downloaded_bytes (comma-formatted) alongside formatted total_bytes.
formatBytes precision changed from 1 to 2 decimal places.
VidSrc downloads: visible browser window with play-button banner (no auto-clicking).
Quick-download blocked for VidSrc (info message in DownloadModal).
AllManga downloads blocked for non-anime content (info message in DownloadModal).
PlayerSection download button requires video to be played first.
Chores
Removed vid-dl-cli source repo and all prebuilt binaries (Linux + Windows) from tree.
Added apps/desk-vid-dl/ Python package for on-the-fly PyInstaller builds.
Updated README, ARCHITECTURE.md, sources config, and settings UI.