Commit Graph
156 Commits
Author SHA1 Message Date
Sucukdeluxe c1e1095231 Stabilize the 100k history performance contract
Verify that warmed searches reuse cached entry text and retain a broad regression guard without relying on a flaky single-frame wall-clock threshold under parallel test load.
2026-08-26 20:38:43 +02:00
Sucukdeluxe 2ea494cd5c Prepare v2.0.74 sidepanel reliability release
Restore and persist the package-based link collector with progressive metadata, bounded high-volume updates, safe hydration, visible selection, and complete localization.

Harden download controls, snapshot ordering, history pagination, statistics recovery, settings saves, backup imports, notification persistence, and Windows storage races with regression coverage.
2026-08-26 20:35:06 +02:00
Sucukdeluxe bdcf9e3754 Persist collector state and stabilize download controls
Persist collector packages and disclosure state through validated atomic AppData storage with backup recovery and shutdown synchronization. Align download sidebar metrics with the hidden-extracted presentation scope and keep Start available through temporary Real-Debrid cooldowns while preserving hard account blocks.
2026-08-26 17:24:07 +02:00
Sucukdeluxe 5644ba25da Collapse newly imported collector packages
Project disclosure state through stable link URLs so new or moved import content starts collapsed, duplicate-only imports preserve manual state, and enrichment-driven package ID changes retain the existing disclosure state.
2026-08-26 16:50:40 +02:00
Sucukdeluxe 1fe48d9ff8 Revert "Separate collector package and file columns"
This reverts commit 65e3b5b2d0.
2026-08-26 16:37:26 +02:00
Sucukdeluxe 65e3b5b2d0 Separate collector package and file columns
Keep package names in the Name column and render file counts or individual filenames in a dedicated File column. Rebalance responsive table tracks and preserve accessible package context for virtualized file rows.
2026-08-26 16:32:49 +02:00
Sucukdeluxe eed8d1e970 Improve collector metadata progress and alignment
Stream completed metadata checks into the collector while preserving generation-based stale-result protection. Derive row statuses from verified availability, move analysis feedback into the sidebar, center table values under their headers, and keep the header synchronized during horizontal scrolling.
2026-08-26 16:05:09 +02:00
Sucukdeluxe 0ba87c37ec Widen the speed value pill for decimal rates
Use a fixed ten-character value module with compact seven-pixel padding so 300.5 MB/s has balanced breathing room without affecting the graph position.
2026-08-26 15:42:31 +02:00
Sucukdeluxe 6116e212db Fit the speed value pill to decimal peak rates
Tighten the fixed speed label module to nine character units with seven-pixel padding while preserving enough room for values such as 300.5 MB/s without moving the graph.
2026-08-26 15:40:57 +02:00
Sucukdeluxe dcb088feec Tighten the speed value module
Reduce the dedicated speed pill to ten character units with smaller horizontal padding while keeping its width fixed across changing values.
2026-08-26 15:27:49 +02:00
Sucukdeluxe 98c688fc4c Split speed graph and value into separate modules
Render the 150-pixel sparkline and fixed-width speed label as independent bordered pills so changing digit counts cannot move or resize the graph.
2026-08-26 15:24:59 +02:00
Sucukdeluxe 2bd20b12b4 Keep speed graph position stable across values
Reserve a fixed twelve-character label column so one-, two-, and three-digit speed values cannot resize the header control or shift the 150-pixel sparkline.
2026-08-26 15:22:00 +02:00
Sucukdeluxe 16037b264f Extend the speed graph to 150 pixels
Reallocate another ten pixels from the zero-speed label minimum to the sparkline while keeping the header control footprint unchanged.
2026-08-26 15:12:18 +02:00
Sucukdeluxe a4010d8984 Lengthen the header speed graph
Extend the sparkline to 140 pixels and reclaim the same width from the zero-speed label area so the header control keeps its existing overall footprint.
2026-08-26 15:10:48 +02:00
Sucukdeluxe a087e11b52 Extend the header speed sparkline
Use twelve pixels of unused zero-speed label spacing for a longer graph while preserving the overall header control width and room for wider speed values.
2026-08-26 15:07:54 +02:00
Sucukdeluxe 5931c8de75 Use green primary action in link collector
Match the Add Links action to the established green confirmation style with black text and a consistent success-color hover state.
2026-08-26 15:00:21 +02:00
Sucukdeluxe 3ceadd55b1 Virtualize collector disclosure transitions
Render only the visible collector package window, pin a bounded transition cohort and the focused package, and preserve smooth reversible 300 ms disclosure animations under reduced-motion Windows sessions when app animations are enabled. Add logical Tab navigation across unmounted controls plus complete ARIA row counts and indices, while removing collapsing file controls from focus and accessibility order immediately.
2026-08-26 14:56:40 +02:00
Sucukdeluxe aea0839b08 Stabilize collector scrolling for large package sets
Reserve each offscreen collector package with its exact expanded or collapsed block height so content-visibility cannot collapse flex items to zero and rebuild the scroll geometry while moving through the list. Add a regression test for the rendered intrinsic block-size contract.
2026-08-26 14:15:43 +02:00
Sucukdeluxe da4c2fb069 Prevent collector snapshot rerender stalls
Memoize the collector content across unrelated app snapshots and release collapsed child rows from the DOM after their closing animation. Draw the idle speed sparkline as a pixel-aligned one-physical-pixel stroke so its thickness remains uniform across display scales.
2026-08-26 14:09:01 +02:00
Sucukdeluxe 14525fa4c3 Restore package-based link collector without blocking DLC drops
Reintroduce expandable collector packages, background metadata enrichment, filters, selection, and controlled queue transfer. Keep DLC files dropped outside the collector on the direct addContainers path without settings persistence or metadata waits. Protect collector state with stable URL identities, non-degrading metadata merges, and per-URL generations so stale enrichment responses cannot overwrite newer data or resurrect removed links.
2026-08-26 13:52:49 +02:00
Sucukdeluxe 77236f2f08 fix(accounts): stabilize extreme toggle bursts 2026-08-25 06:05:05 +02:00
Sucukdeluxe ffc0f918ac fix(accounts): isolate checkbox double clicks 2026-08-25 05:58:15 +02:00
Sucukdeluxe e195ddbbb9 fix(accounts): serialize rapid toggle intents 2026-08-25 05:55:50 +02:00
Sucukdeluxe ee66f1b3d9 feat(downloads): inherit package selection visually 2026-08-25 05:29:54 +02:00
Sucukdeluxe afcc1fe782 fix(downloads): stabilize remaining metric updates 2026-08-25 05:22:42 +02:00
Sucukdeluxe 9d3d627401 feat(settings): label provider order with account modes 2026-08-25 05:16:20 +02:00
Sucukdeluxe bd2808a763 feat(settings): discard unsaved changes 2026-08-25 04:53:53 +02:00
Sucukdeluxe 5a04a62945 style(settings): emphasize the save action
Give the settings save button a dedicated success-green background with black text and a matching lightened hover state while retaining focus and disabled behavior. Add a renderer regression test for the exact scoped class and color contract.
2026-08-25 04:23:59 +02:00
Sucukdeluxe 967eab00ae feat(ui): refine download controls and package motion
Move the global package disclosure action into a responsive right-aligned toolbar group and disable it for empty queues. Replace the decorative package title with a compact neutral filter group, coordinate disclosure opacity with height transitions, and make contextual help follow combined pointer and keyboard focus state.
2026-08-24 20:59:50 +02:00
Sucukdeluxe e8046f3fa3 feat(history): complete package lifecycle telemetry
Persist separate download, extraction, remux, post-processing, and total durations together with accurate file, byte, archive, part, output, and phase failure results. Keep download item counts independent from extraction and remux outcomes, distinguish partial and cancelled packages, and expose additive failure counters and fixed categories in history and Discord notifications. Track archive operations across parallel work, aborts, restarts, nested multipart sets, and skipped split files while deriving generation outputs from privacy-safe signatures and merging overlapping extraction intervals.
2026-08-24 20:59:44 +02:00
Sucukdeluxe 7fe438ba5d fix(downloads): resume Deepbrid open-ended ranges safely
Accept Deepbrid's open-ended 206 Content-Range response when the total is numeric, derive the missing end byte safely, and prefer byte-exact HTTP totals over rounded provider metadata. Preserve complete archive files on standard HTTP 416 responses when provider metadata is slightly smaller. Add end-to-end resume regressions that separate the final eight bytes and prove no retry, truncation, deletion, or second request occurs.
2026-08-24 08:26:45 +02:00
Sucukdeluxe 1b7caba2eb feat: add Deepbrid, daily scheduling, and notification center
Add encrypted Deepbrid API accounts with account validation, provider routing, fallback, usage tracking, safe error handling, and verified 1Fichier downloads. Restore persistent recurring daily starts with local-calendar deduplication and legacy schedule compatibility. Add durable Discord package, run, remaining-volume, stall, and recovery notifications with privacy-safe telemetry and disk-failure recovery.
2026-08-24 07:37:55 +02:00
Sucukdeluxe 06e5bf4340 release: prepare v2.0.70
Ship authenticated Real-Debrid browser-form generation with isolated lifecycle recovery, restore reliable download sorting and clipboard handling from the post-v2.0.67 fixes, and localize item-log timestamps while preserving machine-readable runtime logs.
2026-08-24 04:38:27 +02:00
Sucukdeluxe 7bd31185b0 feat(downloads): restore sorting and stable availability
Make Service sortable by visible provider labels, keep pointer sorting distinct from column dragging, preserve keyboard sorting, infer active and completed transfers as online, and retain definitive availability across item and package resets. Keep manual extraction and package-status changes out of this selective rebuild.
2026-08-24 00:46:40 +02:00
Sucukdeluxe 20be2a9a03 fix(clipboard): route copy actions through Electron
Replace renderer clipboard calls with the validated main-process IPC writer for link names, URLs, package batches, backup keys, diagnostics, error details, and masked account identifiers. Raise the validated payload limit to one MiB so complete link packages copy without truncation while preserving empty and oversized input rejection.
2026-08-24 00:19:00 +02:00
Sucukdeluxe d3b0ca7b15 feat(hosters): resolve 1Fichier and DDownload metadata
Resolve public filenames, exact sizes, availability, aliases, and offline states for 1Fichier and DDownload without replacing the existing link collector. Preserve resolved names when debrid responses return generic filenames, protect partial-download resume paths, validate redirect identity, and journal final metadata renames for crash-safe recovery.
2026-08-23 19:37:33 +02:00
Sucukdeluxe 09bbff1887 fix(window): force dark native title bar
Apply Electron nativeTheme dark mode before creating the main window so the Windows title bar remains dark across local, server, and Remote Desktop profiles. Add focused regression coverage for the native theme contract.
2026-08-23 19:06:31 +02:00
Sucukdeluxe bc86c29d57 release: prepare v2.0.53 updater handoff
Launch the verified NSIS installer directly before application shutdown, wait for Windows to confirm process creation, and keep the application open on spawn failure. Move process waiting into NSIS with a bounded graceful and post-force termination check, and cover the handoff with updater regression tests.
2026-08-21 12:19:20 +02:00
Sucukdeluxe c375491c88 release: prepare v2.0.52 2026-08-21 10:42:24 +02:00
Sucukdeluxe 5aa0359a93 feat(statistics): keep large totals precise in gigabytes 2026-08-21 10:34:13 +02:00
Sucukdeluxe dc3d9dfc10 fix(statistics): preserve private account history safely 2026-08-21 08:37:04 +02:00
Sucukdeluxe 4de4f4a0be feat(statistics): show rolling account usage 2026-08-21 08:30:50 +02:00
Sucukdeluxe e24f685a71 feat(statistics): attribute rolling traffic to accounts 2026-08-21 08:28:09 +02:00
Sucukdeluxe 7121a334d2 feat(statistics): record rolling account traffic 2026-08-21 08:25:32 +02:00
Sucukdeluxe 6efdca6885 fix(update): verify and apply the actual latest version 2026-08-21 07:39:37 +02:00
Sucukdeluxe ce75012110 fix(update): launch installers after the current app exits 2026-08-21 02:35:53 +02:00
Sucukdeluxe 8fb92caa30 feat(downloads): explain unknown remaining sizes 2026-08-21 01:06:03 +02:00
Sucukdeluxe 869dbc25be fix(history): remove selections atomically 2026-08-21 00:59:45 +02:00
Sucukdeluxe 3a95136ef1 feat(history): update the open view live 2026-08-21 00:48:42 +02:00
Sucukdeluxe 18fa58002c feat(accounts): show current account check status 2026-08-21 00:41:40 +02:00