- 03 Apr, 2026 5 commits
-
-
- buffer 公式从 baseRPM/5 改为 concurrency + maxSessions 保留 baseRPM/5 作为 floor 向后兼容 - 粘性路径 fallback 新增 [StickyCacheMiss] 结构化日志 reason: rpm_red / gate_check / session_limit / wait_queue_full / account_cleared - session_limit 路径跳过 wait queue 重试(RegisterSession 拒绝无副作用) - 典型配置 buffer 从 3 提升至 13,大幅减少高峰期 Prompt Cache Miss Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
为 OpenAI/Antigravity/Anthropic/Gemini 分组新增两个布尔控制字段: - require_oauth_only: 创建/更新账号绑定分组时拒绝 apikey 类型加入 - require_privacy_set: 调度选号时跳过 privacy 未成功设置的账号并标记 error 后端:Ent schema 新增字段 + 迁移、Group CRUD 全链路透传、 gateway_service 与 openai_account_scheduler 两套调度路径过滤 前端:创建/编辑表单 toggle 开关(OpenAI/Antigravity/Anthropic/Gemini 平台可见) Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
- token_refresh: 不可重试错误和重试耗尽两条路径添加 ensureAntigravityPrivacy - admin_service: CreateAccount 为 Antigravity OAuth 账号异步设置隐私 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
- 30 Mar, 2026 20 commits
-
-
陈曦 authored
-
shaw authored
-
shaw authored
-
github-actions[bot] authored
-
Wesley Liddick authored
feat(antigravity): progressive penalty for consecutive INTERNAL 500 errors
-
Wesley Liddick authored
fix(billing): 计费始终使用用户请求的原始模型,而非映射后的上游模型
-
Wesley Liddick authored
fix(api-key):软删除apikey后key没有被释放后续无法再自定义相同的key
-
Wesley Liddick authored
fix(admin): fix Safari system log select height
-
Wesley Liddick authored
fix(i18n): 修复 Sora 存储配置页面表格列头「存储桶」翻译缺失
-
Wesley Liddick authored
fix(gateway): normalize gpt-5.4-xhigh for /v1/messages
-
Wesley Liddick authored
Feat/add file upload oauth scope
-
Wesley Liddick authored
fix(lifecycle): TokenRefreshService Stop() 防重复 close
-
Wesley Liddick authored
修复缺少 refresh_token 时被临时停调度
-
Wesley Liddick authored
修复重置状态时未清理临时停调度
-
shaw authored
-
陈曦 authored
-
shaw authored
-
QTom authored
使用 sync.Once 包裹 close(stopCh),避免多次调用 Stop() 时 触发 panic: close of closed channel。
-
shaw authored
-
- 29 Mar, 2026 15 commits
-
-
weak-fox authored
-
weak-fox authored
-
-
injectClaudeCodePrompt 和 systemIncludesClaudeCodePrompt 的 type switch 无法匹配 json.RawMessage 类型(Go typed nil 陷阱),导致 ForwardAsResponses 和 ForwardAsChatCompletions 路径中用户 system prompt 被替换为仅 Claude Code banner。新增 normalizeSystemParam 将 json.RawMessage 转为标准 Go 类型。 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
参照 Antigravity 的模式,单个创建时同步调用 ForceOpenAIPrivacy, 批量创建时收集 OpenAI OAuth 账号后异步 goroutine 设置,避免阻塞请求。 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
刷新失败不代表 access_token 无效,在后台定时刷新(不可重试错误 + 重试耗尽)和前端批量/单次刷新的失败路径中,均利用可能仍有效的 access_token 调用隐私设置。 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
复用已有的 set-privacy API 端点,Handler 通过 platform 分发到 ForceOpenAIPrivacy / ForceAntigravityPrivacy,前端 AccountActionMenu 扩展隐私按钮支持 OpenAI OAuth 账号。 Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
-
The forward_failed error log only included account_id, making it difficult to identify which account and proxy caused the failure without querying the database. Add account_name, account_platform, and proxy details (id, name, host, port) to the log fields. Co-Authored-By:Claude Opus 4.6 (1M context) <noreply@anthropic.com>
-
新增功能: - 新增 TLS 指纹 Profile CRUD 管理(Ent schema + 迁移 + Admin API + 前端管理界面) - 支持账号绑定数据库中的自定义 TLS Profile,或随机选择(profile_id=-1) - HTTPUpstream.DoWithTLS 接口从 bool 改为 *tlsfingerprint.Profile,支持按账号指定 Profile - AccountUsageService 注入 TLSFingerprintProfileService,统一 usage 场景与网关的 Profile 解析逻辑 代码优化: - 删除已被 TLSFingerprintProfileService 完全取代的 registry.go 死代码(418 行) - 提取 3 个 dialer 的重复 TLS 握手逻辑为 performTLSHandshake() 共用函数 - 修复 GetTLSFingerprintProfileID 缺少 json.Number 处理的 bug - gateway_service.Forward 中 ResolveTLSProfile 从重试循环内重复调用改为预解析局部变量 - 删除冗余的 buildClientHelloSpec() 单行 wrapper 和 int64(e.ID) 无效转换 - tls_fingerprint_profile_cache.go 日志从 log.Printf 改为 slog 结构化日志 - dialer_capture_test.go 添加 //go:build integration 标签,防止 CI 失败 - 去重 TestProfileExpectation 类型至共享 test_types_test.go - 修复 9 个测试文件缺少 tlsfingerprint import 的编译错误 - 修复 error_policy_integration_test.go 中 handleError 回调签名被错误替换的问题
-
YanzheL authored
-
YanzheL authored
-
YanzheL authored
-
陈曦 authored
-