mirror of
https://github.com/knutwurst/patchdl.git
synced 2026-10-06 09:00:23 +02:00
An interrupted download (cancel excepted) now keeps its partial package on disk instead of deleting it, and records the manifest it belongs to in a sidecar (state.json). On the next start the title is flagged resumable and the UI shows a "Paused — X downloaded" note with a Resume button. Resume refetches the manifest, skips every piece already fully on disk, and re-fetches only the one partially-written piece (piece-granular, no HTTP range needed), appending the rest. The fresh-download path is unchanged. A partial belonging to a different/older manifest is dropped and the download starts clean; a corrupt (failed SHA-256) download is not kept. Survives a reboot: a killed payload runs no cleanup, so the partial and its sidecar persist under /data/patchdl until resumed, completed, or deleted.