Commit Graph
100 Commits
Author SHA1 Message Date
Sucukdeluxe 9fa979fb4d fix: recover app lifecycle after provider downloads 2026-08-31 00:36:17 +02:00
Sucukdeluxe c8fbb97f56 docs: add verified project memory for v2.0.74 2026-08-31 00:07:29 +02:00
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 8ef60eda87 release: prepare v2.0.73 2026-08-25 07:01:05 +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 cdd7fc2e7f release: prepare v2.0.72
Document package lifecycle telemetry, responsive download controls, contextual help behavior, coordinated disclosure motion, and Deepbrid resume reliability. Update application and lockfile versions for the GitHub release artifacts.
2026-08-24 21:06:13 +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 581736e02b release: prepare v2.0.67
Publish the verified v2.0.54 stability baseline with dark native Windows title bars and crash-safe 1Fichier and DDownload metadata resolution. Keep later extraction and package-status regressions out of the release.
2026-08-24 00:01:30 +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 a6c6464761 release: prepare v2.0.54 updater validation
Publish a controlled follow-up version so v2.0.53 installations can exercise the repaired in-app updater handoff end to end without introducing unrelated product changes.
2026-08-21 13:09:11 +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 54bcd82cb6 docs: specify rolling account statistics 2026-08-21 08:19:22 +02:00
Sucukdeluxe 9710007430 fix(release): reset cached asar metadata between checks 2026-08-21 07:46:01 +02:00
Sucukdeluxe fafb278153 release: prepare v2.0.51 2026-08-21 07:39:37 +02:00
Sucukdeluxe 6efdca6885 fix(update): verify and apply the actual latest version 2026-08-21 07:39:37 +02:00
Sucukdeluxe 4cebc6fefd release: prepare v2.0.50 2026-08-21 02:43:41 +02:00
Sucukdeluxe ce75012110 fix(update): launch installers after the current app exits 2026-08-21 02:35:53 +02:00
Sucukdeluxe da4b6f295c release: prepare v2.0.49 2026-08-21 01:26:18 +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
Sucukdeluxe 9ceea828ec fix(downloads): refine availability spacing 2026-08-21 00:30:51 +02:00
Sucukdeluxe db8ff00c4a fix(downloads): balance availability spacing 2026-08-21 00:29:03 +02:00
Sucukdeluxe 710d33ae8f fix(downloads): remove unused availability spacing 2026-08-21 00:27:39 +02:00
Sucukdeluxe 787fa6d7ef fix(downloads): tighten availability spacing 2026-08-21 00:25:13 +02:00
Sucukdeluxe 1bf48a52ce fix(downloads): tighten availability labels 2026-08-21 00:22:45 +02:00
Sucukdeluxe 9ef7810914 fix(downloads): clarify the column menu state 2026-08-21 00:17:43 +02:00
Sucukdeluxe 9e873fa250 fix(downloads): keep the column menu open on right click
Stop the header context event before it reaches the newly mounted outside-click listener, preventing the column menu from closing in the same native event.
2026-08-21 00:09:59 +02:00
Sucukdeluxe 4f7b8d31ef fix(downloads): move column reset into the header menu
Keep the action column reserved for row actions and expose the global layout reset through the existing column-header context menu.
2026-08-21 00:04:10 +02:00
Sucukdeluxe 09caf8f364 fix(downloads): keep layout reset in header menu 2026-08-21 00:02:24 +02:00
Sucukdeluxe 06a9b82f64 feat(downloads): reset the saved column layout
Wire the download header reset action to cancel active column motion, restore the default order immediately, persist it through the serialized settings path, and confirm the result in the UI.
2026-08-20 23:58:22 +02:00
Sucukdeluxe 9942b2275e feat(downloads): add column layout reset action 2026-08-20 23:56:15 +02:00
Sucukdeluxe cee3e988f6 release: prepare v2.0.48
Document the atomic and immediate download column reorder behavior, update package metadata, and prepare the verified Windows release.
2026-08-20 13:25:20 +02:00
Sucukdeluxe 71a286aa94 fix(downloads): keep column controls vertically anchored
Exclude the absolute column move controls from FLIP content animations so their translateY centering remains intact throughout left and right column switches.
2026-08-20 10:34:23 +02:00
Sucukdeluxe e030daff3e perf(downloads): start column moves immediately
Commit the local target order before persistence, limit FLIP measurements to columns that actually move, and remove the redundant row-wide grid preparation pass. Keep the animation-disabled path free of geometry reads and preserve serialized settings writes.
2026-08-20 09:47:57 +02:00
Sucukdeluxe 0dfb57525a fix(downloads): make column reorder frames atomic
Commit the target grid immediately, derive track definitions from the same column order as the cells, and animate only cell contents with FLIP. Disable grid-track interpolation to avoid Chromium reduced-motion mix frames, honor the application animation setting, and retain serialized persistence and import authority.
2026-08-20 09:16:06 +02:00
Sucukdeluxe 32fc1e7321 fix(downloads): remove column reorder flicker
Clear old FLIP transforms before committing the new download grid order. Serialize and coalesce column-order persistence, keep live download snapshots from overwriting local layout state, reassert imported settings after older requests, and block overlapping pointer or arrow moves during settling.
2026-08-20 08:40:25 +02:00
Sucukdeluxe 1f2f10e803 release: prepare v2.0.47
Document the unified 750 ms running-update cadence for download metrics and visualizations, update package metadata, and prepare the verified Windows release.
2026-08-20 05:31:42 +02:00
Sucukdeluxe 10528a2696 perf(ui): enforce 750 ms live update cadence
Use one 750 ms interval for running download snapshots, progress updates, the bandwidth chart, and the header speed sparkline across every queue size. Remove the extra active-download renderer delay and add timing regressions for small, medium, and large queues.
2026-08-20 05:23:59 +02:00
Sucukdeluxe 08f017e8c4 fix(settings): restore archive password list
Load the stored archive password list through a dedicated trusted IPC channel when extraction settings are opened. Preserve write-only drafts across settings and account updates, guard unsaved edits against late responses, and invalidate stale loads during backup imports. Prepare version 2.0.46 with public release notes.
2026-08-20 00:45:46 +02:00
Sucukdeluxe 09ea7803f3 fix(accounts): restore Real-Debrid start availability
Keep concrete account pools authoritative when fully disabled and clear stale transient cooldown state when an account is explicitly re-enabled, while preserving configured daily limits and usage.
2026-08-19 19:09:07 +02:00
Sucukdeluxe fe3cb36731 perf(ui): calm large-queue live updates
Throttle visible download snapshots at 500 ms from 250 queue items, align speed visualizations to the same cadence, preserve small-queue responsiveness, and retain the stronger protection for very large queues.
2026-08-17 13:39:53 +02:00
Sucukdeluxe a8a5ca4b40 release: prepare v2.0.43
Add sanitized provider and account runtime diagnostics, complete the Multi-Debrid-Downloader product rename, preserve existing application data during migration, update public release verification, and publish the accompanying English documentation and regression coverage.
2026-08-16 21:50:01 +02:00
Sucukdeluxe 7107a92ae2 release: prepare v2.0.42
Bump the product and lockfile version to 2.0.42. Document the Real-Debrid multi-account pool, isolated browser sessions, account rotation and recovery, account-specific controls, continued availability checks, refined account filtering, and noninteractive background authentication behavior.
2026-08-15 22:19:09 +02:00
Sucukdeluxe c6fb8d928e fix(realdebrid): keep background downloads noninteractive
Restrict browser window creation to explicit login actions so account activation, status probes, and download retries never open or reopen Real-Debrid windows. Remove the automatic login polling loop from web unrestrict and return a clear login-required error instead. Cover concurrent fresh fallback instances, manually closed windows, and authenticated fair-use failures without popup creation.
2026-08-15 22:00:48 +02:00
Sucukdeluxe 935f39d7db fix(realdebrid): respect dismissed login windows
Remember a user-dismissed browser login per Real-Debrid web account so queued and repeated unrestrict attempts cannot reopen it. Clear the suppression only after explicit login or successful authentication, and close successful login windows without treating them as user cancellations.
2026-08-15 21:48:37 +02:00
Sucukdeluxe 31560cfbe0 fix(accounts): keep invalid accounts disabled
Require the silent activation refresh to return a valid account state before persisting the enabled setting. Invalid or expired sessions now roll back the optimistic toggle and cannot trigger an interactive login from active downloads.
2026-08-15 21:43:30 +02:00
Sucukdeluxe 82303dc94a fix(accounts): refresh status before enabling accounts
Validate Real-Debrid, Mega-Debrid, and Debrid-Link accounts silently before exposing a newly enabled account to active downloads. Keep the row toggle optimistic, skip network checks while disabling, persist direct account-check results, and avoid the browser-login race for an already authenticated Real-Debrid web session.
2026-08-15 21:41:38 +02:00
Sucukdeluxe d720c5912e feat(settings): expose Real-Debrid multi-account controls 2026-08-15 21:34:28 +02:00
Sucukdeluxe 7e65195057 feat(realdebrid): rotate accounts during unrestrict 2026-08-15 21:16:18 +02:00
Sucukdeluxe 53cdac1ded feat(realdebrid): isolate browser account sessions 2026-08-15 20:35:34 +02:00
Sucukdeluxe af710610fd feat(accounts): manage Real-Debrid account pool 2026-08-15 20:17:41 +02:00
Sucukdeluxe 56a05fa66f feat(realdebrid): add multi-account settings model 2026-08-15 20:00:43 +02:00
Sucukdeluxe 5747a50932 feat(accounts): add precise service filtering
Add an explicit service selector to the account creation dialog while keeping the text field focused on access types such as API and web login. Preserve the result area dimensions during filtering and allow Enter to choose the first visible account type. Cover filtering, keyboard selection, translations, and stable list geometry with focused regression tests.
2026-08-15 18:46:18 +02:00
Sucukdeluxe a3b4b2323f fix(downloads): finish availability checks after start 2026-08-15 18:39:34 +02:00
Sucukdeluxe cda5902ba2 fix(accounts): preserve Real-Debrid usernames 2026-08-15 18:36:08 +02:00
Sucukdeluxe 52329628c3 Revert "fix(ui): honor the application animation setting globally"
This reverts commit 760ed847fc.
2026-08-15 16:05:22 +02:00
Sucukdeluxe 760ed847fc fix(ui): honor the application animation setting globally 2026-08-15 16:03:59 +02:00
Sucukdeluxe f911d4c444 release: prepare v2.0.41
Set the application and lockfile version to 2.0.41. Document all account management, credential handling, queue controls, statistics persistence, history layout, and interface changes introduced since v2.0.40.
2026-08-15 05:02:53 +02:00
Sucukdeluxe dd10083aec fix(accounts): isolate action menu interactions
Stop double-click events on account action buttons before they reach editable table rows. Simplify the account menu heading to a single hoster and access-type label without empty identity separators, and cover both interaction and formatting paths.
2026-08-15 04:55:23 +02:00