export type ChangeLogEntry = { version: string; releaseDate: string; repoVersion: string; summary: string; features: string[]; tests: string[]; }; export const CHANGE_LOG_ENTRIES: ChangeLogEntry[] = [ { version: "2026.03.16-live-camera-multidevice-viewer", releaseDate: "2026-03-16", repoVersion: "4e4122d", summary: "实时分析新增同账号多端互斥和同步观看模式,分析持有端独占摄像头,其它端只能查看同步画面与核心识别结果。", features: [ "同一账号在 `/live-camera` 进入实时分析后,会写入按用户维度的 runtime 锁,其他设备不能重复启动摄像头或分析", "其他设备会自动进入“同步观看模式”,可订阅持有端的实时画面,并同步看到动作、评分、反馈、最近片段和归档段数", "同步观看复用 media 服务的 WebRTC viewer 通道,传输的是带骨架、关键点和虚拟形象覆盖后的合成画面", "runtime 锁按 session sid 区分持有端,兼容缺少 sid 的旧 token,超过 15 秒无心跳会自动判定为陈旧并释放", "线上 smoke 已确认 `https://te.hao.work/live-camera` 当前仍在旧前端构建,公开站点资源 revision 还是 `index-BWEXNszf.js` / `index-BL6GQzUF.css`,本地新构建产物为 `index-BmsO49OJ.js`", ], tests: [ "pnpm check", "pnpm exec vitest run server/features.test.ts", "go test ./... && go build ./... (media)", "pnpm build", "pnpm exec playwright test tests/e2e/app.spec.ts --grep \"live camera\"", "pnpm exec playwright test tests/e2e/app.spec.ts --grep \"recorder flow archives a session and exposes it in videos\"", "curl -I https://te.hao.work/live-camera", ], }, { version: "2026.03.16-live-analysis-overlay-archive", releaseDate: "2026-03-16", repoVersion: "4fb2d09", summary: "实时分析新增 60 秒自动归档录像,录制内容会保留骨架、关键点和虚拟形象叠层,并同步进入视频库。", features: [ "实时分析开始后会自动录制合成画布,每 60 秒自动切段归档", "归档录像会保留原视频、骨架线、关键点和当前虚拟形象覆盖效果", "归档片段会自动写入视频库,标签显示为“实时分析”", "删除视频库中的实时分析录像时,不会删除已写入的实时分析数据和训练记录", "线上 smoke 已确认 `https://te.hao.work/` 已切换到本次新构建,`/live-camera`、`/videos`、`/changelog` 页面均可正常访问", ], tests: [ "pnpm check", "pnpm test", "pnpm build", "pnpm test:e2e", "Playwright smoke: 真实站点登录 H1,完成 /live-camera 引导、开始/结束分析,并确认 /videos 可见实时分析条目", ], }, { version: "2026.03.15-live-analysis-leave-hint", releaseDate: "2026-03-15", repoVersion: "5c2dcf2", summary: "实时分析结束后增加离开提示,明确何时必须停留、何时可以安全关闭或切页。", features: [ "分析进行中显示“不要关闭或切走页面”提示", "结束分析后保存阶段显示“请暂时停留当前页面”提示", "保存成功后明确提示“现在可以关闭浏览器或切换到其他页面”", "分析中和保存中挂接 beforeunload 提醒,减少误关页面导致的数据丢失", ], tests: [ "pnpm check", "pnpm build", ], }, { version: "2026.03.15-training-generator-collapse", releaseDate: "2026-03-15", repoVersion: "1ce94f6", summary: "训练计划生成面板在桌面端默认折叠到右侧,按需展开查看和重新生成。", features: [ "训练页右侧生成器在桌面端默认折叠为窄栏", "点击右侧折叠栏可展开“重新生成计划”完整面板", "移动端继续直接展示完整生成器,避免隐藏关键操作", "未生成计划时点击“前往生成训练计划”会自动展开并滚动到生成面板", ], tests: [ "pnpm check", "pnpm build", ], }, { version: "2026.03.15-progress-time-actions", releaseDate: "2026-03-15", repoVersion: "71caf0d", summary: "最近训练记录默认显示具体上海时间,并直接展示录制动作数据摘要。", features: [ "最近训练记录摘要行默认显示到秒的 Asia/Shanghai 时间", "录制记录列表直接展示主动作和前 3 个动作统计,无需先展开", "展开态动作明细统一用中文动作标签展示", "提醒页通知时间统一切换为 Asia/Shanghai", ], tests: [ "pnpm check", "pnpm build", ], }, { version: "2026.03.15-session-changelog", releaseDate: "2026-03-15", repoVersion: "a9ea94f", summary: "多端 session、更新日志页面、录制动作摘要与上海时区显示同步收口。", features: [ "用户名登录生成独立 sid,同一账号多端登录保持并行有效", "新增 /changelog 页面和侧边栏入口,展示版本、仓库版本和验证记录", "训练进度页可展开查看最近训练记录的具体时间、动作统计和录制有效性", "录制页增加动作抽样摘要、无效录制标记与 media 预归档状态", "Dashboard、任务中心、管理台、评分、日志、视觉测试、视频库等页面统一使用 Asia/Shanghai 时间显示", ], tests: [ "pnpm check", "pnpm test", "pnpm test:go", "pnpm build", "Playwright smoke: https://te.hao.work/ 双上下文登录 H1 后 dashboard 均保持有效;线上 /changelog 仍显示旧构建,待部署后复测", ], }, { version: "2026.03.15-recorder-zoom", releaseDate: "2026-03-15", repoVersion: "c4ec397", summary: "补齐录制页与实时分析页的节省流量模式、镜头缩放和移动端控制。", features: [ "在线录制默认切换为节省流量模式", "在线录制支持镜头焦距放大缩小", "实时分析支持镜头焦距放大缩小", "页面内增加拍摄与流量设置说明", ], tests: [ "pnpm check", "pnpm exec vitest run client/src/lib/media.test.ts client/src/lib/camera.test.ts", "Playwright 真实站点检查 /live-camera 与 /recorder 新控件可见", ], }, { version: "2026.03.15-videos-crud", releaseDate: "2026-03-15", repoVersion: "bd89981", summary: "视频库支持新增、编辑、删除训练视频记录。", features: [ "视频库新增外部视频登记", "视频库支持编辑标题和动作类型", "视频库支持删除视频及关联分析引用", "视频详情读取按当前用户权限收敛", ], tests: [ "pnpm check", "pnpm exec vitest run server/features.test.ts -t \"video\\\\.\"", "Playwright 真实站点完成 /videos 新增-编辑-删除全链路", ], }, { version: "v3.0.0", releaseDate: "2026-03-14", repoVersion: "历史版本", summary: "教程库、提醒、通知等学习能力上线。", features: [ "训练视频教程库", "教程自评与学习进度", "训练提醒通知", "通知历史管理", ], tests: [ "教程库、提醒、通知相关测试通过", ], }, ];