记录部署合同生产安装证据(08-02-deployment-preflight-backup-contract-refresh)

这个提交包含在:
2026-08-02 12:18:36 +08:00
父节点 2061c03776
当前提交 9afebdb44d
@@ -58,7 +58,10 @@
- [x] 实施后执行只读安全/部署 reviewer,重点核查 forced-command key 是否真正受限、root target 是否执行部署用户可写内容、聚合器是否短路、状态分类是否准确;reviewer 不改代码。
- [x] 用 `trellis-update-spec` 更新 deployment-trialrun 的稳定合同,避免只把知识留在 task。
- [ ] 中文提交并引用 `08-02-deployment-preflight-backup-contract-refresh`;不自动提交、不自动部署。
- [ ] 代码获批后另行申请生产窗口:先安装 forced-command/probe,再启用 wrapper 强制刷新,执行一次真实部署或受控无业务写入验证;任何 root/authorized_keys 写入和部署均需单独明确批准。
- [x] 中文提交并引用 `08-02-deployment-preflight-backup-contract-refresh`;不自动提交、不自动部署。
- [x] 获得独立生产批准后,安装专用 forced-command/key,完成真实 `probe`、安装完整性复核和 13 项只读聚合体检;未部署应用、未调用 `refresh`、未清理旧目录。
- [ ] 下一次真实发布使用新版 wrapper 验证自动 `refresh` 与完整成功语义;应用部署仍需单独明确批准。
本地验证(2026-08-02):聚合/forced-command fixture 通过,覆盖 13 项汇总、多个并发失败不短路、脱敏输出、四类收尾映射、精确命令白名单、四个 build drop-in、四个 timer、managed key 更新及不受限重复 key 拒绝;deployment safety Vitest 9 passed;环境合同通过;automatic-backup 合同 73 checks passed;全部 shell/Node 语法通过。只读复查发现 forced-command target 缺少运行时自身 ownership/mode/path 校验,已补 `validate_self()`;最终复核又将 systemd build 校验从子串匹配收紧为精确键与最后覆盖值,并用 `OLD_BUILD_SHA` 回归证明不会静默误判。相关聚合、环境合同和 Vitest 均复跑通过;复查未发现新的 root 提权、动态执行或部署顺序 blocker。生产未连接、未安装、未部署。
本地验证(2026-08-02):聚合/forced-command fixture 通过,覆盖 13 项汇总、多个并发失败不短路、脱敏输出、四类收尾映射、精确命令白名单、四个 build drop-in、四个 timer、managed key 更新及不受限重复 key 拒绝;deployment safety Vitest 9 passed;环境合同通过;automatic-backup 合同 73 checks passed;全部 shell/Node 语法通过。只读复查发现 forced-command target 缺少运行时自身 ownership/mode/path 校验,已补 `validate_self()`;最终复核又将 systemd build 校验从子串匹配收紧为精确键与最后覆盖值,并用 `OLD_BUILD_SHA` 回归证明不会静默误判。相关聚合、环境合同和 Vitest 均复跑通过;复查未发现新的 root 提权、动态执行或部署顺序 blocker。该本地验证阶段未连接、安装或部署生产。
生产安装证据(2026-08-02,脱敏):现有 root 管理身份与普通部署身份均唯一定位;专用 key/alias 已建立,root-owned target、managed authorization、临时 staging 清理及已提交源码摘要全部 PASS;forced-command `probe` PASS;生产只读聚合体检 `PASS=13 FAIL=0`。未运行 `refresh`,未部署应用,未删除历史源码目录或环境文件。