Commit Graph
111 Commits
Author SHA1 Message Date
Sucukdeluxe 7f3030ecc5 Improve contextual help and download filter grouping
Open contextual help from wrapper hover and focus, close it only after pointer or focus exits the shared trigger-popover region, and make clicks open-only. Remove the standalone package title and present the existing download filters as the first compact neutral sidebar group without changing filter behavior. Extend the visual driver and manifest with hover, leave, focus, blur, internal-focus, and real headless Chromium regression coverage.
2026-08-22 11:46:56 +02:00
Sucukdeluxe 9cdd0310a5 Harden disclosure visuals and download toolbar tail
Replace the synthetic disclosure interpolation test with a real Chrome headless run against the existing visual harness, sampling rendered height, transform, opacity, and adjacent row geometry during collapse and expansion.

Group the global downloads disclosure action in a responsive toolbar tail, remove the horizontal toolbar scroll path, and keep the action pinned within the supported 1120 pixel layout while the schedule is open.

Disable the global disclosure action for a truly empty queue and cover the empty model plus responsive DOM boundaries.
2026-08-22 11:32:23 +02:00
Sucukdeluxe a101bd0bed Fix disclosure fading and global package toggles
Fade the shared virtual item group from transparent to opaque while expanding and reverse the opacity while collapsing, preserving the clipping row as the geometry owner.

Move the downloads package toggle to the far toolbar edge and add a collector toolbar toggle backed by raw unfiltered package IDs.

Cover opacity endpoints, intermediate frame geometry, toolbar ordering, and filter-independent collector toggle semantics.
2026-08-22 11:18:05 +02:00
Sucukdeluxe ad29239661 Complete provider waits and lifecycle visibility
Release aborted Real-Debrid, AllDebrid, and BestDebrid web callers even when underlying requests ignore cancellation while retaining terminal rejection observers. Publish provider cooldown deadlines and emit a fresh idle snapshot at the earliest expiry. Abort and visibly drain post-processing before dispatching one pending restart. Surface lifecycle phase, reason, retry countdown, and remaining work in the download controls. Add focused regressions for provider abort races, cooldown expiry, post-processing drain, pending start visibility, and the updated rapid stop contract.
2026-08-22 10:39:07 +02:00
Sucukdeluxe 2e94484274 Validate daily schedule start times
Disable schedule activation until the local time input matches a strict HH:MM value.

Keep a defensive activation guard that surfaces a localized validation error and skips persistence when invoked with invalid state.

Add red-green coverage for empty, malformed, out-of-range hour, and out-of-range minute values.
2026-08-22 10:12:25 +02:00
Sucukdeluxe 30bedd17dd Add recurring daily schedule controls
Replace the one-time renderer schedule form with recurring local time and start-day settings while preserving legacy schedule visibility.

Keep the toolbar slot mounted and inaccessible while closed, animate width, opacity, and horizontal position through the global motion preference, and add localized labels.

Surface activation and cancellation failures, reconcile the authoritative snapshot after failed writes, and cover the behavior with focused red-green tests.
2026-08-22 10:02:29 +02:00
Sucukdeluxe 4eb95c92b9 feat(scheduler): persist recurring daily starts
Add a local-calendar daily start scheduler with pending receipts, per-day deduplication, DST-safe target calculation, missed-day recovery, and retryable account/start failure outcomes.

Persist and validate the daily rule, expose its next target to the renderer, preserve legacy one-time schedules until a daily rule is saved, and gate boot auto-resume on recorded active-run evidence.

Wire boot, settings, account, suspend, resume, interval, and shutdown lifecycle handling with focused RED/GREEN coverage for calendar, persistence, renderer, and controller boundaries.
2026-08-22 09:36:45 +02:00
Sucukdeluxe 16679e73b5 feat(settings): configure notification center 2026-08-22 07:51:01 +02:00
Sucukdeluxe 03da04b629 feat(notifications): finalize package and run results 2026-08-22 05:08:48 +02:00
Sucukdeluxe ef7423134a feat(history): add package lifecycle telemetry 2026-08-22 04:04:42 +02:00
Sucukdeluxe 754231d15c feat(notifications): add settings and migration 2026-08-22 03:44:11 +02:00
Sucukdeluxe 6a8a3828b8 release: prepare v2.0.55 metadata preview
Publish pre-download metadata resolution for 1Fichier and DDownload together with the rebuilt package-oriented link collector. Restore structured queue JSON imports and direct Ctrl+L/File-menu access to link analysis before creating release artifacts.
2026-08-22 03:03:19 +02:00
Sucukdeluxe b03f6ee1bc feat(collector): show hoster icons with tooltips
Render known hosters with their existing provider icons in collector package and file rows while retaining the full hoster name as a tooltip. Fall back to the compact text label if an icon cannot be loaded.
2026-08-22 02:54:14 +02:00
Sucukdeluxe 40428a69b4 feat(collector): rebuild link preview as package workspace
Inspect pasted links, text files and DLC containers before queue insertion and resolve supported hoster metadata without starting downloads. Group multipart files into expandable packages with size, status, availability, timestamps, filtering and stable selection. Add selected or complete transfer to Downloads while retaining entries on failed or partial handoff. Keep collector toolbar spacing consistent and show the full 1Fichier identity with its provider icon in Downloads.
2026-08-22 02:22:42 +02:00
Sucukdeluxe 5f391a35d6 fix(onefichier): resolve metadata during import
Batch 1Fichier link checks before downloads start, populate original filenames, exact sizes, and availability, preserve resolved names across generic debrid responses, and normalize all supported mirror domains under one hoster identity. Pace batches to the hoster's documented safe interval and cover offline, private, delayed, malformed, alias, and 100-link boundary cases.
2026-08-22 01:27:47 +02:00
Sucukdeluxe 5aa0359a93 feat(statistics): keep large totals precise in gigabytes 2026-08-21 10:34:13 +02:00
Sucukdeluxe 4de4f4a0be feat(statistics): show rolling account usage 2026-08-21 08:30:50 +02:00
Sucukdeluxe 6efdca6885 fix(update): verify and apply the actual latest version 2026-08-21 07:39:37 +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 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 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 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 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 af710610fd feat(accounts): manage Real-Debrid account pool 2026-08-15 20:17:41 +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 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 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
Sucukdeluxe b6ce49e7ef fix(accounts): center row menus under action header
Anchor the account action track to the table edge and offset only the row menu controls by eight pixels so their centers align with the wider Action label. Remove the previous shared padding approximation and lock the account-specific alignment in the focused regression test.
2026-08-15 04:44:49 +02:00