8.3 KiB
8.3 KiB
Verified Features
本文档记录当前已经通过自动化验证或构建验证的项目。更新时间:2026-03-15 11:58 CST。
最新完整验证记录
- 通过命令:
pnpm verify - 验证时间:2026-03-15 07:58 - 08:14 CST
- 结果摘要:
pnpm check、pnpm test(104/104)、pnpm test:go、pnpm build、pnpm test:e2e(7/7)、pnpm test:llm全部通过 - 数据库状态:已执行
set -a && source .env && set +a && pnpm exec drizzle-kit migrate,0010_remove_non_tennis_tutorials已成功应用
生产部署联测
| 项目 | 验证方式 | 状态 |
|---|---|---|
https://te.hao.work/ HTTPS 访问 |
curl -I https://te.hao.work/ |
通过 |
https://te.hao.work/checkin 成就系统路由 |
Playwright 登录后检查“成就系统” | 通过 |
https://te.hao.work/tutorials 教程库清洗 |
Playwright smoke + tutorial.list 线上接口校验,仅返回 topicArea=tennis_skill 的 11 条网球教程 |
通过 |
https://te.hao.work/tutorials 教程标准配图 |
登录后 Playwright 检查 11 张压缩配图渲染、首图为 /uploads/tutorials/forehand-fundamentals.webp,并验证图片资源 200 OK |
通过 |
https://te.hao.work/logs 日志页访问 |
curl -I https://te.hao.work/logs |
通过 |
https://te.hao.work/vision-lab 视觉测试页访问 |
curl -I https://te.hao.work/vision-lab |
通过 |
http://te.hao.work:8302/ 4 位端口访问 |
curl -I http://te.hao.work:8302/ |
通过 |
| 站点 TLS 证书 | Let’s Encrypt ECDSA 证书已签发并由宿主机 nginx 加载 | 通过 |
| 生产登录与首次进入工作台 | Playwright 登录真实站点并跳转 /dashboard |
通过 |
| 新用户邀请码校验 | Playwright 验证无邀请码被拦截、正确邀请码 CA2026 可创建新账号 |
通过 |
| 日志页访问 | Playwright 以 H1 登录并访问 /logs |
通过 |
| 生产训练 / 实时分析 / 录制 / 视频库页面加载 | Playwright 访问 /training、/live-camera、/recorder、/videos |
通过 |
| 生产视觉标准图库页面 | Playwright 登录后访问 /vision-lab,未捕获 pageerror / console.error |
通过 |
| 生产视觉历史修复 | 重跑历史 3 条 fallback 标准图记录后,visionStatus 全部恢复为 ok |
通过 |
| 生产视频库轻剪辑入口 | 本地 pnpm test:e2e + 真实站点 /videos smoke |
通过 |
| 生产训练计划后台任务提交 | Playwright 点击训练计划生成按钮并收到后台任务反馈 | 通过 |
| 生产移动端录制焦点视图 | Playwright 移动端视口打开 /recorder 并验证焦点入口与操作壳层 |
通过 |
| 生产前端运行时异常检查 | Playwright pageerror / console.error 检查 |
通过 |
| 媒体健康检查 | curl http://127.0.0.1:8081/media/health |
通过 |
| compose 自包含服务 | docker compose ps -a 中 app / app-worker / db / media / media-worker 正常运行,migrate 成功退出 |
通过 |
| 生产版本追平 | docker compose up -d --build migrate app app-worker 后复测 login / checkin / videos / recorder / live-camera / admin |
通过 |
| 全量 compose 重启 | 使用干净 worktree 执行 docker compose up -d --build 并确认 app / app-worker / db / media / media-worker 全部正常 |
通过 |
| 生产旧 hash 静态资源回退修复 | curl -I https://te.hao.work/assets/index-BS2QgeEv.css 返回 404,不再返回 HTML |
通过 |
| 生产后台任务刷新容错 | 任务中心与日志页在请求失败时保留最近一次成功结果,线上 smoke 未捕获页面异常 | 通过 |
构建与编译通过
| 项目 | 验证方式 | 状态 |
|---|---|---|
| TypeScript 类型检查 | pnpm check |
通过 |
| Node 应用生产构建 | pnpm build |
通过 |
| Go 媒体服务编译 | pnpm test:go 中的 go build ./... |
通过 |
单元与路由验证
| 模块 | 验证方式 | 状态 |
|---|---|---|
| auth | pnpm test |
通过 |
| profile | pnpm test |
通过 |
| plan | pnpm test |
通过 |
| video | pnpm test |
通过 |
| analysis | pnpm test |
通过 |
| live analysis 会话保存 | pnpm test |
通过 |
| record | pnpm test |
通过 |
| rating | pnpm test |
通过 |
| achievement | pnpm test |
通过 |
| admin | pnpm test |
通过 |
| checkin 兼容路由 | pnpm test |
通过 |
| badge | pnpm test |
通过 |
| leaderboard | pnpm test |
通过 |
| tutorial / reminder / notification 路由校验 | pnpm test |
通过 |
| task 后台任务路由 | pnpm test / pnpm test:e2e |
通过 |
| 后台任务超限失败收敛 | pnpm test + worker 代码审查 |
通过 |
| media 工具函数 | pnpm test |
通过 |
媒体服务 /media 路径回退 |
pnpm test |
通过 |
| LLM / media 请求超时重试封装 | pnpm test / pnpm build |
通过 |
| 登录 URL 回退逻辑 | pnpm test |
通过 |
Go 媒体服务验证
| 功能 | 验证方式 | 状态 |
|---|---|---|
/media/health |
go test ./... |
通过 |
| 会话状态聚合 | go test ./... |
通过 |
| 单片段归档回放产物生成 | go test ./... |
通过 |
浏览器 E2E 已验证主流程
| 模块 | 验证内容 | 状态 |
|---|---|---|
| 登录 | 用户名输入、登录提交、跳转仪表盘 | 通过 |
| 仪表盘 | 认证后主标题与入口按钮渲染 | 通过 |
| 训练计划 | 训练计划页加载与生成入口可见 | 通过 |
| 视频库 | 视频卡片渲染 | 通过 |
| 视频库轻剪辑 | 打开轻剪辑工作台、显示建议片段、展示导出草稿入口 | 通过 |
| 视频库轻剪辑增强 | 循环预览、区间快速载入、草稿复制、cue sheet 导出 | 通过 |
| 实时分析 | 摄像头启动入口渲染 | 通过 |
| 实时分析打分 | 启动分析后出现实时评分结果 | 通过 |
| 实时分析增强 | 动作分布、区间筛选、有效识别率和会话质量带渲染 | 通过 |
| 在线录制 | 启动摄像头、开始录制、手动标记、结束归档 | 通过 |
| 在线录制归档进度展示 | 录制页显示归档进度、已上传体积、待上传体积与片段总数 | 通过 |
| 录制焦点视图 | 移动端最大化焦点视图与主操作按钮渲染 | 通过 |
| 录制结果入库 | 归档完成后视频库可见录制结果 | 通过 |
LLM 模块验证
| 项目 | 验证方式 | 状态 |
|---|---|---|
.env 中的 LLM_API_URL / LLM_API_KEY / LLM_MODEL |
pnpm test:llm |
通过 |
https://one.hao.work/v1/chat/completions 联通性 |
pnpm test:llm 实际返回文本 |
通过 |
| LLM 超时与重试配置 | pnpm build + 真实 pnpm test:llm |
通过 |
| 视觉模型独立配置路径 | server/_core/llm.test.ts + 手工 smoke 检查 |
通过 |
| 视觉返回兼容解析 | server/vision.test.ts + 真实图片 smoke |
通过 |
| 视觉标准图库入库 | MySQL 中 vision_reference_images 已写入 5 张 Commons 网球参考图 |
通过 |
| 视觉测试结果入库 | MySQL 中 vision_test_runs 已写入 3 条真实测试结果,且历史 fallback 已修复为 ok |
通过 |
| H1 全量可见性 | H1 用户已提升为 admin,可读取全部视觉测试记录;Playwright 真实站点检查通过 |
通过 |
已知非阻断警告
- 测试与开发日志中会出现
OAUTH_SERVER_URL未配置提示;当前 mocked auth 和本地验证链路不依赖真实 OAuth 服务,因此不会导致失败 pnpm build仍有 Vite 大 chunk 警告;当前属于性能优化待办,不影响本次产物生成- Playwright 运行依赖 mocked media/network,不等价于真机摄像头、真实弱网和真实 WebRTC 质量验收
- 当前上游视觉网关可能忽略
LLM_VISION_MODEL并回退为文本模型;服务端已实现自动降级,任务不会因此直接失败 - 上游视觉网关当前返回的
model仍可能显示为qwen3.5-plus,且响应格式不稳定;服务端已增加兼容解析与默认值补齐,避免再次因结构差异直接降级 - 开发服务器启动阶段仍会打印
OAUTH_SERVER_URL未配置提示;当前用户名登录、mock auth 和自动化测试不受影响
当前未纳入自动验证的内容
- 真实摄像头权限与真实编码质量
- 真实 WebRTC 网络连通性
- 真正的 FFmpeg 多片段重编码质量
- 真机 iOS / Android 浏览器的真实媒体兼容差异
以上内容仍建议在预发或本地联调时补充人工验证。