Commit Graph
543 Commits
Author SHA1 Message Date
SucukdeluxeandClaude Opus 4.6 8cc1f788ad Release v1.5.62
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.62
2026-03-03 18:03:50 +01:00
SucukdeluxeandClaude Opus 4.6 0888e16aec Fix startPackages: scheduler now respects runPackageIds filter
findNextQueuedItem(), hasQueuedItems(), hasDelayedQueuedItems() and
countQueuedItems() now skip packages not in runPackageIds when the set
is non-empty. This ensures "Ausgewählte Downloads starten" only
processes selected packages instead of all enabled ones.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 18:03:05 +01:00
Sucukdeluxe cab550a13c Release v1.5.61 v1.5.61 2026-03-03 17:54:15 +01:00
SucukdeluxeandClaude Opus 4.6 2ef3983049 Revert to v1.5.49 base + fix "Ausgewählte Downloads starten"
- Restore all source files from v1.5.49 (proven stable on both servers)
- Add startPackages() IPC method that starts only specified packages
- Fix context menu "Ausgewählte Downloads starten" to use startPackages()
  instead of start() which was starting ALL enabled packages

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 17:53:39 +01:00
Sucukdeluxe ca4392fa8b Release v1.5.60 v1.5.60 2026-03-03 17:33:33 +01:00
Sucukdeluxe 8fad61e329 Restore multipart RAR open strategy for JVM extractor
Bring back callback-first RAR multipart opening with explicit RAR5/RAR fallback while keeping 7z.001 on VolumedArchiveInStream to improve 7z-JBinding compatibility on split RAR sets.
2026-03-03 17:32:22 +01:00
Sucukdeluxe 02bd4a61fb Release v1.5.59 v1.5.59 2026-03-03 16:56:06 +01:00
Sucukdeluxe 30ac5bf9db Harden hybrid extract readiness for partial archives
Require near-complete file size checks in Item-Recovery and hybrid ready-set detection so partially downloaded RAR parts are not marked completed and extracted prematurely.
2026-03-03 16:52:16 +01:00
Sucukdeluxe 87e0a986e6 Release v1.5.58 v1.5.58 2026-03-03 16:37:14 +01:00
SucukdeluxeandClaude Opus 4.6 353cef7dbd Add JVM hybrid-extract retry and clean up Java extractor
- Add automatic retry with 3s delay when JVM extractor fails with
  "codecs" or "can't be opened" error during hybrid-extract mode
  (handles transient Windows file locks after download completion)
- Log archive file size before JVM extraction in hybrid mode
- Remove unused ArchiveFormat import, RAR_MULTIPART_RE/RAR_OLDSPLIT_RE
  patterns, and hasOldStyleRarSplits() method from Java extractor
- Keep simple openSevenZipArchive with currentVolumeName tracking

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 16:35:43 +01:00
SucukdeluxeandClaude Opus 4.6 f9b0bbe676 v1.5.57
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.57
2026-03-03 16:15:49 +01:00
SucukdeluxeandClaude Opus 4.6 93d54c8f84 Fix multi-part RAR: get first stream via callback, track current volume name
Two bugs in SevenZipVolumeCallback caused multi-part RAR extraction to fail:

1. getProperty(NAME) always returned firstFileName instead of tracking the
   last opened volume name. 7z-JBinding needs this to compute subsequent
   volume filenames.

2. The first IInStream was created separately instead of through the
   callback's getStream() method, so the volume name tracker was not
   properly initialized.

Verified with real multi-part RAR5 test archives (3 parts, WinRAR 7.01).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 16:15:44 +01:00
SucukdeluxeandClaude Opus 4.6 26bf675a41 v1.5.56
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.56
2026-03-03 16:03:06 +01:00
SucukdeluxeandClaude Opus 4.6 35e84e652e Fix multi-part RAR: use explicit ArchiveFormat instead of VolumedArchiveInStream
VolumedArchiveInStream only works for .7z.001 splits - it rejects RAR
filenames. For multi-part RAR (.partN.rar), use RandomAccessFileInStream
with explicit ArchiveFormat.RAR5/RAR format specification. Auto-detection
with null format can fail for multi-volume RAR archives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 16:03:01 +01:00
SucukdeluxeandClaude Opus 4.6 462fc0397e v1.5.55
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.55
2026-03-03 15:54:17 +01:00
SucukdeluxeandClaude Opus 4.6 d4bf574370 Fix multi-part RAR extraction: use VolumedArchiveInStream for .partN.rar
The JVM extractor used RandomAccessFileInStream for multi-part RAR archives,
which only provides a single file stream. 7z-JBinding requires
VolumedArchiveInStream to access additional volume parts via callback.

Added RAR_MULTIPART_RE and RAR_OLDSPLIT_RE patterns to detect multi-volume
RAR archives and route them through VolumedArchiveInStream, fixing
"Archive file can't be opened with any of the registered codecs" errors.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 15:54:09 +01:00
SucukdeluxeandClaude Opus 4.6 d3ec000da5 v1.5.54
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.54
2026-03-03 14:59:08 +01:00
SucukdeluxeandClaude Opus 4.6 d7d256f716 Fix hybrid-extract: check per-archive prefix instead of whole package
The previous fix blocked ALL multi-part extractions when any item in the
package was pending. Now checks only parts of the SAME archive (by prefix
match on fileName/targetPath), so E01 can extract while E06 downloads.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 14:59:03 +01:00
SucukdeluxeandClaude Opus 4.6 804fbe2bdc v1.5.53
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.53
2026-03-03 14:52:39 +01:00
SucukdeluxeandClaude Opus 4.6 1fde0a9951 Fix hybrid-extract multi-part archive + extractor CRC handling
- findReadyArchiveSets: for .part1.rar, require ALL package items
  to be terminal before allowing extraction (prevents premature
  extraction when later parts have no targetPath/fileName yet)
- JVM extractor: remove CRCERROR from isPasswordFailure() — only
  DATAERROR indicates wrong password. CRCERROR on archives where
  7z-JBinding falsely reports encrypted no longer triggers password
  cycling.
- looksLikeWrongPassword: remove CRC text matching, keep only
  explicit "data error" for encrypted archives.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 14:52:00 +01:00
Sucukdeluxe 0cf5ebe5e9 Release v1.5.52 v1.5.52 2026-03-03 14:37:59 +01:00
SucukdeluxeandClaude Opus 4.6 0b7c658c8f Add Account Manager + fix Hybrid-Extract premature extraction
- Account Manager: table UI with add/remove/check for all 4 providers
  (Real-Debrid, Mega-Debrid, BestDebrid, AllDebrid)
- Backend: checkRealDebridAccount, checkAllDebridAccount, checkBestDebridAccount
- Hybrid-Extract fix: check item.fileName for queued items without targetPath,
  disable disk-fallback for multi-part archives, extend disk-fallback to catch
  active downloads by fileName match (prevents CRC errors on incomplete files)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 14:36:13 +01:00
SucukdeluxeandClaude Opus 4.6 e6ec1ed755 Add Mega-Debrid account info check (web scraping)
Scrapes the Mega-Debrid profile page to display username, premium status,
remaining days, and loyalty points. New "Account prüfen" button in Settings > Accounts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.51
2026-03-03 14:06:19 +01:00
SucukdeluxeandClaude Opus 4.6 ac479bb023 Add backup encryption (AES-256-GCM) and directory existence check
- Encrypt sensitive credentials (tokens, passwords) in backup exports
  using AES-256-GCM with PBKDF2 key derivation from OS username
- Backup format v2 with backwards-compatible v1 import
- Show dialog to create non-existent directories when changing
  outputDir, extractDir, or mkvLibraryDir settings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.50
2026-03-03 13:47:56 +01:00
SucukdeluxeandClaude Opus 4.6 9ac557b0a8 Fix app icon: use rcedit afterPack hook to embed custom icon in EXE
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.49
2026-03-03 03:17:47 +01:00
SucukdeluxeandClaude Opus 4.6 4585db0281 Remove CHANGELOG.md from repo, link to Codeberg Releases instead
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 03:07:25 +01:00
SucukdeluxeandClaude Opus 4.6 0d86356f96 Remove internal files from repo: .github/workflows, docs/plans, verify_remote.mjs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 03:06:43 +01:00
SucukdeluxeandClaude Opus 4.6 140ee488b7 Update README with new features: JVM extraction, auto-rename, progress bars, history, nested extraction
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 03:03:31 +01:00
SucukdeluxeandClaude Opus 4.6 486379183b Remove .claude folder from repo and add to .gitignore
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-03 03:02:11 +01:00
SucukdeluxeandClaude Opus 4.6 19a588a997 Show "Jetzt entpacken" context menu when any item is completed, re-enable paused packages
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.48
2026-03-03 02:52:19 +01:00
SucukdeluxeandClaude Opus 4.6 fa30e738d9 Fix UNSUPPORTEDMETHOD: init SevenZipJBinding native libs, pass password to extractSlow
Build and Release / build (push) Has been cancelled
Root cause: SevenZip.initSevenZipFromPlatformJAR() was never called, so
native compression codecs (RAR5, LZMA2, etc.) were not loaded. Archives
could be opened (header parsing is pure Java) but all extractSlow() calls
returned UNSUPPORTEDMETHOD because no native decoder was available.

- Add ensureSevenZipInitialized() with lazy init before extraction
- Pass password to extractSlow(outStream, password) for RAR5 compatibility
- Add UNSUPPORTEDMETHOD -> legacy fallback in extractor.ts as safety net

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.47
2026-03-03 02:35:19 +01:00
SucukdeluxeandClaude Opus 4.6 eefb536cb3 Fix path traversal false positive: skip subst drive mapping for JVM backend
Build and Release / build (push) Has been cancelled
Java's getCanonicalFile() resolves subst drives inconsistently,
causing secureResolve() to falsely block valid filenames. JVM handles
long paths natively so subst is only needed for legacy UnRAR/7z.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.46
2026-03-03 02:25:10 +01:00
SucukdeluxeandClaude Opus 4.6 02b136dac7 Fix JVM extractor: asarUnpack for class/jar files, add unpacked path candidate, default to jvm mode
Build and Release / build (push) Has been cancelled
The JVM sidecar class files were packed inside app.asar where Java
cannot access them. asarUnpack extracts them to app.asar.unpacked/.
Default backend changed from auto to jvm (no legacy fallback).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.45
2026-03-03 02:19:26 +01:00
SucukdeluxeandClaude Opus 4.6 b712282f62 Log which extraction backend was used (7zjbinding/zip4j/legacy)
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.44
2026-03-03 02:12:48 +01:00
SucukdeluxeandClaude Opus 4.6 de369f3bcd Replace extraction backend with SevenZipJBinding + Zip4j JVM sidecar
Build and Release / build (push) Has been cancelled
- New JVM sidecar (resources/extractor-jvm/) using SevenZipJBinding for
  RAR/7z/TAR and Zip4j for ZIP multipart, matching JDownloader 2 stack
- Auto/JVM/Legacy backend modes via RD_EXTRACT_BACKEND env variable
- Fallback to legacy UnRAR/7z when JVM runtime unavailable
- Fix isJvmRuntimeMissingError false positives on valid extraction errors
- Cache JVM layout resolution to avoid repeated filesystem checks
- Route nested ZIP extraction through JVM backend consistently

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.43
2026-03-03 02:08:42 +01:00
SucukdeluxeandClaude Opus 4.6 3ee3af03cf Match JDownloader 2 extraction behavior: normal I/O, -mt2 hybrid
Build and Release / build (push) Has been cancelled
- Remove setWindowsBackgroundIO entirely (JD2 uses normal I/O priority)
- Keep only CPU priority IDLE (os.setPriority)
- Hybrid threads fixed at -mt2 (matches JD2's ~16 MB/s controlled throughput)
- Final extraction uses full thread count (unchanged)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.42
2026-03-03 01:14:47 +01:00
SucukdeluxeandClaude Opus 4.6 9a646d516b Fix extraction speed: I/O priority only in hybrid mode, more threads
Build and Release / build (push) Has been cancelled
- setWindowsBackgroundIO (Very Low I/O) now only applied in hybrid mode,
  not for all extractions (was causing massive slowdown)
- Hybrid threads changed from -mt1 to half CPU count (e.g. -mt4 on 8-core)
- Move retry count (R9, R22 etc.) from status text to tooltip only

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.41
2026-03-03 01:08:40 +01:00
Sucukdeluxe 311fb00430 Release v1.5.40
Build and Release / build (push) Has been cancelled
v1.5.40
2026-03-03 01:01:46 +01:00
SucukdeluxeandClaude Opus 4.6 4008e20278 Reset stale status texts on session load and stop
Build and Release / build (push) Has been cancelled
- normalizeSessionStatuses: reset all queued items to "Wartet" instead of
  only checking a few specific patterns (missed Retry, Unrestrict-Fehler etc.)
- Reset completed items with stale extraction status to "Fertig (size)"
- stop(): reset all non-finished items to queued/"Wartet" and packages to queued

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.39
2026-03-03 00:58:28 +01:00
SucukdeluxeandClaude Opus 4.6 375b9885ee Disk space pre-check, nested extraction, lower I/O priority for hybrid extraction
Build and Release / build (push) Has been cancelled
- Add disk space check before extraction (aborts if insufficient space)
- Add single-level nested archive extraction (archives inside archives)
- Blacklist .iso/.img/.bin/.dmg from nested extraction
- Set real Windows I/O priority (Very Low) on UnRAR via NtSetInformationProcess
- Reduce UnRAR threads to -mt1 during hybrid extraction
- Fix double episode renaming (s01e01e02 pattern)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.38
2026-03-03 00:54:10 +01:00
Sucukdeluxe ce01512537 Release v1.5.37
Build and Release / build (push) Has been cancelled
v1.5.37
2026-03-03 00:08:06 +01:00
Sucukdeluxe 7dc12aca0c Fix disk-backpressure stalls and improve episode-token parsing 2026-03-03 00:07:12 +01:00
Sucukdeluxe a6c65acfcb Release v1.5.36
Build and Release / build (push) Has been cancelled
v1.5.36
2026-03-02 23:50:31 +01:00
Sucukdeluxe 19342647e5 Fix download freeze spikes and unrestrict slot overshoot handling 2026-03-02 23:47:54 +01:00
SucukdeluxeandClaude Opus 4.6 7fe7d93e83 Fix dark text on package header progress bars (CSS specificity override)
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.35
2026-03-02 23:35:22 +01:00
SucukdeluxeandClaude Opus 4.6 19769ea0bb Fix combined progress display during extraction, fix pause showing Warte auf Daten
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.34
2026-03-02 23:32:30 +01:00
SucukdeluxeandClaude Opus 4.6 c9bace1e5a Fix dual-layer text: use clip-path inset instead of wrapper for pixel-perfect alignment
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.33
2026-03-02 23:29:28 +01:00
SucukdeluxeandClaude Opus 4.6 2d1b6de51a Fix dual-layer text alignment: use clip wrapper for proper text centering
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.32
2026-03-02 23:25:59 +01:00
SucukdeluxeandClaude Opus 4.6 c07c0fbdf7 Dual-layer text on progress bars: dark text on bar, light text on track (JDownloader style)
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.31
2026-03-02 23:21:21 +01:00
SucukdeluxeandClaude Opus 4.6 578d050926 Merge Größe/Geladen into single progress bar column (JDownloader 2 style)
Build and Release / build (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
v1.5.30
2026-03-02 23:16:45 +01:00