Skip to content

feat: harness startup timing, wait counter and clearer update errors - #37

Merged
FlashingChen merged 1 commit into
mainfrom
FlashingChen/issue-35
Aug 24, 2026
Merged

FlashingChen merged 1 commit into
mainfrom
FlashingChen/issue-35

Conversation

@FlashingChen

Copy link
Copy Markdown
Owner

Closes #35

背景

Issue #35 反馈「每次启动要将近两分钟」「自动更新插件好像坏了」。排查结论(详见 plans/issue-35-startup-perf.md):

  • 捆绑运行时冷启动实测 <1s,壳层启动路径无同步网络/磁盘瓶颈 → 慢的根因指向用户侧杀毒软件扫描,非应用缺陷
  • v0.3.5 即当时最新版,updater 返回 not-available 是正确行为;「坏了」的感知来自裸超时报错文案

因此本 PR 不改启动速度,而是补齐可诊断性用户感知

改动

文件 内容
src/main/main.ts spawn→就绪耗时落日志;>45s 输出慢启动提示
src/core/diagnostics.ts 诊断白名单新增 Harness last startupApp update state 两个低敏字段
src/core/ipc.ts HarnessStatus.since 状态时间戳
src/renderer/renderer.ts 连接中/重启中「已等待 N 秒」秒表;>45s 杀毒排除建议;移除三处「首次需 1-2 分钟」误导文案;更新失败识别网络错误并提示代理/手动下载
tests/diagnostics.test.mjs 新增诊断字段格式测试

自审记录

  • smoke 断言用 .includes('已连接'),秒表只在等待态运行,不冲突
  • 秒表 ticker 与静态文案无争写:先写静态文案再启动 ticker(review 中修复的时序问题)
  • TDZ 安全:ticker 相关 let 声明先于所有调用点求值
  • buildDiagnosticText 调用 updater.status() 无副作用(configure() 有守卫)
  • 诊断新增字段不含路径/主机/网络标识,维持低敏承诺
  • 主进程与渲染层慢启动阈值均为 45s 且注释互指

验证

  • npm run verify:typecheck + build + 100 tests 全过
  • --smoke / --harness-smoke 端到端通过

…35)

Issue #35 反馈「启动近两分钟」「自动更新像坏了」。实测捆绑运行时冷启动
<1s、更新链路无缺陷,根因指向用户侧杀毒扫描与裸错误文案。本提交不改变
启动速度,而是补齐可诊断性与用户感知:

- 主进程度量 spawn→就绪耗时并落日志,>45s 输出慢启动提示
- 诊断白名单新增 Harness last startup 与 App update state 两个低敏字段
- 渲染层连接中/重启中显示「已等待 N 秒」,>45s 追加杀毒软件排除建议;
  HarnessStatus 新增 since 时间戳
- 移除「首次需 1-2 分钟」误导文案(加载层/状态菜单/新手引导)
- 更新失败时识别网络类错误并给出代理/手动下载提示

验证:npm run verify 全过(typecheck + build + 100 tests,含新增诊断
字段测试);--smoke / --harness-smoke 端到端通过。
@FlashingChen
FlashingChen merged commit 525c408 into main Aug 24, 2026
1 check 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