1. 23 Dec, 2025 5 commits
    • 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
    • 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
      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: 平台图标与计费修复 · fda75327
      shaw authored
      - fix(billing): 修复 OpenAI 兼容 API 缓存 token 重复计费问题
      - fix(auth): 隐藏数据库错误详情,返回通用服务不可用错误
      - feat(ui): 新增 PlatformIcon 组件,GroupBadge 支持平台颜色区分
      - feat(ui): 账号管理新增重置状态按钮,重授权后自动清除错误
      - feat(ui): 分组管理新增计费类型列,显示订阅限额信息
      - ui: 首页 GPT 状态改为已支持
      fda75327
  2. 22 Dec, 2025 1 commit
  3. 21 Dec, 2025 1 commit
  4. 20 Dec, 2025 8 commits
  5. 19 Dec, 2025 5 commits
    • Forest's avatar
      refactor(backend): 添加 service 缓存端口 · 7bbf6214
      Forest authored
      7bbf6214
    • Forest's avatar
      refactor(backend): 引入端口接口模式 · e99b344b
      Forest authored
      e99b344b
    • shaw's avatar
      feat(account): 账号测试支持选择模型 · ee86dbca
      shaw authored
      - 新增 GET /api/v1/admin/accounts/:id/models 接口获取账号可用模型
      - 账号测试弹窗新增模型选择下拉框
      - 测试时支持传入 model_id 参数,不传则默认使用 Sonnet
      - API Key 账号支持根据 model_mapping 映射测试模型
      - 将模型常量提取到 claude 包统一管理
      ee86dbca
    • shaw's avatar
      refactor: 提取 Claude 客户端常量到独立包 · 1ed93a5f
      shaw authored
        - 新增 internal/pkg/claude 包统一管理 Claude Code 相关常量
        - 统一账号测试逻辑,所有账号类型使用相同的 Claude Code 风格请求
        - 网关服务使用常量包替换硬编码的 beta header 字符串
      1ed93a5f
    • shaw's avatar
      feat(gateway): 添加 /v1/messages/count_tokens 端点 · 52d2ae97
      shaw authored
      实现 Claude API 的 token 计数功能,支持 OAuth、SetupToken 和 ApiKey 三种账号类型。
      
      特点:
      - 校验订阅/余额(不扣费)
      - 不计算用户和账号并发
      - 不记录使用量
      - 支持模型映射(ApiKey 账号)
      - 支持 OAuth 账号的指纹管理和 401 重试
      52d2ae97
  6. 18 Dec, 2025 5 commits
    • Forest's avatar
      refactor(backend): 拆分 Wire ProviderSet · 236908c0
      Forest authored
      236908c0
    • shaw's avatar
      feat: 实现后台在线更新功能 · 9b4fc424
      shaw authored
      - 前端添加更新和重启按钮,支持一键更新 Release 构建
      - 修复条件判断优先级问题,确保错误/成功状态正确显示
      - 后端使用原子文件替换模式,确保更新过程安全可靠
      - 在可执行文件同目录创建临时文件,保证 rename 原子性
      - 删除未使用的 copyFile 函数,保持代码整洁
      9b4fc424
    • 江西小徐's avatar
      fix: 修复并发请求时共享httpClient.Transport导致的竞态条件 · 2392e7cf
      江西小徐 authored
      问题描述:
      当多个请求并发执行且使用不同代理配置时,它们会同时修改共享的
      s.httpClient.Transport,导致请求可能使用错误的代理(数据泄露风险)
      或意外失败。
      
      修复方案:
      为需要代理的请求创建独立的http.Client,而不是修改共享的httpClient.Transport。
      
      改动内容:
      - 新增 buildUpstreamRequestResult 结构体,返回请求和可选的独立client
      - 修改 buildUpstreamRequest 方法,配置代理时创建独立client
      - 更新 Forward 方法,根据是否有代理选择合适的client
      2392e7cf
    • shaw's avatar
      fix: 修复安装/升级无法重启服务的问题 · 8e4bd42e
      shaw authored
      8e4bd42e
    • shaw's avatar
      First commit · 642842c2
      shaw authored
      642842c2