Skip to content

feat(components): 可选组件支持后台下载(dev-board#581) - #806

Merged
zeweihan merged 1 commit into
masterfrom
claude/components-background-download-581
Sep 10, 2026
Merged

feat(components): 可选组件支持后台下载(dev-board#581)#806
zeweihan merged 1 commit into
masterfrom
claude/components-background-download-581

Conversation

@zeweihan

Copy link
Copy Markdown
Owner

问题

dev-board#581:组件下载应该支持后台下载。原先五个下载入口各自持有进度状态,关掉面板就看不到进度,换个入口再点会重复发起。

修法

  • 新增应用级单例 frontend/src/services/componentDownloads.js(纯工厂 composables/useComponentDownloads.js,编排仍复用 useOptionalComponents 的 pack→模型→ensure 顺序):按 packId 共享 item、在途去重、load 合并不覆盖在途/失败状态、claim 引用计数决定由前台入口还是全局提示交代结果。
  • 首次登录面板:下载中「后台下载」;「稍后再说」/遮罩在下载中不中断下载;「已提示」标记改在开始下载时写。
  • AI 对话拦截卡:下载中可「后台下载」;后台装完只在拦截后无新用户消息且不在生成中时自动重发原消息,否则提示「组件已就绪,可以重新发送」。顺修:同一轮重复 component_required 会把第一张待确认卡关掉。
  • 设置→组件管理、语音、录音面板:共享单例,进入即接上在途进度。
  • zh-CN / en-US locale 各补 5 个键。

验证

  • npm run test:optional-components:74/74(改动前基线 58/58;新用例在旧代码上 ERR_MODULE_NOT_FOUND 转红;去重 / load 合并 / claim 三处逐一破坏均转红,还原后全绿)。
  • check:navcheck:localescheck:emitsbuild:h5 通过。
  • 真渲染走查(puppeteer + dev H5,/api 打桩推进 pack 状态):面板开始下载→「后台下载」→面板关闭并提示→reLaunch 到设置·组件管理看到同一进度且未重复发起安装→完成后全局提示;下载中点「稍后再说」同样装完并提示。23 条断言全过。

未验证

  • AI 对话拦截卡、语音/录音面板的 UI 走查(仅单测与源码断言覆盖)。
  • 真 Electron + 真后端 + 真 pack 的端到端下载。

🤖 Generated with Claude Code

五个下载入口(首次登录面板 / AI 对话拦截卡 / 设置→组件管理 / 语音 / 录音)原先各自
new 控制器,进度跟着组件实例走:面板一关进度就看不到,换个入口再点还会重复发起。
改为应用级单例 services/componentDownloads.js(工厂 composables/useComponentDownloads.js):
按 packId 共享 item、在途去重、load 合并不覆盖、claim 引用计数——有入口在前台由它交代
结果,转入后台或入口卸载后完成/失败走全局提示。

- 首次登录面板:下载中出现「后台下载」,「稍后再说」/点遮罩在下载中也不中断;
- AI 对话拦截卡:下载中可「后台下载」;后台装完仅在此后无新消息且不在生成中时自动重发
  原消息,否则提示可重试;顺修同轮重复 component_required 把首张确认卡关掉的旧 bug;
- 组件管理 / 语音 / 录音:进入即接上在途进度;
- zh-CN / en-US 补 5 个键。

验证:test:optional-components 74/74(新用例先红后绿,三处关键逻辑破坏均转红);
check:nav / check:locales / check:emits / build:h5 通过;真渲染走查面板→后台下载→
reLaunch 到组件管理看到同一进度→完成全局提示,23 条断言全过。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@zeweihan
zeweihan merged commit 6c5c593 into master Sep 10, 2026
9 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 10, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant