15 Commits
Author SHA1 Message Date
Sucukdeluxe 808c2a432c release: harden archive recovery and lifecycle for v2.0.63
Corroborate CRC failures across extraction backends, retry only implicated multipart volumes, and distinguish corruption, missing volumes, I/O failures, and wrong passwords across native, Zip4j, and JBinding paths.

Make disk retries generation-safe, preserve selective run scopes and cooldowns, protect shared output files during cleanup, validate manual extraction batches atomically, and restore interrupted integrity work safely.

Prioritize active package operations in the UI, strengthen extraction IPC validation, compile the JVM sidecar before release builds, and verify shipped JVM resources byte-for-byte in every Windows artifact.
2026-08-23 03:56:24 +02:00
Sucukdeluxe 522f53d787 fix(extraction): close final scope integration gaps
Ignore late JVM output events after abort or timeout until the real child close reconciles opened files. Restrict deferred archive cleanup to package-owned item paths so shared download roots retain foreign archives while package-local empty directory cleanup still works. Update deferred ownership and output-scope fixtures to the coordinator contract.
2026-08-22 17:29:03 +02:00
Sucukdeluxe afa7da11da fix: harden package post-processing provenance
Version package-owned output counts so unversioned global legacy values cannot remain authoritative after session load.

Capture extracted outputs through same-volume package staging, preserve overwrite, skip, and rename conflicts, retain partial abort output deterministically, and eliminate per-package full scans of shared roots while keeping extraction work parallel.

Carry normalized archive path provenance, prune explicitly deleted package generations without dropping package_done run evidence, and transfer run-owned post-process slots without releasing foreign waiters or exceeding maxParallelExtract.
2026-08-22 13:02:27 +02:00
Sucukdeluxe 36cb60fee9 fix: harden archive metrics and result retention
Derive archive operation identity from item-path provenance so equal basenames in different directories remain distinct, and keep unknown part counts at zero when no item provenance exists.

Prune finalized results only after their generation is no longer current or referenced, and add 80-package digest and individual delivery coverage to prove deterministic paging without event loss.
2026-08-22 12:31:44 +02:00
Sucukdeluxe c634b70396 fix: preserve postprocessing run ownership across stops
Bind main, deferred, and hybrid postprocessing controllers to the run context that owns their package generation. Abort only the stopped run and unowned work so a later run cannot cancel deferred completion for an earlier run.

Treat stop and shutdown aborts as lifecycle cancellation instead of cleanup failure and cover the real deferred handoff through package, run, history, and cleanup results.
2026-08-22 12:22:21 +02:00
Sucukdeluxe ae2691319d fix: serialize every download start through lifecycle
Route full, package, and item starts through a shared typed start request lifecycle. Preserve targeted scopes while a stop drains, publish pending-start state consistently, and dispatch the accepted request only after the old work has settled.

Add package and item regression coverage and update the notification lifecycle assertion to the pending/drain contract.
2026-08-22 12:20:33 +02:00
Sucukdeluxe 3ec9085444 fix(notifications): harden final delivery lifecycle
Enforce one shared shutdown deadline while persisting late digests during blocked sends. Start stall cooldowns from serialized delivery acknowledgements, atomically rewrite cleaned legacy outboxes, retain run summaries for 24 hours, and prevent duplicate history or synthetic post-process start times.
2026-08-22 08:58:36 +02:00
Sucukdeluxe 2142ae8bf0 feat(notifications): alert on remaining volume 2026-08-22 06:42:13 +02:00
Sucukdeluxe f4c4fb2fac fix(notifications): isolate package result ownership
Prevent active and completed run contexts from being duplicated into standalone tracking during later starts. Scope start-triggered recovery reactivation to enabled, non-excluded packages so foreign stopped generations remain suppressed while explicit retries keep working.
2026-08-22 06:22:44 +02:00
Sucukdeluxe 26ebd931b7 fix(notifications): preserve stopped package suppression 2026-08-22 06:06:27 +02:00
Sucukdeluxe 96966c3eca fix(notifications): harden active run lifecycle tracking 2026-08-22 05:51:08 +02:00
Sucukdeluxe 514d1b1d86 fix(notifications): stabilize active and postprocess-only runs 2026-08-22 05:38:58 +02:00
Sucukdeluxe de97dd4bea fix(notifications): preserve run and package result identity 2026-08-22 05:27:04 +02:00
Sucukdeluxe 03da04b629 feat(notifications): finalize package and run results 2026-08-22 05:08:48 +02:00
Sucukdeluxe dc367633f5 Initial public release v1.7.233 2026-08-01 22:29:53 +02:00