Commit Graph
56 Commits
Author SHA1 Message Date
Sucukdeluxe 3f9f7c212f fix: reject ambiguous queue job identities 2026-08-26 12:13:45 +02:00
Sucukdeluxe debc361160 fix: reconcile partial queue admissions 2026-08-26 11:57:28 +02:00
Sucukdeluxe f63717cb54 fix: preserve automation rollback contracts 2026-08-26 11:39:39 +02:00
Sucukdeluxe c0a924a7ac fix: harden automatic queue admission 2026-08-26 11:18:23 +02:00
Sucukdeluxe cfe7395104 feat: enforce automatic queue admission 2026-08-26 10:46:28 +02:00
Sucukdeluxe 9adb38de08 feat: persist automation pause state 2026-08-26 10:05:26 +02:00
Sucukdeluxe 54a099136a fix: make folder monitoring automation explicit
Honor the auto-upload setting for watched files with and without host preselection, keep queued preview jobs isolated from active batch summaries, and add localized accessible help for every folder-monitor behavior option.
2026-08-26 06:22:30 +02:00
Sucukdeluxe 49c112d2b1 feat: add breadcrumb settings search results
Replace category-only filtering with searchable setting-level results built from the rendered settings UI. Show localized breadcrumbs with safe token highlights, support German replacement spellings, index exceptional update and backup actions, and navigate to the correct module with scrolling, focus, and a temporary visual highlight.
2026-08-24 20:45:22 +02:00
Sucukdeluxe d62c00c133 feat: confirm removal dialogs with Enter
Make selected and all-item removal dialogs focus their destructive confirmation action so Enter confirms immediately. Preserve cancel-first behavior for every other dangerous dialog and keep Tab, Escape, alternate, close, overlay, and focus restoration semantics safe.
2026-08-22 19:00:57 +02:00
Sucukdeluxe 8041aeead9 fix: complete managed backup key remediation
Recover from structurally valid but undecryptable primary keyrings by selecting a fully cryptographically validated backup or recovery temp and reporting KEYRING_RECOVERED.

Keep committed primary writes successful when best-effort post-publication cleanup fails, preventing ambiguous retries after durable local publication.

Intercept clipboard writes inside the hidden Electron Main-process integration probe, remove the duplicate key-created toast, and make authoritative refresh coverage differ from optimistic state.
2026-08-22 15:24:33 +02:00
Sucukdeluxe 49fa4518c9 fix: harden managed online backup key handling
Require canonical encrypted envelopes and surface typed sanitized keyring corruption states.

Persist crash-durable primary and recovery files, prevalidate removal plans, isolate renderer refresh authority, and cover the real hidden Windows DPAPI and IPC composition.
2026-08-22 13:28:47 +02:00
Sucukdeluxe f7c6ee3bab fix: prioritize managed backup refreshes
Separate navigation and authoritative load generations so view refreshes cannot invalidate in-flight create or delete refreshes. Ignore navigation responses started during active operations, while allowing a later successful view load to replace old error state after the operation ends.
2026-08-22 12:04:02 +02:00
Sucukdeluxe 5ebeea3220 fix: preserve managed backup operation status
Bind list state and status updates to matching load generations and operation contexts so delayed settings-navigation responses cannot clear newer busy or error states or replace newer managed-key data. Keep create and delete post-success refreshes authoritative and single-shot.
2026-08-22 11:53:46 +02:00
Sucukdeluxe f2c6630866 fix: serialize managed backup actions
Queue copy and delete operations by sanitized backup ID so confirmations survive renderer refreshes and deletes follow in-flight copies without silent cancellation. Reload the managed list exactly once after successful create and delete mutations, and invalidate stale UI state when the authoritative refresh fails.
2026-08-22 11:42:29 +02:00
Sucukdeluxe f741edaf2f feat: manage online backup keys in settings 2026-08-22 11:25:45 +02:00
Sucukdeluxe 1edc571686 fix: align German online backup controls
Use compact German key labels and a shared fixed label column so both online-backup inputs and actions align consistently across languages. Restore the narrow one-column breakpoint after later settings overrides and cover translations plus real hidden CSS geometry.
2026-08-22 10:07:46 +02:00
Sucukdeluxe 2c1e0046ff fix: remove duplicate upload speed baseline
Keep the static first-paint speed line only until the canvas renders its first frame, then remove the placeholder so active upload telemetry shows one curve. Extend the hidden real-renderer regression to verify the transition without opening a visible window.
2026-08-22 09:35:18 +02:00
Sucukdeluxe e86472fdbf test: adapt compositor gate to display limits
Keep the hard greater-than-2048 surface assertion on displays that can provide it while allowing smaller hosted CI desktops to verify renderer command-line safety, exact viewport geometry, and both painted edges at their available resolution.
2026-08-21 08:28:11 +02:00
Sucukdeluxe aa7ae774e6 fix: preserve remote-session compositor rendering
Remove the RDP-specific hardware acceleration shutdown that forced Chromium renderers into software compositing on Windows Server sessions. Add a production-wide startup invariant and a hidden full-width Electron compositor regression covering renderer switches, viewport geometry, and both painted edges.
2026-08-21 07:51:11 +02:00
Sucukdeluxe 8373f3ff7b feat: copy sanitized upload failure details
Expose a contextual copy action only for failed uploads, target the exact right-clicked job during multi-selection, and defensively redact URLs and credential-shaped values from clipboard diagnostics.
2026-08-21 02:24:40 +02:00
Sucukdeluxe 3c863d6623 revert: remove the batch completion summary
Remove the dedicated completion toast and failure action after user review while leaving all other update and queue improvements intact.
2026-08-21 01:16:15 +02:00
Sucukdeluxe 04bd4b396c feat: summarize completed upload batches
Capture real batch duration and show a dedicated localized completion summary with success, failure, and skipped counts plus a direct action to open failed uploads.
2026-08-21 01:10:53 +02:00
Sucukdeluxe fb544efe2f feat: show the active queue filter count
Add a fixed filter summary that counts sidebar, filename, host, and status constraints, highlighting nonzero counts without changing the toolbar geometry.
2026-08-21 01:06:16 +02:00
Sucukdeluxe 010b148141 fix: keep the queue filter layout stable
Reserve the reset action permanently inside the filter group, disabling and dimming it when no filter is active so typing never changes the toolbar width.
2026-08-21 01:01:17 +02:00
Sucukdeluxe e742a74f6d style: integrate queue filters into the command bar
Move search, host, status, and reset controls into one framed filter group beside the upload actions, preserving responsive wrapping within the same toolbar.
2026-08-21 00:59:23 +02:00
Sucukdeluxe 503cb26615 feat: reset all queue filters together
Add one contextual reset action that clears the upload sidebar, filename search, host filter, and status filter in a single render while restoring selection and scroll state consistently.
2026-08-21 00:55:26 +02:00
Sucukdeluxe 44fb93e7ea fix: optically center the ETA separator
Right-align the speed before the separator and left-align ETA after it so the second metric divider sits exactly between the visible values.
2026-08-21 00:42:37 +02:00
Sucukdeluxe 71207d98eb style: highlight the primary changelog heading
Use the update success color for the top-level release-notes heading while retaining white typography for subordinate categories.
2026-08-21 00:42:09 +02:00
Sucukdeluxe 6539db5d52 feat: emphasize update changelog sections
Render release-note headings, categories, items, and body lines as safe structured text with larger typography for section labels and compact spacing for details.
2026-08-21 00:40:08 +02:00
Sucukdeluxe aea0b22a4f fix: center update metric separators
Place both metric separators in identical fixed-width grid columns and center them explicitly so size, speed, and ETA maintain balanced spacing.
2026-08-21 00:38:48 +02:00
Sucukdeluxe e7947f7486 style: extend the update changelog viewport
Increase the release-notes area by another twenty percent while constraining it to the viewport so more changelog content remains visible without hiding update controls.
2026-08-21 00:37:26 +02:00
Sucukdeluxe 97f444e188 fix: hide inactive update metric separators
Honor the hidden state of the structured download telemetry container so its decorative separators never remain visible outside an active download.
2026-08-21 00:36:12 +02:00
Sucukdeluxe 631a20c9b3 fix: stabilize update telemetry layout
Render size, speed, and ETA in dedicated fixed-width columns with tabular numerals so rapidly changing values no longer shift neighboring metrics horizontally.
2026-08-21 00:33:56 +02:00
Sucukdeluxe 4d3a4f1a8a feat: show update download telemetry
Calculate download throughput and remaining time from verified installer bytes and display downloaded size, total size, speed, and ETA beneath the progress track while retaining the last values after cancellation.
2026-08-21 00:28:48 +02:00
Sucukdeluxe e7d30edab5 style: increase update dialog height
Give the release-notes viewport a responsive 220-pixel target height so the update dialog gains visible vertical room while remaining bounded on smaller windows.
2026-08-21 00:25:01 +02:00
Sucukdeluxe a9a17bf08f style: enlarge the update dialog
Increase the responsive update dialog width and changelog viewport by twenty percent so release notes remain readable with less scrolling.
2026-08-21 00:23:13 +02:00
Sucukdeluxe e73143e2b7 fix: center the update action tooltip
Remove the duplicate native title tooltip and center the single custom update hint directly below the available-update action.
2026-08-21 00:21:33 +02:00
Sucukdeluxe ccf60db15f feat: reveal available updates beside speed
Collapse the header update action completely when no update exists and animate the green action outward to the left of the fixed bandwidth widget only after a real update is detected.
2026-08-21 00:12:17 +02:00
Sucukdeluxe e18c629741 fix: highlight available updates in green
Use the success palette and black text for the available-update header action, including its hover state. Add regression coverage for the visual state.
2026-08-20 13:47:42 +02:00
Sucukdeluxe ff1593be81 fix: gate native window reveal on renderer load
Keep BrowserWindow hidden until both ready-to-show and did-finish-load are complete, preventing the incomplete header from reaching the screen.

Render a static upload-speed baseline beneath the transparent canvas so the zero line exists independently of renderer timers.

Add regression coverage for both reveal event orders, load failures, and the script-independent header baseline.
2026-08-20 13:45:02 +02:00
Sucukdeluxe 6d458e37f3 fix: stabilize the header on first paint
Pass the installed version with the startup language so the renderer can display it before asynchronous initialization.

Seed and start the upload sparkline immediately, keep a fixed update-action slot across all update states, and remove the delayed automatic update check.

Add first-frame regression coverage for version, speed baseline, update geometry, and startup query behavior.
2026-08-20 13:27:55 +02:00
Sucukdeluxe c4c7907686 feat: improve live update and upload feedback
CI / verify (push) Has been cancelled
Refresh release metadata immediately before downloading an update and keep automatic checks current while the app remains open.

Accept desktop file drops from the first renderer frame, preserve early and rapid drops until initialization completes, and show the live remaining upload size in the sidebar.

Add regression coverage for update freshness, startup drag-and-drop ordering, localization, and remaining-byte retry behavior. Bump the application to v2.1.25.
2026-08-20 10:40:58 +02:00
Sucukdeluxe d7c9f287e4 release: restore v2.1.19 baseline for v2.1.24
CI / verify (push) Has been cancelled
Restore the v2.1.19 application baseline and retain only the focused import preflight summary with duplicate, unavailable, destination, job, and size-limit visibility.
2026-08-17 04:25:22 +02:00
Sucukdeluxe 16f6f93a72 Polish account interactions and settings layout
CI / verify (push) Successful in 5m2s
Add smooth account editor transitions with immediate input release, keep the cursor visible in development and production windows, align host option descriptions, and ensure localized settings search placeholders fit at narrow widths. Bump the application to v2.1.22 and extend hidden Electron regression coverage.
2026-08-15 22:35:51 +02:00
Sucukdeluxe cfa138198f Buffer startup drops until renderer readiness
Keep a bounded FIFO of drop payloads while the startup or recovery document is not validated. Flush each payload exactly once only after the generation-checked renderer Ready signal, retain immediate delivery for a ready renderer, and discard stale payloads when the main window is destroyed or replaced.

Wire renderer block, Ready, and window-close transitions through main and cover recovery, safe failure visibility, stale Ready signals, ordered multi-drop delivery, queue bounds, lifecycle cleanup, and duplicate prevention.
2026-08-13 23:35:04 +02:00
Sucukdeluxe 3cb34f8039 Gate external window reveals on renderer readiness
Route second-instance activation, tray clicks, tray menu activation, and drop-target restores through one startup reveal gate. External focus and restore requests now remain queued until the active renderer generation reports Ready or the coordinator exposes the branded failure surface.

Block the gate and reset close-handshake readiness synchronously before every renderer recovery navigation and failure-document load. This keeps early loadFile rejection from leaving the terminal failure surface subject to the normal renderer close-preparation handshake.

Add production-like event binding regressions for all four external reveal paths, authorized Ready and failsafe reveals, and direct closing of the safe failure surface after an early recovery rejection.
2026-08-13 23:24:29 +02:00
Sucukdeluxe dd14381e43 Fix generation-safe renderer startup recovery
Bind renderer Ready and initialization-failure IPC to per-navigation document URLs and main-frame identity so stale documents cannot cancel the active deadline or reset the recovery budget.

Serialize initial-load retries with crash, initialization, and timeout recovery behind one bounded navigation budget. Keep the main window hidden until a validated Ready signal while allowing the branded failsafe to become visible.

Move production lifecycle wiring into the startup handlers and add event-driven regressions for stale Ready signals, pre-finish initialization failures, timeout recovery, visibility, and crashes during the initial navigation.
2026-08-13 22:58:48 +02:00
Sucukdeluxe a4d0854e76 Harden renderer startup readiness recovery
Require a bounded Ready signal after each main-document load, cancel the deadline on successful readiness or window disposal, and keep recovery limited to one reload before the branded failure surface.

Route renderer initialization failures through production startup handlers and reject malformed authenticated remote keyboard payloads without throwing or logging.
2026-08-13 22:25:28 +02:00
Sucukdeluxe 1dd0e32709 Close startup and recovery transaction gaps 2026-08-13 21:37:00 +02:00
Sucukdeluxe 3ced148ee8 Harden upload lifecycle and renderer recovery
Serialize upload starts across durable audit work, drain in-flight batch additions before cleanup, and fail closed when recovery persistence is incomplete. Wire bounded renderer reload recovery with a branded localized failure surface and use merge-safe fallback log persistence.
2026-08-13 21:11:48 +02:00