Commit Graph

202 Commits

Author SHA1 Message Date
Sucukdeluxe
d8a53dcea6 Fix hybrid extraction skipping archives when item status stuck
Some checks are pending
Build and Release / build (push) Waiting to run
Add disk-fallback to findReadyArchiveSets: when all archive parts
physically exist on disk with non-zero size and none are actively
downloading/validating, consider the archive ready for extraction.
This fixes episodes being skipped when a download item's status
was not updated to "completed" despite the file being fully written.

Also improve debug server: raise log limit to 10000 lines,
add grep filter, add /session endpoint for raw session data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 10:36:08 +01:00
Sucukdeluxe
9f589439a1 Add debug HTTP server for remote monitoring
Some checks are pending
Build and Release / build (push) Waiting to run
Starts an HTTP server on port 9868 (configurable via debug_port.txt)
when debug_token.txt exists in the app runtime directory. Provides
/health, /log, /status, and /items endpoints for live monitoring.
Token-based auth required.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:58:54 +01:00
Sucukdeluxe
5bb984d410 Fix validating-stuck watchdog aborting before unrestrict timeout
Some checks are pending
Build and Release / build (push) Waiting to run
The validating-stuck timeout (45s) was shorter than the unrestrict
timeout (60s), causing items to be endlessly aborted and retried
before the debrid API call could complete. Now uses unrestrict
timeout + 15s buffer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:51:17 +01:00
Sucukdeluxe
1825e8ba04 ️ perf: improve extraction status, stuck detection, and retry logic
Some checks are pending
Build and Release / build (push) Waiting to run
- Extraction status: "Entpackt - Done" / "Entpacken - Ausstehend"
- Per-item extraction progress (no cross-contamination)
- Validating-stuck watchdog: abort items stuck >45s in "Link wird umgewandelt"
- Global stall timeout reduced 90s → 60s, unrestrict timeout 120s → 60s
- Unrestrict retry: longer backoff (5/10/15s), reset partial downloads
- Stall retry: reset partial downloads for fresh link
- Mega-Web generate: max 30 polls (was 60), 45s overall timeout
- Mega-Web session refresh: 10min (was 20min)
- Comprehensive logging on all retry/failure paths

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:38:46 +01:00
Sucukdeluxe
0e55c28142 feat: replace default Electron icon with custom app icon
Some checks are pending
Build and Release / build (push) Waiting to run
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 22:18:34 +01:00
Sucukdeluxe
e485cf734b Async FS optimizations, exponential backoff, cleanup dedup and release v1.4.72
Some checks are pending
Build and Release / build (push) Waiting to run
- Convert all sync FS ops (existsSync, readdirSync, statSync, writeFileSync,
  rmSync, renameSync) to async equivalents across download-manager, extractor,
  cleanup, storage, and logger to prevent UI freezes
- Replace linear retry delays with exponential backoff + jitter to prevent
  retry storms with many parallel downloads
- Deduplicate resolveArchiveItems into single shared function
- Replace Array.shift() O(N) in bandwidth chart with slice-based trimming
- Make logger rotation async in the async flush path

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:53:07 +01:00
Sucukdeluxe
520ef91d2d Fix duplicate extraction and release v1.4.71
Some checks are pending
Build and Release / build (push) Waiting to run
- Don't clear extraction resume state during hybrid mode (skipPostCleanup)
- Mark ALL completed items as "Entpackt" after successful hybrid extraction
  to prevent full extraction from re-extracting already-extracted archives

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 21:09:53 +01:00
Sucukdeluxe
674cf101da Fix extraction status cross-contamination with filename pattern matching, release v1.4.70
Previous fix used pathKey-based maps which failed due to path resolution
mismatches on Windows. New approach matches items to archives using
filename regex patterns directly (e.g. prefix.part\d+.rar), which is
robust regardless of path casing/resolution.

Also marks items as "Entpackt" immediately when their archive finishes
instead of waiting for all archives to complete, so completed episodes
show correct status while later episodes are still extracting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 20:57:56 +01:00
Sucukdeluxe
4371e53b86 Fix retry recovery, extraction status cross-contamination and UI freezes, release v1.4.69
- togglePause: clear retry delays and abort stuck tasks on unpause so
  Pause/Start actually recovers stuck downloads
- Fix retry display showing Number.MAX_SAFE_INTEGER instead of "inf"
  for unrestrict and generic error retries
- Fix extraction status applied to ALL items in package instead of only
  the items belonging to the currently extracting archive
- Make persistNow always async and item-completion stat async to reduce
  UI freezes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 20:42:03 +01:00
Sucukdeluxe
bf2b685e83 Add session backup restore and release v1.4.68
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 20:13:16 +01:00
Sucukdeluxe
e7f0b1d1fd Fix start-conflict skip behavior and release v1.4.67
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 20:03:58 +01:00
Sucukdeluxe
647679f581 Fix Mega-Web unrestrict hangs and release v1.4.66
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 19:06:34 +01:00
Sucukdeluxe
237bf6731d Move Statistiken tab to the right of Einstellungen
Some checks are pending
Build and Release / build (push) Waiting to run
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 18:11:41 +01:00
Sucukdeluxe
25af89d7a0 Release v1.4.64 to test new buffer download method
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 17:23:52 +01:00
Sucukdeluxe
e384199c6e Replace streaming download with chunked buffer download to fix corruption
Some checks are pending
Build and Release / build (push) Waiting to run
- Replace Readable.fromWeb() + pipeline with ReadableStream.getReader() loop
- Collect chunks in memory, verify size, then write to disk in one shot
- Add Accept-Encoding: identity to prevent content encoding issues
- Eliminates stream conversion bugs that caused file corruption on some servers

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:20:02 +01:00
Sucukdeluxe
98425764d3 Release v1.4.62 to test updater fix
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 17:15:08 +01:00
Sucukdeluxe
8f186ad894 Fix updater SHA512 mismatch by patching latest.yml filenames and adding integrity retry
Some checks are pending
Build and Release / build (push) Waiting to run
- Patch latest.yml during release to use actual filenames (spaces) instead of electron-builder's dashed names
- Add download size validation before SHA512 check to catch incomplete downloads
- Retry download on integrity mismatch (up to 3 passes) with API refresh
- Re-resolve digest from latest.yml on each retry pass

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 17:04:12 +01:00
Sucukdeluxe
8b153bdabe Release v1.4.60 for update-path testing
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 16:51:16 +01:00
Sucukdeluxe
401ad3b9f9 Release v1.4.58 to replace stale updater assets
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 16:44:26 +01:00
Sucukdeluxe
5e1e62d5b6 Release v1.4.57 for updater validation
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 16:31:09 +01:00
Sucukdeluxe
afc70e6a10 Release v1.4.56 with updater 404 fallback fixes
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 16:19:39 +01:00
Sucukdeluxe
20c32d39c8 Harden updater candidate fallback on Codeberg 404s 2026-03-01 16:19:35 +01:00
Sucukdeluxe
73cd2ea6b9 Release v1.4.55 for updater path testing
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 16:06:53 +01:00
Sucukdeluxe
c5c862b516 Release v1.4.54 with bandwidth statistics tab
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 15:57:28 +01:00
Sucukdeluxe
a0cdac87e8 Add bandwidth statistics tab with live chart
- Add new Statistics tab between Downloads and Settings
- Implement real-time bandwidth chart using Canvas (60s history)
- Add session overview with 8 stats cards (speed, downloaded, files, packages, etc.)
- Add provider statistics with progress bars
- Add getSessionStats IPC endpoint
- Support dark/light theme in chart rendering
2026-03-01 15:56:57 +01:00
Sucukdeluxe
f5d7ee4d1a Release v1.4.53 with updater verification fallback
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 15:51:16 +01:00
Sucukdeluxe
43950014b2 Retry updater candidates after hash mismatch 2026-03-01 15:51:13 +01:00
Sucukdeluxe
ec45983810 Release v1.4.51 with MKV post-cleanup and updater fixes
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 05:04:31 +01:00
Sucukdeluxe
7795208332 Fix MKV collection cleanup and updater digest verification 2026-03-01 05:01:11 +01:00
Sucukdeluxe
b0dc7b80ab Release v1.4.50 with infinite retry default
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 04:32:27 +01:00
Sucukdeluxe
ab9b3e87b1 Set default auto-retry limit to infinite 2026-03-01 04:31:04 +01:00
Sucukdeluxe
116135289c Release v1.4.49 with retry-limit and extract-folder cleanup updates
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 04:27:42 +01:00
Sucukdeluxe
2bddd5b3b2 Apply configurable retry limit and clean empty extract dirs more aggressively 2026-03-01 04:26:33 +01:00
Sucukdeluxe
5f2eb907b6 Release v1.4.48 with configurable retry limit setting
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 04:19:40 +01:00
Sucukdeluxe
3f17cc8cb4 Add configurable auto-retry limit with optional infinite retries 2026-03-01 04:18:41 +01:00
Sucukdeluxe
33e2e126f1 Release v1.4.47 with stuck-download watchdog improvements
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 04:08:16 +01:00
Sucukdeluxe
467d4bbc58 Add watchdogs for stuck unrestrict and low-throughput downloads 2026-03-01 04:07:23 +01:00
Sucukdeluxe
e1e7f63f50 Release v1.4.46 for updater verification
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 04:01:29 +01:00
Sucukdeluxe
18fdbcba18 Release v1.4.45 with updater integrity hardening
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 03:58:15 +01:00
Sucukdeluxe
4bcb069ec7 Harden updater integrity checks with latest.yml SHA512 fallback 2026-03-01 03:57:23 +01:00
Sucukdeluxe
bfbaee8e5c Release v1.4.44 with extraction smoothness and rename fixes
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 03:49:11 +01:00
Sucukdeluxe
282c1ebf1d Reduce extract lag and improve long-path auto-rename stability 2026-03-01 03:47:18 +01:00
Sucukdeluxe
6e50841387 Release v1.4.43 with update progress and collector metrics
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 03:34:28 +01:00
Sucukdeluxe
508977e70b Add update install progress feedback and collector metrics line 2026-03-01 03:33:18 +01:00
Sucukdeluxe
cb1e4bb0c1 Release v1.4.42 with flat MKV collection support
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 03:24:56 +01:00
Sucukdeluxe
809aec69c2 Add optional flat MKV library collection per package 2026-03-01 03:23:26 +01:00
Sucukdeluxe
71aa9204f4 Add one-command Codeberg release workflow 2026-03-01 02:54:13 +01:00
Sucukdeluxe
65cf4c217f Release v1.4.41 for updater validation on Codeberg
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 02:47:53 +01:00
Sucukdeluxe
2d3a1df21d Release v1.4.40 with Codeberg updater migration
Some checks are pending
Build and Release / build (push) Waiting to run
2026-03-01 02:42:06 +01:00
Sucukdeluxe
43bc95b7fc Switch updater and docs from GitHub to Codeberg 2026-03-01 02:40:11 +01:00