"frontend/src/vscode:/vscode.git/clone" did not exist on "c90d1f252700aecdece7140543702bea298574f0"
  1. 25 Dec, 2025 10 commits
    • 刀刀's avatar
      CC 400 返回具体错误信息 && 非 CC 请求时增加 system prompt (#26) · 9d30ceae
      刀刀 authored
      * feat: http 400 返回具体错误
      
      * 更新 workflows
      
      * 优化打包/docker 构建流程
      
      * 400 是返回 原始错误 - json 格式
      
      * feat: 非 cc请求时补充 system
      
      * go mod tidy
      9d30ceae
    • IanShaw's avatar
      feat: CRS 同步增强 - 自动刷新 OAuth token 和修复测试配置 (#27) · 60f6ed6b
      IanShaw authored
      * fix(service): 修复 OpenAI Responses API 测试负载配置
      
      - 所有账号类型统一添加 instructions 字段(不再仅限 OAuth)
      - Responses API 要求所有请求必须包含 instructions 参数
      
      * feat(crs-sync): CRS 同步时自动刷新 OAuth token 并保留完整 extra 字段
      
      **核心功能**:
      - CRSSyncService 注入 OAuth 服务依赖(Anthropic + OpenAI)
      - 账号创建/更新后自动刷新 OAuth token,确保可用性
      - 完整保留 CRS extra 字段,避免数据丢失
      
      **Extra 字段增强**:
      - 保留 CRS 所有原始 extra 字段
      - 新增同步元数据: crs_account_id, crs_kind, crs_synced_at
      - Claude 账号: 从 credentials 提取 org_uuid/account_uuid 到 extra
      - OpenAI 账号: 映射 crs_email -> email
      
      **Token 刷新逻辑**:
      - 新增 refreshOAuthToken() 方法处理 Anthropic/OpenAI 平台
      - 保留原有 credentials 字段,仅更新 token 相关字段
      - 刷新失败静默处理,不中断同步流程
      
      **依赖注入**:
      - wire_gen.go: CRSSyncService 新增 oAuthService/openaiOAuthService
      
      * style(crs-sync): 使用 switch 替代 if-else 修复 golangci-lint 警告
      
      - 将 refreshOAuthToken 中的 if-else 改为 switch 语句
      - 符合 staticcheck 规范
      - 添加 default 分支处理未知平台
      60f6ed6b
    • shaw's avatar
      chore: CRS迁移功能增加版本提示 · 4a2f7d4a
      shaw authored
      4a2f7d4a
    • shaw's avatar
      Merge PR #24: feat: 添加账户同步与批量编辑功能 · c19a393b
      shaw authored
      - 添加从 CRS 同步账户功能 (Claude OAuth/API Key, OpenAI OAuth/Responses)
      - 添加批量编辑账户功能,支持 JSONB 字段智能合并
      - 新增 CRSSyncService、BulkUpdate 仓储方法
      - 前端新增 SyncFromCrsModal 和 BulkEditAccountModal 组件
      c19a393b
    • ianshaw's avatar
      style(frontend): format code with prettier · 938ffb00
      ianshaw authored
      格式化前端业务代码,符合代码规范
      - 统一代码风格
      - 修复 ESLint 警告
      938ffb00
    • ianshaw's avatar
      fix(backend): handle defer Close() errors in crs_sync_service · 372a0129
      ianshaw authored
      修复 golangci-lint 错误检查问题
      - 使用匿名函数包装 defer Close() 并忽略错误
      - 符合 Go 最佳实践
      372a0129
    • ianshaw's avatar
      chore: trigger CI after enabling Actions · 8b163ca4
      ianshaw authored
      8b163ca4
    • ianshaw's avatar
      chore: trigger CI workflow · d23810dc
      ianshaw authored
      d23810dc
    • ianshaw's avatar
      feat(account): 优化批量更新实现,使用统一 SQL 合并 JSONB 字段 · 62ed5422
      ianshaw authored
      - 新增 BulkUpdate 仓储方法,使用单条 SQL 更新所有账户
      - credentials/extra 使用 COALESCE(...) || ? 合并,只更新传入的 key
      - name/proxy_id/concurrency/priority/status 只在提供时更新
      - 分组绑定仍逐账号处理(需要独立操作)
      - 前端优化:Base URL 留空则不修改,按勾选字段更新
      - 完善 i18n 文案:说明留空不修改、批量更新行为
      62ed5422
    • ianshaw's avatar
      feat(account): 添加批量编辑账户凭据功能并优化 CRS 同步 · 2e76302a
      ianshaw authored
      - 新增批量更新账户凭据接口(account_uuid/org_uuid/intercept_warmup_requests)
      - 新增前端批量编辑模态框组件
      - 优化 CRS 同步逻辑,改进 extra 字段处理
      - 优化 CRS 同步 UI,添加更详细的结果展示
      - 完善国际化文案(中英文)
      2e76302a
  2. 24 Dec, 2025 14 commits
    • ianshaw's avatar
      feat(account): 添加从 CRS 同步账户功能 · 65538280
      ianshaw authored
      - 添加账户同步 API 接口 (account_handler.go)
      - 实现 CRS 同步服务 (crs_sync_service.go)
      - 添加前端同步对话框组件 (SyncFromCrsModal.vue)
      - 更新账户管理界面支持同步操作
      - 添加账户仓库批量创建方法
      - 添加中英文国际化翻译
      - 更新依赖注入配置
      65538280
    • ianshaw's avatar
      chore: 更新 .gitignore 忽略配置文件并还原 Makefile · adcb7bf0
      ianshaw authored
      - 添加 backend/config.yaml 到 .gitignore(包含敏感信息)
      - 添加 deploy/config.yaml 到 .gitignore(包含敏感信息)
      - 添加 backend/.installed 到 .gitignore
      - 还原 Makefile 到原始版本
      adcb7bf0
    • shaw's avatar
      Merge branch 'feat/rename-go-module' · 876e85e7
      shaw authored
      876e85e7
    • shaw's avatar
      feat(settings): 添加文档链接配置功能 · 2e7818d6
      shaw authored
      - 后台系统设置新增文档链接(doc_url)配置项
      - 首页顶部导航栏显示文档链接图标(条件渲染)
      - Footer区域添加文档链接和GitHub链接
      - 支持中英文国际化
      2e7818d6
    • Forest's avatar
      refactor: 重命名 go module · 836c4dda
      Forest authored
      836c4dda
    • shaw's avatar
      fix(concurrency): 重构并发管理使用独立Key+原生TTL · e65e9587
      shaw authored
      问题:旧方案使用计数器模式,每次acquire都刷新TTL,导致僵尸数据永不过期
      
      解决方案:
      - 每个槽位使用独立Redis Key: concurrency:account:{id}:{requestID}
      - 利用Redis原生TTL,每个槽位独立5分钟过期
      - 服务崩溃后僵尸数据自动清理,无需手动干预
      - 兼容多实例K8s部署
      
      技术改动:
      - 新增SCAN脚本统计活跃槽位数量
      - 移除冗余的releaseScript,直接使用DEL命令
      - Wait队列TTL只在首次创建时设置,避免刷新
      e65e9587
    • shaw's avatar
      fix(dashboard): 修复性能指标 RPM/TPM 显示为0的问题 · aaadd6ed
      shaw authored
      - 修复 Admin Dashboard Handler 遗漏返回 rpm/tpm 字段
      - 将性能统计时间窗口从1分钟改为5分钟平均值,数据更稳定
      aaadd6ed
    • shaw's avatar
      feat(install): 添加安装指定版本和回退功能 · 870b2191
      shaw authored
      - 新增 rollback 命令支持回退到指定版本
      - 新增 list-versions 命令列出可用版本
      - 新增 -v/--version 参数指定安装版本
      - upgrade 命令支持升级到指定版本
      - 添加安装状态检查,未安装时给出明确提示
      - 版本切换仅替换二进制文件,保留配置和数据
      - 自动备份当前版本(带版本号或时间戳后缀)
      - 改进网络错误处理,添加超时和友好提示
      - 修复 grep -oP 兼容性问题,改用 grep -oE
      870b2191
    • shaw's avatar
      fix(version): 优化服务重启后页面刷新时机 · fb119f9a
      shaw authored
      - 将重启后等待时间从 3 秒增加到 8 秒
      - 添加倒计时显示,提升用户体验
      - 倒计时结束后先检测服务健康状态再刷新页面
      - 避免刷新过早导致 502 错误
      fb119f9a
    • shaw's avatar
      feat(gateway): 添加上游错误重试机制 · ad54795a
      shaw authored
      - OAuth/Setup Token 账号遇到 403 错误时,等待 2 秒后重试,最多 3 次
      - Console 账号遇到未配置的错误码时,同样进行重试
      - 重试耗尽后:OAuth 403 标记账号异常,Console 未配置错误码不标记账号
      - 移除 handleErrorResponse 中已被重试逻辑覆盖的死代码
      ad54795a
    • shaw's avatar
      feat(accounts): 账户列表显示实时并发数 · 0abe322c
      shaw authored
      - 在账户列表 API 返回中添加 current_concurrency 字段
      - 合并平台和类型列为 PlatformTypeBadge 组件,节省表格空间
      - 新增并发状态列,显示 当前/最大 并发数,支持颜色编码
      0abe322c
    • shaw's avatar
      refactor(accounts): 优化用量窗口显示,统一 OAuth 和 Setup Token 处理 · b0715116
      shaw authored
      - Setup Token 账号现在也调用 API 获取 5h 窗口用量数据
      - 重新设计 UsageProgressBar UI,将用量统计移到进度条上方
      - 删除冗余的 SetupTokenTimeWindow 组件
      - 请求数/Token数支持 K/M/B 单位显示
      b0715116
    • shaw's avatar
      feat(dashboard): 添加 RPM/TPM 性能指标 · 7d9a757a
      shaw authored
      在 Dashboard 中用 RPM/TPM 卡片替换原来的"今日缓存"卡片,
      实时显示最近1分钟的请求数和 Token 吞吐量。
      7d9a757a
    • Forest's avatar
      refactor(usage): 移动 usage 查询到 services · bbf4024d
      Forest authored
      bbf4024d
  3. 23 Dec, 2025 16 commits
    • shaw's avatar
      fix: 修复Claude OAuth token交换时authorization code解析错误 · 5831eb8a
      shaw authored
      原代码中 `parts` 变量被创建但从未使用,导致 `len(parts) == 0`
      永远为 true,使得即使成功从 `code#state` 格式中分割出 authCode,
      最后也会被覆盖为原始的完整字符串。
      
      这导致传递给Claude Token端点的code包含了 `#state` 部分,
      Claude返回 "Invalid 'code' in request" 错误。
      5831eb8a
    • shaw's avatar
      fix: 兼容GLM等API的usage数据解析 · 61838cdb
      shaw authored
      部分第三方API(如GLM)的SSE响应格式与标准Claude API不同:
      - 标准Claude: input_tokens在message_start中
      - GLM等API: 所有tokens都在message_delta中
      
      现在从message_delta中也解析input_tokens和cache相关字段,
      如果message_start中没有值则使用message_delta中的数据。
      61838cdb
    • dexcoder6's avatar
      feat: 添加用户余额充值/退款功能 (#17) · 50dba656
      dexcoder6 authored
      ## 功能特性
      
      ### 前端
      - 在用户列表操作列添加充值和退款按钮
      - 实现充值/退款对话框,支持输入金额和备注
      - 从编辑用户表单中移除余额字段,防止直接修改
      - 添加余额不足验证,实时显示操作后余额
      - 优化备注提示词,提供多种场景示例
      
      ### 后端
      - 为 redeem_codes 表添加 notes 字段(迁移文件)
      - 在 UpdateUserBalance 接口添加 notes 参数支持
      - 添加余额验证:金额必须大于0,操作后余额不能为负
      - UpdateUser 接口移除 balance 字段处理,防止误操作
      - 完整的审计日志和缓存管理
      
      ## 安全保护
      
      - 前端:余额不足时禁用提交按钮,实时提示
      - 后端:双重验证(输入金额 > 0 + 结果余额 >= 0)
      - 权限:仅管理员可访问(AdminAuth 中间件)
      - 审计:所有操作记录到 redeem_codes 表
      
      ## 修改文件
      
      后端:
      - backend/migrations/004_add_redeem_code_notes.sql
      - backend/internal/model/redeem_code.go
      - backend/internal/service/admin_service.go
      - backend/internal/handler/admin/user_handler.go
      
      前端:
      - frontend/src/views/admin/UsersView.vue
      - frontend/src/api/admin/users.ts
      - frontend/src/i18n/locales/zh.ts
      - frontend/src/i18n/locales/en.ts
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code
      
      )
      Co-authored-by: default avatarClaude Sonnet 4.5 <noreply@anthropic.com>
      50dba656
    • shaw's avatar
      chore: 忽略TypeScript增量编译缓存文件 · 0e282145
      shaw authored
      0e282145
    • shaw's avatar
      feat: OpenAI OAuth账号显示Codex使用量 · f25ac3af
      shaw authored
      从响应头提取x-codex-*使用量信息并保存到账号Extra字段,
      前端账号列表展示5h/7d窗口的使用进度条。
      f25ac3af
    • shaw's avatar
      chore: 将"代理管理"菜单更名为"IP管理" · f6341b7f
      shaw authored
      f6341b7f
    • shaw's avatar
      style: 统一平台和分组列的样式 · 4e257512
      shaw authored
      - 账号页面平台列改为与分组页面一致的标签样式
      - 订阅页面分组列改用 GroupBadge 组件展示
      - 修正 OpenAI OAuth 类型描述文案
      4e257512
    • shaw's avatar
    • shaw's avatar
      fix: 优化OpenAI模型定价查找的回退逻辑 · 12ddae01
      shaw authored
      当模型ID在model_pricing.json中找不到时,增加智能回退策略:
      - gpt-5.2-codex → 回退到 gpt-5.2
      - gpt-5.2-20251222 → 去掉日期后缀回退到 gpt-5.2
      - 最终回退到 DefaultTestModel (gpt-5.1-codex)
      12ddae01
    • shaw's avatar
      feat: 账号管理新增使用统计功能 · 7b9c3f16
      shaw authored
      - 新增账号统计弹窗,展示30天使用数据
      - 显示总费用、请求数、日均费用、日均请求等汇总指标
      - 显示今日概览、最高费用日、最高请求日
      - 包含费用与请求趋势图(双Y轴)
      - 复用模型分布图组件展示模型使用分布
      - 显示实际扣费和标准计费(标准计费以较淡颜色显示)
      7b9c3f16
    • dexcoder6's avatar
      feat: 增强用户管理功能,添加用户名、微信号和备注字段 · 0b8e84f9
      dexcoder6 authored
      - 新增User模型字段:username(用户名)、wechat(微信号)、notes(备注)
      - 扩展用户搜索功能,支持通过用户名和微信号搜索
      - 添加用户个人资料更新功能,用户可自行编辑用户名和微信号
      - 管理员用户列表新增用户名、微信号、备注显示列
      - 备注字段仅对管理员可见,增强数据安全性
      - 完善中英文国际化翻译
      - 修复国际化文件中重复属性的TypeScript错误
      
      🤖 Generated with [Claude Code](https://claude.com/claude-code
      
      )
      Co-Authored-By: default avatarClaude Sonnet 4.5 <noreply@anthropic.com>
      0b8e84f9
    • shaw's avatar
      feat: 账号列表显示所属分组 · d9e27df9
      shaw authored
      - Account模型新增Groups虚拟字段
      - 账号列表API预加载Group信息
      - 账号管理页面新增分组列,使用GroupBadge展示
      d9e27df9
    • shaw's avatar
      feat: 用户列表显示订阅分组及剩余天数 · f0fabf89
      shaw authored
      - User模型新增Subscriptions关联
      - 用户列表批量加载订阅信息避免N+1查询
      - GroupBadge组件支持显示剩余天数(过期红色、<=3天红色、<=7天橙色)
      - 用户管理页面新增订阅分组列
      f0fabf89
    • shaw's avatar
      fix: 修复订阅窗口过期后进度条显示不正确的问题 · 5bbfbcda
      shaw authored
      问题:滑动窗口过期后(如昨天用满额度),前端仍显示历史数据(红色进度条100%、"即将重置")
      
      解决:
      - 后端返回数据前检查窗口是否过期,过期则清零展示数据
      - 前端处理 window_start 为 null 的情况,显示"窗口未激活"
      - 不影响实际的窗口激活逻辑,窗口仍从当天零点开始
      5bbfbcda
    • shaw's avatar
      fix: 修复golangci-lint检查问题 · eb55947e
      shaw authored
      - 移除OpenAIGatewayHandler中未使用的userService字段
      - 将账号类型判断的if-else链改为switch语句
      eb55947e
    • shaw's avatar
      feat: admin/subscriptions新增重置时间显示 · 5f7e5184
      shaw authored
      5f7e5184