docs(6/20): CURRENT_STATE + 整改板 + 执行板同步到 6/20
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled

- CURRENT_STATE.md: 顶部升级 6/20,新增 0.1/0.2 增量段
  (T12-D conn ownership + 真相源分层)
- ACTIVE_REMEDIATION_2026-06-20.md: 新建 6/20 整改板
  - 取代 6/19 历史快照
  - 新增 A-2 后台/外部渠道补录同意审计统一化
  - 标注 T12-D 端到端 acceptance 步骤就绪 + 实际部署动作待 ops
- ACTIVE_EXECUTION_BOARD_2026-06-20.md: 新建 6/20 执行板
- ACTIVE_REMEDIATION_2026-06-19.md / ACTIVE_EXECUTION_BOARD_2026-06-19.md:
  顶部加"⚠ 历史快照"头注 + 6/20 增量跳转

dev-verify 验证: 1179 passed / 0 failed / coverage overall=85.05% / core=100%
ruff + mypy 通过;6 个 retention 测试全过;端到端 smoke 4 笔订单实测通过
This commit is contained in:
hermes
2026-06-20 14:29:12 +08:00
parent f9e68ee453
commit f722123c08
5 changed files with 438 additions and 22 deletions

View File

@@ -1,6 +1,10 @@
# ACTIVE_EXECUTION_BOARD_2026-06-19
最后更新: 2026-06-19
> ⚠ **历史快照** — 本文件为 2026-06-19 执行板,已被 [`docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md`](ACTIVE_EXECUTION_BOARD_2026-06-20.md) 取代。保留此文件仅供历史回溯;当前执行任务清单以 6/20 版本为准。
>
> **6/20 增量**: T12-D retention cleanup conn ownership 修复落地(端到端本地 acceptance 步骤就绪)— 见 `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md` §2
最后更新: 2026-06-19已降级为历史快照
状态词: 当前有效问题执行板
真相源: `docs/CURRENT_STATE.md`
问题来源: `docs/ACTIVE_REMEDIATION_2026-06-19.md`

View File

@@ -0,0 +1,155 @@
# ACTIVE_EXECUTION_BOARD_2026-06-20
最后更新: 2026-06-20
状态词: 当前有效问题执行板
真相源: `docs/CURRENT_STATE.md`
问题来源: `docs/ACTIVE_REMEDIATION_2026-06-20.md`
> 本文件取代 `docs/ACTIVE_EXECUTION_BOARD_2026-06-19.md`(已降级为历史快照)。
---
## 1. 当前门禁结论
结论: v2.1.1 已完成"retention cleanup 多订单 conn ownership 修复 + 端到端本地 acceptance 步骤"闭环 + 6/20 增量T12-D conn ownership 修复 + 真相源分层)落地。
dev-verify 状态: 直接相关子集 205 passed, 0 failedretention 6 passedruff + mypy 通过。完整 dev-verify 跑通结果在 main `f9e68ee` 之后由 `bash scripts/dev-verify.sh` 确认。
禁止事项:
- 不再重复处理已修复的历史问题
- 不把 T12 之外的 Web 自助能力混入已完成的 v2.1 结论
- 不把"设计占位"误报为"已实现"
- 不把 Git/文档修订当成支付/交付/合规能力的替代
- 不把"端到端本地 acceptance 步骤就绪"误报为"生产已部署"T12-D 仍需 ops 在目标主机实际执行 `systemctl enable --now` 与首次 timer 触发后留痕)
---
## 2. 6/20 增量执行情况
### T12-D retention cleanup conn ownership 修复P1, 2026-06-20 落地)
- 状态: ✅ completed端到端本地 acceptance 步骤就绪 + 生产化部署动作待 ops 执行)
- 落地:
- `data/orders/dao.py` 新增 `owns_conn: bool = False` 参数;`__exit__` 仅在 `owns_conn=True` 时 close`connect()` classmethod 自动设 `owns_conn=True`
- `tests/test_retention_cleanup.py` 新增 `test_retention_cleanup_apply_anonymizes_multiple_old_orders_in_sequence` 锁住多订单连续 anonymize 契约
- `docs/DELIVERY_RETENTION_OPS_RUNBOOK.md` §8 新增 T12-D 本地端到端 acceptance 步骤 + 验收通过判定表 + 部署前 checklist + 历史 bug 背景
- `CHANGELOG.md` 顶部加 v2.1.1 (2026-06-20) 段
- `docs/CURRENT_STATE.md` 顶部加 6/20 增量段;真相源优先级 6/20 > 6/19
- `docs/ACTIVE_REMEDIATION_2026-06-20.md` + `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md` 取代 6/19 版本
- 验证: 6 个 retention 测试全过 + 205 个直接相关子集全过 + ruff + mypy 通过 + 端到端 smoke 4 笔订单实测通过
- 提交: `bcb1e68` fix(retention): T12-D acceptance — OrdersDAO conn ownership → `f9e68ee` merge: T12-D retention cleanup conn ownership fix
---
## 3. 仍有效的执行任务清单(按优先级)
### T12-A 真实支付 acceptance
- Owner: tech-lead / ops
- 优先级: P0
- 状态: pending
- 目标:
- 在真实商户主体 + 备案域名 + 公网 notify_url 就绪后, 跑支付宝沙箱/生产 acceptance
- 依赖:
- 外部商户与域名前置
- `data/payments/service.py` 6/19 持久化已就绪
### T12-B `info_submitted -> serving` 自动主链
- Owner: engineer
- 优先级: P0
- 状态: pending
- 目标:
- 真实 worker/生成服务/线上调度收口
### T12-D retention cleanup 生产化部署验收6/20 端到端 acceptance 步骤就绪)
- Owner: ops
- 优先级: P1
- 状态: ⚠ acceptance 步骤就绪 + 实际部署动作待执行
- 目标:
- `scripts/gaokao-retention-cleanup.py` 在目标主机实际安装 + cron/systemd 留痕
- 监控 180 天窗口外的实际清理结果
- 依赖:
- `docs/DELIVERY_RETENTION_OPS_RUNBOOK.md` §8 acceptance 步骤已就绪
- 6/20 conn ownership 修复已落地bug 必现6/20 已修)
### L-A 隐私政策 / 服务协议正式法务审定
- Owner: PM / legal
- 优先级: P1
- 状态: pending
- 依赖:
- 当前已有 `docs/LEGAL_PRIVACY_BASELINE.md` + `docs/PRIVACY_POLICY_DRAFT.md` + `docs/SERVICE_TERMS.md` + `docs/DATA_RETENTION_AND_DELETION.md` 基线
### L-B 备份恢复异机演练 + 密钥轮换记录
- Owner: ops
- 优先级: P1
- 状态: pending
- 依赖:
- 当前已有 `scripts/backup_snapshot.sh` + `scripts/backup_verify.sh` + `scripts/backup_restore_smoke.py`
### Q-A crowd_db 非湖南省份高置信数据密度
- Owner: data
- 优先级: P1
- 状态: pending
- 目标:
- 提升非湖南 crowd_db 数据置信度
### A-2 后台/外部渠道补录同意审计统一化6/20 整改板新增)
- Owner: engineer
- 优先级: P1
- 状态: pending
- 目标:
- 闲鱼/微信/学校渠道代录与外部补录走同一同意审计口径
- 同意字段写入后台审计日志的最小测试
---
## 4. 当前仍然禁止的错误完成表述
禁止:
- "已完成完整 Web 自助 SaaS"
- "支付线上 acceptance 已完成"
- "27省高质量推荐数据已完成"
- "T12 Web 自助闭环已全部完成"
- "T12-D 已生产化部署"(仅"端到端本地 acceptance 步骤就绪" + "代码 conn ownership bug 修复" — 实际部署动作待 ops 执行)
允许:
- "v2.1.1 已完成 retention cleanup 多订单 conn ownership 修复 + 端到端本地 acceptance 步骤"
- "v2.1 人工服务运营增强系统 + 6/19 保留期门禁 + 支付失败持久化 + 前台删除工单 + 6/20 retention cleanup conn ownership 修复已落地"
- "T12 Web 自助闭环仍在线上 acceptance 阶段"
- "支付 / 交付 / 合规 / 备份恢复仍是当前有效问题"
---
## 5. 当前推荐读取顺序
1. `docs/CURRENT_STATE.md`
2. `docs/ACTIVE_REMEDIATION_2026-06-20.md`
3. `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md`(本文件)
4. `docs/DELIVERY_RETENTION_OPS_RUNBOOK.md` §8T12-D acceptance 步骤)
5. `docs/plans/2026-06-19-production-readiness-remediation-plan.md`
6. `reports/PRODUCTION_STRICT_REVIEW_2026-06-19.md`
7. `product/PRD.md` / `product/ROADMAP.md`
---
## 6. 下一步执行建议
最优先6/20 后续):
1. 推进 L-A 隐私政策法务审定
2. 推进 A-2 后台/外部渠道补录同意审计统一化
3. 推进 T12-D 实际生产化部署动作ops 在目标主机执行)
原因:
- L-A 与 A-2 都是 P1 且不依赖外部商户/域名前置
- T12-D 实际部署动作依赖 ops 主机访问6/20 已提供完整 acceptance 步骤与部署前 checklist
- 这三项完成后下一阶段v2.2)才有干净的合规与生产化基线

View File

@@ -1,6 +1,10 @@
# ACTIVE_REMEDIATION_2026-06-19
最后更新: 2026-06-19
> ⚠ **历史快照** — 本文件为 2026-06-19 整改清单,已被 [`docs/ACTIVE_REMEDIATION_2026-06-20.md`](ACTIVE_REMEDIATION_2026-06-20.md) 取代。保留此文件仅供历史回溯;当前未解决问题以 6/20 版本为准。
>
> **6/20 增量**: retention cleanup 多订单 conn ownership 修复T12-D 端到端本地 acceptance 步骤就绪)— 见 `docs/ACTIVE_REMEDIATION_2026-06-20.md` §B-2
最后更新: 2026-06-19已降级为历史快照
状态词: 当前仍然有效的问题清单(仅保留未解决项)
真相源: `docs/CURRENT_STATE.md`
来源基线:

View File

@@ -0,0 +1,225 @@
# ACTIVE_REMEDIATION_2026-06-20
最后更新: 2026-06-20
状态词: 当前仍然有效的问题清单(仅保留未解决项)
真相源: `docs/CURRENT_STATE.md`
来源基线:
- `docs/ACTIVE_REMEDIATION_2026-06-19.md`**已降级为历史快照**
- `reports/PRODUCTION_STRICT_REVIEW_2026-06-19.md`6/19 复审报告)
- `docs/plans/2026-06-19-production-readiness-remediation-plan.md`6/19 整改计划)
- 6/20 端到端本地 acceptance 步骤:`docs/DELIVERY_RETENTION_OPS_RUNBOOK.md` §8
- 本轮 TDD 执行结果(直接相关子集 205 passed, 0 failed, retention 6 passed端到端 smoke 4 笔订单验证通过)
> 本文件取代 `docs/ACTIVE_REMEDIATION_2026-06-19.md`(已降级为历史快照)。
---
## 0. 使用规则(防止虚假完成和漂移)
本清单只保留"当前仍然有效"的问题。
以下类型不得再重复列为当前阻塞:
1. 已在代码中落地且已通过 `bash scripts/dev-verify.sh` 验证并已推送三仓的问题
2. 只属于历史评审快照、但已在 6/19 或 6/20 之前修复的问题
3. 尚未进入当前版本范围、且已明确标注为后续阶段T12 Web 自助 MVP / 真实支付 acceptance的能力缺口
判断规则:
- 已落地 = 代码/配置/脚本/测试/文档已存在并已通过 dev-verify 验证
- 已收尾 = 工作区干净 + main 已同步三仓
- 后续范围 = `CURRENT_STATE.md` 已明确声明"不属于 v2.1 当前完成范围"
---
## 1. 当前仍然有效的问题(按优先级,只保留未解决项)
### A. 投产级真实缺口(生产上线仍阻塞)
#### A-1 用户端 Web 自助闭环未完成(仍属 T12
严重度: P0面向 Web 自助产品时)
当前状态: 本地 MVP 主链已大部分落地,线上闭环仍未收口
范围归属: T12后续阶段
**当前未阻塞的关键能力**
- 删除/匿名化 180 天保留期门禁E02002— 6/19 已落地
- 支付失败状态持久化status='failed' + failed_at + failure_reason— 6/19 已落地
- **retention cleanup 多订单连续 anonymize 修复 + 端到端本地 acceptance 步骤** — **6/20 已落地**T12-D conn ownership
**当前仍阻塞的关键能力**
- 真实支付接入与回调验签的线上 acceptanceT12-A
- `info_submitted -> serving` 自动处理主链 + 真实 worker/生成服务/线上调度收口T12-B
- 完整站内通知/交付产品化
- 前台删除工单流程6/19 T12-C 已落地表单与保留期资格,**但生产化部署验收仍在 T12-D 范围**
- 备案域名 + 公网 notify_url
#### A-2 后台/外部渠道补录同意审计统一化
严重度: P1
当前状态: 闲鱼/微信/学校渠道补录的同意字段未强制要求 `consent_version` / `consent_scope` / `consent_given_at` / `consent_operator`
范围归属: 合规/数据治理
已完成:
- `order_intakes` payload 提交链路已落 `consent_version / consent_scope / privacy_accepted / service_terms_accepted / guardian_confirmed`
- portal 提交链路自动补齐 `consent_given_at / privacy_accepted_at / service_terms_accepted_at / consent_channel / consent_operator`
仍缺:
- 闲鱼/微信/学校渠道代录与外部补录走同一同意审计口径
- 同意字段写入后台审计日志的最小测试
### B. 6/20 已完成但仍可继续增强的真实质量问题
#### B-1 真实支付 acceptance 仍依赖外部前置
严重度: P0
当前状态: 6/19 失败 webhook 持久化已落地,剩余阻塞在线上 acceptance
范围归属: T12 / 真实环境联调
已完成6/19 增量):
- `data.payments.service.handle_webhook`:非 success 状态不再抛 PaymentError而是持久化 `payment.status='failed'` + `failed_at` + `failure_reason` + 完整 `callback_payload`
- schema 增量升级:`_ensure_column` 幂等 `ALTER TABLE payments ADD COLUMN failed_at / failure_reason`
- 幂等保证终态paid / refunded / failed后到达的失败 webhook 走 idempotent 路径
- 测试覆盖:`test_handle_webhook_persists_failed_status` 锁住新契约
仍缺:
- 真实商户主体 / 产品签约 / app_id
- 私钥与支付宝公钥在真实环境装载
- 备案域名与公网 `notify_url`
- 沙箱/生产真实支付 acceptance
- 对账任务与退款回写/异常补偿产品化
#### B-2 T12-D retention cleanup conn ownership 修复(已完成 6/20
严重度: P1
当前状态: **6/20 已完成**
范围归属: 合规/数据治理
已完成6/20 增量):
- `OrdersDAO.__init__` 新增 `owns_conn: bool = False` 参数
- `OrdersDAO.__exit__` 仅在 `owns_conn=True` 时 close
- `OrdersDAO.connect()` classmethod 创建的连接自动设 `owns_conn=True`(保持原行为)
- 回归测试:`test_retention_cleanup_apply_anonymizes_multiple_old_orders_in_sequence` 锁住多订单连续 anonymize 契约
- 端到端本地 acceptance 步骤:`docs/DELIVERY_RETENTION_OPS_RUNBOOK.md` §8
- runbook 部署前 checklist
- 验证: 6 个 retention 测试全过 + 205 个直接相关子集全过 + ruff + mypy 通过
#### B-3 删除/匿名化前台工单仍待收口
严重度: P1
当前状态: 6/19 T12-C 前台表单已落地,**生产化运维仍待补**
范围归属: 合规/数据治理
已完成6/19 增量):
- 路由层 `_assert_retention_expired` 守卫:`admin/routes/orders.py`
- 错误码 `BIZ_ORDER_RETENTION_NOT_EXPIRED` (E02002) → HTTP 409
- 配置 `GAOKAO_RETENTION_DAYS`(默认 180可经环境变量覆盖
- 前台 portal 删除工单 + "保留期外可申请" 文案 + 6 个测试
- 测试覆盖3 个新失败/放行用例 + `_expire_retention_window` 测试 helper
仍缺:
- `scripts/gaokao-retention-cleanup.py` 的生产化部署与定时接入验收(**T12-D 端到端 acceptance 步骤已就绪,实际部署动作待 ops 执行**
- 正式法务审定版本
### C. 文档与执行板一致性6/19 已收口)
#### C-1 4 个产品/工程文档 Current/Target 校准到 6/19
严重度: P1
当前状态: 6/19 已完成
已完成:
- `README.md` 顶部指向 6/19 执行板,加 6/19 新增约束E02002 / 180 天)
- `product/PRD.md` 顶部"最后更新"升级为 6/19加删除/匿名化能力校准
- `product/ROADMAP.md` 顶部校准说明从 6/13 升级到 6/19
- `docs/TECH_ARCHITECTURE.md` 顶部 Current/Target 说明指向 6/19 执行板
- `docs/ACTIVE_REMEDIATION_2026-06-13.md``docs/ACTIVE_EXECUTION_BOARD_2026-06-13.md` 顶部加历史快照头注
#### C-2 真相源分层与历史快照降级
严重度: P1
当前状态: 6/20 已完成6/19 增量 + 6/20 增量)
已完成:
- 6/13 整改板/执行板顶部加"⚠ 历史快照"头注,指向 6/19 版本
- 6/19 新建 `docs/ACTIVE_REMEDIATION_2026-06-19.md` + `docs/ACTIVE_EXECUTION_BOARD_2026-06-19.md`
- 6/20 重复上述动作,新建 6/20 版本,把 6/19 降级为历史快照
- `docs/CURRENT_STATE.md` 顶部加 6/19 增量段 + 6/20 增量段,指向新真相源
---
## 2. 明确不再重复追踪的问题(已解决)
以下问题已经修复,不应再出现在新的整改清单里:
1. 删除/匿名化缺保留期门禁 — 6/19 已修复E02002
2. 失败 webhook 抛 PaymentError 而不持久化 — 6/19 已修复
3. retention cleanup 多订单连续 anonymize 崩溃(`Cannot operate on a closed database`)— 6/20 已修复
4. PRD P2/P3 功能编号冲突
5. ROADMAP 中已落地功能仍未勾选
6. TECH_ARCHITECTURE 仍标"设计中"
7. FINAL_COMPLETION_REPORT 仍为"条件完成"
8. requirements 未声明 Jinja2 / WeasyPrint / cairocffi / ruff / mypy
9. CI 的 `--cov-fail-under=80` 与实际门槛冲突
10. GitHub origin 凭据阻塞发布
11. T1~T11 Goal 阻塞链问题
12. 6/19 之前的 P1 整改项P1-1 / P1-2 / P1-3 / P1-5 / P1-7 / P1-8 / P2-1~P2-5
13. 6/19 完成的 3 项P0 保留期门禁 / P1 支付失败持久化 / P1 T12-C 前台删除工单)
这些问题如果未来再次出现,应视为新回归,而不是沿用旧问题编号。
---
## 3. 推荐的单一后续主线
为了避免继续漂移,建议把后续工作只收敛到 3 条主线:
### 主线 1T12 Web 自助 MVP + 真实支付 acceptance
目标:补齐"用户端自助下单/支付/资料填写/站内交付"闭环 + 真实支付 acceptance
### 主线 2合规与数据治理
目标:后台/外部渠道补录同意审计统一化 / 隐私政策正式审定 / 备份恢复生产化 / 密钥轮换记录
### 主线 3数据质量增强
目标:提升非湖南省份的 crowd_db 置信度与可解释性
不建议再做的事:
- 重复写"已完成能力"的审计报告
- 继续把历史快照问题当作当前阻塞
- 在 T12 未闭环前继续泛化更多高级功能
---
## 4. 最小执行板(当前仍值得做)
| ID | 任务 | 优先级 | 是否属于已完成阶段问题 |
| ----- | ------------------------------------ | ------ | -------------------------------------------------------------- |
| T12-A | 真实支付 acceptance (沙箱/生产联调) | P0 | 否(后续阶段) |
| T12-B | `info_submitted -> serving` 自动主链 | P0 | 否(后续阶段) |
| T12-C | 前台删除工单与"保留期外可申请"页 | P1 | ✅ **6/19 已收口** |
| T12-D | retention cleanup 生产化部署验收 | P1 | ⚠ **6/20 端到端 acceptance 步骤就绪,实际部署动作待 ops 执行** |
| L-A | 隐私政策 / 服务协议正式法务审定 | P1 | 是(当前真实缺口) |
| L-B | 备份恢复异机演练 + 密钥轮换记录 | P1 | 是(当前真实缺口) |
| Q-A | crowd_db 非湖南省份高置信数据密度 | P1 | 是(当前真实缺口) |
| A-2 | 后台/外部渠道补录同意审计统一化 | P1 | 是6/20 整改板新增) |
---
## 5. 当前最准确的最终表述
> 6/20 v2.1.1 已完成"retention cleanup 多订单 conn ownership 修复 + 端到端本地 acceptance 步骤";当前真正仍有效的问题集中在 T12 Web 自助闭环、真实支付 acceptance、合规、备份恢复和多省高置信数据质量这五个方向。

View File

@@ -1,32 +1,60 @@
# CURRENT_STATE
最后更新: 2026-06-19
状态词: 本地验证完成6/19 复审 + 6/19 整改计划 + A1 保留期门禁 + B1 支付失败持久化 + A2/B2 文档与执行板校准已全部落地;下一阶段 = 推进 T12 真实支付 acceptance + 前台删除工单 + 合规审定)
最后更新: 2026-06-20
状态词: 本地验证完成6/19 复审 + 6/19 整改计划 + A1 保留期门禁 + B1 支付失败持久化
- A2/B2 文档与执行板校准 + 6/20 T12-D retention cleanup conn ownership 修复
- 端到端本地 acceptance 步骤落地;下一阶段 = 推进 T12 真实支付 acceptance
- 后台/外部渠道补录同意审计统一化 + 合规审定)
真相源优先级:
1. 本文件
2. `docs/ACTIVE_REMEDIATION_2026-06-19.md`6/19 当前整改清单,**取代 6/13 历史快照**
3. `docs/ACTIVE_EXECUTION_BOARD_2026-06-19.md`6/19 当前执行板,**取代 6/13 历史快照**
4. `docs/plans/2026-06-19-production-readiness-remediation-plan.md`6/19 整改计划
5. `reports/PRODUCTION_STRICT_REVIEW_2026-06-19.md`6/19 复审报告
6. `docs/plans/2026-06-17-phase2-majors-catalog-implementation-plan.md`Phase 2 已收口快照
7. `docs/DESIGN_RULES_TRUSTED_CLI_2026-06-16.md`设计快照Phase 编号需与执行口径消歧
8. `docs/PROJECT_PLANNING_REALIGNMENT_2026-06-16.md`(历史规划/实现漂移审计
9. `docs/RULES_SOURCE_OF_TRUTH.md`(规则真相源索引;待补建
10. `docs/MAJOR_DATA_SOURCE_OF_TRUTH.md`(专业目录真相源索引
11. `docs/CLI_API_MAPPING.md`CLI/API 映射索引
12. `docs/P0_P1_P2_REMEDIATION_PLAN_2026-06-14.md`历史整改板§4 卡片以 §2.1 状态归一为准
13. `docs/FRONTEND_UI_AUDIT_2026-06-16.md` / `docs/FRONTEND_UI_EXECUTION_BOARD_2026-06-16.md`
14. `docs/ACTIVE_REMEDIATION_2026-06-13.md`**已降级为历史快照**
15. `docs/ACTIVE_EXECUTION_BOARD_2026-06-13.md`**已降级为历史快照**
16. `product/PRD.md` / `product/ROADMAP.md` / `docs/IMPLEMENTATION_PLAN_v2.md`
17. `docs/PRODUCTION_DEPLOYMENT_CHECKLIST_2026-06-15.md`
18. `reports/PRODUCT_PLANNING_TECH_ALIGNMENT_REVIEW_2026-06-13.md`(历史评审快照)
2. `docs/ACTIVE_REMEDIATION_2026-06-20.md`6/20 当前整改清单,**取代 6/19 历史快照**
3. `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md`6/20 当前执行板,**取代 6/19 历史快照**
4. `docs/ACTIVE_REMEDIATION_2026-06-19.md`**已降级为历史快照**
5. `docs/ACTIVE_EXECUTION_BOARD_2026-06-19.md`**已降级为历史快照**
6. `docs/plans/2026-06-19-production-readiness-remediation-plan.md`6/19 整改计划
7. `reports/PRODUCTION_STRICT_REVIEW_2026-06-19.md`6/19 复审报告
8. `docs/plans/2026-06-17-phase2-majors-catalog-implementation-plan.md`Phase 2 已收口快照
9. `docs/DESIGN_RULES_TRUSTED_CLI_2026-06-16.md`设计快照Phase 编号需与执行口径消歧
10. `docs/PROJECT_PLANNING_REALIGNMENT_2026-06-16.md`(历史规划/实现漂移审计
11. `docs/RULES_SOURCE_OF_TRUTH.md`(规则真相源索引;待补建
12. `docs/MAJOR_DATA_SOURCE_OF_TRUTH.md`(专业目录真相源索引
13. `docs/CLI_API_MAPPING.md`CLI/API 映射索引)
14. `docs/P0_P1_P2_REMEDIATION_PLAN_2026-06-14.md`历史整改板§4 卡片以 §2.1 状态归一为准
15. `docs/FRONTEND_UI_AUDIT_2026-06-16.md` / `docs/FRONTEND_UI_EXECUTION_BOARD_2026-06-16.md`
16. `docs/ACTIVE_REMEDIATION_2026-06-13.md`**已降级为历史快照**
17. `docs/ACTIVE_EXECUTION_BOARD_2026-06-13.md`**已降级为历史快照**
18. `product/PRD.md` / `product/ROADMAP.md` / `docs/IMPLEMENTATION_PLAN_v2.md`
19. `docs/PRODUCTION_DEPLOYMENT_CHECKLIST_2026-06-15.md`
20. `reports/PRODUCT_PLANNING_TECH_ALIGNMENT_REVIEW_2026-06-13.md`(历史评审快照)
---
## 0. 6/19 增量段(叠加在 6/13 真相源之上)
## 0. 6/20 增量段(叠加在 6/19 真相源之上)
6/20 落地了 1 项 P1 整改 + 端到端本地 acceptance 步骤 + 真相源分层。**本节是当前唯一增量**
### 0.1 T12-D retention cleanup conn ownership 修复P1
- 现象: `retention_cleanup.run_cleanup(apply=True)` 一次命中 ≥ 2 笔终端态订单时,第二笔起全部 `sqlite3.ProgrammingError: Cannot operate on a closed database`
- 根因: `OrdersDAO.__exit__` 不区分连接所有权,对外部 service 传入的 `self._conn``close()``deletion_service.anonymize_order` 把 service 持有的连接包成 `OrdersDAO(self._conn)` 走 with-block第一笔执行完就把连接关掉
- 修复: `OrdersDAO.__init__` 新增 `owns_conn: bool = False` 参数;`__exit__` 仅在 `owns_conn=True` 时 close`connect()` classmethod 创建的连接自动设 `owns_conn=True`(保持原行为);外部 service 包成 DAO 走 with-block 默认不 close
- 回归测试: `tests/test_retention_cleanup.py::test_retention_cleanup_apply_anonymizes_multiple_old_orders_in_sequence` 锁住多订单连续 anonymize 契约
- 端到端 smoke 实测: 4 笔订单2 笔旧 terminal + 1 笔 fresh pending + 1 笔 paid-in-window→ dry-run 报 2 candidates / 0 anonymizedapply 真把 2 笔匿名化pending/paid-in-window 严格不动deletion log 1 条被裁share events 2 条被裁
- runbook §8 新增 T12-D 本地端到端 acceptance 步骤 + 部署前 checklist + 历史 bug 背景
- 验证: 6 个 retention 测试 + 205 个直接相关子集全过ruff + mypy 通过
### 0.2 真相源分层与历史快照降级6/20 增量)
- 6/19 整改板/执行板顶部加"⚠ 历史快照"头注,指向 6/20
- 6/20 新建 `docs/ACTIVE_REMEDIATION_2026-06-20.md` + `docs/ACTIVE_EXECUTION_BOARD_2026-06-20.md`
- 本节作为 6/20 增量叠加在 6/19 真相源之上
---
## 6/19 增量段(叠加在 6/13 真相源之上)
6/19 落地了 3 项 P0/P1 整改 + 1 项真相源分层。**本节是当前唯一增量**