1. 08 Feb, 2026 7 commits
  2. 07 Feb, 2026 22 commits
  3. 06 Feb, 2026 6 commits
    • shaw's avatar
      fix(ops): 添加 token 相关字段白名单避免误脱敏 · 9f4c1ef9
      shaw authored
      在敏感字段检测中添加白名单,排除 API 参数和用量统计字段:
      - max_tokens, max_completion_tokens, max_output_tokens
      - completion_tokens, prompt_tokens, total_tokens
      - input_tokens, output_tokens
      - cache_creation_input_tokens, cache_read_input_tokens
      
      这些字段名虽然包含 "token" 但只是数值参数,不应被脱敏处理。
      9f4c1ef9
    • shaw's avatar
      fix(gateway): 移除 PR #316 引入的工具名转换逻辑 · d182ef03
      shaw authored
      移除响应阶段的工具名/schema/description 转换逻辑,修复第三方工具调用时
      工具名被错误转换的问题(如 Task → task)。
      
      移除内容:
      - 工具名相关正则变量(toolPrefixRe, toolNameBoundaryRe 等)
      - openCodeToolOverrides 和 claudeToolNameOverrides 映射表
      - 工具名转换函数(normalizeToolNameForClaude, normalizeToolNameForOpenCode 等)
      - 响应体工具名替换函数(replaceToolNamesInText, replaceToolNamesInResponseBody 等)
      - 参数名转换函数(normalizeParamNameForOpenCode, rewriteParamKeysInValue)
      - 工具描述清理函数(sanitizeToolDescription)
      - 输入 schema 转换函数(normalizeToolInputSchema)
      - 模型 ID 正则替换函数(replaceModelIDInText)
      
      保留内容:
      - 系统提示词清理(sanitizeSystemText)
      - Claude Code 指纹 headers 处理
      - 模型 ID 映射(通过 JSON 对象操作)
      d182ef03
    • yangjianbo's avatar
      ee01f80d
    • yangjianbo's avatar
      fix(兼容): 将 Kimi cached_tokens 映射到 Claude 标准 cache_read_input_tokens · f33a9501
      yangjianbo authored
      
      
      Kimi 等 Claude 兼容 API 返回缓存信息使用 OpenAI 风格的 cached_tokens 字段,
      而非 Claude 标准的 cache_read_input_tokens,导致客户端收不到缓存命中信息且
      内部计费缓存折扣为 0。
      
      新增 reconcileCachedTokens 辅助函数,在 cache_read_input_tokens == 0 且
      cached_tokens > 0 时自动填充,覆盖流式(message_start/message_delta)和
      非流式两种响应路径。对 Claude 原生上游无影响。
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      f33a9501
    • shaw's avatar
      chore: 前端增加opus4.6模型映射 · 01b08e1e
      shaw authored
      01b08e1e
    • yangjianbo's avatar
      fix(兼容): 将 Kimi cached_tokens 映射到 Claude 标准 cache_read_input_tokens · c6a456c7
      yangjianbo authored
      
      
      Kimi 等 Claude 兼容 API 返回缓存信息使用 OpenAI 风格的 cached_tokens 字段,
      而非 Claude 标准的 cache_read_input_tokens,导致客户端收不到缓存命中信息且
      内部计费缓存折扣为 0。
      
      新增 reconcileCachedTokens 辅助函数,在 cache_read_input_tokens == 0 且
      cached_tokens > 0 时自动填充,覆盖流式(message_start/message_delta)和
      非流式两种响应路径。对 Claude 原生上游无影响。
      Co-Authored-By: default avatarClaude Opus 4.6 <noreply@anthropic.com>
      c6a456c7
  4. 05 Feb, 2026 5 commits
    • yangjianbo's avatar
      a38bd413
    • yangjianbo's avatar
      9e1535e2
    • iBenzene's avatar
      037a4099
    • shaw's avatar
      fix: 修复管理页面活跃会话数始终显示为0的问题 · ae1934f7
      shaw authored
      问题原因:Redis Pipeline 执行 Lua 脚本时出现 NOSCRIPT 错误,
      因为 redis.NewScript 使用 EVALSHA 执行脚本,当 Redis 重启或
      脚本未被缓存时,Pipeline 模式无法自动回退到 EVAL。
      
      解决方案:在 NewSessionLimitCache 初始化时预加载所有 Lua 脚本
      到 Redis,确保后续 Pipeline 执行时脚本已被缓存。
      ae1934f7
    • shaw's avatar
      feat: 新增全局错误透传规则功能 · 39e05a2d
      shaw authored
      支持管理员配置上游错误如何返回给客户端:
      - 新增 ErrorPassthroughRule 数据模型和 Ent Schema
      - 实现规则的 CRUD API(/admin/error-passthrough-rules)
      - 支持按错误码、关键词匹配,支持 any/all 匹配模式
      - 支持按平台过滤(anthropic/openai/gemini/antigravity)
      - 支持透传或自定义响应状态码和错误消息
      - 实现两级缓存(Redis + 本地内存)和多实例同步
      - 集成到 gateway_handler 的错误处理流程
      - 新增前端管理界面组件
      - 新增单元测试覆盖核心匹配逻辑
      
      优化:
      - 移除 refreshLocalCache 中的冗余排序(数据库已排序)
      - 后端 Validate() 增加匹配条件非空校验
      39e05a2d