7.2 KiB
AI 合同平台 V2 RC 核心回归报告
日期:2026-07-12
结论
本地与 192.168.3.90 PostgreSQL smoke 的 RC 核心用户链路均已通过。Docker smoke、两个 schema-check、安全扫描、接口压测和发布质量门已使用同一候选版本复跑通过。
运行环境
| 服务 | 地址 | 结果 |
|---|---|---|
| Contract Web | http://localhost:3000 |
200 |
| Contract API | http://127.0.0.1:8100 |
200 |
| AI Platform API | http://127.0.0.1:8101 |
200 |
| Contract API 数据库 | .runtime/contract-api.sqlite3 |
本地回归库 |
| AI Platform 数据库 | .runtime/ai-platform.sqlite3 |
本地回归库 |
本地 schema-check 返回 warning,原因是本地使用 SQLite 且没有 Alembic/PostgreSQL 扩展。核心表、治理字段、展示缓存一致性检查均为 ok。远端准入仍要求 PostgreSQL smoke schema-check 为 ok。
用户主链路
Playwright 主回归创建全新合同 contract-24cfa3181aad,实际完成:
- 管理员登录。
- 从模板生成合同草稿。
- 下载有效 Word 文档,40,011 bytes。
- 发起异步审查并由 worker 消费,2 个风险项、4 条结构化引用。
- 下载有效审查 PDF,9,790 bytes。
- 上传、预览、单文件下载和两文件 ZIP 批量下载。
- 编辑合同正文和相对方。
- 提交审批、退回、重新提交、审批通过、归档。
- 生成签署证据和归档证据。
- 已归档筛选命中目标合同。
- 审计哈希链完整。
- 浏览器控制台 0 error。
Artifact:output/playwright/core-regression/core-user-flow-summary.json
资产回归
| 场景 | 结果 | Artifact |
|---|---|---|
| 30 个模板全量生成 | 30/30 通过 | output/playwright/template-draft-sweep/2026-07-12T04-11-40-868/template-draft-sweep-summary.json |
| 模板编辑草稿、diff、发布前校验 | 通过并恢复原草稿 | output/playwright/admin-asset-regression/admin-asset-flow-summary.json |
| 标准条款编辑草稿、diff、发布前校验 | 通过并恢复原草稿 | 同上 |
| 审查规则编辑草稿、diff、发布前校验 | 通过并恢复原草稿 | 同上 |
| 模板发布、下线、回滚、恢复发布 | 通过,最终为已发布 | 本地 API 实测 |
| 条款发布、下线、回滚、恢复发布 | 通过,最终为已发布 | 本地 API 实测 |
| 规则发布、下线、回滚、恢复发布 | 通过,最终为已发布 | 本地 API 实测 |
| 法规变更影响扫描 | 页面提交通过,命中模板、条款、规则和合同 | output/playwright/legal-change-impact-result.png |
法律全文页在本地精选库正确显示 14 条版本数据。只有数据库实际存在 v1-legal-20260616 全量版本行时,才使用 789,853 条缓存总数和全量分页快路径。
管理与安全回归
- 身份、租户、邀请、邮箱验证、密码重置、SSO、租户隔离、权限和全局审计:25 项测试通过。
/templates、/admin/legal-assets、/admin/legal-fulltext、/admin/review-results、/admin/identity、/admin/audit、/admin/ai-traces、/health:页面均返回 200,控制台无 error。- 法律问答页面真实提交:HTTP 200,返回 113 字答案、3 条依据,控制台无 error。
本轮修复
- 审查 worker 使用
ReviewTask.tenant_id调用 AI Platform,修复知识库租户被硬编码为system导致引用为空。 - 法律问答代理透传当前请求租户,不再硬编码
system。 - 合同详情“管理履约证据”死按钮替换为可用的签署证据、归档证据和归档表单。
- 实现 SQLAlchemy 文件批量下载并接入文件仓库多选、全选和 ZIP 下载。
- 修复同一事务连续写审计事件时的哈希链顺序,确保事件时间严格单调递增。
- 修复精选法律全文库误报全量总数却返回空页的问题,同时保留真实全量库快路径。
- 修复模板占位符位于正文末尾时误删用户输入末尾标点的问题。
自动化结果
| 检查 | 结果 |
|---|---|
| Contract API 全量测试 | 150 passed |
| Contract Web TypeScript | 通过 |
| Contract Web production build | 通过,82 个静态页面完成生成 |
| 30 模板 sweep | 30 passed / 0 failed |
| 核心 Playwright 主回归 | 通过 |
| 管理资产无污染回归 | 通过 |
git diff --check |
通过,仅有 CRLF 提示 |
准入状态
当前候选版本已完成 192.168.3.90 smoke 部署与复跑。Contract API / AI Platform PostgreSQL schema-check、Docker smoke、核心用户主链路、安全扫描、接口性能和发布质量门均已通过;源码已在 codex/v2-rc-20260712 分支冻结,剩余工作转为生产发布审批与上线回滚演练确认。
远端 PostgreSQL Smoke 收口
远端地址通过 SSH 隧道执行自动化;服务实际部署地址保持不变:Web :13000、Contract API :18100、AI Platform API :18101。
| 检查 | 结果 | Artifact |
|---|---|---|
| Docker smoke | 通过,8 个服务健康,AI golden gate 与 review worker smoke 通过 | project-docs/qa-artifacts/v2-smoke-docker-deploy/2026-07-12T13-21-24 |
| Contract API schema-check | ok,Alembic 20260710_0030 |
project-docs/qa-artifacts/v2-release-quality-gate/2026-07-12T13-28-00/contract_api-schema-check.json |
| AI Platform schema-check | ok,Alembic 20260703_0021,60,007 条 64 维向量及索引通过 |
project-docs/qa-artifacts/v2-release-quality-gate/2026-07-12T13-28-00/ai_platform_api-schema-check.json |
| 核心浏览器主链路 | 通过,风险 2、引用 4、控制台错误 0 | output/playwright/core-regression-remote-2026-07-12-cache-final/core-user-flow-summary.json |
| 30 模板全量起草 | 30/30 通过 | output/playwright/template-draft-sweep/remote-2026-07-12-final/template-draft-sweep-summary.json |
| 法律问答 | HTTP 200,答案 113 字、引用 2 条 | 远端 Contract API 实测 |
| 接口级压测 | 7/7 场景通过,错误率均为 0 | project-docs/qa-artifacts/v2-interface-benchmark/2026-07-12T13-24-00 |
| 安全扫描 | npm 0、Bandit 0、pip-audit 0;冻结索引 821 个文件的源码 secret 新命中 0 | project-docs/qa-artifacts/v2-security-scan/2026-07-12T13-08-00、project-docs/qa-artifacts/v2-source-secret-scan/2026-07-12T15-24-56 |
| 发布质量门 | 通过 | project-docs/qa-artifacts/v2-release-quality-gate/2026-07-12T13-28-00 |
远端法律全文库首屏返回 5 条、总数 789,867;数据库版本计数为 v1-legal-20260616=789853、精选 v1=14。
本轮远端回归额外发现并修复:
/workspace不再加载全租户约 12,000 份合同的全部审计、附件和正文关系,改为按角色查询近 100 条待办。Contract API 容器内存从约 754 MiB 降至约 115 MiB。- 8,000 条性能基线旧审计事件
downloaded在读取时兼容为contract_downloaded,不修改数据库原值和 hash-chain。 - 多 worker 进程内缓存导致 PATCH 后偶发读旧值。当前 smoke 使用单 worker + 2 秒短读缓存,所有写请求前后清缓存;多 worker 配置会自动禁用该缓存。
最新接口 p95:合同列表 145.31ms、合同详情 125.18ms、审批待办 158.43ms、统一搜索 63.53ms、AI Trace 205.51ms、知识文档搜索 97.56ms、知识 chunk 混合检索 64.78ms。