Commit Graph

96 Commits

Author SHA1 Message Date
2a235a94b2 Merge pull request 'feat: 规范化配置文档' (#44) from fix/config-file into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/44
2026-06-13 19:58:41 +08:00
hhs
3c665cde5d feat: 更新模型配置 2026-06-13 19:57:55 +08:00
hhs
0d9d3db73b feat: 更新配置文档 2026-06-13 19:57:35 +08:00
f764b3a7d8 Merge pull request '增加主题切换功能,优化设置界面的面板' (#43) from develop-frontend7 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/43
2026-06-13 17:16:30 +08:00
0227822120 feat: 增加深色/浅色主题切换功能
- types 新增 Theme 类型(dark/light)
- storage 新增 loadTheme/saveTheme 持久化主题偏好
- ConfigPanel 新增外观分组,主题下拉选择
- App.tsx 通过 data-theme 属性挂载到 html 元素
- App.css 新增 [data-theme=light] 亮色变量覆盖

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 17:08:56 +08:00
f17c3c24a7 refactor: 设置面板改为右侧抽屉,修复布局跳动问题
- ConfigPanel 重写为 Drawer:右侧 320px 滑入面板 + 半透明遮罩
- 设置按钮始终可见,不依赖连接状态
- 抽屉不推挤主布局,点击遮罩或✕关闭
- 设置项分组显示,带功能描述文案

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 16:54:57 +08:00
6b98f35abc Merge pull request 'feat: 添加集成测试并同步文档' (#42) from feature/phase8 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/42
2026-06-13 16:46:04 +08:00
hhs
9ce9d8c9f6 docs: Phase 8.2 - 同步接口文档与代码实现
修正文档与代码的偏差:
- SessionManager → Manager,补充 GetActiveRequestID/ActiveCount 方法
- Orchestrator 更新为接口 + Sender 抽象模式
- POST /api/sessions 移除未实现的 user_id 字段
- STT 移除未实现的 RecognizeStream 方法
- LLM/TTS 接口名更新为 Service/Request/Chunk/Options
- Message 模型移除 ImageURL/TokensUsed(代码未使用)
- 内存实现 MemoryManager 名称对齐
- WebSocket Handler 集成伪代码更新 ProcessQuery 签名
2026-06-13 16:40:29 +08:00
hhs
0b2bbb827d feat: Phase 8.1 - WS 集成测试 (handler_test.go)
使用 Gin test server + gorilla/websocket client 验证完整 WebSocket 流程:
- connected 连接建立、ping/pong 心跳
- 完整 query→stt_result→llm_chunk→tts_audio→llm_done 流程
- interrupt 中断、disconnect 断开清理
- 无效 JSON、未知消息类型错误处理
- 多次查询、无图片查询、TTS 未启用等场景
- 每次连接创建独立会话
2026-06-13 16:37:51 +08:00
5afde31a9e Merge pull request 'feat: 补全设计文档中的 REST 端点' (#41) from feature/phase6 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/41
2026-06-13 16:25:32 +08:00
0e1f34d7c9 Merge pull request '重构为 Web 端双栏布局,突出对话展示' (#39) from develop-frontend6 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/39
2026-06-13 16:24:18 +08:00
hhs
a6a6a16185 feat: Phase 6.3 - 注册 Session REST 路由,统一依赖注入 2026-06-13 16:22:53 +08:00
hhs
f07916ab0f fix: Phase 6.2 - Health 端点对齐接口文档 (uptime_seconds 整数格式) 2026-06-13 16:21:53 +08:00
hhs
b7e803fa90 feat: Phase 6.1 - 实现 Session REST API 路由 (POST/DELETE) 2026-06-13 16:21:09 +08:00
093dc26fa0 chore: 更新 .gitignore,忽略编译产物和临时文件
- backend/server:Go 编译二进制
- .playwright-mcp/:浏览器测试临时日志
- *.png:调试截图

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 16:21:04 +08:00
4aa9f31e57 Merge pull request 'feat: 将 Session Manager + Orchestrator 串入 WebSocket handler,实现端到端消息处理。' (#38) from feature/phase5 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/38
2026-06-13 16:17:23 +08:00
dd64ed23ee style: 重构为 Web 端双栏布局,突出对话展示
- 重构 App.tsx 为双栏布局:左侧视频面板 + 右侧聊天面板
- 左侧 340px 固定宽度视频区(4:3 比例)
- 右侧对话区 flex:1 占满剩余空间
- Header 改为导航栏风格:标题+副标题+状态标签+设置按钮
- 视频下方控制栏:观察模式/打断/结束对话按钮
- 优化间距、字号、配色,适配桌面端

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-13 16:16:37 +08:00
hhs
085e19038b fix: Phase 5.3 - 统一使用 client.sessionMgr 调用 UpdateConfig 2026-06-13 16:15:17 +08:00
hhs
314554ded7 feat: Phase 5.2 - 实现 query 处理逻辑
- 创建可取消的 context 并存储 cancel func
- 获取对话历史并传递给 orchestrator
- 启动 orchestrator.ProcessQuery goroutine 处理查询
- 请求完成后自动清理 cancel func 和活跃请求标记
2026-06-13 16:14:20 +08:00
hhs
19535e6a37 feat: Phase 5.1 - Client 扩展,添加 orchestrator 依赖
- 扩展 Client 结构体,添加 sessionManager、orchestrator、cancelFuncs 字段
- 创建 WSClient 适配器实现 orchestrator.Sender 接口
- 更新 ServeWS 函数签名,接收 orchestrator 参数
- 在 main.go 中初始化 AI 服务和 Orchestrator
2026-06-13 16:13:22 +08:00
8e43fb134e Merge pull request '实现 AI Orchestrator(核心编排)' (#37) from feature/phase4 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/37
2026-06-13 16:07:40 +08:00
hhs
c9c697fe64 feat: 实现 AI Orchestrator(核心编排)
- 实现 Orchestrator 接口(4.1)
- 实现 Sender 接口(4.2)
- 实现 STT → LLM → TTS 流式并行管道(4.3)
- 实现句子切分器(4.4)
- 实现错误降级处理(4.5)
- 实现 Interrupt 支持(4.6)
- 编写完整的单元测试(4.7)
2026-06-13 16:05:18 +08:00
c160e787a6 Merge pull request '定义并实现三个 AI 服务客户端,每个服务一个独立包' (#36) from feature/phase3 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/36
2026-06-13 15:53:10 +08:00
hhs
041dee319b chore: go mod tidy 清理依赖 2026-06-13 15:50:10 +08:00
hhs
29e186c062 test: 编写 TTS 测试(mock HTTP,覆盖成功/API 错误/超时/空文本/取消/部分失败/自定义 voice) 2026-06-13 15:48:55 +08:00
hhs
acc7dfce43 feat: 实现 OpenAI TTS 服务(逐句合成 + 5s 超时 + 静默跳过失败) 2026-06-13 15:47:43 +08:00
hhs
450c2c66c3 feat: 定义 TTS Service 接口(SynthesizeStream + Options/Chunk) 2026-06-13 15:46:48 +08:00
hhs
90f4b907a7 test: 编写 LLM 测试(mock SSE 流,覆盖成功/图片/历史/API 错误/超时/Usage) 2026-06-13 15:45:51 +08:00
hhs
96b4c4899a feat: 实现 OpenAI LLM 服务(SSE 流式解析 + 多模态消息构建)及 System Prompt 定义 2026-06-13 15:44:23 +08:00
hhs
078cfe6278 feat: 定义 LLM Service 接口(ChatStream + Request/Chunk/TokenUsage) 2026-06-13 15:42:14 +08:00
hhs
8f9b0b881e feat: 实现 Deepgram STT 服务及测试(WebSocket mock,覆盖成功/超时/空音频/多轮 final) 2026-06-13 15:41:44 +08:00
hhs
6fcbf023b4 feat: 实现 Deepgram STT 服务(WebSocket 连接 + 音频发送 + 结果接收) 2026-06-13 15:39:39 +08:00
hhs
22784bf421 feat: 定义 STT Service 接口(Recognize + Options) 2026-06-13 15:38:59 +08:00
33effe161a Merge pull request '实现会话生命周期管理,让 WS handler 能追踪会话、存储对话历史。' (#35) from feature/phase2 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/35
2026-06-13 15:34:04 +08:00
hhs
fe4dedec71 feat: WS handler 接入 SessionManager,main.go 注入依赖 + 健康检查获取活跃会话数
Some checks failed
Backend CI / ci (pull_request) Failing after 15s
Frontend CI / ci (pull_request) Has been cancelled
2026-06-13 15:31:15 +08:00
hhs
26f87ce35a test: 编写 Session Manager 内存实现测试(覆盖 Create/Get/Expire/Destroy/History 上限等) 2026-06-13 15:29:13 +08:00
hhs
ba6d565c0f feat: 实现 Redis 版 SessionManager(Hash + List,TTL 自动刷新) 2026-06-13 15:27:41 +08:00
hhs
f172e6c468 feat: 实现内存版 SessionManager(TTL 30 分钟,历史上限 20 条) 2026-06-13 15:25:23 +08:00
hhs
6b8bd3c554 feat: 定义 SessionManager 接口 + SessionConfigPatch 模型 2026-06-13 15:24:07 +08:00
688e13a491 Merge pull request '补充跨域处理方案(Nginx 同源反代 + Vite proxy)' (#33) from feature/phase1 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/33
2026-06-13 15:20:06 +08:00
hhs
991ae4834c docs: Phase 1 移除 CORS 中间件任务
- CORS 由 Nginx 反向代理统一处理,不在后端实现
2026-06-13 15:18:11 +08:00
hhs
da87ec776b feat: main.go 接入配置 + graceful shutdown + logger 迁移
- main.go: 接入 config.Load() 替换硬编码 :8080
- main.go: 添加 signal.NotifyContext + http.Server.Shutdown(10s drain)
- main.go: 初始化 Zap 日志,prod 环境切换 Gin release 模式
- ws/handler.go: 所有 log.Printf 替换为 logger.Log 结构化日志
- 修复 .gitignore 排除规则(/server 仅匹配根目录二进制)
- 新增 zap、viper 依赖
2026-06-13 15:18:03 +08:00
hhs
c523f53724 feat: 实现配置管理(Viper)
- 新增 internal/config/config.go,定义完整配置结构体
- 支持 YAML 文件 + 环境变量覆盖(CAMTALK_ 前缀)
- 新增 config.yaml 默认配置文件
2026-06-13 15:17:37 +08:00
hhs
bce3b73480 feat: 实现错误码常量 + WS 错误发送工具
- 新增 internal/errors/codes.go
- 定义 10 个错误码常量(与接口文档一致)
- 提供 SendWSError 工具函数
2026-06-13 15:17:31 +08:00
hhs
d5d584c93b feat: 实现 Zap 日志封装
- 新增 internal/logger/logger.go
- 提供 Init(level, format) 初始化全局 SugaredLogger
- 支持 json/console 两种格式
- 提供 Sync() 刷新缓冲区
2026-06-13 15:17:26 +08:00
b76a71c128 Merge pull request 'feature/base-build' (#32) from feature/base-build into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/32
2026-06-13 15:02:28 +08:00
hhs
2e165a459c docs: 添加后端分阶段实施计划(8 Phase)
从基础设施到集成测试的完整实施路线图,涵盖 Session Manager、AI 服务层、
Orchestrator 编排、WS Handler 接入、REST API、Rate Limiter 等模块。
2026-06-13 15:01:38 +08:00
7e2537104d Merge pull request '实现观察模式,支持持续场景监控(US-05/US-10)' (#31) from develop-frontend5 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/31
2026-06-13 14:51:57 +08:00
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
e18a2004a0 Merge pull request '实现关键帧检测与成本控制' (#30) from develop-frontend4 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/30
2026-06-13 14:40:05 +08:00