Commit Graph

258 Commits

Author SHA1 Message Date
Administrator
e389b625d6 fix: prevent double context menu on recent files right-click
stopPropagation prevents the event from bubbling to the upload-view
handler which was showing a second context menu.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 13:46:54 +01:00
Administrator
25a6b77650 fix: multiple bugs found in deep code analysis
- Guard startBatch against null uploadManager in nextTick (race on fast cancel)
- Fix updateSettings not creating globalThrottle when none existed at start
- Fix updateSettings not updating globalSemaphore limit live
- Fix retry pause: 2500ms → 3000ms as intended
- Remove dead isError code in history (was always false after continue)
- Add signal.aborted check in API upload generator (hosters.js)
- Add extra signal check in throttle consume loop for faster abort
- Fix doodstream debug log path (process.cwd → __dirname)
- Fix updater fetchJson signal listener leak
- Make progress column sortable in queue table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:16:50 +01:00
Administrator
153ea2b193 fix: atomic config writes to prevent data loss on update/crash
- All config writes now go through _atomicWrite() (write to .tmp, backup
  to .bak, rename .tmp to main config)
- load() falls back to .bak if main config is empty or corrupt
- Prevents 0KB config files caused by process termination during write

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:06:41 +01:00
Administrator
6945b42886 release: v1.6.7 2026-03-11 04:00:53 +01:00
Administrator
f00dc36a41 fix: migrate config from old paths on first launch
Checks alternate AppData folder names and portable exe directory
to find existing config when current path has no config file.
Prevents losing accounts, settings, and queue after updates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 04:00:25 +01:00
Administrator
c462f6bef5 release: v1.6.6 2026-03-11 03:56:29 +01:00
Administrator
1af7f8a94d fix: serialize interval waits so uploads stagger correctly
Previously all jobs read the same lastStartTime simultaneously,
causing them all to start at once. Now uses a per-hoster promise
chain to ensure each job waits its turn.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:56:04 +01:00
Administrator
e6bad780ee release: v1.6.5 2026-03-11 03:51:31 +01:00
Administrator
2e09a3d9d7 feat: selectable recent files with context menu
- Click/Ctrl+Click/Shift+Click to select rows in Files panel
- Ctrl+A to select all, Delete to remove selected
- Right-click context menu with "Copy links" and "Remove"
- Double-click to copy single link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:51:05 +01:00
Administrator
14490d947a release: v1.6.4 2026-03-11 03:47:28 +01:00
Administrator
87833b5808 feat: sortable recent files, start selected context menu, live settings
- Add sortable columns in recent files panel (date, filename, host, link)
- Add "Start selected" to right-click context menu
- Live-apply settings changes during uploads (parallel count, speed limits)
- Add fallback file_code check for upload logging
- Add warning log when upload completes without link

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:47:00 +01:00
Administrator
2ea1013951 release: v1.6.3 2026-03-11 03:39:57 +01:00
Administrator
d972e0e913 fix: add 3 second pause between upload retries
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:39:28 +01:00
Administrator
e38c55988c fix: doodstream upload, start selected, UI improvements
- Fix DoodStream upload: parse <textarea> fields (not just <input hidden>)
- Fix DoodStream upload: handle redirect responses from upload server
- Fix DoodStream upload: submit upload_result to doodstream.com (not CDN)
- Fix DoodStream speed display: switch to async generator streaming
- Add "Start Selected" toolbar button to upload only selected queue items
- Move "Always on Top" from context menu to Settings
- Remove "Shutdown after Finish" from context menu
- Hide error entries from upload history (only show successful uploads)
- Disable background throttling to prevent UI lag on focus switch
- Add debug logging for DoodStream upload troubleshooting

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:38:44 +01:00
Administrator
8995feb541 release: v1.6.2 2026-03-11 03:18:07 +01:00
Administrator
fda07da4bd fix: doodstream two-step upload (follow HTML form redirect)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:17:46 +01:00
Administrator
9da6629e19 release: v1.6.1 2026-03-11 03:14:32 +01:00
Administrator
2e0a8c9d39 feat: stats panel, abort persistence, doodstream error logging
- Stats tab in recent panel (queue counts, sizes, speed, ETA, run time)
- Aborted jobs persist across restart (saved as queued)
- Doodstream: throttle support, better error messages with HTTP status
- Recent panel tab switching (Files / Stats)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:14:06 +01:00
Administrator
cb64c6cd91 release: v1.6.0 2026-03-11 03:09:23 +01:00
Administrator
3d858b1ffd feat: global speed limit, settings cleanup, abort reset, resize panel
- Global speed throttle (shared across all uploads)
- Settings grouped into sections (Uploads, Verhalten, Log)
- Abort all resets jobs to queued (restartable without reupload)
- fileuploader.log writes immediately per upload
- Staggered interval per hoster (not parallel sleep)
- Recent files panel resizable via drag handle
- History hides aborted entries
- Done jobs removed from queue immediately when setting active

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 03:08:56 +01:00
Administrator
bfe98eac0c release: v1.5.5 2026-03-11 02:52:54 +01:00
Administrator
2ddbc41318 fix: toolbar icons, UI improvements, upload manager enhancements
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 02:52:53 +01:00
Administrator
0bde332003 release: v1.5.4 2026-03-11 02:42:47 +01:00
Administrator
f59539e85b feat: improve account-driven uploads 2026-03-11 02:41:32 +01:00
Administrator
cc5ee47fb8 fix: drag&drop many files, layout split, virtual scrolling, keyboard selection
- Use webUtils.getPathForFile (Electron 33+) for reliable file paths
- Use Set for O(1) dedup on large file drops
- Fix flex layout so Files panel stays visible with many queue items
- Fix virtual scrolling viewport height and range cache reset
- Add Ctrl+A (select all), Delete (remove selected) keyboard shortcuts
- Fix Shift+Click range selection to work with virtual scrolling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 02:03:10 +01:00
Administrator
f7e8f9a56c fix: split layout, top-to-bottom queue processing, persist queue on close
- Queue table limited to 50% height with scrollbar, links panel below
- Upload processes files sequentially (file1 all hosters, then file2, etc.)
- Queue state persists immediately after adding files (not debounced)
- Add beforeunload handler to flush pending queue state

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 01:48:39 +01:00
Administrator
6fbfa4b61e release: v1.5.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 01:39:05 +01:00
Administrator
b8b8158abb fix: doodstream login redirect handling + queue only adds files after confirm
- Fix doodstream login: handle redirect on success (server returns HTML dashboard instead of JSON)
- Fix sess_id extraction: match hidden input field format
- Files are now only added to queue after clicking "Uebernehmen" in hoster modal
- Cancel/Escape/click-outside discards pending files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 01:36:50 +01:00
Administrator
d94156943b feat: doodstream login support, auto-remove from queue, byse URL fix
- Add doodstream.com web login (email+password) as alternative to API key
- Fix doodstream login: use X-Requested-With header for JSON response
- Add "Aus der Queue entfernen bei Abschluss" setting
- Fix byse.sx download URLs to use /d/ prefix
- Make config writes async to prevent race conditions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 01:23:27 +01:00
Administrator
7d992206e8 feat: byse.sx health check + performance optimizations for large queues
- Add byse.sx health check via API upload/server endpoint
- Virtual scrolling for queue table (>200 rows renders only visible rows)
- O(1) job lookups via index Maps instead of O(n) array.find()
- Event delegation on queue tbody instead of per-row listeners
- Async config writes to avoid blocking main process
- Increase persist debounce to 3s during uploads (was 250ms)
- Reduce debug logging to state changes only
- Move save button to bottom-right in settings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 00:45:09 +01:00
Administrator
294f6a4de7 release: v1.3.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 00:34:22 +01:00
Administrator
d9dec33ecc feat: add account management tab with login validation
New "Accounts" tab for managing hoster credentials separately from
upload settings. Accounts can be added, edited, and deleted via modal
dialogs. Login credentials are automatically verified on save, showing
status (Bereit/Fehler) in the account list.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 00:34:17 +01:00
Administrator
d9b00f8fd7 fix(release): regenerate latest.yml with correct SHA-512 hash 2026-03-11 00:21:12 +01:00
Administrator
9591399a0d release: v1.2.1 2026-03-11 00:17:30 +01:00
Administrator
34fbfcb016 fix(voe): use 2-step CDN upload flow + add health check 2026-03-11 00:16:37 +01:00
Administrator
71e9232269 release: v1.2.0 2026-03-11 00:04:40 +01:00
Administrator
06d03e6978 feat: add voe.sx login-based upload support 2026-03-11 00:04:18 +01:00
Administrator
100621ad59 release: v1.1.3 2026-03-10 23:47:49 +01:00
Administrator
d3b1957bc0 fix: session-based files panel and remove delete-all 2026-03-10 23:46:53 +01:00
Administrator
c313bc9175 release: v1.1.2 2026-03-10 22:22:35 +01:00
Administrator
26e5a01530 fix: handle release script inherit output 2026-03-10 22:21:50 +01:00
Administrator
b4f4370041 feat: improve uploader UI and persist queue 2026-03-10 22:19:42 +01:00
Administrator
d7ddeda341 release: v1.1.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:23:36 +01:00
Administrator
49655dc154 Fix critical upload stuck-at-queued bug and settings display
Root cause: startBatch() ran synchronously inside ipcMain.handle()
callback, causing webContents.send() events to conflict with the
handle response and never reach the renderer.

Fix: defer startBatch() via process.nextTick so IPC response is
sent first, then upload events flow correctly.

Also:
- Add .catch() on startBatch to surface hidden errors
- Fix settings panel not updating after save (renderSettings)
- Add select-folder IPC handler (was in preload but missing)
- Add debug-log and debug-test-upload IPC for diagnostics
- Add upload-debug.log file for tracing upload flow
- Add unhandledRejection handler for main process
- Add scramble defaults to config-store globalSettings

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 21:19:54 +01:00
Administrator
52b2e0a1e4 fix: vidmoly redirect loop, body leak, update error handling, submenu overflow
- Add max redirect depth (10) to Vidmoly _fetch to prevent stack overflow
- Drain undici response body on redirect to prevent connection leaks
- Fix installUpdate unhandled promise rejection in main.js
- Fix context menu submenu viewport overflow with flip-left CSS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 14:11:03 +01:00
Administrator
9c56fabce1 fix: critical updater and retry bugs, cleanup listener leaks
- updater: replace undici.request() with fetch() (fixes maxRedirections
  error that blocked auto-update from v1.0.0 to v1.1.0)
- upload-manager: move signalCleanup declaration outside try block
  (was causing ReferenceError in catch, silently breaking ALL retries)
- upload-manager: _combineSignals now returns cleanup fn to prevent
  abort listener accumulation over batch lifetime
- upload-manager: _sleep removes abort listener on normal timer fire
- hosters: apiGet removes abort listener in finally block

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 12:30:06 +01:00
Administrator
61681de9a3 test: add unit tests (41) and UI smoke tests (21), fix semaphore listener leak
- 12 Semaphore tests: FIFO ordering, abort support, limit updates, listener cleanup
- 8 Throttle tests: rate limiting, abort signal, concurrent consume, updateRate
- 9 ConfigStore tests: defaults, merge, round-trip, corruption fallback, history cap
- 12 UploadManager tests: progress events, retry, cancel, size filter, concurrency
- 21 UI smoke tests: tab navigation, settings panels, statusbar, context menu
- Fix: Semaphore.release() and updateLimit() now properly remove abort listeners

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:55:50 +01:00
Administrator
3d759eb8a6 fix: semaphore abort support, progress clamp, and additional bug fixes
- Semaphore.acquire() now accepts AbortSignal — waiting jobs are properly
  removed from queue on abort, preventing startBatch from hanging forever
- Clamp upload progress to 0-100% in both upload-manager and renderer
- Upload-manager handles semaphore abort rejection gracefully

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 06:00:38 +01:00
Administrator
25b2afbf11 feat: add queue system, per-hoster settings, retry logic, and full UI overhaul
- Add FIFO semaphore for per-hoster concurrency control
- Add token-bucket speed limiter with abort signal support
- Rewrite upload-manager with retry loop, speed monitoring, and rich progress events
- Add per-hoster settings: retries, max speed, parallel count, restart below speed, time interval, max size
- Add context menu with shutdown-after-finish (sleep/shutdown/restart), always-on-top
- Add z-o-o-m-style queue table with 8 columns, status-colored rows, progress bars
- Add debounced queue rendering with scroll position preservation
- Add statusbar with global speed, total bytes, elapsed time
- Fix speedMonitor interval leak on error and scoping bug
- Fix throttle not respecting abort signal during cancellation
- Fix combined signal listener cleanup
- Bump version to 1.1.0

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 05:57:00 +01:00
Administrator
ab21e7b8ba chore: install rcedit devDependency 2026-03-10 02:36:13 +01:00