|
|
3140a660e4
|
fix: apk 使用阿里云镜像 mirrors.aliyun.com 加速下载
|
2026-06-20 22:02:30 +08:00 |
|
|
|
ba7c5ed5ea
|
Merge pull request 'fix: CI 环境安装 rsync + docker-cli + docker-cli-compose' (#168) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/168
|
2026-06-20 21:47:45 +08:00 |
|
|
|
cc7a333b6d
|
fix: CI 环境安装 rsync + docker-cli + docker-cli-compose
|
2026-06-20 21:46:25 +08:00 |
|
|
|
d6059ae397
|
Merge pull request 'fix: git clone 前清理残留的 /tmp/camtalk-deploy 目录' (#166) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/166
|
2026-06-20 21:39:02 +08:00 |
|
|
|
d4398e55fe
|
fix: git clone 前清理残留的 /tmp/camtalk-deploy 目录
|
2026-06-20 21:38:30 +08:00 |
|
|
|
190f40908f
|
Merge pull request 'fix: 添加 rsync 安装,避免首次部署时 command not found' (#164) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/164
|
2026-06-20 21:33:23 +08:00 |
|
|
|
ddb90c58ef
|
fix: 添加 rsync 安装,避免首次部署时 command not found
|
2026-06-20 21:32:57 +08:00 |
|
|
|
ca07188eda
|
Merge pull request 'fix: 统一使用 /opt/camtalk/.env 路径,act_runner 挂载宿主机目录后直接读取' (#162) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/162
|
2026-06-20 21:31:49 +08:00 |
|
|
|
15a50f855b
|
fix: 统一使用 /opt/camtalk/.env 路径,act_runner 挂载宿主机目录后直接读取
|
2026-06-20 21:30:21 +08:00 |
|
|
|
e37dc7074d
|
chore: 首页代码仓库链接改为 Gitea 地址
|
2026-06-20 21:12:06 +08:00 |
|
|
|
90c5ad7724
|
Merge pull request 'fix: env_file 使用绝对路径 /root/camtalk/.env,确保 CI 容器内 docker compose 正确解析' (#160) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/160
|
2026-06-20 20:58:34 +08:00 |
|
|
|
45e2c4f37b
|
fix: env_file 使用绝对路径 /root/camtalk/.env,确保 CI 容器内 docker compose 正确解析
|
2026-06-20 20:57:34 +08:00 |
|
|
|
159bf278e6
|
Merge pull request 'docs: 添加令牌桶限流模块设计文档' (#158) from feature/ratelimite into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/158
|
2026-06-20 20:36:21 +08:00 |
|
|
|
542126df90
|
Merge pull request 'docs:更新文档' (#157) from feat/historychat into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/157
|
2026-06-20 20:20:59 +08:00 |
|
|
|
e56600e408
|
docs:更新文档
|
2026-06-20 20:17:16 +08:00 |
|
|
|
9ba4eb4825
|
Merge pull request 'feat: 优化对话历史功能、增加首页登录页面' (#155) from feat/historychat into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/155
|
2026-06-20 20:06:39 +08:00 |
|
|
|
0a8a20f3f8
|
Merge pull request 'fix: 通过 docker run -v 桥接同步 /opt/camtalk/.env,每次部署自动获取最新配置' (#153) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/153
|
2026-06-20 20:05:11 +08:00 |
|
|
|
e20f58b4ae
|
fix: 通过 docker run -v 桥接同步 /opt/camtalk/.env,每次部署自动获取最新配置
|
2026-06-20 20:04:46 +08:00 |
|
|
|
ab07e01adf
|
feat: 优化对话历史功能
|
2026-06-20 19:57:36 +08:00 |
|
|
|
12cf59f1e8
|
Merge pull request 'fix: git fetch 改用公网 URL 而非 origin,避免 Docker 内网地址不可达导致卡死' (#150) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/150
|
2026-06-20 19:47:28 +08:00 |
|
|
|
4f735e6d29
|
fix: git fetch 改用公网 URL 而非 origin,避免 Docker 内网地址不可达导致卡死
|
2026-06-20 19:45:56 +08:00 |
|
|
|
4d51bcefb0
|
Merge pull request 'fix: env_file 改为相对路径,解决 CI 容器无法读取 /opt/camtalk/.env 的问题' (#148) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/148
|
2026-06-20 19:31:10 +08:00 |
|
|
|
fe5ac20a1f
|
fix: env_file 改为相对路径,解决 CI 容器无法读取 /opt/camtalk/.env 的问题
|
2026-06-20 19:29:12 +08:00 |
|
|
|
df35ff73b5
|
Merge pull request 'fix: 精简 deploy.yml,checkout + ref + verify 三步确保拉取正确分支' (#146) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/146
|
2026-06-20 17:50:08 +08:00 |
|
|
|
92e6636d05
|
fix: 精简 deploy.yml,checkout + ref + verify 三步确保拉取正确分支
|
2026-06-20 17:49:36 +08:00 |
|
|
|
12e2d24f37
|
fix: checkout 后显式 git fetch 切换触发分支,避免始终部署 main 代码;Dockerfile 添加 BuildKit cache mount 加速构建
|
2026-06-20 17:43:32 +08:00 |
|
|
|
4a5905307c
|
Merge pull request 'fix: 恢复 checkout action 拉取代码,仅添加 ref 参数指定触发分支' (#144) from fix/actions into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/144
|
2026-06-20 17:35:30 +08:00 |
|
|
|
2a7d4c74d4
|
feat:增加首页登录页面
|
2026-06-20 17:35:14 +08:00 |
|
|
|
6bb4773e07
|
fix: 恢复 checkout action 拉取代码,仅添加 ref 参数指定触发分支
|
2026-06-20 17:33:59 +08:00 |
|
|
|
39073b7673
|
fix: 添加 git safe.directory 配置,修复 CI/CD 中 dubious ownership 错误
|
2026-06-20 17:21:40 +08:00 |
|
|
|
85d47c1fc4
|
docs: 添加令牌桶限流模块设计文档
- 新建 docs/13-令牌桶限流设计.md,覆盖算法原理、内存/Redis 双实现、配置设计、接入点、测试用例等
- 更新 docs/01-架构设计.md Rate Limiter 模块行链接至新文档
- 更新 docs/README.md 文档索引和推荐阅读顺序
|
2026-06-20 17:08:23 +08:00 |
|
|
|
4ff8cec312
|
docs: 添加鉴权体系设计文档,更新认证相关文档
- 新增 12-鉴权体系设计.md,详细描述 JWT 双 token 轮转认证机制
- 更新架构设计文档,补充认证设计章节的安全机制和配置说明
- 更新接口文档,补充 Refresh Token Rotation 安全机制和前端集成示例
- 更新文档索引,添加新文档的推荐阅读顺序
|
2026-06-20 16:51:03 +08:00 |
|
|
|
3572b867c0
|
Merge pull request 'feat: 完善鉴权模块' (#142) from fix/auth into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/142
|
2026-06-20 16:34:47 +08:00 |
|
|
|
4651ae185b
|
fix: CI/CD 改用 git clone 直接拉取代码,避免 rsync 同步失败
|
2026-06-20 16:23:59 +08:00 |
|
|
|
590c4592ea
|
fix: checkout 指定触发分支,避免始终拉取 main 代码
|
2026-06-20 15:51:14 +08:00 |
|
|
|
970f10a274
|
fix: 修复前端 lint 错误 — 移除 ref 模式,用 useEffect 依赖注入回调
- api.ts: 移除 catch 中未使用的 err 变量
- auth.tsx: 去掉 useRef 模式,直接在 useEffect 中注册回调并声明依赖
|
2026-06-20 15:07:09 +08:00 |
|
|
|
d78cdb509d
|
feat: 前端 401 拦截器 — access token 过期时自动刷新并重试原请求
api.ts:
- 增加 setAuthCallbacks 回调注入机制(避免 api/auth 循环依赖)
- request() 对非公开路径自动附加 Authorization header
- 收到 401 时自动触发 refresh token 刷新,成功后重试原请求
- 并发保护:多个 401 只触发一次 refresh,其余等待同一 Promise
- refreshTokenDirect 内部方法绕过 401 拦截避免递归
auth.tsx:
- 用 ref 保存 persistAuth/scheduleRefresh 最新引用(避免闭包陈旧)
- 初始化时调用 setAuthCallbacks 注入认证回调
|
2026-06-20 14:57:27 +08:00 |
|
|
|
ea70d2efc6
|
feat: main.go 注入 Redis 到 CachedUserRepository,启用 refresh token 二级缓存
- 将 rdb 变量提升到外层作用域,供 session 和 auth 共用
- Redis 启用时用 CachedUserRepository 包装 userRepo
- backfillTTL 使用 cfg.Auth.RefreshTTL 与 token 实际过期时间一致
|
2026-06-20 14:54:08 +08:00 |
|
|
|
a2a28a9f56
|
feat: CachedUserRepository — refresh token 的 Redis 缓存装饰器
- 装饰 UserRepository,仅缓存 refresh token 相关操作
- SaveRefreshToken: Write-Through,先写 DB 再写 Redis(SET + SADD)
- FindRefreshToken: Read-Through,Redis miss 时查 DB 并回填
- DeleteRefreshToken: 双删 DB + Redis
- DeleteUserRefreshTokens: 通过 Redis Set 批量清理缓存后删 DB
- Redis 操作失败时降级到纯 DB,不阻断主流程
|
2026-06-20 14:53:10 +08:00 |
|
|
|
898e30b526
|
feat: Refresh Token 复用检测 — 检测到已 rotation 的 token 被复用时吊销用户全部 refresh token
- Refresh 方法中 FindRefreshToken 返回 not found 时,检查 JWT 是否有效
- JWT 有效但 DB 不存在 → 判定为复用,调用 DeleteUserRefreshTokens 吊销该用户所有 token
- 增加 TestRefresh_ReuseDetectedRevokesAllTokens 测试覆盖复用场景
|
2026-06-20 14:51:34 +08:00 |
|
|
|
87c54b80c0
|
feat: JWT Claims 增加 TokenType 字段,ValidateAccess/ValidateRefresh 区分校验类型
- Claims 新增 TokenType 字段("access" / "refresh")
- GeneratePair 为 access/refresh token 分别设置 token_type
- ValidateAccess 校验后检查 token_type == "access"
- ValidateRefresh 校验后检查 token_type == "refresh"
- 增加 token 类型交叉校验测试
|
2026-06-20 14:50:19 +08:00 |
|
|
|
7288f443f1
|
Merge pull request 'feat: 对话场景优化' (#138) from fea/models into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/138
|
2026-06-20 14:49:22 +08:00 |
|
|
|
488b1e62ba
|
docs: 更新前端三态会话模型,新增结束视频保留对话设计文档
|
2026-06-20 14:47:25 +08:00 |
|
|
|
50c84fce88
|
fix: 修复新对话首次打字出现两个输入框
根因:sendTextMessage 断开状态时立即 setMessages 添加用户消息到 UI,
同时 connect() 触发连接成功后 flush useEffect 再次 setMessages 添加同一条消息,
导致消息重复、ChatPanel 渲染出两个输入区域。
修复:断开状态时只入队不立即显示,由 flush 统一处理。
|
2026-06-20 14:32:40 +08:00 |
|
|
|
ae09fba400
|
fix: 修复聊天输入框 flex 布局导致重复渲染
- chat-input__field 增加 min-width: 0 防止 flex 项溢出
- chat-input__send 增加 flex-shrink: 0 防止按钮被挤压换行
|
2026-06-20 14:24:52 +08:00 |
|
|
|
f8a79a3b0b
|
fix: 修复文字对话态误显「正在初始化语音检测」
ChatPanel VAD 初始化提示条件增加 isCameraOn 判断,
视频结束后不再显示语音检测初始化提示。
|
2026-06-20 14:04:20 +08:00 |
|
|
|
ae9a27c300
|
feat: 结束视频后保留对话,支持继续文字聊天
- useVisionSession 新增 stopVideo 回调(停媒体流,保持连接和消息)
- App.tsx 控制区从二态改为三态(initial/video/textOnly)
- 文字对话态显示「重新开始视频」和「结束会话」按钮
- 新增 CSS 样式(video-ended-hint、btn--outline)
- 新增 i18n key(stopVideo/endSession/resumeVideo/video.ended)
- 新增设计方案文档
|
2026-06-20 13:48:26 +08:00 |
|
|
|
6f81212997
|
Merge pull request 'fix: CI 环境安装 rsync 依赖' (#136) from fix/config into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/136
|
2026-06-20 13:37:14 +08:00 |
|
|
|
402ad8c949
|
fix: CI 环境安装 rsync 依赖
|
2026-06-20 13:36:44 +08:00 |
|
|
|
97706ea197
|
Merge pull request 'fix: CI/CD 部署固定到 /root/camtalk 目录,确保 compose 能正确管理容器生命周期' (#134) from fix/config into develop
Reviewed-on: http://8.161.227.145:3000/XEngineers/CamTalk/pulls/134
|
2026-06-20 13:33:59 +08:00 |
|