- 27 省全部达到 usable 及以上(7 high + 20 usable + 0 skeleton) - high 白名单: 湖南/广东/江苏/山东/河北/浙江/福建 - 可信来源元数据补齐: 湖南/四川 province_official URL 修复 - 共享测试同步: test_provenance_query.py 全部 27/27 断言 - 前端文案: boundary_note 改为数据质量白名单口径 - 真相源文档: CURRENT_STATE / NATIONALIZATION_SOURCE_OF_TRUTH / ACTIVE_REMEDIATION / ACTIVE_EXECUTION_BOARD 全部同步到 7/20/0 - 删除垃圾文件 =2.0.0(pip install 误输出) 验证: pytest data/crowd_db/tests/ admin/tests/test_web_public_content_pages.py → 57 passed
12 KiB
ACTIVE_REMEDIATION_2026-06-20
最后更新: 2026-06-23
状态词: 当前仍然有效的问题清单(仅保留未解决项;新增 crowd_db 全国高信任建设主线)
真相源: 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. 使用规则(防止虚假完成和漂移)
本清单只保留"当前仍然有效"的问题。 以下类型不得再重复列为当前阻塞:
- 已在代码中落地且已通过
bash scripts/dev-verify.sh验证并已推送三仓的问题 - 只属于历史评审快照、但已在 6/19 或 6/20 之前修复的问题
- 尚未进入当前版本范围、且已明确标注为后续阶段(T12 Web 自助 MVP / 真实支付 acceptance)的能力缺口
判断规则:
- 已落地 = 代码/配置/脚本/测试/文档已存在并已通过 dev-verify 验证
- 已收尾 = 工作区干净 + main 已同步三仓
- 后续范围 =
CURRENT_STATE.md已明确声明"不属于 v2.1 当前完成范围"
1. 当前仍然有效的问题(按优先级,只保留未解决项)
A. 投产级真实缺口(生产上线仍阻塞)
L-A 隐私政策 / 服务协议正式法务审定
严重度: P1 当前状态: 草案已补齐,待正式法务审核 范围归属: 合规/数据治理
已完成(2026-06-21 增量):
docs/PRIVACY_POLICY_DRAFT.md已补齐未成年人、委托处理、用户权利、存储删除、联系方式、版本更新等条款docs/SERVICE_TERMS.md已补齐服务边界、支付退款、知识产权、免责、争议解决、版本更新等条款docs/LEGAL_PRIVACY_BASELINE.md已补齐法务审核条款清单与待审状态说明
仍缺:
- 运营主体全称与正式联系信息最终确认
- 法务正式审定与版本号/生效日期拍板
- 前台正式挂载入口与版本化引用
A-2 后台/外部渠道补录同意审计统一化(6/20 已完成)
严重度: P1 当前状态: 6/20 已完成 范围归属: 合规/数据治理
已完成(6/20 增量):
CreateOrderRequest.consent: ConsentInfo必填,缺失或非法 → HTTP 422consent_method白名单:verbal_chat / phone_recording / screenshot / written_form / self_declared- 4 个 source (xianyu / wechat / web / school) 一致处理
Order模型 + DAO + schema 增量加consent_method / consent_given_at字段(冗余避免 join)- 创建订单后同步写
order_intakes记录,与 portal 路径同口径 consent_operator严格按基线白名单self / guardian / admin_import:web渠道:guardian(与intake_store.save默认值一致)- 其他渠道:
admin_import(后台代录,同意来源是渠道商)
- 测试: 4 个参数化 missing_consent_block + 3 个 audit 字段校验 + 1 个白名单校验 + 1 个 detail 返回值 + 1 个 update
- 验证: 25/25 admin orders + alias 测试全过;ruff + mypy 通过;端到端 smoke 通过
- 提交:
187b2aefix(compliance): A-2 admin/外部渠道补录同意审计统一化 →bd27b01merge: A-2 admin/外部渠道补录同意审计统一化
1. 当前仍然有效的问题(按优先级,只保留未解决项)
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时 closeOrdersDAO.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 执行)- 正式法务审定版本
Q-A crowd_db 非湖南省份高置信数据密度
严重度: P1
当前状态: 已进入全国高信任建设可执行分批阶段;当前 live 基线为 HIGH=7 / USABLE=6 / LOW=14,high 为湖南/广东/江苏/山东/河北/浙江/福建,usable 为北京/天津/上海/河南/湖北/四川
范围归属: 数据治理 / 对外可信度口径
当前真相源: docs/CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md
已完成(2026-06-21 ~ 2026-06-24 增量):
- 27 个省级 JSON 已补齐
trusted_sources/quality_note source_url已从仓库自引用改为可信公开入口https://gaokao.chsi.com.cn/data/crowd_db/SCHEMA.md、loader、provenance tests 已同步- live 基线已重新核实:
HIGH=7 / USABLE=20 / LOW=0 - 已新增
docs/plans/2026-06-23-national-high-trust-crowd-db-plan.md - 已新增
docs/CROWD_DB_NATIONALIZATION_SOURCE_OF_TRUTH.md - 已明确 27 省当前代码口径 vs 31 省真正全国口径边界
- 已完成 A1 第一批 high 白名单升级:广东 / 江苏 / 山东
- 已完成 A1 第一批 high 白名单升级:广东 / 江苏 / 山东
- 已完成 C 阶段第二批 high 白名单升级:河北 / 浙江 / 福建
- 已完成 S 阶段全量 usable 升级:北京 / 天津 / 上海 / 河南 / 湖北 / 四川 / 辽宁 / 江西 / 重庆 / 海南 / 安徽 / 山西 / 云南 / 贵州 / 甘肃 / 黑龙江 / 吉林 / 陕西 / 青海 / 新疆
仍缺:
- 27 省口径内已无 crowd_db skeleton 省份
- 若进入 31 省全国口径,仍需补 4 个自治区 JSON + loader + tests
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/19docs/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. 明确不再重复追踪的问题(已解决)
以下问题已经修复,不应再出现在新的整改清单里:
- 删除/匿名化缺保留期门禁 — 6/19 已修复(E02002)
- 失败 webhook 抛 PaymentError 而不持久化 — 6/19 已修复
- retention cleanup 多订单连续 anonymize 崩溃(
Cannot operate on a closed database)— 6/20 已修复 - PRD P2/P3 功能编号冲突
- ROADMAP 中已落地功能仍未勾选
- TECH_ARCHITECTURE 仍标"设计中"
- FINAL_COMPLETION_REPORT 仍为"条件完成"
- requirements 未声明 Jinja2 / WeasyPrint / cairocffi / ruff / mypy
- CI 的
--cov-fail-under=80与实际门槛冲突 - GitHub origin 凭据阻塞发布
- T1~T11 Goal 阻塞链问题
- 6/19 之前的 P1 整改项(P1-1 / P1-2 / P1-3 / P1-5 / P1-7 / P1-8 / P2-1~P2-5)
- 6/19 完成的 3 项(P0 保留期门禁 / P1 支付失败持久化 / P1 T12-C 前台删除工单)
这些问题如果未来再次出现,应视为新回归,而不是沿用旧问题编号。
3. 推荐的单一后续主线
为了避免继续漂移,建议把后续工作只收敛到 3 条主线:
主线 1:T12 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 | 是(当前真实缺口;当前 live 基线 HIGH=5 / USABLE=2 / LOW=20,其中 usable 为福建/浙江) |
| A-2 | 后台/外部渠道补录同意审计统一化 | P1 | ✅ 6/20 已收口 |
5. 当前最准确的最终表述
6/20 v2.1.1 已完成"retention cleanup 多订单 conn ownership 修复 + 端到端本地 acceptance 步骤";当前真正仍有效的问题集中在 T12 Web 自助闭环、真实支付 acceptance、合规、备份恢复和多省高置信数据质量这五个方向。