Commit Graph
223 Commits
Author SHA1 Message Date
Sucukdeluxe b40411a7b0 fix: update Doodstream web authentication flow
CI / verify (push) Canceled after 0s
2026-09-12 14:19:40 +02:00
Sucukdeluxe 38df2b24d5 docs: record v2.1.44 release
CI / verify (push) Canceled after 0s
2026-09-07 02:56:12 +02:00
Sucukdeluxe e191ea8dc0 release: prepare v2.1.44
CI / verify (push) Canceled after 0s
v2.1.44
2026-09-07 02:47:19 +02:00
Sucukdeluxe c8838d34b3 fix: continue VOE account fallback rotation
CI / verify (push) Canceled after 0s
2026-09-07 02:44:08 +02:00
Sucukdeluxe 0f5cb68308 docs: record v2.1.43 release
CI / verify (push) Canceled after 0s
2026-09-02 11:08:08 +02:00
Sucukdeluxe 5311cdfb1e release: prepare v2.1.43
CI / verify (push) Canceled after 0s
v2.1.43
2026-09-02 11:01:26 +02:00
Sucukdeluxe 69e1f2693d fix: prevent queue status text selection
CI / verify (push) Canceled after 0s
2026-09-02 10:59:29 +02:00
Sucukdeluxe e688d69373 docs: record v2.1.42 release
CI / verify (push) Canceled after 0s
2026-09-01 16:16:45 +02:00
Sucukdeluxe f7aa1d4dc3 release: prepare v2.1.42
CI / verify (push) Canceled after 0s
v2.1.42
2026-09-01 16:05:26 +02:00
Sucukdeluxe cd5abf3466 docs: record verified backup feature state
CI / verify (push) Canceled after 0s
2026-09-01 15:44:20 +02:00
Sucukdeluxe 9e5c5126dd feat: add expiring backups and live account checks
CI / verify (push) Canceled after 0s
2026-09-01 15:43:20 +02:00
Sucukdeluxe 96037f2e1c fix: restore Forgejo release transport metadata
CI / verify (push) Canceled after 0s
2026-08-31 22:06:33 +02:00
Sucukdeluxe 51d44ca1b7 fix: align GitHub release asset names
CI / verify (push) Canceled after 0s
2026-08-31 18:58:39 +02:00
Sucukdeluxe 703f8b2a64 release: prepare v2.1.41
CI / verify (push) Canceled after 0s
Bump the application and lockfile metadata to 2.1.41, update the public release pointer, and record the verified Doodstream OTP request-coalescing and session-reuse fix.
v2.1.41
2026-08-31 18:46:24 +02:00
Sucukdeluxe 40ce83d413 fix: prevent repeated Doodstream OTP requests
CI / verify (push) Canceled after 0s
Coalesce concurrent and repeated Doodstream login checks by credential identity, keep the challenged cookie session for OTP verification, and rate-limit explicit code resends. Prefer an existing Doodstream API key during health checks and add regression coverage for imports with duplicate accounts, concurrent checks, expired challenges, and session reuse.
2026-08-31 18:45:37 +02:00
Sucukdeluxe 317ff3f035 docs: add project memory
CI / verify (push) Canceled after 0s
2026-08-31 18:34:47 +02:00
Sucukdeluxe bf33ab3e99 fix: defer secure credential loading until ready
CI / verify (push) Canceled after 0s
Load encrypted account credentials only after Electron reaches its ready state so Windows DPAPI is available during startup. Retry transient secure-storage discovery instead of caching an unavailable result for the process lifetime. Add hidden two-process DPAPI regression coverage for the real renderer IPC path and bump the public version to 2.1.40.
v2.1.40
2026-08-27 16:07:21 +02:00
Sucukdeluxe d9c66fe20f fix: make automation completion evidence durable
CI / verify (push) Canceled after 0s
Persist successful watched-file uploads in a dedicated fsync-backed ledger before exposing completion to the renderer. Match entries by normalized full path, hoster, size, and modification time so restart reconciliation skips unchanged completed files while changed files and explicit manual retries remain available.

Remove restored queue ghosts from the ledger even when history and user upload logging are unavailable. Preserve per-hoster partial completion, capture missing file metadata asynchronously, fail closed on corrupted or unwritable evidence, and keep local persistence failures outside automatic upload retries.

Stream managed upload logs with bounded lines, bytes, files, directories, and result counts. Include numbered rotations, reject unconfirmed rows, share concurrent scans through a generation-safe cache, invalidate after successful appends, avoid synchronous configuration and directory reads, and close streams on every path.
v2.1.39
2026-08-27 15:14:43 +02:00
Sucukdeluxe 7b514a0c1e release: prepare v2.1.39
Bump the application and lockfile metadata to 2.1.39 and update the public README release pointer. This patch release ships the verified folder-monitor reupload prevention and managed upload-log discovery fixes from the preceding implementation commit.
2026-08-27 13:35:02 +02:00
Sucukdeluxe 58b92856a6 fix: prevent folder-monitor reuploads after completion
Discover base, daily, session, and fallback upload logs across configured, Desktop, and application-data locations without blocking the Electron main process.

Treat in-session completion keys as authoritative automation evidence so removing finished rows cannot cause periodic reconciliation to enqueue and upload the same file again.

Add real handler and done-remove-reconcile regressions covering custom extensions, mixed-case log names, fallback paths, stale evidence, and asynchronous log reads.
2026-08-27 13:22:35 +02:00
Sucukdeluxe c0153acfb2 release: prepare v2.1.38
CI / verify (push) Canceled after 0s
Publish reliable automation queue pause and resume behavior, non-blocking durable configuration writes, bounded folder-monitor evidence reuse, finalization race protection, and expanded regression coverage.
v2.1.38
2026-08-27 07:26:46 +02:00
Sucukdeluxe 5a369f7598 fix: eliminate upload queue stalls under automation load
Move atomic configuration writes off the Electron main event loop and preserve concurrent queue and folder monitor state.

Make finish-and-pause interrupt queued admission waits without aborting active uploads, then resume only persistently marked automation jobs across active, idle, restart, and finalization races.

Reuse bounded automation evidence snapshots, refresh them during long drains, and cover high-load persistence, pause, resume, and hidden Electron behavior with regression tests.
2026-08-27 07:15:39 +02:00
Sucukdeluxe 5f9cf61da6 test: normalize startup source newlines
CI / verify (push) Canceled after 0s
Keep the hidden automation restart harness stable across Windows checkouts with CRLF line endings.
v2.1.37
2026-08-26 19:24:43 +02:00
Sucukdeluxe 213d049588 release: prepare v2.1.37
CI / verify (push) Canceled after 0s
Publish the automation control center, reliable folder reconciliation, persistent pause lifecycle, renderer-ready startup handshake, internal audit log routing, and expanded hidden Electron coverage.
2026-08-26 18:43:55 +02:00
Sucukdeluxe 70a9073bf0 fix: invalidate stale startup reconcile generations
Bind deferred startup reconciliation to an explicit FolderMonitor lifecycle generation and invalidate pending work on stop, pause, resume, import replacement, shutdown, and every non-deferred restart. This prevents an old startup request from surviving into a later productive monitor lifecycle.

Challenge each renderer document with a monotonic generation before accepting readiness, reject stale or foreign acknowledgements, and preserve exactly-once release across reloads and renderer initialization recovery. Add dynamic hidden Electron and lifecycle harness coverage for stale readiness, restart, close, shutdown, and ARIA regressions.
2026-08-26 17:26:47 +02:00
Sucukdeluxe a0041e9cda fix: gate startup reconcile on renderer readiness
Defer the productive FolderMonitor startup scan until the renderer has registered its candidate listener and acknowledged readiness. Keep the handshake idempotent across duplicate signals, reloads, window closure, shutdown, paused startup, and renderer initialization failure without delaying unrelated startup work.

Preserve the real over-limit queue count while clamping finite progressbar ARIA values, and cover both regressions with hidden Electron and preload ordering tests.
2026-08-26 17:03:13 +02:00
Sucukdeluxe afd3b70cf3 fix: harden automation reconciliation and pause lifecycle
Keep full folder scans recoverable under duplicate protection and classify every discovered file once before automatic admission.

Separate manual previews from automatic capacity limits, serialize renderer intake, normalize automation counters and intervals, and make Main authoritative for runtime timestamps.

Enforce persistent pause across startup, import, close recovery, resume failures, and reconciliation while preserving read-only paused scans and exactly one activation reconciliation.

Restore failed asynchronous rotation chunks, complete automation localization and unlimited queue accessibility, and tighten hidden integration cleanup coverage.
2026-08-26 15:47:31 +02:00
Sucukdeluxe ca2d1f8fda test: prove restored preview survives resume
Launch an isolated hidden Electron app with the production main process, preload bridge, renderer, and a real ConfigStore pending queue.

Wait for the renderer-ready handshake, click the real automation resume control, and verify the restored manual preview remains byte-identical while Main receives one resume and no start or batch-add IPC calls.

Keep the runtime fully temporary and remove every generated file after the probe exits.
2026-08-26 14:38:54 +02:00
Sucukdeluxe 4b3ad68c07 fix: preserve deferred automation state
Persist detection and deferral telemetry when file-atomic admission cannot fit any candidate.

Derive queue-limited status from the remaining capacity and the next configured destination group while preserving unlimited and disabled states.

Verify that a restored manual preview remains byte-identical through the real resume UI and IPC path, and align the public Active description with the runtime contract.
2026-08-26 14:21:09 +02:00
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