• v3.3.55 f0fb5f881f

    Administrator released this 2026-06-08 23:04:14 +02:00 | 6 commits to master since this release

    ETA in the status bar now factors in queued/waiting jobs, not just the ones currently uploading.

    Cause: files added via Datei/Ordner-Picker or via folder drag-drop arrived in the renderer with size=null because walkFolderAsync only returned paths. Their queue entries got bytesTotal=0. The ETA computation correctly walked bytesRemaining, but each waiting job contributed 0, so the ETA only reflected the bytes left in the actively-uploading rows.

    Fix:

    • walkFolderAsync now fs.stat each file as it walks (the cost is amortized into the existing setImmediate yield pacing — still non-blocking on the main thread).
    • New select-folder-with-sizes IPC + get-file-sizes IPC for paths-only legacy callers to hydrate.
    • pickFolder() prefers select-folder-with-sizes; addPathsToQueue() handles both string[] and {path,name,size}[] shapes and fires a fire-and-forget get-file-sizes for any size==0 entries (drag-drop folder path or stale legacy returns).
    • When sizes arrive late, queueJobs.bytesTotal is patched in place and the queue + status bar re-render. ETA jumps to the realistic 'all-queue' estimate.

    This is why your 4 active uploads showed ETA 00:53 with 432 more waiting — only the active 4 had bytesTotal, the remaining 432 contributed 0 bytes to the calc. Now the ETA reflects the full queue.

    Downloads