Skip to content

fix: show partial download progress on initial dashboard load - #1706

Merged
Evanev7 merged 3 commits into
exo-explore:mainfrom
Acelogic:fix/show-partial-download-progress
Mar 12, 2026
Merged

Evanev7 merged 3 commits into
exo-explore:mainfrom
Acelogic:fix/show-partial-download-progress

Conversation

@Acelogic

Copy link
Copy Markdown
Contributor

Summary

  • Dashboard now shows partial download progress for models that were partially downloaded in a previous session, instead of showing 0%
  • Both getModelDownloadStatus() and getInstanceDownloadStatus() now handle DownloadPending entries that carry non-zero downloaded/total bytes

Fixes #1042

Root cause

When exo restarts with partially downloaded models, the DownloadCoordinator emits DownloadPending events (because downloaded_this_session is 0, even though real bytes exist on disk). The main page dashboard only checked for DownloadOngoing entries, so these partially downloaded models showed as 0%.

The dedicated /downloads page already handled this correctly — it renders DownloadPending entries with a progress bar when downloaded > 0. This fix brings the same behavior to the main page.

Changes

For both getModelDownloadStatus() and getInstanceDownloadStatus() in +page.svelte:

  • Accept DownloadPending in addition to DownloadOngoing
  • For DownloadPending entries with downloaded > 0 or total > 0, synthesize a DownloadProgress object from the top-level fields (with speed: 0 and etaMs: 0 since no active download is in progress)
  • Skip DownloadPending entries where both downloaded and total are 0 (truly pending, not yet started)

Test plan

  • Partially download a model, quit exo, relaunch — dashboard should show partial progress instead of 0%
  • Fully downloaded models still show as complete
  • Active downloads still show real-time progress with speed/ETA
  • Models never downloaded show as not started (not falsely showing progress)
  • Dashboard builds without errors (cd dashboard && npm run build)

The dashboard only rendered progress for DownloadOngoing entries,
ignoring DownloadPending entries that carry partial download bytes.
When exo restarts with partially downloaded models, the coordinator
emits DownloadPending (since downloaded_this_session is 0), so the
dashboard showed 0% instead of actual progress.

Now both getModelDownloadStatus() and getInstanceDownloadStatus()
handle DownloadPending entries that have non-zero downloaded bytes,
synthesizing a progress object from the top-level downloaded/total
fields. This makes paused/resumed downloads visible immediately on
the main page, matching the behavior already present on the
dedicated downloads page.

Fixes exo-explore#1042

@Evanev7 Evanev7 left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm (minus formatting)

@Evanev7
Evanev7 enabled auto-merge (squash) March 12, 2026 10:32
@Evanev7
Evanev7 merged commit 0782d90 into exo-explore:main Mar 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Initial download statuses don't support partial download progress

2 participants