Peter
0ddaef3c9a
feat(admin): add metric toggle to usage charts
2026-03-11 16:05:27 +08:00
Wesley Liddick
7455476c60
Merge pull request #918 from rickylin047/fix/responses-string-input
...
fix(openai): convert string input to array for Codex OAuth responses endpoint (fix #919 )
2026-03-11 08:54:39 +08:00
rickylin047
9f1f203b84
fix(openai): convert string input to array for Codex OAuth responses endpoint
...
The ChatGPT backend-api codex/responses endpoint requires `input` to be
an array, but the OpenAI Responses API spec allows it to be a plain string.
When a client sends a string input, sub2api now converts it to the expected
message array format. Empty/whitespace-only strings become an empty array
to avoid triggering a 400 "Input must be a list" error.
2026-03-10 23:43:52 +08:00
Wesley Liddick
3cc407bc0e
Merge pull request #900 from ischanx/feat/admin-bind-subscription-group
...
feat: 允许管理员为持有有效订阅的用户绑定订阅类型分组
v0.1.95
2026-03-10 11:20:47 +08:00
shaw
00a0a12138
feat: Anthropic平台可配置 anthropic-beta 策略
2026-03-10 11:20:10 +08:00
ischanx
b08767a4f9
fix: avoid admin subscription binding regressions
2026-03-10 10:53:54 +08:00
Wesley Liddick
ac6bde7a98
Merge pull request #872 from StarryKira/fix/oauth-linuxdo-invitation-required
...
fix: Linux.do OAuth 注册支持邀请码两步流程 (fix #836 )
2026-03-10 09:10:35 +08:00
Wesley Liddick
d2d41d68dd
Merge pull request #894 from touwaeriol/pr/startup-concurrency-cleanup
...
feat: cleanup stale concurrency slots on startup
2026-03-10 09:08:33 +08:00
Wesley Liddick
944b7f7617
Merge pull request #904 from james-6-23/fix-pool-mode-retry
...
fix: OpenAI临时性400错误支持池模式同账号重试 & HelpTooltip层级修复
2026-03-10 09:08:12 +08:00
Wesley Liddick
53825eb073
Merge pull request #903 from touwaeriol/fix/openai-responses-sse-max-line-size-v2
...
fix: use shared max_line_size config for OpenAI Responses SSE scanner
2026-03-10 09:06:48 +08:00
Wesley Liddick
1a7f49513f
Merge pull request #896 from touwaeriol/pr/fix-quota-badge-vertical-layout
...
fix(frontend): stack quota badges vertically in capacity column
2026-03-10 09:04:53 +08:00
Wesley Liddick
885a2ce7ef
Merge pull request #893 from touwaeriol/pr/iframe-lang-passthrough
...
feat(frontend): pass locale to iframe embedded pages via lang parameter
2026-03-10 09:04:37 +08:00
Wesley Liddick
14ba80a0af
Merge pull request #897 from DaydreamCoding/feat/batch-reset-and-openai-jwt
...
feat: OpenAI 账号信息增强 & 批量操作支持
2026-03-10 09:03:59 +08:00
kyx236
5fa22fdf82
fix: OpenAI临时性400错误支持池模式同账号重试 & HelpTooltip层级修复
...
1. 识别OpenAI "An error occurred while processing your request" 临时性400错误
并触发failover,同时在池模式下标记RetryableOnSameAccount,允许同账号重试
2. ForwardAsAnthropic路径同步支持临时性400错误的识别和同账号重试
3. HelpTooltip组件使用Teleport渲染到body,修复在dialog内被裁切的问题
2026-03-10 03:00:58 +08:00
erio
bcaae2eb91
fix: use shared max_line_size config for OpenAI Responses SSE scanner
...
Two SSE scanners in openai_gateway_messages.go were hardcoded to 1MB
while all other scanners use defaultMaxLineSize (500MB) with config
override. This caused Responses API streams to fail on large payloads.
2026-03-10 02:50:04 +08:00
ischanx
767a41e263
feat: 允许管理员为持有有效订阅的用户绑定订阅类型分组
...
之前管理员无法通过 API 密钥管理将用户绑定到订阅类型分组(直接返回错误)。
现在改为检查用户是否持有该分组的有效订阅,有则允许绑定,无则拒绝。
- admin_service: 新增 userSubRepo 依赖,替换硬拒绝为订阅校验
- admin_service: 区分 ErrSubscriptionNotFound 和内部错误,避免 DB 故障被误报
- wire_gen/api_contract_test: 同步新增参数
- UserApiKeysModal: 管理员分组下拉不再过滤订阅类型分组
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 00:51:43 +08:00
QTom
252d6c5301
feat: 支持批量重置状态和批量刷新令牌
...
- 提取 refreshSingleAccount 私有方法复用单账号刷新逻辑
- 新增 BatchClearError handler (POST /admin/accounts/batch-clear-error)
- 新增 BatchRefresh handler (POST /admin/accounts/batch-refresh)
- 前端 AccountBulkActionsBar 添加批量重置状态/刷新令牌按钮
- AccountsView 添加 handler 支持 partial success 反馈
- i18n 中英文补充批量操作相关翻译
2026-03-09 21:54:27 +08:00
QTom
7a4e65ad4b
feat: 导入账号时 best-effort 从 id_token 提取用户信息
...
提取 DecodeIDToken(跳过过期校验)供导入场景使用,
ParseIDToken 复用它并保留原有过期检查行为。
导入 OpenAI/Sora OAuth 账号时自动补充缺失的 email、
plan_type、chatgpt_account_id 等字段,不覆盖已有值。
2026-03-09 21:53:46 +08:00
QTom
a582aa89a9
feat: 从 OpenAI JWT 提取 chatgpt_plan_type 并在前端展示
...
OAuth 授权和 token 刷新时从 id_token 的 OpenAI auth claim 中
提取 chatgpt_plan_type(plus/team/pro/free),存入 credentials,
账号管理页面 PlatformTypeBadge 显示订阅类型。
2026-03-09 21:53:46 +08:00
erio
acefa1da12
fix(frontend): stack quota badges vertically in capacity column
...
QuotaBadge components (daily/weekly/total) were wrapped in a
horizontal flex container, making them visually inconsistent with
other capacity badges (concurrency, window cost, sessions, RPM)
which stack vertically. Remove the wrapper so all badges align
consistently.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 20:18:12 +08:00
erio
a88698f3fc
feat: cleanup stale concurrency slots on startup
...
When the service restarts, concurrency slots from the old process
remain in Redis, causing phantom occupancy. On startup, scan all
concurrency sorted sets and remove members with non-current process
prefix, then clear orphaned wait queue counters.
Uses Go-side SCAN to discover keys (compatible with Redis client
prefix hooks in tests), then passes them to a Lua script for
atomic member-level cleanup.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 19:55:18 +08:00
erio
ebc6755b33
feat(frontend): pass locale to iframe embedded pages via lang parameter
...
Embedded pages (purchase subscription, custom pages) now receive the
current user locale through a `lang` URL parameter, allowing iframe
content to match the user's language preference.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 19:38:23 +08:00
shaw
c8eff34388
chore: update readme
2026-03-09 16:25:56 +08:00
shaw
f19b03825b
chore: update docs
2026-03-09 16:11:44 +08:00
shaw
25178cdbe1
fix: 修复gpt->claude同步请求返回sse的bug
v0.1.94
2026-03-09 15:58:44 +08:00
shaw
a461538d58
fix: 修复gpt->claude转换无法命中codex缓存问题
2026-03-09 15:08:37 +08:00
Elysia
b43ee62947
fix CI/CD Error
2026-03-09 13:13:39 +08:00
shaw
ebe6f418f3
fix: gpt->claude格式转换对齐effort映射和fast
2026-03-09 11:42:35 +08:00
Wesley Liddick
391e79f8ee
Merge pull request #875 from mt21625457/fix/openai-fast-billing-clean
...
fix(billing): 修复 OpenAI fast 档位计费并补齐展示
2026-03-09 10:32:18 +08:00
shaw
c7fcb7a84b
feat: apikey限额支持查询重置时间
2026-03-09 10:22:24 +08:00
yangjianbo
87f4ed591e
fix(billing): 修复 OpenAI fast 档位计费并补齐展示
...
- 打通 service_tier 在 OpenAI HTTP、WS、passthrough 与 usage 记录中的传递
- 修正 priority/flex 计费逻辑,并将 fast 归一化为 priority
- 在用户端和管理端补齐服务档位与计费明细展示
- 补齐前后端测试,并修复 WS 限流信号重复持久化导致的全量回归失败
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 09:51:26 +08:00
shaw
440d2e28ed
fix: 恢复context-1m-2025-08-07在oauth账号中传递
2026-03-09 09:29:33 +08:00
Wesley Liddick
6cb8980404
Merge pull request #807 from touwaeriol/fix/openai-passthrough-v2
...
fix(openai): remove misplaced passthrough check from isModelSupportedByAccount
2026-03-09 09:06:35 +08:00
Wesley Liddick
fe752bbd35
Merge pull request #853 from touwaeriol/pr/swipe-select-admin-tables
...
feat(frontend): 为后台账号管理和 IP 管理增加拖筐选中能力
2026-03-09 09:04:02 +08:00
Wesley Liddick
c74d451fa2
Merge pull request #874 from touwaeriol/pr/increase-sse-max-line-size
...
fix: increase SSE scanner max line size from 40MB to 500MB
2026-03-09 09:03:39 +08:00
Wesley Liddick
12d743fb35
Merge pull request #868 from touwaeriol/pr/bump-antigravity-version
...
chore: bump Antigravity user agent version to 1.20.4
2026-03-09 09:03:25 +08:00
Wesley Liddick
6acb9f7910
Merge pull request #864 from StarryKira/fix/clear-thinking-context-management
...
[Fix] Fix issue #851
2026-03-09 09:02:58 +08:00
erio
eb6f5c6927
test: update UserAgent version assertion to match 1.20.4
2026-03-09 08:59:21 +08:00
erio
7ccb4c8ea3
chore: bump Antigravity user agent version to 1.20.4
2026-03-09 08:59:21 +08:00
erio
4ce986d47d
fix: also update viper default max_line_size from 40MB to 500MB
...
The viper config default (config.go) was overriding the constant
in gateway_service.go. Both must be updated to take effect.
2026-03-09 08:56:54 +08:00
erio
91ef085d7d
fix: increase SSE scanner max line size from 40MB to 500MB
...
4K image base64 data can exceed 40MB limit, causing "bufio.Scanner:
token too long" errors. Scanner is adaptive (starts at 64KB, grows
as needed), so increasing the cap has no impact on normal responses.
2026-03-09 08:56:54 +08:00
Wesley Liddick
97aaa24733
Merge pull request #858 from james-6-23/fix/pool-mode-03bf3485
...
支持 API Key 上游池模式的同账号重试次数配置与自定义错误策略
2026-03-09 08:48:53 +08:00
Wesley Liddick
faf6441633
Merge pull request #854 from james-6-23/main
...
feat(admin): 支持定时测试自动恢复并统一账号恢复入口
2026-03-09 08:48:36 +08:00
shaw
00c151b463
feat: gpt->claude格式转换支持图片识别
2026-03-09 08:44:09 +08:00
Elysia
106b20cdbf
fix claudecode review bug
2026-03-09 01:18:49 +08:00
Elysia
c069b3b1e8
fix issue #836 linux.do注册无需邀请码
2026-03-09 00:35:34 +08:00
Wesley Liddick
a2ae9f1f27
Merge pull request #866 from touwaeriol/pr/apikey-quota-usage-bars
...
feat(frontend): add API Key quota progress bars to usage window
2026-03-08 21:50:24 +08:00
erio
4cd6d86426
feat(frontend): add API Key quota progress bars to usage window column
...
Display daily/weekly/total quota utilization as progress bars in the
usage window column for API Key accounts, providing visual feedback
consistent with other account types (OAuth/Gemini).
- Daily quota: "1d" label with reset countdown
- Weekly quota: "7d" label with reset countdown
- Total quota: "total" label (no reset)
2026-03-08 21:35:26 +08:00
时雨遥
fa72f1947a
Update backend/internal/service/gateway_request_test.go
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-08 21:21:36 +08:00
时雨遥
9ee7d3935d
Update backend/internal/service/gateway_request.go
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-03-08 21:21:28 +08:00