Skip to content

1.0.2 follow-up: receipt records the self-update - #222

Merged
wangzhizhou merged 1 commit into
mainfrom
dev
Nov 5, 2026
Merged

wangzhizhou merged 1 commit into
mainfrom
dev

Conversation

@wangzhizhou

Copy link
Copy Markdown
Contributor

真机演练(报告 226 §5)里,更新程序确实被替换了,但只能靠 mtime 与备份目录反推——因为 ReceiptPayload 从来没编码 updaterBundle,尽管 InstallReceipt 一直有这一列。

改动

  • ReceiptPayload 补 updaterBundle(自更新落地路径;没做自更新时为 null)
  • install-core.swift 新增 7b 段:跑一次带自更新的安装,读回执 JSON 并断言含该字段
  • 报告 226 补 §5 真机复验结果与 §6 两处记账/门禁问题

真机复验结论(已通过)

项 结果
回执 payloadSHA256=732756e5…(= 1.0.2 ZIP)
更新程序被替换 mtime = 负载内 bundle 的 mtime,旧版在 .lampyris-updater-backup-2026-11-05T10-11-54Z
进程未自杀 安装跑到写完回执
残留 upgrade-…/ 只剩 backup;~/Applications 无 staging
数据 config 5d4271fb…、词库 1124 行不变

长期挂着的「更新器自更新」验收项据此闭环(ROADMAP 已勾)。

make verify PASS;离线 56 文件 / 303 例 PASS。

The drill could only infer that the updater bundle had been replaced from
its mtime and the backup directory, because the receipt payload never
included the field the install already computed. It does now, with a test
that decodes the written receipt, and report 226 records the successful
end-to-end verification.

Signed-off-by: wangzhizhou <824219521@qq.com>
@wangzhizhou
wangzhizhou merged commit 328d83e into main Nov 5, 2026
4 checks 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