Add date-isolated caches and regression coverage, align scoring identity, and freeze full research reruns while preserving historical artifacts. Record unresolved cache/receipt identity and end-to-end acceptance gaps for branch review only. Co-Authored-By: Claude Code <noreply@anthropic.com>
26 lines
2.6 KiB
Markdown
26 lines
2.6 KiB
Markdown
# 跨午夜修复 · 部署与受控环境验收(2026-09-20)
|
|
|
|
> 本清单不是通过证明。执行记录见 `../tasks/PROGRESS-rectification-cross-midnight-20260920.md`。不使用或索取真实用户出生资料,不借用账号或读取密钥。
|
|
|
|
## 发布身份
|
|
|
|
- [ ] Gitea 本轮含门禁路径提交的质量门成功;镜像 digest 与 deploy-staging 运行绑定同一提交。
|
|
- [ ] staging `/api/health` 的 `deployment.gitCommit` 与 `apiGitCommit` 等于该提交;如 head 后续仅纯文档,执行 docs-only-range 检查。
|
|
- [ ] `/login` 正常、匿名 `/api/account` 返回 401;在授权的内部健康检查中 `swisseph_available=true`。不得发布 API 内网端口。
|
|
- [ ] 由授权运维只读核实 `RECTIFICATION_ENGINE_VERSION` 没有锁定修复前算法身份;不得输出环境文件。环境覆盖可能绕过默认串并使客户端版本探测优先使用旧身份。
|
|
- [ ] 版本接口与新评分响应实际算法标记均为 `rectification-v5-matrix-scoring-8`,成功回执同源;不把仅 started 回执新版当作成功结果新版。
|
|
|
|
## 历史与缓存(受控测试账号、明确虚构数据)
|
|
|
|
- [ ] 打开既有校正会话:仍按其绑定 Skill 包身份运行,旧回执不被重新标成新版,不出现 `skill_identity_mismatch`。
|
|
- [ ] 使用已有旧算法分数缓存的测试会话再次计算同一输入:分别覆盖 minute 与 block_scan。minute 在版本探测成功且无旧环境覆盖时不得把旧缓存当新版;**block_scan 当前仍仅检查证据指纹,未做身份失效,属于已确认未通过项,不能勾选通过**。
|
|
- [ ] 分别检查成功回执原始来源与聚合展示,不能只看 started 的新版标记;现有 SQL `max(engine_version)` 可能覆盖成功阶段的旧版本,不得把聚合标签当作已重新计算的证据。
|
|
- [ ] 创建新测试会话并完成评分:started 与 succeeded 回执均有实际版本,最终展示可区分新旧结果;不改变历史数据或 SQL。
|
|
- [ ] 跨午夜申报窗口与 late-night 时段不被缩小或改映射;结果只作为候选参考,确认门仍关闭。
|
|
|
|
## 本机已知缺口的补验
|
|
|
|
- [ ] 在具备 mcp 等既有项目依赖的 Python 环境运行 `scripts/run_quality_gate.py --profile quick`;不得修改历史冻结哈希/弱化断言来求通过。
|
|
- [ ] 使用完整依赖与有效 symlink 的前端环境运行 tsc、lint、相关及全量测试、build;首页 `/` 保持 Static,首屏 gzip 与本轮基线相比在 ±2%。
|
|
- [ ] 若测试环境无 DB/浏览器/受控登录态,分别记为缺口;测试替身证明路由与身份传递,不替代线上数据库和真人开会话验收。
|