mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-12 11:31:08 +00:00
An install to an SD card wrote every byte twice to the card (chunk cache under <installDir>/.chunks, then the assembled file); at 26 MB/s the second write starved the fetchers and the download averaged 11 MB/s. nativeStart gains chunkCacheDir, right after installDir: "" keeps today's <installDir>/.chunks, any other directory is where the chunks go. The plan line logs cache_dir and whether it is scratch. The fetch core is untouched. The lifecycle the coordinator asked for - a chunk deleted as soon as the last file that uses it is assembled and verified, the directory removed after a successful run, everything left for resume on cancel or failure - can only be decided by whoever assembles, and today that is the Kotlin loop. So the engine gains nativeAssemble: the same loop (part order, same wording on a missing chunk) with the file's SHA-1 computed as it is written, and with a scratch cache the GUID reference count across the pending files that frees each chunk early. With "" nothing is deleted early and the cache goes at the end, as the Kotlin loop's deleteDir. One Listener and one nativeCancel/nativeRelease pair serve both runs. JNI.md carries the new signatures and semantics. CI also runs the crate's host unit tests, informational for now.