# V2 发布检查清单

## 发布前

- [ ] 已确认当前 Git commit。
- [ ] 已执行 `./scripts/phase6_verify.sh`。
- [ ] 已备份 MySQL 数据库。
- [ ] 已确认管理后台登录页没有预填账号密码。
- [ ] 已配置生产环境 `BOOTSTRAP_ADMIN_USERNAME` 和安全的 `BOOTSTRAP_ADMIN_PASSWORD`，且密码不是 `admin123456`。
- [ ] 已替换 `JWT_SECRET_KEY`。
- [ ] 已确认飞书检索配置。
- [ ] 已确认模型配置和额度策略。
- [ ] 已确认统一入口 `gateway` 可访问。
- [ ] 已确认前端 API 地址使用同域 `/api`。
- [ ] 已确认内网穿透指向 `gateway:80`。
- [ ] 已使用 `docker-compose.prod.yml`，未使用开发编排上线。
- [ ] 已关闭 `DEBUG`、短信 mock、模型 mock 和飞书 mock。
- [ ] 已配置敏感配置加密密钥，后台接口仅显示密钥掩码。
- [ ] 已验证短信发送、验证码和管理员登录限流。
- [ ] 已验证每日问答额度跨自然日自动重置。
- [ ] 已验证并发排队、超时、取消和队列满提示。
- [ ] 已验证退出登录后的 Token 在多 worker 下立即失效。
- [ ] 已确认权益版本、能力开关和学员当前权益配置正确。
- [ ] 已验证后台 Agent 预览能够按模拟学员和具体主题加载上下文。
- [ ] 已确认“结束主题”在当前网关超时范围内完成；如已异步化，已验证任务状态、幂等和失败重试。
- [ ] 已确认主题沉淀 Worker 已启用，等待、执行中、成功和失败状态均可查询。
- [ ] 已验证主题沉淀任务在服务重启后自动恢复，后台可以手动重试最终失败任务。

## 发布中

- [ ] 拉取最新代码或镜像。
- [ ] 执行数据库迁移。
- [ ] 启动后端服务。
- [ ] 启动用户端 H5。
- [ ] 启动管理后台。
- [ ] 启动统一入口 gateway。
- [ ] 检查 `域名/api/health` 后端健康接口。
- [ ] 检查 `域名/api/ready` 返回数据库和 Redis 均就绪。
- [ ] 执行 `BASE_URL=https://正式域名 ./scripts/production_smoke_test.sh`。

## 发布后

- [ ] 用户端可以登录。
- [ ] 默认打开域名进入用户端。
- [ ] `域名/login` 进入管理后台登录页。
- [ ] 用户端可以创建会话。
- [ ] 用户端可以提问并收到回答。
- [ ] 用户发送后输入框立即清空，思考状态与流式 Markdown 回答显示正常。
- [ ] 用户端个人中心可查看账号、当前套餐、有效期、主题/问答用量和能力清单。
- [ ] 深度版可查看近期与周期实修回顾；基础版明确显示权益边界，不展示成长评分或旧画像字段。
- [ ] 连续提问能够继续使用同一主题的上下文。
- [ ] 结束主题接口快速返回，用户可以立即新建主题或继续使用系统。
- [ ] 无命中问题返回固定兜底。
- [ ] 管理后台可以登录。
- [ ] 管理后台可以查看 Dashboard。
- [ ] 管理后台可以保存 Prompt。
- [ ] 管理后台可以新增知识库。
- [ ] AI 请求日志有记录。
- [ ] 操作日志有记录。
- [ ] 后台 Agent 预览能够选择学员和主题，并在追踪中看到上下文与模型路由。
- [ ] 求助卡、分享稿、近期实修回顾和周期实修回顾能够按权益生成与查看。
- [ ] 访问日志为单行 JSON，且可用响应头中的 `X-Request-ID` 定位同一次请求。
- [ ] 已确认备份任务生成 `.sql.gz` 和对应 `.sha256` 文件。
- [ ] 已完成至少一次隔离数据库恢复演练。

## 回滚触发条件

- 用户端无法登录。
- 用户端无法完成提问主链路。
- 后台无法登录。
- 数据库迁移失败且无法快速修复。
- 外部服务异常导致核心链路不可用。
