Skip to content

v2.14.0

Choose a tag to compare

@Lousync Lousync released this 31 Aug 03:11
· 814 commits to main since this release

Knowbase Programmer Edition v2.14.0

🎨 体验优化

  • 全局更新状态中枢(新增 src/lib/updateStore.ts):标题栏与设置 → 高级共用同一份数据源(useSyncExternalStore 单例)——标题栏开始下载 → 设置页实时显示同一进度;任一页暂停/取消,另一页立即同步。此前两处各自维护 state 互不感知,下载进度无法跨视图同步
  • 标题栏更新入口升级:有新版/下载中/失败 → 点击展开下拉面板(更新说明摘要 Markdown 渲染、立即下载、进度条 + 暂停/取消、重试、去设置页管理);已下载 → 点击直接运行安装。此前入口点击行为单一、下载失败进度无声消失无任何提示
  • 下载失败可重试:失败态按原因结构化分流——坏字节类(大小/SHA512 校验不符)提示「服务器文件可能未传完整」并提供「重新下载」+「更换镜像重试」(自动聚焦镜像输入框,断点续传);网络类提供「重试」+ 镜像引导。设置页与标题栏均生效
  • latest.yml 缺失预警:下载仍按大小校验放行,但两处 UI 明确提示「更新源文件不完整(latest.yml 缺失)」及发布页手动下载指引,不再等到安装时才报无意义的 integrity check failed
  • 更新日志展示:标题栏下拉面板同样支持折叠查看 Release notes(与设置页一致,Markdown 渲染)

🔧 内部改进

  • 失败原因结构化(主进程 updateService.ts):UpdateResult 新增 reason(size-mismatch / sha512-mismatch / network / channel-all-failed / cancelled / unknown)与 step(download / verify / sha512)诊断字段,UI 文案可精准区分「镜像坏字节」「服务器文件不完整」「纯网络波动」
  • 新增发布脚本:scripts/publish-release.py——安装包发布三件套完整性门:①exe + .blockmap + latest.yml 必须同时存在;②latest.yml 的 sha512/size 与本地 exe 实测一致;③版本号一致;通过后 gh release 一次上传三件套并回读远端资产列表验证齐全。杜绝 v2.13.0「exe 先传、元数据后补」窗口期事故复发
  • 安装包自动清理:安装程序成功拉起后记录标记,下次以新版本启动即删除旧安装包;安装被取消/失败(版本未变)则保留供重试
  • 新增文档:docs/auto-update-improvements.md——自动更新链路问题清单、优化方案与实现记录(含 v2.13.0 发布事故复盘)