Comfy-Org / Comfy-Org/Comfy-Desktop

[macOS] Dock progress jumps between concurrent model downloads instead of showing aggregate progress

Open
#1,421 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
458
Forks
59
Avg merge
22h 18m
Merged PRs (30d)
45

Description

## Description

When multiple models are downloaded concurrently, the macOS Dock progress bar alternates between the progress values of individual downloads instead of displaying the aggregate progress of the complete download batch.

Because macOS exposes a single Dock progress bar for the application, per-download progress updates overwrite each other. As a result, the displayed value can jump forwards and backwards as different downloads report progress.

Screenshot showing concurrent model downloads:

Concurrent model downloads in Comfy Desktop

Video showing the Dock progress jumping between downloads:

https://github.com/user-attachments/assets/791c58b5-a882-4807-acf8-c29df2cc2ac3

## Environment

- Comfy Desktop version: 1.0.39, locally packaged from source
- Source base: `Comfy-Org/Comfy-Desktop@1ff443aa6f5e71ac54d7b8b978d206f80c027ac4`
- Operating system: macOS 15.7.7 (24G720)
- Architecture: Apple Silicon (`arm64`)
- Installation method: Desktop app built from source
- Reproducibility: Consistent
- Custom nodes: Not involved

## Steps to Reproduce

1. Launch a packaged Comfy Desktop build on macOS.
2. Start downloading two or more models concurrently.
3. Use models with different file sizes or download speeds so their percentages differ.
4. Observe the progress indicator on the Comfy Desktop Dock icon.

## Expected Behavior

The Dock should display one byte-weighted aggregate progress value for the complete active download batch:

`sum(received bytes) / sum(total bytes)`

The aggregate should remain accurate as downloads start, complete, fail, or are cancelled, and the Dock progress bar should be cleared only after no downloads remain active.

## Actual Behavior

- The Dock progress bar alternates between the percentages of individual downloads.
- The displayed progress can jump forwards and backwards.
- Concurrent downloads are not represented as one aggregate workload.

## Logs

No application error or exception is emitted. This is a native Dock progress-state issue.

## Additional Context

This is separate from #1063, which concerns identifying concurrent downloads that share a URL but have different destination paths.

The issue occurs in the Electron main-process download progress handling and does not depend on a ComfyUI workflow, model execution, GPU, or custom nodes.

I am willing to work on a focused fix for this issue and submit a pull request. I have already investigated the relevant download progress path and would include regression tests for concurrent aggregation and download lifecycle edge cases.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in the Electron main-process download progress handling described in the issue and reproduce the behavior with two concurrent model downloads. Add regression coverage for concurrent aggregation and download lifecycle edge cases; done means the macOS Dock shows byte-weighted aggregate progress and clears only when no downloads remain active.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
desktop
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.