Commit Graph
194 Commits
Author SHA1 Message Date
Sucukdeluxe 362d1dd2cb test: verify automation control center
Cover real folder reconciliation from startup through queue-capacity recovery and reconnect.

Stress the 15,000-job policy, parallel event deduplication, Infinity fallback, restart-persistent pause, the delayed batch gate, and repeated finish behavior without expanding the rendered queue.

Document status, read-only scans, atomic admission, reconciliation, reconnect, pause and current-data processing semantics in English.
2026-08-26 14:01:10 +02:00
Sucukdeluxe 325a20d3fb feat: add automation control center UI
Preserve monotonic source-cleanup requirements while excluding ambiguous job identities from Main payloads, and reconcile mixed add responses only across globally unique jobs that were actually sent.

Render the automation status card, localized fixed-column metrics, read-only test overlay, queue-limit and reconciliation controls, and persistent finish-and-pause or resume action from immutable automation snapshots.

Add hidden Electron coverage for cleanup siblings, Main fingerprints, German and English states, keyboard focus, Escape and inert behavior, responsive 760-pixel layouts, and snapshot-gated upload controls.
2026-08-26 13:20:40 +02:00
Sucukdeluxe 28a475401e fix: preserve rotation logs during quit fallback
Route synchronous account-rotation shutdown flushes through the internal log writer so failures under userData/logs retry userData/internal-logs in the same order as runtime writes.

Keep buffered lines until a target accepts the full chunk, report the successful fallback as the active path, and retain the buffer when every internal target fails.

Cover the real EISDIR primary-path case, complete fallback failure, and main-process quit delegation without launching Electron.
2026-08-26 12:37:17 +02:00
Sucukdeluxe d4f47b955a fix: isolate valid add payload identities
Validate every add candidate against the complete queue identity snapshot before renderer IPC submission. Build source cleanup groups only from globally unique, non-empty job IDs and derive required hosters from those same valid participants. Reuse the frozen request analysis when reconciling Main responses so ambiguous jobs remain local with exact cleanup rollback while unique siblings can still be confirmed. Cover active selection, manual modal injection, and automation injection with hidden renderer regressions for jobs, cleanup groups, required hosters, and misleading confirmations.
2026-08-26 12:30:41 +02:00
Sucukdeluxe d21b721de4 fix: keep internal audit logs in user data
Route upload audit and account rotation output through one internal userData log resolver with a contained fallback directory.

Report active writer paths to diagnostics and log reveal actions while preserving the configurable fileuploader.log fallback contract and leaving existing Desktop files untouched.

Cover primary paths, fallback containment, rotation, active path reporting, log opening, and upload log isolation with focused tests.
2026-08-26 12:27:13 +02:00
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 10bf08ea55 fix: close automation lifecycle races 2026-08-26 10:23:32 +02:00
Sucukdeluxe 9adb38de08 feat: persist automation pause state 2026-08-26 10:05:26 +02:00
Sucukdeluxe 2063599611 fix: preserve delivered folder reservations 2026-08-26 09:46:44 +02:00
Sucukdeluxe 7890292d96 fix: track pending folder reservations 2026-08-26 09:39:18 +02:00
Sucukdeluxe d16823acbc fix: retain pending folder files across pause 2026-08-26 09:31:52 +02:00
Sucukdeluxe 724280b0cf fix: harden folder monitor lifecycle 2026-08-26 09:24:18 +02:00
Sucukdeluxe c414a4a303 feat: reconcile monitored folders 2026-08-26 09:10:44 +02:00
Sucukdeluxe 4d0b58285f fix: clamp fractional automation queue limits 2026-08-26 09:02:19 +02:00
Sucukdeluxe 41ae750e97 fix: preserve automation queue safety limit 2026-08-26 08:58:21 +02:00
Sucukdeluxe 9bc872bc00 feat: add automation control policies 2026-08-26 08:51:26 +02:00
Sucukdeluxe 8c89077d2f release: prepare v2.1.36
CI / verify (push) Canceled after 0s
Publish strict folder-monitor auto-upload behavior, localized accessible guidance, same-name queue protection, and isolated settings layout updates.
v2.1.36
2026-08-26 06:34:43 +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 f3c4d7d675 release: prepare v2.1.35
CI / verify (push) Canceled after 0s
Publish setting-level Quick Find results with localized breadcrumbs, safe term highlighting, direct navigation, and complete backup and update action coverage.
v2.1.35
2026-08-24 20:59:29 +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 9cb5c6913b release: prepare v2.1.34
CI / verify (push) Has been cancelled
Bump the desktop package and lockfile after Enter-based removal confirmation passed the complete release verification. Update the public README version for the new Windows artifacts.
v2.1.34
2026-08-22 19:10:51 +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 92a11ab0ce release: prepare v2.1.33
CI / verify (push) Has been cancelled
Bump the desktop package and lockfile after automatic account cooldown recovery passed the complete release verification. Update the public README version for the new Setup and Portable release.
v2.1.33
2026-08-22 18:27:30 +02:00
Sucukdeluxe b769467d08 feat: add automatic account cooldown recovery
Replace session-long account failure pauses with classified 15, 30, 60, and 120 minute cooldowns for temporary account problems. Keep credential, OTP, banned, and disabled states manual while ignoring unknown, file, network, hoster, and bare WAF errors. Reset escalation after confirmed uploads, deduplicate parallel failures, publish revisioned pause snapshots, and show a stable localized countdown with automatic reactivation.
2026-08-22 18:18:02 +02:00
Sucukdeluxe e986c552dc release: prepare v2.1.32
CI / verify (push) Has been cancelled
Bump the desktop package and lockfile to v2.1.32 after the encrypted online backup key management, recovery hardening, and upload-speed graph fixes passed the complete release verification. Update the public README download version to match the new release.
v2.1.32
2026-08-22 16:46:48 +02:00
Sucukdeluxe 15c363912f fix: bind removal plans to full key identity
Require both the current record ID and decrypted full key to match a prepared removal plan before deleting local state.

Invalidate mismatched plans before returning KEYRING_REMOVE_PLAN_INVALID so a replacement with the same canonical ID cannot be deleted and the stale plan cannot be reused.

Cover normal, idempotent, rebased, duplicate-ID, and same-ID replacement removal behavior while preserving the replacement generation.
2026-08-22 16:13:43 +02:00
Sucukdeluxe c5d4f4aef8 fix: separate legacy recovery from versioned keyring state
Keep a fully validated v1 primary authoritative over differing legacy recovery snapshots, recover missing or unusable v1 primaries from the best valid legacy candidate, and migrate the next mutation to v2 generation one.

Rebase prepared removals onto the current serialized keyring state so intervening creates survive, generations remain monotonic, and already absent targets complete idempotently.

Restrict canonical same-generation conflict blocking to true v2 documents and add separate legacy and v2 regression coverage without exposing key material.
2026-08-22 16:06:44 +02:00
Sucukdeluxe df96cc3011 fix: replace keyring ordering with committed generations
Read strict v1 keyrings as generation zero and write strict v2 documents with monotonically increasing safe integer generations. Select the highest fully validated generation and reject conflicting canonical payloads at the same generation.

Make a hidden, file-synced, disk-revalidated recovery staging file the rollback boundary. Publish it as a visible recovery candidate before treating the local transaction as committed, then keep primary, backup, and cleanup work best-effort.

Remove mtime and directory-fsync truth from recovery decisions and cover rollback-safe staging failures, post-commit publication failures, stale candidates, v1 migration, and generation conflicts.
2026-08-22 15:55:07 +02:00
Sucukdeluxe 82578b5f6e fix: establish durable keyring publication boundary
Fsync the keyring directory after both complete temporary files are written and synced, before replacing the primary document. Pre-publication directory failures now preserve the prior primary state and remain rollback-safe.

Keep the durable recovery temporary file available when later directory or backup publication work fails, and verify that it restores the committed keyring.

Rank equal-time recovery candidates deterministically with recovery temps before primary temps and backups, and consider equal-time commit temps alongside a valid primary.
2026-08-22 15:36:11 +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 39e0dd104e feat: add secure online backup key management 2026-08-22 12:18:35 +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 e99bb2a255 fix: restrict managed backup IPC senders 2026-08-22 11:03:54 +02:00
Sucukdeluxe 774a06fc0b feat: expose managed online backup actions 2026-08-22 10:54:11 +02:00
Sucukdeluxe 2bfa153136 fix: preserve committed backup creation success 2026-08-22 10:46:23 +02:00
Sucukdeluxe 6fc516433f feat: coordinate managed online backup keys 2026-08-22 10:38:47 +02:00
Sucukdeluxe 84032e0e68 refactor: expose online backup deletion outcome 2026-08-22 10:29:31 +02:00
Sucukdeluxe b55f99de24 fix: enforce strict online backup keyring entries 2026-08-22 10:25:32 +02:00
Sucukdeluxe 5a059670f6 feat: add encrypted online backup keyring 2026-08-22 10:20:23 +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 1546c7664b release: prepare v2.1.31
CI / verify (push) Has been cancelled
Carry the validated Windows Server and Remote Desktop compositor correction into the publishable release while calibrating the hidden regression to the actual CI display work area. Preserve the strict greater-than-2048 assertion on capable displays and update public version metadata.
v2.1.31
2026-08-21 08:30:25 +02:00