-
Multi-Hoster-Upload v3.3.47 Stable
released this
2026-06-07 21:11:53 +02:00 | 6 commits to master since this releaseFour HIGH-impact perf fixes from the audit:
-
Per-batch baseline pre-fetch for byse + doodstream. Until now uploadFile fetched a 100-item file list per JOB to seed its post-upload poller — at 600 byse jobs that was 600 HTTPS roundtrips to api.byse.sx instead of 1 per (hoster, apiKey). Upload-manager now resolves the baseline once via prefetchBaseline, caches the Promise per (hoster, apiKey) for the batch, and passes the Set into uploadFile via opts.{byseBaseline,doodBaseline}. Concurrent jobs share the in-flight Promise — no duplicate fetches even if they start in the same tick.
-
Async folder walk. select-folder + resolve-folder-files used to do fs.readdirSync recursively on the main process, blocking the entire IPC bus on deep folder trees. Now walks asynchronously with fs.promises.readdir + an explicit yield via setImmediate every 8 directories so the event loop stays responsive even on tens of thousands of files.
-
renderHistoryTable fast path. The forEach + 4× escapeHtml + template-string per row was the dominant cost when switching to Verlauf with thousands of entries. Replaced with a single-array string-builder that pushes pre-computed escaped values — same DOM, no behavior change, just less GC pressure and no V8 deopt from the template-literal compose.
-
Progress IPC batching at main. Per-job progress emits (30 active jobs × 4Hz = 120 IPC msgs/sec) are now coalesced at main into 'upload-progress-batch' events flushed every 100ms — deduped by jobId, terminal events (done/error/aborted/skipped) preserved in order. Renderer handles both the new batch event and the legacy single event, so older preload + renderer combinations keep working. Effective IPC volume drops from ~120/s to ~10/s during active uploads.
Downloads
-