Repository navigation
feat(dashboard): show desktop update download progress - #10050
Conversation
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
Deploying with
|

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.vueand connect the update dialog to the optionalinstallAppUpdate(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 / 运行截图或测试结果
Browser verification used the actual Vue progress component and Vuetify with simulated progress payloads; it did not install a real update:
40%andaria-valuenow="40".16.0 MiBwith no percentage oraria-valuenow.Checklist / 检查清单
Summary by Sourcery
Add desktop update progress reporting to the dashboard while retaining compatibility with older desktop bridges.
New Features:
Enhancements:
Tests: