• v1.6.46 e1f9b4b6d3

    v1.6.46 Stable

    Administrator released this 2026-03-05 04:24:22 +01:00 | 491 commits to main since this release

    v1.6.46 — Instant Package Transition & Additional Fixes

    Highlights

    Instant package extraction transitions — Previously, there was a 10–15 second pause between finishing one package's extraction and starting the next. The post-process slot is now released immediately after the main extraction completes. All slow post-extraction work (nested extraction, auto-rename, archive cleanup, link/sample artifact removal, empty directory cleanup, MKV collection) runs in the background so the next package starts unpacking without any delay.

    Extraction Pipeline

    • Post-process slot is released immediately after main extraction, eliminating idle gaps between packages
    • Nested extraction (archives found inside extracted output) now runs in background deferred handler
    • Archive source cleanup, link artifact removal, sample artifact removal, and empty directory tree removal all deferred to background
    • Resume state clearing happens in deferred handler after successful extraction
    • Hybrid extraction path: auto-rename changed from blocking await to fire-and-forget for faster slot release

    UI Fixes

    • Fix CSS class mismatch for danger buttons in history tab
    • Update dialog changelog is now collapsible to prevent long changelogs from pushing the install button off-screen
    • Modal card gets max-height and overflow-y auto to stay within viewport

    Bug Fixes

    • Add missing .catch() handlers to IPC calls: start(), extractNow(), setPackagePriority(), updateSettings(columnOrder), openLog(), openSessionLog(), removeHistoryEntry(), clearHistory()
    • Fix setPackagePriority type safety: parameter changed from string to PackagePriority in preload and app-controller
    • Add DDownload to valid primary and fallback provider lists in storage validation

    Internal

    • Export cleanupArchives, hasAnyFilesRecursive, removeEmptyDirectoryTree from extractor module
    • Import removeDownloadLinkArtifacts, removeSampleArtifacts in download-manager for deferred cleanup pipeline
    Downloads
  • v1.6.45 9ddc7d31bb

    v1.6.45 Stable

    Administrator released this 2026-03-05 04:12:47 +01:00 | 493 commits to main since this release

    Comprehensive bugfix release addressing ~70 issues across the entire codebase.

    Security & Stability (Critical)

    • Fix TLS certificate bypass race condition: replaced save/restore pattern with reference-counted acquire/release to prevent concurrent download interference
    • Bind debug server to 127.0.0.1 instead of 0.0.0.0 to prevent LAN exposure
    • Add 180-second overall timeout to MegaWebFallback to prevent indefinite hangs
    • Stream update installer to disk instead of buffering entire file in RAM
    • Add path traversal protection and symlink rejection in JVM extractor
    • Sanitize Windows special characters in extracted filenames

    DDownload Provider

    • Cache DdownloadClient instances on DebridService with credential-based invalidation to preserve session cookies
    • Add ddownload provider to normalizeSessionStatuses provider check
    • Include ddownloadLogin/ddownloadPassword in backup sensitive keys list
    • Add ddownload.com and ddl.to to Content Security Policy connect-src

    Error Handling & Resilience

    • Add .catch() to all fire-and-forget IPC calls in renderer (togglePause, startPackages, startItems, togglePackage, resetPackage, resetItems, skipItems, clearHistory, removeHistoryEntry, clipboard operations)
    • Wrap app.whenReady() chain with .catch() to handle startup failures gracefully
    • Wrap clipboard.readText() in try/catch to handle Wayland/permission errors
    • Wrap session log directory creation in try/catch to prevent crash on permission errors
    • Add AbortSignal.timeout(30000) to all container.ts fetch calls (DLC decrypt, dcrypt.it upload/paste)
    • Add actionBusy guard to backup import/export to prevent concurrent operations

    UI Fixes

    • Fix toast notification z-index to appear above all overlays
    • Fix emptySnapshot() missing ddownloadLogin/ddownloadPassword fields
    • Add CSP connect-src entries for git.24-music.de, ddownload.com, ddl.to

    Code Quality

    • Fix fs variable shadowing in download-manager.ts (fs -> fullSt)
    • Fix tsconfig.json include path (vite.config.ts -> vite.config.mts)
    • Fix storage.ts line ending normalization to handle bare CR
    • Delete obsolete _upload_release.mjs (replaced by release_gitea.mjs)

    Installer

    • Change PrivilegesRequired from admin to lowest (no longer requires elevation)
    • Remove ignoreversion flag from file installation
    • Fix output filename to use spaces instead of hyphens

    Scripts

    • release_gitea.mjs: add dry-run safety, streaming uploads, version collision handling, credential timeout
    • provider_smoke_check.mjs: fix cookie parsing with getSetCookie(), add login verification
    • mega_web_generate_download_test.mjs: fix cookie parsing, add login check
    • debrid_service_smoke.ts: add .catch() and try/finally for dispose
    • afterPack.cjs: add null check for productFilename, wrap rcedit in try/catch

    Tests

    • Fix extractor-jvm.test.ts: use describe.skipIf instead of silent return
    • Fix extractor.test.ts: use it.skipIf, add afterEach cleanup for statfs/env mocks
    • Fix session-log.test.ts: add shutdownSessionLog in afterEach, increase timing tolerance
    • Fix mega-web-fallback.test.ts: increase abort timeout from 30ms to 200ms
    • Fix debrid.test.ts: increase abort timeout from 25ms to 200ms
    • Fix auto-rename.test.ts: add positive assertions to all test cases
    • Fix self-check.ts: add missing await to manager2.start()

    Java Extractor (JBindExtractorMain.java)

    • Fix resource leaks: close InputStream, RandomAccessFile, and volume handles in finally blocks
    • Remove path traversal vulnerability in resolveVolumeFile
    • Add symlink rejection before extraction
    • Precompile regex pattern for performance
    • Fix safeSize() to return 0 for empty files

    Additional fixes (post-release)

    • Fix setPackagePriority type safety: use PackagePriority type instead of string/any in preload and app-controller
    • Add .catch() to remaining uncaught IPC calls: start(), extractNow(), setPackagePriority(), updateSettings(columnOrder), openLog(), openSessionLog()

    Additional fixes (post-release update 2)

    • Add ddownload to VALID_PRIMARY_PROVIDERS and VALID_FALLBACK_PROVIDERS (was missing, preventing DDownload from being set as primary or fallback provider)

    Additional fixes (post-release update 3)

    • Fix btn-danger CSS class mismatch: history tab danger buttons now get correct red styling (.btn.danger instead of .btn-danger)

    Additional fixes (post-release update 4)

    • Make update changelog collapsible: long changelogs no longer block the install button, changelog is in a collapsed details element
    • Modal dialog is now scrollable with max-height constraint
    Downloads
  • v1.6.44 a3c2680fec

    v1.6.44 Stable

    Administrator released this 2026-03-05 03:13:08 +01:00 | 499 commits to main since this release

    Improvements

    • Show transitional "Naechstes Archiv..." label between archive extractions, eliminating the dead gap where no status was visible
    • Compact changelog in update dialog: only top-level items shown, sub-items stripped (from v1.6.43)
    Downloads
  • v1.6.43 12dade0240

    v1.6.43 Stable

    Administrator released this 2026-03-05 03:02:41 +01:00 | 500 commits to main since this release

    Improvements

    • Compact changelog in update dialog: only top-level items are shown, sub-items and long descriptions are stripped for a clean display
    • Detailed post-processing status labels with live extraction progress (from v1.6.41/v1.6.42):
      • Entpacken vorbereiten / Archive scannen / Speicherplatz pruefen phases
      • Live extraction percentage and archive count
      • Password cracking progress
      • Renaming / Aufraeumen / MKV collection phases
    • DDownload provider label in download status (from v1.6.40)
    • DDownload SSL certificate fix for storage servers (from v1.6.38)
    • DDownload auto-routing before debrid chain (from v1.6.37)
    Downloads
  • v1.6.42 2a528a126c

    v1.6.42 Stable

    Administrator released this 2026-03-05 02:57:23 +01:00 | 501 commits to main since this release

    Improvements

    • Detailed post-processing status labels: The package status now shows exactly what is happening at every phase, eliminating "dead" periods where no activity was visible:
      • [10/10 - Done] - Entpacken vorbereiten... � initial preparation
      • [10/10 - Done] - Archive scannen... � discovering archive files
      • [10/10 - Done] - Speicherplatz pr�fen... � disk space verification
      • [10/10 - Done] - Entpacken 45% (3/6) � live extraction progress
      • [10/10 - Done] - Passwort knacken: 60% � password testing
      • [10/10 - Done] - Renaming... � auto-rename phase
      • [10/10 - Done] - Aufr�umen... � archive cleanup
      • [10/10 - Done] - Verschiebe MKVs... � MKV library collection
    • Dash separator in status: Status format changed from [10/10] Entpacken to [10/10 - Done] - Entpacken 45% (3/6) for better readability
    Downloads
  • v1.6.41 8839080069

    v1.6.41 Stable

    Administrator released this 2026-03-05 02:46:10 +01:00 | 502 commits to main since this release

    Improvements

    • Live extraction progress in package status: The package-level status label now shows detailed, real-time extraction progress instead of a static "Entpacken..." label:
      • Overall percentage and archive count: Entpacken 45% (3/6)
      • Password cracking progress: Passwort knacken: 60%
      • Works for both hybrid (during download) and full extraction modes
      • Previously there were phases where the package showed no activity detail, making it unclear what was happening
    Downloads
  • v1.6.40 8f66d75eb3

    v1.6.40 Stable

    Administrator released this 2026-03-05 02:42:19 +01:00 | 503 commits to main since this release

    Fixes

    • Show "DDownload" instead of "Debrid" in download status: Status column now correctly shows "Download l�uft (DDownload)" instead of the generic "Download l�uft (Debrid)" for DDownload downloads.
    • Strip markdown from update changelog (from v1.6.39): Changelog in update dialog now displays as clean plain text.
    Downloads
  • v1.6.39 56ee681aec

    v1.6.39 Stable

    Administrator released this 2026-03-05 02:37:18 +01:00 | 504 commits to main since this release

    Fixes

    • Strip markdown from update changelog dialog: The confirm dialog is plain text and cannot render markdown. Headings (##), bold (**), italic (*), and code backticks are now stripped so the changelog displays cleanly.
    Downloads
  • v1.6.38 6db03f05a9

    v1.6.38 Stable

    Administrator released this 2026-03-05 02:32:59 +01:00 | 505 commits to main since this release

    Fixes

    • Fix DDownload downloads failing with connection errors: DDownload storage servers (dstorage.org) use SSL certificates that fail Node.js TLS verification, causing all downloads to fail with "Verbindungsfehler". Added skipTlsVerify flag so TLS certificate verification is temporarily disabled only for DDownload download connections.
    Downloads
  • v1.6.37 068da94e2a

    v1.6.37 Stable

    Administrator released this 2026-03-05 02:25:34 +01:00 | 506 commits to main since this release

    Fixes

    • DDownload auto-routing: DDownload URLs (ddownload.com / ddl.to) are now automatically routed to the DDownload provider before trying any debrid services. Previously, debrid providers like Mega-Debrid would attempt (and fail) to handle these URLs first.
    • Remove DDownload from provider dropdowns: DDownload is a direct file hoster, not a debrid service. It no longer appears in the primary/secondary/tertiary provider selection since it only handles its own URLs and is used automatically when configured.
    • Fix blank screen on upgrade (from v1.6.36): Guard against undefined ddownloadLogin/ddownloadPassword in renderer when upgrading from versions without DDownload support.
    Downloads