Ethan0x0000
e3f1fd9b63
fix: handle strings.Builder write errors in assistant parsing
2026-03-14 13:12:17 +08:00
Ethan0x0000
ece0606fed
fix: consolidate chat-completions compatibility fixes
...
- 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
2026-03-14 12:12:08 +08:00
Wesley Liddick
4588258d80
Merge pull request #960 from 0xObjc/codex/user-spending-ranking
...
feat(admin): add user spending ranking dashboard view
2026-03-13 23:06:30 +08:00
Wesley Liddick
c12e48f966
Merge pull request #949 from kunish/fix/remove-done-stop-sequence
...
fix: remove SSE termination marker from DefaultStopSequences
2026-03-13 22:56:29 +08:00
Wesley Liddick
ec8f50a658
Merge pull request #951 from wanXcode/fix/dashboard-user-trend-label
...
fix(dashboard): prefer username over email prefix in recent usage chart
2026-03-13 22:56:13 +08:00
Wesley Liddick
99c9191784
Merge pull request #974 from 0xObjc/codex/next-pr-base-20260313
...
fix(admin): default dashboard date range to today
2026-03-13 22:55:14 +08:00
shaw
6bb02d141f
chore: remove accidentally committed PR diagnostic report
2026-03-13 22:52:05 +08:00
Wesley Liddick
07bb2a5f3f
Merge pull request #952 from xvhuan/feat/billing-ledger-decouple-usage-log-20260312
...
feat: 解耦计费正确性与 usage_logs 批量写压
2026-03-13 22:46:09 +08:00
Wesley Liddick
417861a48e
Merge pull request #956 from share-wey/main
...
chore: codex transform fixes and feature compatibility
2026-03-13 22:36:29 +08:00
Wesley Liddick
b7e878de64
Merge pull request #980 from touwaeriol/feat/redeem-subscription-support
...
feat(redeem): support subscription type in create-and-redeem API
2026-03-13 22:15:33 +08:00
erio
05edb5514b
feat(redeem): support subscription type in create-and-redeem API
...
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
2026-03-13 21:26:46 +08:00
Connie Borer
7e288acc90
Merge branch 'Wei-Shaw:main' into main
2026-03-13 17:28:14 +08:00
Peter
27ff222cfb
fix(admin): default dashboard date range to today
2026-03-13 17:02:54 +08:00
Wesley Liddick
1ee984478f
Merge pull request #957 from touwaeriol/feat/group-rate-multipliers-modal
...
feat(groups): add rate multipliers management modal
2026-03-13 11:11:13 +08:00
Wesley Liddick
fd693dc526
Merge pull request #967 from StarryKira/fix/admin-reset-quota-monthly
...
fix: 管理员重置配额补全 monthly 字段并修复 ristretto 缓存异步问题 fix issue #964
2026-03-13 11:10:47 +08:00
haruka
e73531ce9b
fix: 管理员重置配额补全 monthly 字段并修复 ristretto 缓存异步问题
...
- 后端 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 >
2026-03-13 10:39:35 +08:00
Wesley Liddick
ecea13757b
Merge pull request #955 from DaydreamCoding/feat/gpt-training-off
...
feat: GPT Private设置数据不用于训练
2026-03-13 09:12:33 +08:00
Peter
80d8d6c3bc
feat(admin): add user spending ranking dashboard view
2026-03-13 03:43:03 +08:00
erio
d648811233
feat(groups): add rate multipliers management modal
...
Add a dedicated modal in group management for viewing, adding, editing,
and deleting per-user rate multipliers within a group.
Backend:
- GET /admin/groups/:id/rate-multipliers - list entries with user details
- PUT /admin/groups/:id/rate-multipliers - batch sync (full replace)
- DELETE /admin/groups/:id/rate-multipliers - clear all entries
- Repository: GetByGroupID, SyncGroupRateMultipliers methods on
user_group_rate_multipliers table (same table as user-side rates)
Frontend:
- New GroupRateMultipliersModal component with:
- User search and add with email autocomplete
- Editable rate column with local edit mode (cancel/save)
- Batch adjust: multiply all rates by a factor
- Clear all (local operation, requires save to persist)
- Pagination (10/20/50 per page)
- Platform icon with brand colors in group info bar
- Unsaved changes indicator with revert option
- Unit tests for all three backend endpoints
2026-03-12 23:37:36 +08:00
QTom
34695acb85
fix: 移除账号导入时同步调用 disableOpenAITraining,避免网络超时导致导入失败
...
privacy_mode 改为由 TokenRefreshService 在 token 刷新后异步补设。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 22:36:25 +08:00
QTom
a63de12182
feat: GPT 隐私模式 + no-train 前端展示优化
2026-03-12 21:24:01 +08:00
yexueduxing
f16910d616
chore: codex transform fixes and feature compatibility
2026-03-12 20:52:35 +08:00
ius
64b3f3cec1
test: relocate best-effort usage log stub
2026-03-12 18:43:37 +08:00
ius
6a685727d0
fix: harden usage billing idempotency and backpressure
2026-03-12 18:38:09 +08:00
ius
32d25f76fc
fix: respect preconfigured usage log batch channels
2026-03-12 17:44:57 +08:00
wanXcode
69cafe8674
fix(dashboard): prefer username in user usage trend
2026-03-12 17:42:41 +08:00
ius
18ba8d9166
fix: stabilize repository integration paths
2026-03-12 17:42:41 +08:00
ius
e97fd7e81c
test: align oauth passthrough stream expectations
2026-03-12 17:22:01 +08:00
kunish
cdb64b0d33
fix: remove SSE termination marker from DefaultStopSequences
...
The SSE stream termination marker string was incorrectly included in
DefaultStopSequences, causing Gemini to prematurely stop generating
output whenever the model produced text containing that marker.
The SSE-level protocol filtering in stream_transformer.go already
handles this marker correctly; it should not be a stop sequence for
the model's text generation.
2026-03-12 17:10:01 +08:00
ius
8d4d3b03bb
fix: remove unused gateway usage helpers
2026-03-12 17:08:57 +08:00
ius
addefe79e1
fix: align docker health checks with runtime image
2026-03-12 17:03:21 +08:00
ius
b764d3b8f6
Merge remote-tracking branch 'origin/main' into feat/billing-ledger-decouple-usage-log-20260312
2026-03-12 16:53:28 +08:00
ius
611fd884bd
feat: decouple billing correctness from usage log batching
2026-03-12 16:53:18 +08:00
Wesley Liddick
826090e099
Merge pull request #946 from StarryKira/antigravity-gemini-thought-signature-fix
...
fix Antigravity gemini thought signature fix
v0.1.96
2026-03-12 13:51:46 +08:00
Wesley Liddick
7399de6ecc
Merge pull request #938 from xvhuan/fix/account-extra-scheduler-pressure-20260311
...
精准收紧 accounts.extra 观测字段触发的调度重建
2026-03-12 13:51:00 +08:00
haruka
25cb5e7505
fix 第一次 400,第二次触发切账号信号
2026-03-12 11:30:53 +08:00
ius
5c13ec3121
Fix lint after rebasing PR #938 branch
2026-03-12 11:20:59 +08:00
ius
d8aff3a7e3
Merge origin/main into fix/account-extra-scheduler-pressure-20260311
2026-03-12 11:12:01 +08:00
haruka
f44927b9f8
add test for fix #935
2026-03-12 11:04:14 +08:00
Wesley Liddick
c0110cb5af
Merge pull request #941 from CoolCoolTomato/main
...
fix: 修复gpt-5.2以上模型映射到gpt-5.2以下时verbosity参数引发的报错
2026-03-12 09:35:09 +08:00
Wesley Liddick
1f8e1142a0
Merge pull request #932 from 0xObjc/codex/usage-view-charts
...
feat(admin): add metric toggle to usage charts
2026-03-12 09:32:40 +08:00
Wesley Liddick
1e51de88d6
Merge pull request #937 from lxohi/fix/anthropic-stream-keepalive
...
fix: 为 Anthropic Messages API 流式转发添加下游 keepalive ping
2026-03-12 09:30:18 +08:00
Wesley Liddick
30995b5397
Merge pull request #936 from xvhuan/fix/ops-write-pressure-20260311
...
降低 ops_error_logs 与 scheduler_outbox 的数据库写放大
2026-03-12 09:28:34 +08:00
Wesley Liddick
eb60f67054
Merge pull request #933 from xvhuan/fix/dashboard-read-pressure-20260311
...
降低 admin/dashboard 读路径压力,避免 snapshot-v2 并发击穿
2026-03-12 09:28:14 +08:00
Wesley Liddick
78193ceec1
Merge pull request #931 from xvhuan/fix/db-write-amplification-20260311
...
降低 quota 与 Codex 快照热路径的数据库写放大
2026-03-12 09:27:34 +08:00
Wesley Liddick
f0e08e7687
Merge pull request #930 from GuangYiDing/feat/gemini-25-flash-image-support
...
feat: 修复 Gemini 生图接口并新增前端生图测试能力
2026-03-12 09:27:19 +08:00
Wesley Liddick
10b8259259
Merge pull request #909 from StarryKira/feature/admin-reset-subscription-quota
...
Feature/管理员可以重置账号额度
2026-03-12 09:26:47 +08:00
CoolCoolTomato
eb0b77bf4d
fix: 修复流水线golangci-lint 的 errcheck
2026-03-11 22:56:20 +08:00
shaw
9d81467937
refactor: 重构 Chat Completions 端点,采用类型安全的 Responses API 转换
...
将 /v1/chat/completions 端点从 ResponseWriter 劫持模式重构为独立的
类型安全转换路径,与 Anthropic Messages 端点架构对齐:
- 在 apicompat 包新增 Chat Completions 完整类型定义和双向转换器
- 新增 ForwardAsChatCompletions service 方法,走 Responses API 上游
- Handler 改为独立的账号选择/failover 循环,不再劫持 Responses handler
- 提取 handleCompatErrorResponse 为 Chat Completions 和 Messages 共用
- 删除旧的 forwardChatCompletions 直传路径及相关死代码
2026-03-11 22:15:32 +08:00
CoolCoolTomato
fd8ccaf01a
fix: 修复gpt-5.2以上模型映射到gpt-5.2以下时verbosity参数引发的报错
2026-03-11 21:12:07 +08:00