diff --git a/client/src/lib/changelog.ts b/client/src/lib/changelog.ts index fab6d5f..813c4a8 100644 --- a/client/src/lib/changelog.ts +++ b/client/src/lib/changelog.ts @@ -8,6 +8,27 @@ export type ChangeLogEntry = { }; export const CHANGE_LOG_ENTRIES: ChangeLogEntry[] = [ + { + version: "2026.03.16-live-analysis-lock-hardening", + releaseDate: "2026-03-16", + repoVersion: "f9db6ef", + summary: "修复同账号多端实时分析在旧登录态下仍可重复占用摄像头的问题,补强同步观看重试、录制页占用锁,并修复部署后启动阶段长时间 502。", + features: [ + "旧用户名登录 token 即使缺少 `sid`,现在也会按 token 本身派生唯一会话标识,不再把不同设备错误识别成同一持有端", + "同步观看模式新增 viewer 自动重试:当持有端刚启动推流、viewer 首次连接返回 `viewer stream not ready` 时,会自动重连而不是一直黑屏", + "在线录制页接入实时分析占用锁;当其他设备正在 `/live-camera` 分析时,本页会禁止再次启动摄像头和录制", + "应用启动改为先监听 HTTP 端口、再后台串行执行教程图同步和标准库预热,修复新容器上线时公网长时间返回 502 的问题", + "线上 smoke 已确认 `https://te.hao.work/live-camera` 与 `/recorder` 都已切换到本次新构建,公开站点不再返回 502", + ], + tests: [ + "curl -I https://te.hao.work/", + "pnpm check", + "pnpm exec vitest run server/_core/sdk.test.ts server/features.test.ts", + "pnpm exec playwright test tests/e2e/app.spec.ts --grep \"viewer mode|viewer stream|recorder blocks\"", + "pnpm build", + "线上 smoke: H1 手机端开启实时分析后,PC 端 `/live-camera` 自动进入同步观看并显示同步画面,`/recorder` 禁止启动摄像头;结束分析后会话可正常释放", + ], + }, { version: "2026.03.16-live-analysis-runtime-migration", releaseDate: "2026-03-16", diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 161d7d0..06c7a60 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,33 @@ # Tennis Training Hub - 变更日志 +## 2026.03.16-live-analysis-lock-hardening (2026-03-16) + +### 功能更新 + +- 修复同账号多端实时分析在旧登录态下仍可重复占用摄像头的问题;缺少 `sid` 的旧 token 现在会按 token 本身派生唯一会话标识 +- `/live-camera` 的同步观看模式新增自动重试;当持有端刚启动推流、viewer 首次连接返回 `viewer stream not ready` 时,会继续重连,不再长时间停留在无画面状态 +- `/recorder` 接入实时分析占用锁;其他设备正在实时分析时,本页会禁止再次启动摄像头和开始录制,并提示前往 `/live-camera` 查看同步画面 +- 应用启动改为先监听 HTTP 端口、再后台串行执行教程图同步和标准库预热,修复新容器上线时公网长时间返回 `502` + +### 测试 + +- `curl -I https://te.hao.work/` +- `pnpm check` +- `pnpm exec vitest run server/_core/sdk.test.ts server/features.test.ts` +- `pnpm exec playwright test tests/e2e/app.spec.ts --grep "viewer mode|viewer stream|recorder blocks"` +- `pnpm build` +- Playwright 线上 smoke:`H1` 手机端开启实时分析后,PC 端 `/live-camera` 自动进入同步观看并显示同步画面,`/recorder` 禁止启动摄像头;结束分析后会话可正常释放 + +### 线上 smoke + +- `https://te.hao.work/` 已切换到本次新构建,不再返回 `502` +- 当前公开站点前端资源 revision:`assets/index-U0WgGz9V.js` 与 `assets/index-Cp_VJ8sf.css` +- 真实双端验证已通过:同账号 `H1` 手机端开始实时分析后,PC 端 `/live-camera` 进入同步观看模式且可拉起同步流,`/recorder` 页面会阻止再次占用摄像头 + +### 仓库版本 + +- `f9db6ef` + ## 2026.03.16-live-analysis-runtime-migration (2026-03-16) ### 功能更新