7bc74f06f2
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 6m47s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 42m10s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m59s
13 KiB
13 KiB
AI 合同平台 V2 上线准入检查清单
日期:2026-07-10 最新更新:2026-07-16
当前结论
V2 当前候选版本已完成本地回归和 192.168.3.90 PostgreSQL smoke 验收。Docker smoke、两个 schema-check、无邮箱身份闭环、安全扫描、接口压测和发布质量门均已通过。
当前仍是生产 No-Go。 剩余阻断项包括:真实 AI Provider 与黄金样本验收、V2 阿里云前端域名/HTTPS 发布、正式后端 production 配置、PostgreSQL 与文件/MinIO 异地备份恢复、监控告警、内容法务签批,以及把当前 dirty worktree 固化为不可变 RC 并让 CI 实际通过。
本轮本地与远端核验:
| 检查项 | 结果 | 说明 |
|---|---|---|
| 本地前端可访问 | 通过 | http://localhost:3000/workspace 返回 200 |
| 本地 Contract API health | 通过 | http://localhost:8100/health 返回 200 |
| 本地 Contract API schema-check | 警告 | 返回 status=warning,原因是本地使用 SQLite;正式准入必须在 PostgreSQL smoke 上为 ok |
| 核心页面 smoke | 通过 | 工作台、模板起草、合同台账、模板库、合同仓库、数据看板均返回 200 |
| 核心 API smoke | 通过 | contracts/templates/workspace/files 均返回 200 |
| 前端类型检查 | 通过 | npm run typecheck 通过 |
| 资产计数脚本 | 通过 | yuqei-infra/scripts/compare-v1-v2-assets.py 已生成 artifact |
| 远端 Contract API schema-check | 通过 | PostgreSQL smoke 返回 ok |
| 远端 AI Platform schema-check | 通过 | PostgreSQL smoke 返回 ok,pgvector 维度与索引通过 |
| 远端 Docker smoke | 通过 | Web、API、worker、PostgreSQL、Redis、MinIO 均健康 |
| 远端发布质量门 | 通过 | 7 个压测场景全部达标,错误率 0 |
Artifacts:
- 本地 Contract API schema-check:
project-docs/qa-artifacts/v2-release-readiness-local/contract-api-schema-check-local.json - V1/V2 资产计数:
project-docs/qa-artifacts/v2-asset-count/v2-asset-count-2026-07-10T14-58-40.395915+00-00.json - V1/V2 资产计数 Markdown:
project-docs/qa-artifacts/v2-asset-count/v2-asset-count-2026-07-10T14-58-40.395915+00-00.md
当前资产计数
| 资产 | V1 | V2 当前 | 结论 |
|---|---|---|---|
| 模板变量 schema | 30 | 30 | 对齐 |
| 模板 Markdown | 30 | 30 | 对齐 |
| 标准条款/规则相关源文件 | 37 | 15 | 需要进一步按业务条目核对,不只看源文件数 |
| V2 标准条款运行时条目 | - | 8 | 需与 V1 条款库业务条目做精确映射 |
| V2 审查规则运行时条目 | - | 8 | 需与 V1 规则库业务条目做精确映射 |
| 法律全文库文件 | 82 | - | V1 文件层已识别 |
| V2 法律全文运行时条目 | - | 789,867 | 本地运行库已有大规模法律全文数据 |
| V1 Prompt 黄金样本文件 | 3 | - | 已作为来源参考 |
| V2 AI golden asset 文件 | - | 89 | 已迁入 AI 平台资产目录 |
重复执行命令:
python yuqei-infra\scripts\compare-v1-v2-assets.py --contract-api-base http://localhost:8101
远端 smoke 资产计数命令:
python yuqei-infra\scripts\compare-v1-v2-assets.py --contract-api-base http://192.168.3.90:18100
Release Candidate 冻结
当前状态:codex/v2-rc-20260712 分支存在,但 2026-07-16 身份安全和部署修复仍在 dirty worktree,尚未形成新的不可变 RC。
RC 基线要先钉死,冻结后只允许修 bug、补测试、改配置、改文档,不再继续加大功能。
RC 基线
| 项目 | 当前值 | 说明 |
|---|---|---|
| 远端 smoke 环境 | 192.168.3.90 |
当前权威验收环境 |
| smoke Web | http://192.168.3.90:13000 |
前端公开验收地址 |
| smoke Contract API | http://192.168.3.90:18100 |
合同后端验收地址 |
| smoke AI Platform API | http://192.168.3.90:18101 |
AI 后端验收地址 |
| smoke 目录 | /opt/apps/ai-contract-platform-v2-smoke |
独立部署目录 |
| smoke artifact | project-docs/qa-artifacts/v2-smoke-docker-deploy/2026-07-16T11-12-47 |
最新通过的 Docker smoke |
| release gate artifact | project-docs/qa-artifacts/v2-release-quality-gate/2026-07-16T11-18-52 |
最新通过的质量门 |
| security scan artifact | project-docs/qa-artifacts/v2-security-scan/2026-07-12T13-08-00 |
最新通过的安全扫描 |
| source secret scan artifact | project-docs/qa-artifacts/v2-source-secret-scan/2026-07-12T15-24-56 |
冻结索引 821 个文件,16 个已审计候选、0 个新增命中、0 个陈旧基线 |
| Contract API Alembic head | 20260713_0031 |
远端 smoke 当前头 |
| AI Platform Alembic head | 20260703_0021 |
远端 smoke 当前头 |
| 权威数据库 | yuqei_contract / yuqei_ai / yuqei_ops |
仅保留这一组 V2 数据库 |
冻结规则
- 只允许 bug fix、测试补强、配置调整、文档修正。
- 不再引入新页面、新路由、新迁移、新字段、新工作流。
- 冻结期间不改数据库结构,除非是阻塞回归的修复且已单独记录。
- 冻结期间所有新改动都必须能在当前 RC 基线下复跑 smoke 或单测。
- 数据完整性核对、安全扫描、接口压测、备份回滚演练不并入冻结条件,但会作为后续验收门继续执行。
冻结记录
- RC 分支:
codex/v2-rc-20260712。 - 当前 HEAD
57fc8d35不包含本轮未提交身份修复;生产发布前必须提交、跑 CI 并创建新 RC tag。 - 本地日志、Playwright 临时快照、pytest 临时目录、运行时数据库和 QA artifact 均未进入源码提交。
- 本地、smoke、准生产服务与数据库边界已经记录。
- smoke、schema-check、security scan、source secret scan、interface benchmark 和 release gate artifact 已记录。
核心回归验收表
| 模块 | 场景 | 入口 | 通过标准 |
|---|---|---|---|
| 登录与租户 | 管理员建租户、线下邀请、员工设密登录;公开注册/重置/邮箱验证关闭 | /login、/invite/accept、/admin/identity |
用户进入正确租户;关闭入口前后端同时拦截;邀请 token 只在管理员创建响应出现 |
| 工作台与台账 | 待办、分页、归档筛选、状态筛选 | /workspace、/contracts |
列表、分页、筛选、归档状态展示一致,不能把非归档混进已归档视图 |
| 统一搜索与数据看板 | 合同、模板、文件、法律资产统一搜索,数据看板总览 | /search、/dashboard |
搜索结果稳定返回,dashboard 非空且与当前数据一致 |
| 模板起草 | 30 个模板全量生成草稿 | /legal-documents |
30/30 模板都能可见、可选、可生成草稿,字段顺序和正文可读性正常 |
| 合同生命周期 | 编辑、提交审批、退回、重提、归档、Word 下载 | /contracts/{id} |
状态流正确,详情可编辑,Word 可直接下载并打开 |
| 审查任务 | 发起审查、worker 异步处理、风险项、引用依据、条款推荐、一键修订 | /contracts/{id}、审查 worker |
审查结果可回写,风险项展示完整,引用依据与推荐条款可追溯 |
| 模板库 | 发布、下线、回滚、草稿编辑、diff、发布前校验 | /templates |
发布快照生效,回滚后恢复,未发布草稿不污染线上起草 |
| 条款规则库 | 条款/规则发布、下线、回滚、下线后不参与推荐 | /admin/legal-assets、/admin/approval-rules |
规则/条款状态变化后,推荐和命中结果立刻跟随已发布快照 |
| 法律全文库 | 列表、详情、法规变更影响扫描 | /admin/legal-fulltext |
法律版本可见,影响扫描结果能定位到具体版本和资产 |
| 文件仓库 | 上传、预览、下载、批量下载 | /files |
上传/预览/下载/批量下载可用,权限不串租户 |
| 法律问答 | 返回答案和法律依据 | /legal-qa |
答案必须带依据,不能只返回空泛结论 |
| 管理端 | 用户与租户、全局审计、AI Trace、系统健康 | /admin/identity、/admin/audit、/admin/ai-traces、/health |
管理员看到的就是管理员该看的,健康页和审计页可用 |
验收原则:
- 核心回归先跑用户可见链路,再跑后台治理链路。
- 任何一个模块失败,都不能直接进入安全测试和压测。
- 每条验收结论都要能落到页面、接口或 artifact。
上线前质量门
P0 必跑
- Contract API schema-check:PostgreSQL smoke 返回
ok。 - AI Platform schema-check:PostgreSQL smoke 返回
ok。 - Docker smoke:前端、Contract API、AI Platform、worker、数据库、对象存储全部健康。
- 核心业务 smoke:登录、模板起草、合同创建、审批、审查、下载 Word、文件上传下载、统一搜索、数据看板、法律问答。
- V1/V2 资产精确核对:模板、条款、规则、法律全文、Prompt、黄金样本。
- 安全扫描:Bandit、依赖漏洞、detect-secrets secret 扫描、越权接口抽样。
- 接口级压测:合同列表、详情、工作台、模板树、文件列表、统一搜索、AI Trace、法律问答。
- 备份恢复和回滚演练:PostgreSQL、文件仓库、Docker compose、前端发布包。
- 真实 AI Provider:
enabled、fallback 关闭,generation/review/legal QA/clause recommendation 黄金样本通过。 - 生产域名与运行环境:阿里云 V2 前端 HTTPS、3.90 production compose、独立生产 secrets、
seed_demo_data=false。
P1 建议上线前完成
- 用户/租户/邀请/密码重置/邮箱验证码/SSO 配置入口回归。
- 全局审计日志和租户隔离抽样。
- Worker 长任务失败和重试路径回归。
- 监控告警:API 错误率、p95/p99、DB 连接数、worker 心跳、磁盘空间、备份失败。
下一步执行顺序
- 准备真实 production env、三个 digest 镜像、正式域名/TLS 和异地备份挂载,运行只读 production preflight 与 compose config。
- 在不切流量的 staging/production-candidate 环境配置真实 Provider,跑 10 条法律问答和 8 条审查样本并完成具名法务签批。
- 执行 PostgreSQL/合同文件/MinIO 备份,完成一次性
yuqei_restore_check_*数据库恢复演练并验证最小健康告警。 - 固化不可变 RC 并让 build-test、security、release 三套 CI 全绿后,另行审批 edge/DNS 和阿里云前端切流。
- 保留 Trace governance 24 小时观察为上线后/上线前非阻塞观察项,production 开启仍需单独批准。
本轮本地 smoke 数据
| URL | 状态 | 耗时 |
|---|---|---|
http://localhost:3000/workspace |
200 | 456ms |
http://localhost:3000/legal-documents |
200 | 516ms |
http://localhost:3000/contracts |
200 | 379ms |
http://localhost:3000/templates |
200 | 1646ms |
http://localhost:3000/files |
200 | 274ms |
http://localhost:3000/dashboard |
200 | 355ms |
http://localhost:8101/api/v1/contracts?page_size=5 |
200 | 25ms |
http://localhost:8101/api/v1/templates/tree |
200 | 234ms |
http://localhost:8101/api/v1/workspace |
200 | 83ms |
http://localhost:8101/api/v1/files |
200 | 40ms |
最新收口
- 2026-07-11:数据备份与恢复已在 192.168.3.90 smoke 复核通过,
POST /api/v1/backup、GET /api/v1/backup、GET /api/v1/backup/{id}、POST /api/v1/backup/{id}/validate均已验证。 - 2026-07-12:本地 RC 核心回归完成。登录、模板起草、Word、异步审查、结构化风险/引用、审查 PDF、文件单个/批量下载、合同编辑、审批退回重提、归档、审计完整性全部通过;30 个模板全量生成 30/30 通过;Contract API 全量测试 146 passed,前端 production build 通过。详情见
project-docs/V2-rc-core-regression-2026-07-12.md。 - 2026-07-12:当前候选版本已部署到
192.168.3.90。Contract API / AI Platform PostgreSQL schema-check 均为ok;Docker smoke、远端核心浏览器主链路、30 模板全量起草、安全扫描、7 场景接口压测和发布质量门全部通过。最新 artifact 分别为v2-smoke-docker-deploy/2026-07-12T13-21-24、v2-security-scan/2026-07-12T13-08-00、v2-interface-benchmark/2026-07-12T13-24-00、v2-release-quality-gate/2026-07-12T13-28-00。 - 2026-07-16:无邮箱生产模式完成并部署 smoke。公开自助身份入口为
403,管理员线下邀请与员工登录闭环通过;Contract API migration head 为20260713_0031,最新 Docker smoke 与 release gate 均通过。生产仍因 Provider、域名/HTTPS、备份监控、内容签批和不可变 RC 未完成而保持 No-Go。 - 2026-07-16:production 基础设施第一片已在源码完成:backend-only compose、loopback 内部端口、HTTPS edge、Docker secret Provider key、严格 preflight、基础设施备份/恢复验证、最小健康监控和真实 Provider 18 样本验收脚本;尚未在 3.90 production 环境部署,不改变 No-Go 和不切流量结论。