Skip to content

完善插件下载进度并修复安装超时与取消重试 - #37

Merged
UE-DND merged 8 commits into
masterfrom
codex/plugin-download-progress
Oct 2, 2026
Merged

UE-DND merged 8 commits into
masterfrom
codex/plugin-download-progress

Conversation

@UE-DND

@UE-DND UE-DND commented Oct 2, 2026

Copy link
Copy Markdown
Owner

背景

插件壁纸下载期间缺少响应体进度,HTTP 超时原先只覆盖获取响应头,可能让安装队列长时间停滞。取消后立即重试、资源缓存校验失败及提交后的广播异常也会导致安装状态失真。

变更

  • 为 HTTP 字节响应增加可选下载进度回调,报告已接收字节;压缩或未知长度响应不使用不可靠的总量。请求超时覆盖响应体读取,并保留 TimeoutError,使安装失败可重试。
  • 修正插件下载、校验和安装阶段的进度分配;壁纸下载报告字节进度,整体百分比保持单调。
  • 壁纸解码支持取消和 20 秒超时,并释放对象 URL、计时器和取消监听;HTTP 请求及插件安装结束后清理合并信号监听。
  • 为安装尝试分配独立标识,防止已取消任务的迟到回调、成功或失败结果覆盖、删除新重试任务。
  • 文本资源完整性校验失败后以 cache: 'reload' 刷新相同摘要 URL,最多重试一次。
  • 隔离安装提交后的广播异常,避免已经持久化的安装因通知失败误报失败或触发资源回滚。

兼容性与迁移

  • 数据库、数据结构及线格式版本保持 1,无需迁移。
  • HttpRequestOptions 新增可选 cache,HttpResponse.bytes() 新增可选进度回调,并导出 HttpDownloadProgress;现有无参数调用保持兼容。
  • 宿主内部 mergeAbortSignals() 改为返回 { signal, dispose },所有调用点已同步调整。
  • HTTP 超时现在覆盖响应体消费,壁纸解码超过 20 秒会失败并允许重试。

验证

  • vp run check:通过,格式、Lint、类型和 Svelte 检查无错误或警告。
  • vp run test:通过,226 个测试文件、1307 项测试;任务同时完成官方插件构建。
  • git diff --check origin/master...HEAD:通过。
  • 回归测试覆盖响应体超时与取消、下载进度、缓存刷新、取消后立即重试、广播失败、壁纸解码停滞和监听清理。
  • 未执行浏览器回归或手动界面验证。

UE-DND and others added 8 commits October 1, 2026 00:10
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
@UE-DND
UE-DND merged commit 176bf83 into master Oct 2, 2026
8 checks passed
@UE-DND
UE-DND deleted the codex/plugin-download-progress branch October 2, 2026 02:50
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