|
|
@@ -0,0 +1,42 @@
|
|
|
+# Bot 优化分支安装包升级修复
|
|
|
+
|
|
|
+原测试包 `0.4.16 / c1c17c9` 复用了正式版本号。已发布的桌面包为
|
|
|
+`0.4.16 / 9241531`,来自不同的 Git 构建历史,二者都不包含对方的提交。
|
|
|
+`syncDecision` 因此返回 `unknown`,启动页显示“App 与 Web 的构建先后关系无法确定”。
|
|
|
+之前只验证全新安装和保留较新 Web,没有覆盖这个历史正式包。
|
|
|
+
|
|
|
+本次将分支版本改为 `0.4.17-bot-latency.1`,同步修改 `release.json`、
|
|
|
+`package.json` 和锁文件。版本比较、防降级、事务备份及用户数据处理逻辑保持原实现。
|
|
|
+修复提交为 `49971c62b324d5ee562b99da42ec79af60133489`,产物从干净提交构建。
|
|
|
+这里只生成开发分支安装包,没有创建发布标签、发布版本或合并主线。
|
|
|
+
|
|
|
+## 验证结果
|
|
|
+
|
|
|
+- 原测试包对实际旧正式包返回 `unknown`,新增历史包验收入口能复现失败。
|
|
|
+- 新包对旧正式包返回 `upgrade`;旧 App 对新服务返回 `newer`,保留新服务。
|
|
|
+- 未来正式版 `0.4.17` 对本测试版返回 `upgrade`。
|
|
|
+- `tests/server/desktopSync.test.ts` 的 12 项事务及版本回归测试通过。
|
|
|
+- 成品测试使用独立临时数据目录和 LaunchAgent,先安装并启动旧正式包的完整服务,
|
|
|
+ 再启动新 App;确认服务切换到新构建且保留旧服务设置。退出后服务继续运行、
|
|
|
+ 保留较新服务、停止后重启及启动错误重试均通过,2/2 项成品测试成功。
|
|
|
+- App 严格签名校验、运行时文件清单校验、DMG 校验通过。arm64,Apple Development
|
|
|
+ 签名,未公证。未操作用户已有服务或安装到 `/Applications`。
|
|
|
+
|
|
|
+原始输出与校验值保存在 [results/desktop-upgrade](results/desktop-upgrade)。
|
|
|
+
|
|
|
+## 复现命令
|
|
|
+
|
|
|
+在本 worktree 执行以下命令。`DESKTOP_TEST_PREVIOUS_RUNTIME` 指向旧安装包内完整且
|
|
|
+校验通过的 `Contents/Resources/runtime/web-service`;测试不会修改该目录。
|
|
|
+
|
|
|
+```sh
|
|
|
+NODE_OPTIONS=--no-experimental-webstorage npx vitest run tests/server/desktopSync.test.ts
|
|
|
+npm run desktop:pack -- --config.directories.output=desktop-release/bot-latency-49971c6-20260913
|
|
|
+NODE_OPTIONS=--no-experimental-webstorage \
|
|
|
+ DESKTOP_TEST_EXECUTABLE='/Users/samien/git/bot-message-latency/yaoyao/desktop-release/bot-latency-49971c6-20260913/mac-arm64/夭夭.app/Contents/MacOS/夭夭' \
|
|
|
+ DESKTOP_TEST_PREVIOUS_RUNTIME='/Users/samien/git/yaoyao/desktop-release/v0.4.16/mac-arm64/夭夭.app/Contents/Resources/runtime/web-service' \
|
|
|
+ node --test --test-concurrency=1 desktop/service-sync.test.mjs desktop/startup-feedback.test.mjs
|
|
|
+```
|
|
|
+
|
|
|
+省略 `DESKTOP_TEST_PREVIOUS_RUNTIME` 时继续验证全新安装。版本含预发布后缀时,
|
|
|
+成品测试先提取基础版本再生成较新服务夹具,避免生成含 `NaN` 的版本号。
|