From bf23664e701220af8d59e3e6bcf53efb60e5d8e6 Mon Sep 17 00:00:00 2001 From: shunli Date: Sat, 8 Aug 2026 20:00:43 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95(08-08-production-deployment-?= =?UTF-8?q?execution):=20=E6=98=8E=E7=A1=AE=E9=83=A8=E7=BD=B2=E7=9B=AE?= =?UTF-8?q?=E6=A0=87=E9=AA=8C=E8=AF=81=E8=B4=A3=E4=BB=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tasks/08-08-production-deployment-execution/implement.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.trellis/tasks/08-08-production-deployment-execution/implement.md b/.trellis/tasks/08-08-production-deployment-execution/implement.md index 677cac14..c5c9f360 100644 --- a/.trellis/tasks/08-08-production-deployment-execution/implement.md +++ b/.trellis/tasks/08-08-production-deployment-execution/implement.md @@ -24,6 +24,7 @@ - [x] 从 `34181e3` 只读恢复历史 `DEPLOY_SERVER`,从 `5e2d03893826` 恢复首次显式冻结的 `COMPOSE_PROJECT_NAME`;确认历史 `REMOTE_DIR` 只是未验证 fallback,不作为身份基线。值仅保存在当前进程,不写入 task、日志或对话。 - [x] 无回显探测 `DEPLOY_REFRESH_SERVER`,要求 exact forced-command `probe` 唯一 PASS;多个候选或零候选均 PAUSED。 - [x] 修改 production preflight:取消对合法 `trialrun` 命名的单独拒绝,增加部署目标、远端目录、Compose project、systemd contract、公网 origin 的精确身份对账;保留回环/零地址/local regression/staging/shadow/placeholder 防线。 +- [x] 明确 `DEPLOY_SERVER` 验证责任:真实来源在上游历史身份解析;引导器向 preflight 同时传 actual/expected 只用于防进程内漂移,不构成第二个独立身份来源。若重构上游,必须保留独立 target 来源校验,不能把下游恒等比较当作替代。 - [x] 增加只读数据库身份 bootstrap:身份组匹配后读取远端 `.env` 的 `POSTGRES_DB`,在远端转换为 SHA-256 比较基线后仅在内存中传给 target gate;数据库名明文禁止离开远端、回显或落盘,读取失败或身份组不一致时不得进入 Prisma status。 - [x] 增加 synthetic fixture:合法 `hyb-oa-trialrun` 身份通过;错误目录/project/host/db、回环、staging、占位符和多 refresh 候选 fail-closed;断言 bootstrap 不泄露值且顺序早于 status。 - [x] 增加 `PRODUCTION_READ_ONLY_PREFLIGHT=1` 停止点:完成 target/pre-status 与回滚窗口后、进入 `deploy.sh` 前退出;只读证据复核通过前不得运行写入路径。