Commit Graph

9 Commits

Author SHA1 Message Date
f5536005f6 feat: 实现观察模式,支持持续场景监控(US-05/US-10)
- 新增 useObservationMode Hook:定时 5s 采帧,similarity < 0.85 触发变化回调
- useVisionSession 新增 dialogue/observation 模式切换
- App Footer 加观察模式切换按钮(激活时蓝色脉冲)
- 视频区左上角显示'👁️ 观察中'绿色角标
- 观察模式下画面变化自动发送 query

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 14:46:42 +08:00
2c6489b9a6 feat: 实现关键帧检测与成本控制
- EdgeProcessor:sampleFrame 降采样 160x120 + compareFrames 像素差异对比
- 重复画面跳过:similarity > 0.9 时不发送 query
- 混合采样策略:静默 5s / 用户说话 1s(docs/08-成本控制.md)
- 请求统计:queryCount + totalTokens 实时显示
- App 状态栏显示成本统计

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 14:38:15 +08:00
7e3762b589 feat: 实现会话配置与多轮上下文
All checks were successful
Backend CI / ci (pull_request) Successful in 1m0s
Frontend CI / ci (pull_request) Successful in 1m0s
- 新增 ConfigPanel 组件:TTS 开关、detail level、语言选择
- 新增 storage.ts:配置持久化到 localStorage
- useVisionSession:连接后自动发送 config,维护最近 10 轮对话历史
- App:齿轮按钮展开配置面板,HD 角标,TTS 播放联动 ttsEnabled

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 14:19:47 +08:00
6a47c4dfbb feat: 实现 TTS 语音播放,完成 MVP P0 全部用户故事
- 新增 TTSPlayer:收集流式 tts_audio 片段,is_last 时拼接解码播放
- useVisionSession 接入 TTS 播放器,interrupt/stopSession 时停止播放
- App 显示 '🔊 正在播放...' 指示器
- MVP P0 四个用户故事前端全部实现(US-01 ~ US-04)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 13:57:36 +08:00
2e222cbe73 Merge pull request '完善端到端对话闭环,增强消息渲染与错误处理;集成 VAD 语音活动检测,打通核心交互链路' (#24) from develop-frontend into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/24
2026-06-13 11:56:26 +08:00
734c93a866 feat: 完善端到端对话闭环,增强消息渲染与错误处理
- ChatPanel:流式光标动画、token/延迟元数据、自动滚动、三种空状态
- Toast 组件:错误码映射为中文友好文案,3 秒自动消失
- useVisionSession:stt_result 流式更新、防重复发送、打断保存未完成内容、结束清理全部状态
- App:断线提示、视频 loading 遮罩、按钮连接中状态
- ChatMessage 增加 latencyMs、model 字段

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 11:43:16 +08:00
9ccd4d6238 feat: 集成 VAD 语音活动检测,打通核心交互链路
- 重写 useVAD Hook,接入 @ricky0123/vad-web 的 MicVAD
- 支持 onSpeechStart/onSpeechEnd/onVADMisfire 回调
- useVisionSession 中串联摄像头→麦克风→WebSocket→VAD 完整流程
- App.tsx 新增 VAD 加载中和错误状态的 UI 指示
- VAD 参数对齐设计文档:positiveSpeechThreshold=0.5, minSpeechMs=250

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 11:10:29 +08:00
81093555bb fix: 修复 .gitignore 并降级 React 到 18 以对齐设计文档
- 补充 .gitignore:忽略 node_modules/、dist/、bin/、.env、.obsidian/ 等
- 降级 react、react-dom 到 18.3.1,@types/react、@types/react-dom 到 18.x
- 与 docs/02-系统架构.md 和 CLAUDE.md 中的 React 18 技术选型保持一致

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 21:37:02 +08:00
b5c0d40609 feat: 初始化前端项目,搭建 React + TypeScript + Vite 工程结构
- 创建 Vite + React 18 + TypeScript 项目(严格模式)
- 安装 @ricky0123/vad-web、onnxruntime-web、uuid 依赖
- 定义全部 WebSocket 消息类型和数据模型(对齐接口文档)
- 实现 WebSocket 连接管理(心跳保活、指数退避重连)
- 实现音频编码工具(PCM↔Base64、DataURL 转换)
- 创建组件骨架:CameraManager、MicManager、EdgeProcessor、WebSocketManager、ChatPanel、VideoPreview
- 实现核心 useVisionSession Hook 骨架
- 配置 ESLint(_前缀变量忽略规则)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-12 17:46:25 +08:00