- Ordnerüberwachung panel: proper section layout matching Allgemein style
- Checkbox rows: compact spacing, checkbox before label via CSS order
- Upload inputs: consistent width, stacked vertically
- Backup section: moved to collapsible panel in settings
- Allgemein panel: collapsible
- Context menu: hidden when queue is empty
- Folder monitor badge: instant update on checkbox/path change
- Separator between system and hoster panels
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- New FolderMonitor class with chokidar for watching folders
- Settings UI panel with all options (extensions filter, recursive, auto-start, skip duplicates)
- Auto-queue and auto-upload when files appear in monitored folder
- Fix statusbar to show uploaded/remaining instead of cumulative session bytes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add "+ Ordner" button for recursive folder upload
- Drag & drop auto-detects folders and resolves files recursively
- Minimize to system tray instead of taskbar
- Tray icon with context menu (Öffnen/Beenden)
- Tray tooltip shows upload progress during active uploads
- Fix folder detection heuristic (size === 0, not % 4096)
- Fix concurrent drop guard to prevent double modal
- Fix duplicate "Erneut versuchen" context menu entry
- Add .catch() on async drop handlers
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Previously checked all selected hosters, blocking uploads when an
unrelated hoster (e.g. vidmoly) was down. Now only checks hosters
that actually have jobs to start.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace default Electron icon with custom multi-upload arrows icon.
ICO includes all sizes: 16, 24, 32, 48, 64, 128, 256px.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New "Neues Log pro Session" checkbox in settings. When enabled,
each app session creates a separate log file with timestamp
(e.g. fileuploader-2026-03-11_20-30-15.log). File is only created
when an upload actually completes. When disabled, behaves as before
(single appending log file).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Status bar shows uploaded/total bytes (e.g. "16 GB / 281 GB")
Total is sum of all queue jobs (100GB x 4 hosters = 400GB)
- Fix semaphore acquisition order: hoster-first then global prevents
jobs waiting on a hoster slot from wasting global semaphore slots,
significantly increasing active connection utilization
- Context menu: dynamic count on all labels, singular/plural for
single selection, user-adjusted grouping with separators
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Sticky tab bar: stays fixed at top when scrolling settings/history
- Context menu improvements:
- Click on empty queue area deselects all selected jobs
- Dynamic labels with selection count (e.g. "Links kopieren (3)")
- Singular/plural for single selection ("Link kopieren" vs "Links kopieren")
- "Alle entfernen" to clear entire queue
- Reorganized menu items into logical groups with separators
- Instant retry: "Erneut versuchen" now immediately starts uploading
the selected files instead of just resetting status to preview
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Single atomic write instead of two-phase (prevents split state on crash)
- Timestamped pre-import backup (multiple imports don't overwrite safety net)
- Fix UI refresh: correct function names + refresh globalSettings/alwaysOnTop
- Zero sensitive buffers (key, plaintext, decrypted) after use
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AES-256-GCM + PBKDF2 encrypted config backup (.mhu files).
Export/import all accounts, settings, and history.
Pre-import safety backup of current config.
Password modal with confirmation for export.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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>
- 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>
- 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>
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>
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>
- 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>
- 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>
- 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>
- 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>
- 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>