jkooe
7689a1f80c
fix(v22): 构建改为**确定性** —— 去掉注入的构建时间,否则「指纹比对是否最新」永远失真
## 现象(真机执行 `deploy --check`)
明明被控端就跑着 v1.4.2、本地也是 v1.4.2,却报「版本不一致」:
本地 : 47326da097c7 (976 KB)
远端 : 6499b3f7ad3c (node v22.20.0)
## 根因
打包时注入了 `__BUILD_TIME__`,于是**同一份代码每次打包的字节都不同** →
内容哈希无法充当「构建身份」,`--check` / 部署后校验只能靠"这次上传的文件"比对,
跨批次就必然误报。
## 修复
- `pack.mjs` 不再注入构建时间(版本与 commit 仍是确定性的)
- `system.info.build.built_at` 改用**入口文件的 mtime**(mtime 不在文件内容里,
因此不破坏字节确定性,同时仍能反映构建时刻)
## 验证
- 连打两次包(间隔 2s),指纹完全相同:`b13ce7d3ba74d0e0b293649f` ✓
- 真机更新:指纹 b13ce7d3ba74、42 项能力、证书钉住一致 ✓
- **再次执行 `--check` → 「✓ 已是最新,无需更新」**(此前同版本却报不一致)✓
## 意义
产物变为**可复现**(reproducible):同一 commit 打出同一份字节,
sha256 可以放心用作分发与更新的身份标识 —— 这对一条「下载即执行代码」的更新通道很关键。
2026-10-05 11:27:28 +08:00
..
2026-10-04 23:54:51 +08:00
2026-10-04 23:54:51 +08:00
2026-09-29 10:55:38 +08:00
2026-10-04 23:54:51 +08:00
2026-10-05 02:25:19 +08:00
2026-09-29 10:55:38 +08:00
2026-10-05 11:27:28 +08:00
2026-10-05 00:13:45 +08:00
2026-10-04 23:03:37 +08:00
2026-10-04 23:03:37 +08:00
2026-10-04 22:54:45 +08:00
2026-09-29 15:47:34 +08:00
2026-09-27 17:04:21 +08:00