Files
ai-contract-platform/project-docs/V2-phase3-published-snapshot-read-path-2026-07-02.md
T
yuqei a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
release: freeze V2 release candidate
2026-07-12 15:32:24 +08:00

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_drafting
    • test_review_rule_published_snapshot_controls_recommendation_hit_and_order
    • test_offline_review_rule_is_excluded_from_clause_recommendations
    • test_legal_change_impact_scan_uses_published_clause_snapshot

目标回归中特意制造了“发布快照表与旧 lifecycle metadata 不一致”的状态,用于证明运行时读取确实以快照表为准。

下一步建议

  1. 跑完整 Contract API 工作流测试和 health 测试。
  2. 部署到 192.168.3.90 smoke 环境后复跑 schema-check。
  3. 在 smoke 环境抽样验证模板起草、条款推荐、规则下线、法规影响扫描。