- 报销一页式审批工作台父任务及 B-2a/B-2b/只读一致性子任务(AC11 依用户 2026-09-27 确认)
- 报销详情材料预览修复及其部署子任务(由候选 59dc5f6 发布覆盖,原步骤未执行,记录保留)
- 资产事前批准纠偏、Trellis 流程对齐、ERP 遗留精简、预算池并发、采购提交超时
- 各任务 prd 顶部新增收口记录,实现均包含于生产 4a5cd8f2;原未勾清单保留不补勾
- B 组与有真实待办的任务保持进行中
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2.3 KiB
2.3 KiB
设计:报销详情修复部署与公网验证
当前依赖
部署候选必须包含 Task A 和 08-28-reimbursement-nonparticipant-readonly-projection。业务提交为 e8d6766;本次 PRD 修订提交完成后,以最终干净 HEAD 冻结候选,在外部审批记录中写死 SHA,此后不得再产生任何仓库变化。用户必须先单独批准推送;upstream 与严格 provenance 验证通过后,再单独批准连接生产和部署。
发布流
提交本次 PRD 修订并确认工作区干净
-> 冻结当前 HEAD,在外部审批记录写死 SHA
-> 用户单独批准 push
-> push + upstream 祖先关系 + 严格 provenance
-> 用户单独批准生产部署
-> 生产身份与 existing 部署合同只读 preflight
-> 期望 migration 清单核对
-> deploy-existing.sh(SYNC_ENV=0)
-> init + migrate deploy + post migration status
-> /ready + runtime/external smoke + bundle marker
-> 备份合同 refresh
-> 角色化公网检查和材料预览
-> 归档部署子任务与 Task A
- 正式入口使用仓库现有 wrapper,不手工 rsync、不 source 或覆盖远端
.env。 - 本轮代码不包含新 schema,但 init 和 pre/post migration status 仍是必需证据。
pdf-v2缓存仅在进程内,应用重启后自然失效,无缓存迁移或清理动作。- 真实材料检查只记录页数、页序、比例和成功/失败,不保存截图、原件或票面字段。
固定回滚
- 切换前失败:停止,不进入回滚,因为生产应用尚未改变。
- 切换后任一必需门禁失败:停止新版本验证,使用同一 existing 部署入口发布固定提交
f178aa0,保持SYNC_ENV=0,不回退或 reset migration。 - 回滚后必须确认
/ready和 bundle marker 为f178aa0的短 SHA,并复核 migration status、runtime/external smoke、DB/附件挂载与公网入口。 - 回滚来源同样必须干净、已发布且远端可验证;不得以 unpublished override 绕过正式 wrapper。
授权边界
任务规划批准不等于推送批准,推送批准也不等于生产部署批准。候选冻结后先取得独立 push 授权并完成 upstream/provenance 验证,再取得独立部署授权;连接生产、应用切换和合成 owner 撤回写入均不得从前一项授权推定。真实报销永不作为撤回测试对象。