feat(dashboard): show desktop update download progress by Soulter · Pull Request #10050 · AstrBotDevs/AstrBot · GitHub
Skip to content

feat(dashboard): show desktop update download progress - #10050

Merged
Soulter merged 1 commit into
masterfrom
codex/desktop-update-progress
Sep 12, 2026
Merged

Soulter merged 1 commit into
masterfrom
codex/desktop-update-progress

Conversation

@Soulter

@Soulter Soulter commented Sep 12, 2026 •

Copy link
Copy Markdown
Member

The desktop update dialog currently shows only a spinner and a generic downloading/installing message. Users cannot see how much of a large update has downloaded or distinguish download, verification, and installation.

Companion Desktop bridge PR: AstrBotDevs/AstrBot-desktop#179

Modifications / 改动点

  • Add DesktopUpdateProgress.vue and connect the update dialog to the optional installAppUpdate(onProgress) callback.

  • Show a determinate progress bar, percentage, and downloaded/total MiB when the download size is known. For unknown or zero totals, show downloaded MiB and an indeterminate bar.

  • Show separate localized download, verification, and installation messages in Chinese, English, Japanese, and Russian.

  • Keep the dialog open during installation and reset progress before each attempt. Older Desktop bridges retain an indeterminate progress bar and the existing generic status.

  • Extend the Desktop bridge TypeScript contract with the optional progress callback and payload type.

  • This is NOT a breaking change.

The companion Desktop change and this WebUI change must both be included in a subsequent Desktop bundle for real progress reporting. A Desktop build pinned to an older AstrBot tag will not pick up this WebUI change automatically.

Screenshots or Test Results / 运行截图或测试结果

cd dashboard && pnpm run build
vue-tsc --noEmit: passed
Vite production build: passed

ruff format .
504 files left unchanged

ruff check .
All checks passed!

git diff --check
Passed

Browser verification used the actual Vue progress component and Vuetify with simulated progress payloads; it did not install a real update:

  • 128 / 320 MiB displays 40% and aria-valuenow="40".
  • Unknown and zero totals display 16.0 MiB with no percentage or aria-valuenow.
  • Verification and installation display their respective status messages and indeterminate progress.
  • No progress callback data preserves the legacy generic status.
  • English, Japanese, and Russian installation messages resolve correctly.

Checklist / 检查清单

  • If there are new features added in the PR, I have discussed them with the authors through issues/emails, etc. This change was requested in the Desktop maintenance conversation; no separate issue/email discussion is linked.
  • My changes have been tested, and verification steps and test results are provided above.
  • No new dependencies are introduced.
  • My changes do not introduce malicious code.

Summary by Sourcery

Add desktop update progress reporting to the dashboard while retaining compatibility with older desktop bridges.

New Features:

  • Show desktop application update download progress with determinate or indeterminate progress indicators and transferred data amounts.
  • Display localized status messages for downloading, verification, and installation in English, Chinese, Japanese, and Russian.

Enhancements:

  • Keep the update dialog open while installation is in progress and preserve legacy behavior when progress data is unavailable.
  • Extend the desktop bridge contract with optional update-progress reporting.

Tests:

  • Validate progress display, unknown totals, update phases, fallback behavior, and localized messages.

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've found 1 issue

Prompt for AI Agents
Please address the comments from this code review:

## Individual Comments

### Comment 1
<location path="dashboard/src/layouts/full/vertical-header/VerticalHeader.vue" line_range="1827-1829" />
<code_context>
           </v-alert>
-          <div class="text-caption mt-3">
+          <DesktopUpdateProgress
+            v-if="desktopUpdateInstalling"
+            :progress="desktopDownloadProgress"
+          />
+          <div v-else class="text-caption mt-3" role="status">
             {{ desktopUpdateStatus }}
</code_context>
<issue_to_address>
**issue (broader_impact):** Older Desktop bridges that provide no progress callback data still render `DesktopUpdateProgress` with `progress === null`; its fallback status is the localized “installing” message, so the existing generic `desktopUpdateStatus` is hidden instead of being preserved.

**Triggers:** When the update is run through an older Desktop bridge that does not report progress.

**Suggested fix:** Render `DesktopUpdateProgress` only when progress data is available, or pass the generic `desktopUpdateStatus` into the component and display it when `progress` is null.
</issue_to_address>

Sourcery assessment

Approval pending. 1 finding to address first.

Blocking findings: dashboard/src/layouts/full/vertical-header/VerticalHeader.vue:1829


Sourcery is free for open source - if you like our reviews please consider sharing them ✨

Comment on lines +1827 to +1829

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

issue (broader_impact): Older Desktop bridges that provide no progress callback data still render DesktopUpdateProgress with progress === null; its fallback status is the localized “installing” message, so the existing generic desktopUpdateStatus is hidden instead of being preserved.

Triggers: When the update is run through an older Desktop bridge that does not report progress.

Suggested fix: Render DesktopUpdateProgress only when progress data is available, or pass the generic desktopUpdateStatus into the component and display it when progress is null.

@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
astrbot-docs 04da8c0 Commit Preview URL

Branch Preview URL
Sep 12 2026, 04:16 AM

@Soulter
Soulter merged commit 11cab79 into master Sep 12, 2026
24 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.

1 participant