- 14 Mar, 2026 18 commits
-
-
Wesley Liddick authored
feat(antigravity): add 403 forbidden status detection and display
-
Wesley Liddick authored
feat(ops): make OpenAI token stats optional
-
Wesley Liddick authored
fix: 止血 Codex/Responses 原生 input id 被误改成 fc_*
-
ius authored
-
Wesley Liddick authored
fix: chat compatibility model fallback and reasoning_content output
-
Wesley Liddick authored
fix: respect OpenAI OAuth model mapping in admin available models
-
Wesley Liddick authored
fix: honor account model mapping before group fallback
-
Ethan0x0000 authored
-
Wang Lvyuan authored
-
Wang Lvyuan authored
-
Wesley Liddick authored
fix: sync scheduler snapshot on account updates
-
shaw authored
-
Wesley Liddick authored
docs: add iframe integration feature and ecosystem projects section
-
Wang Lvyuan authored
-
Wang Lvyuan authored
-
Ethan0x0000 authored
- apply default mapped model only when scheduling fallback is actually used - preserve reasoning in OpenAI-compatible output via reasoning_content and avoid invalid input function_call ids
-
Wesley Liddick authored
sub2api: add bedrock support
-
Wang Lvyuan authored
-
- 13 Mar, 2026 21 commits
-
-
erio authored
-
erio authored
The 403 detection PR changed the 401 handler condition from `account.Type == AccountTypeOAuth` to `account.Type == AccountTypeOAuth && account.Platform == PlatformOpenAI`, which accidentally excluded Gemini OAuth from the temp-unschedulable path. Fix: use `!= PlatformAntigravity` instead, preserving Gemini behavior while correctly excluding Antigravity (whose 401 is handled by applyErrorPolicy's temp_unschedulable_rules). Update tests to reflect Antigravity's new 401 semantics: - HandleUpstreamError: Antigravity OAuth 401 now uses SetError - CheckErrorPolicy: Antigravity 401 second hit stays TempUnscheduled - DB fallback: split into Gemini (escalates) and Antigravity (stays temp)
-
Wesley Liddick authored
feat(admin): add user spending ranking dashboard view
-
Wesley Liddick authored
fix: remove SSE termination marker from DefaultStopSequences
-
Wesley Liddick authored
fix(dashboard): prefer username over email prefix in recent usage chart
-
Wesley Liddick authored
fix(admin): default dashboard date range to today
-
shaw authored
-
Wesley Liddick authored
feat: 解耦计费正确性与 usage_logs 批量写压
-
Wesley Liddick authored
chore: codex transform fixes and feature compatibility
-
Wesley Liddick authored
feat(redeem): support subscription type in create-and-redeem API
-
erio authored
Add group_id and validity_days fields to CreateAndRedeemCodeRequest, enabling subscription-type redemption codes to be created and redeemed in a single API call. - Type defaults to "balance" when omitted for backward compatibility - Subscription type requires group_id (non-nil) and validity_days (>0) - Existing balance/concurrency callers are unaffected
-
Ylarod authored
-
erio authored
Backend: - Detect and classify 403 responses into three types: validation (account needs Google verification), violation (terms of service / banned), forbidden (generic 403) - Extract verification/appeal URLs from 403 response body (structured JSON parsing with regex fallback) - Add needs_verify, is_banned, needs_reauth, error_code fields to UsageInfo (omitempty for zero impact on other platforms) - Handle 403 in request path: classify and permanently set account error - Save validation_url in error_message for degraded path recovery - Enrich usage with account error on both success and degraded paths - Add singleflight dedup for usage requests with independent context - Differentiate cache TTL: success/403 → 3min, errors → 1min - Return degraded UsageInfo instead of HTTP 500 on quota fetch errors Frontend: - Display forbidden status badges with color coding (red for banned, amber for needs verification, gray for generic) - Show clickable verification/appeal URL links - Display needs_reauth and degraded error states in usage cell - Add Antigravity tier label badge next to platform type Tests: - Comprehensive unit tests for classifyForbiddenType (7 cases) - Unit tests for extractValidationURL (8 cases including unicode escapes) - Integration test for FetchQuota forbidden path
-
Connie Borer authored
-
Peter authored
-
Peter authored
-
Ylarod authored
-
Wesley Liddick authored
feat(groups): add rate multipliers management modal
-
Wesley Liddick authored
fix: 管理员重置配额补全 monthly 字段并修复 ristretto 缓存异步问题 fix issue #964
-
haruka authored
- 后端 handler:ResetSubscriptionQuotaRequest 新增 Monthly 字段, 验证逻辑扩展为 daily/weekly/monthly 至少一项为 true - 后端 service:AdminResetQuota 新增 resetMonthly 参数, 调用 ResetMonthlyUsage;重置后追加 subCacheL1.Wait(), 保证 ristretto Del() 的异步删除立即生效,消除重置后 /v1/usage 返回旧用量数据的竞态窗口 - 后端测试:更新存量测试用例匹配新签名,补充 TestAdminResetQuota_ResetMonthlyOnly / TestAdminResetQuota_ResetMonthlyUsageError 两个新用例 - 前端 API:resetQuota options 类型新增 monthly: boolean - 前端视图:confirmResetQuota 改为同时重置 daily/weekly/monthly - i18n:中英文确认提示文案更新,提及每月配额 Co-Authored-By:Claude Sonnet 4.6 <noreply@anthropic.com>
-
Wesley Liddick authored
feat: GPT Private设置数据不用于训练
-
- 12 Mar, 2026 1 commit
-
-
Peter authored
-