Commit Graph

336 Commits

Author SHA1 Message Date
hhs
6487a8ecab feat: 扩展 Session Manager 接口,新增 ListByUser、UpdateTitle 方法
- Manager.Create 签名新增 userID 参数
- 新增 ConversationSummary 类型和 ListByUser 分页查询
- 新增 UpdateTitle 方法
- MemoryManager 实现:ListByUser 遍历+过滤+排序,UpdateTitle,自动标题生成
- RedisManager 实现:user:{id}:sessions 索引,ListByUser 通过 SMEMBERS 查询
- AppendMessage 自动更新标题(首条 user 消息时,取前 20 字符)
- 更新 ws handler、api/session.go、orchestrator mock 的 Create 调用
2026-06-14 17:35:20 +08:00
hhs
9ff971fd89 feat: 扩展 Session 模型,新增 UserID、Title、UpdatedAt 字段 2026-06-14 17:30:59 +08:00
hhs
c01ee1d14c feat: 编写 AuthHandler API 测试(httptest + mock AuthService,覆盖全部端点) 2026-06-14 17:28:13 +08:00
hhs
9aaed88cc1 feat: main.go 接入认证服务(TokenManager + AuthService + AuthHandler 路由注册) 2026-06-14 17:26:50 +08:00
hhs
15b437043f feat: 实现 AuthHandler(注册/登录/刷新/登出端点 + 输入校验 + 路由注册) 2026-06-14 17:25:50 +08:00
hhs
fdea3aa9d1 feat: 新增认证相关错误码(USERNAME_TAKEN, INVALID_CREDENTIALS, INVALID_TOKEN, INVALID_INPUT) 2026-06-14 17:24:57 +08:00
430811ffc4 Merge pull request 'feat: 实现 Phase 3 JWT + 认证服务' (#95) from feature/user-model-phase3 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/95
2026-06-14 17:20:35 +08:00
hhs
f878988048 feat: 编写 AuthService 单元测试(mock UserRepository) 2026-06-14 17:18:22 +08:00
hhs
e455af6b2d feat: 编写 TokenManager 单元测试 2026-06-14 17:17:28 +08:00
hhs
5211d14d50 feat: 定义并实现 AuthService(注册/登录/刷新/登出) 2026-06-14 17:14:52 +08:00
hhs
5b8cbb025f feat: 实现 JWT 认证中间件(AuthMiddleware) 2026-06-14 17:13:54 +08:00
hhs
fca9108882 feat: 实现密码哈希与校验工具(bcrypt) 2026-06-14 17:07:51 +08:00
hhs
20597101f5 feat: 实现 TokenManager(JWT 签发/校验/哈希) 2026-06-14 17:07:12 +08:00
5e83531d54 Merge pull request 'feat: 定义用户模块 User 模型与 Repository 层' (#94) from feature/user-mode-phase2 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/94
2026-06-14 17:03:46 +08:00
hhs
9842b4a457 feat: 编写 UserRepository 单元测试 2026-06-14 16:56:29 +08:00
hhs
ce13e5a048 feat: 实现内存 UserRepository(测试用) 2026-06-14 16:55:44 +08:00
hhs
36827edfea feat: 实现 PostgreSQL UserRepository 2026-06-14 16:55:12 +08:00
hhs
af73e78aa3 feat: 定义 UserRepository 接口及 User 数据模型 2026-06-14 16:54:21 +08:00
hhs
c9c174f400 feat: 扩展 models 新增 User 结构体 2026-06-14 16:53:54 +08:00
c0972856c6 Merge pull request 'feat: 配置扩展与 PostgreSQL 连接池' (#93) from feature/user-model-phase1 into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/93
2026-06-14 16:50:25 +08:00
hhs
0ff810a297 feat: main.go 条件初始化 PostgreSQL 连接池
- 添加 store 包导入
- 当 storage.driver 为 postgres 时创建 pgxpool
- 使用 defer 确保连接池正确关闭
- 添加日志记录连接状态
2026-06-14 16:43:07 +08:00
hhs
bf1e24453c feat: 编写用户表 schema 迁移脚本
- 新增 migrations/001_users.up.sql:创建 users 表和 refresh_tokens 表
- 新增 migrations/001_users.down.sql:回滚脚本
- users 表包含 id, username, password_hash, created_at, updated_at
- refresh_tokens 表包含 id, user_id, token_hash, expires_at, created_at
- 添加必要的索引优化查询性能
2026-06-14 16:42:12 +08:00
hhs
0edafbbf8a feat: 实现 PostgreSQL 连接池
- 新增 internal/store/db.go
- 实现 NewPostgresPool(ctx, dsn) 创建连接池
- 添加 pgx/v5 依赖
- 最大连接数设置为 10
2026-06-14 16:41:50 +08:00
hhs
4b30e67c2e feat: 扩展 Config 结构体,新增 AuthConfig 配置
- 新增 AuthConfig 结构体(JWTSecret, AccessTTL, RefreshTTL)
- 在 Config 中添加 Auth 字段
- 设置默认值:access_ttl=15分钟,refresh_ttl=10080分钟(7天)
- JWTSecret 必须通过环境变量 CAMTALK_AUTH_JWT_SECRET 设置
2026-06-14 16:40:06 +08:00
07211675e9 Merge pull request 'feat/tips' (#92) from feat/tips into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/92
2026-06-14 16:32:18 +08:00
7a0443ebcc style: 样式优化 2026-06-14 16:31:23 +08:00
fe053f94dc fix: 隐藏观察模式按钮,清理未使用的 toggleMode 引用 2026-06-14 15:56:59 +08:00
9433612c4b Merge pull request '聊天框与会话历史栏优化' (#91) from fix/language into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/91
2026-06-14 15:46:40 +08:00
92f3f45c41 feat: 新增会话历史侧边栏,支持新建/切换/删除/重命名会话
类似 ChatGPT 的侧边栏布局,消息历史持久化到 localStorage。

- 新增 SessionSummary 类型和 localStorage 读写函数
- 新增 useSessionList Hook 管理会话列表 CRUD
- 新增 SessionSidebar 组件(展开/折叠、行内重命名)
- App.tsx 协调 useSessionList 和 useVisionSession
- 消息变化时自动持久化,切换/新建会话时保存并加载
- 新增 i18n 翻译 key(中/英/日)
2026-06-14 15:44:25 +08:00
74cd6c7d2d Merge pull request 'chore: 硬编码公网 IP 地址' (#90) from develop into main
All checks were successful
Deploy / deploy (push) Successful in 10s
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/90
2026-06-14 15:29:29 +08:00
8f8e9dea5f Merge pull request 'chore: 硬编码公网 IP 地址' (#89) from fix/workflow-fix into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/89
2026-06-14 15:29:19 +08:00
hhs
2bb72096de chore: 硬编码公网 IP 地址 2026-06-14 15:29:02 +08:00
6b99336941 Merge pull request 'chore: 部署完成回显显示公网 IP' (#88) from develop into main
All checks were successful
Deploy / deploy (push) Successful in 8s
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/88
2026-06-14 15:28:09 +08:00
ae91f877fe Merge pull request 'chore: 部署完成回显显示公网 IP' (#87) from fix/workflow-fix into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/87
2026-06-14 15:27:57 +08:00
hhs
f23a425f1e chore: 部署完成回显显示公网 IP 2026-06-14 15:26:33 +08:00
12eec6fc0e Merge pull request 'chore: 前端端口改为 9000' (#86) from develop into main
All checks were successful
Deploy / deploy (push) Successful in 9s
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/86
2026-06-14 15:24:50 +08:00
a0769956f2 Merge pull request 'chore: 前端端口改为 9000' (#85) from fix/workflow-fix into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/85
2026-06-14 15:23:37 +08:00
hhs
0f3bf432fd chore: 前端端口改为 9000 2026-06-14 15:21:47 +08:00
0ba2f9807c Merge pull request 'ci: 添加国内镜像代理和 BuildKit 缓存优化构建速度' (#84) from develop into main
Some checks failed
Deploy / deploy (push) Failing after 5m26s
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/84
2026-06-14 15:15:13 +08:00
9379d3ef82 Merge pull request 'ci: 添加国内镜像代理和 BuildKit 缓存优化构建速度' (#83) from fix/workflow-fix into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/83
2026-06-14 15:15:01 +08:00
hhs
cb0c747133 ci: 添加国内镜像代理和 BuildKit 缓存优化构建速度 2026-06-14 15:14:28 +08:00
91fdc007f7 Merge pull request 'ci: 简化 Docker CLI 安装,仅使用 apk' (#82) from develop into main
Some checks failed
Deploy / deploy (push) Has been cancelled
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/82
2026-06-14 15:11:38 +08:00
18c889b9b8 Merge pull request 'ci: 简化 Docker CLI 安装,仅使用 apk' (#81) from fix/workflow-fix into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/81
2026-06-14 15:11:26 +08:00
hhs
ffcb11625a ci: 简化 Docker CLI 安装,仅使用 apk 2026-06-14 15:11:08 +08:00
da8818c3be fix: 隐藏顶部状态栏的 token 数显示 2026-06-14 15:10:43 +08:00
443f613fbd Merge pull request 'ci: 修复部署脚本找不到 docker 命令的问题' (#80) from develop into main
Some checks failed
Deploy / deploy (push) Failing after 18s
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/80
2026-06-14 15:09:52 +08:00
f46f8ffa5a Merge pull request 'ci: 修复部署脚本找不到 docker 命令的问题' (#79) from fix/workflow-fix into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/79
2026-06-14 15:09:37 +08:00
hhs
159db37a60 ci: 修复部署脚本找不到 docker 命令的问题 2026-06-14 15:08:52 +08:00
15b1dd56fa feat: 聊天框与视频功能解耦,输入文字即可开始对话
之前必须点击「开始对话」连接 WebSocket 后才能使用聊天框。
现在聊天输入框始终可用,输入文字自动连接 WebSocket 并发送消息;
左侧按钮改为「开始视频通话」,单独控制摄像头/麦克风。

- ChatPanel 移除 !isConnected early return,始终显示输入框
- useVisionSession 新增待发消息队列,sendTextMessage 支持自动连接
- startSession 改为仅负责视频(摄像头 + 麦克风 + VAD)
- 修复 statusRef 在 useWebSocketManager 之前声明导致的 TDZ 错误
- 更新 i18n 翻译(新增 controls.startVideo、video.placeholder)
2026-06-14 15:07:39 +08:00
35372438a5 Merge pull request 'ci: 合并 workflow,仅保留 push main 时自动部署' (#78) from develop into main
Some checks failed
Deploy / deploy (push) Failing after 1s
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/78
2026-06-14 15:02:54 +08:00