a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
2.4 KiB
2.4 KiB
V2 Phase 3 Slice 3.6 Published Snapshot Read Path
日期:2026-07-02
目标
Slice 3.6 第二片将模板、标准条款、审查规则、法规变更影响扫描的运行时读路径切到“发布快照表优先,旧 lifecycle metadata fallback”。
这一步不改变 API schema,不删除旧 lifecycle event metadata,也不改变发布/下线/回滚的业务语义。
已完成
- 模板列表、模板详情、模板树、模板编辑草稿、模板 diff、模板起草正文渲染优先读取
template_published_snapshots。 - 标准条款列表/详情、审查规则列表/详情、法律资产编辑草稿、diff、发布无草稿复制前序版本时优先读取
legal_asset_published_snapshots。 - 条款推荐和审查规则命中通过 repository 的
list_standard_clauses()、get_standard_clause()、list_review_rules()自动使用发布快照表。 - 法规变更影响扫描通过 repository 的模板、条款、规则列表自动使用发布快照表。
- lifecycle 状态仍由 lifecycle events 决定,因此规则/条款/模板下线后不会因为快照表存在而继续参与运行时推荐或扫描。
- 当发布快照表无记录时,继续回退到旧 lifecycle event
metadata.draft_snapshot。
实现边界
- 本片不删除 lifecycle metadata。
- 本片不迁移历史 metadata 到快照表,历史补齐仍由后续 backfill/治理任务处理。
- 本片不改变前端字段和 OpenAPI 响应结构。
- 列表筛选仍沿用现有静态资产过滤入口;本片优先保证运行时内容、推荐、规则命中、影响扫描读取发布快照。
本地验证
python -m py_compile覆盖本片变更的 6 个后端模块。- 目标回归:
test_template_edit_diff_validation_and_publish_snapshot_for_draftingtest_review_rule_published_snapshot_controls_recommendation_hit_and_ordertest_offline_review_rule_is_excluded_from_clause_recommendationstest_legal_change_impact_scan_uses_published_clause_snapshot
目标回归中特意制造了“发布快照表与旧 lifecycle metadata 不一致”的状态,用于证明运行时读取确实以快照表为准。
下一步建议
- 跑完整 Contract API 工作流测试和 health 测试。
- 部署到 192.168.3.90 smoke 环境后复跑 schema-check。
- 在 smoke 环境抽样验证模板起草、条款推荐、规则下线、法规影响扫描。