Comfy-Org / Comfy-Org/Comfy-Desktop
[macOS] Dock progress jumps between concurrent model downloads instead of showing aggregate progress
- 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:
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