Wesley Liddick
b76f9524ba
Merge pull request #3040 from bwliangc/feat/ops-ttft-sample-weighting
...
fix(ops): 运维监控首 token 延迟(TTFT)按流式样本数加权
2026-06-06 13:48:51 +08:00
Wesley Liddick
6f18f74030
Merge pull request #2970 from ghostg00/compat/redis-replicate-commands
...
compat(redis): make TIME-using Lua scripts work on Redis 3.2-4.x
2026-06-06 11:23:54 +08:00
Wesley Liddick
1f423ae02a
Merge pull request #2961 from CheriWen/fix/cwe-204-info-disclosure-key-oracle
...
[Security] fix: return 404 instead of 403 to prevent key ID enumeration
2026-06-06 11:10:03 +08:00
Wesley Liddick
84cedd3d71
Merge pull request #2960 from CheriWen/fix/cwe-79-stored-xss-key-name
...
[Security] fix: sanitize API key name to prevent stored XSS
2026-06-06 11:09:08 +08:00
Wesley Liddick
ff3c976dbd
Merge pull request #3009 from liulinhuai/fix/images-upstream-error-passthrough
...
fix(images): surface real upstream error instead of generic 502
2026-06-06 11:07:53 +08:00
Wesley Liddick
1dda8626d5
Merge pull request #3018 from Zbl1007/openmeta/2989-0
...
Fix fixed weekly quota usage after switching from rolling reset
2026-06-06 10:59:18 +08:00
Wesley Liddick
1efd3e205d
Merge pull request #3056 from CoolCoolTomato/fix/postgres-dsn-dbname
...
fix(setup): bootstrap postgres connection with maintenance db
2026-06-06 10:42:42 +08:00
shaw
bba86f97d8
fix(repo): make userRepo.Delete reuse caller's transaction
...
userRepository.Delete used the r.client.Tx(ctx)+ErrTxStarted pattern,
which only reuses a transaction when r.client is itself a tx-bound
client. With the singleton base client (how Wire injects repos),
r.client.Tx() always starts a NEW independent transaction and ignores
any tx carried in the context.
As a result, AdminService.DeleteUser's transaction (added in #3047 )
only covered the API-key deletions; the user soft-delete escaped into a
separate, immediately-committed transaction. If the outer commit failed
after the user tx had committed, the user was deleted while its API keys
stayed active, reintroducing the unrecoverable state of #3021 .
Add a leading dbent.TxFromContext check (mirroring DeleteWithAudit) so
Delete joins an externally-provided transaction and lets the caller
commit/rollback. Extract the deletion body into deleteUser(ctx, exec,
id). All three original paths are preserved; callers passing a plain ctx
are unaffected.
Add user_repo_delete_atomicity_integration_test.go: builds repos with
the base client and a manual outer tx, asserting that delete-keys and
delete-user roll back together on abort and commit together on success.
2026-06-06 10:28:28 +08:00
Wesley Liddick
1a0eecb6ef
Merge pull request #3047 from fchange/codex/delete-user-api-keys
...
fix(admin): delete API keys when deleting a user
2026-06-06 10:14:28 +08:00
Wesley Liddick
1512ba747e
Merge pull request #2995 from feitianbubu/opt-proxy-quality-pass
...
fix: treat allowed proxy quality statuses as pass not warn
2026-06-06 09:58:16 +08:00
Wesley Liddick
eb24485fc6
Merge pull request #3036 from whatIsNextToTheMoon/fix/openai-response-failed-passthrough
...
fix(openai): preserve upstream response.failed errors
2026-06-06 09:53:08 +08:00
Wesley Liddick
75af992819
Merge pull request #3026 from Zbl1007/openmeta/2956-deepseek
...
Surface DeepSeek reasoning-only responses
2026-06-06 09:35:29 +08:00
Wesley Liddick
427d591212
Merge pull request #2930 from touwaeriol/feat/image-token-billing
...
fix(billing): channel pricing override for image generation + display image_output_tokens
2026-06-06 09:28:46 +08:00
shaw
7483c43c02
update sponsors
2026-06-06 09:28:18 +08:00
shaw
650981f2e4
fix(lint): 修复 golangci-lint errcheck 与 gofmt 报错
...
- gateway_service.go buildStableSessionSeed: strings.Builder.WriteString
返回值用 _, _ = 显式忽略(errcheck)
- openai_codex_transform_additions_test.go: client_metadata 类型断言改为
双值形式 cm3, _ := ...(errcheck check-type-assertions)
- openai_gateway_service.go: codexCLIUserAgent 常量单独成组,收敛 = 前多余
空格对齐(gofmt)
2026-06-06 09:21:32 +08:00
Wesley Liddick
ddc23c1e83
Merge pull request #3065 from Eyre921/feat/closer-to-codex-and-claude-code
...
feat(gateway): 提升 Codex / Claude Code 客户端模拟保真度,降低 OAuth 凭证被上游判为第三方的风险
2026-06-06 09:18:27 +08:00
Wesley Liddick
1cecd2716c
Merge pull request #2972 from northya/fix/chat-completions-response-failed
...
fix: 修复 Chat Completions 兼容层误将 response.failed 返回为成功响应
2026-06-05 21:51:23 +08:00
Wesley Liddick
8775047f84
Merge pull request #3051 from wucm667/fix/openai-messages-missing-terminal-event-failover
...
fix(openai): /v1/messages 流式缺终止事件时纳入 failover 与 ops 错误归因
2026-06-05 21:34:14 +08:00
Wesley Liddick
872e56aed7
Merge pull request #3052 from wucm667/feat/openai-image-ratelimit-cooldown-failover
...
feat(openai): gpt-image 图片限流按能力维度冷却并 failover,不再误伤文字请求
2026-06-05 21:25:40 +08:00
Wesley Liddick
b5b68f86bd
Merge pull request #3037 from feitianbubu/pr/fix-auto-mode-invalid-by-security-monitor
...
fix: cc开启auto mode后无法通过cc客户端验证的问题
2026-06-05 20:43:37 +08:00
Wesley Liddick
d895d765b6
Merge pull request #3042 from DaydreamCoding/feat/usage-error-requests
...
feat(usage/ops): 失败请求记录与展示(用户端 + 管理端)+ 错误日志 Key 归因
2026-06-05 15:42:25 +08:00
Wesley Liddick
57bae985a7
Merge pull request #2711 from wucm667/fix/db-pool-enforce-conn-lifetime-floor
...
fix(db-pool): 强制连接生命期下限,缓解 lib/pq watchCancel 协程泄漏
2026-06-05 13:55:07 +08:00
Wesley Liddick
e080d3f966
Merge pull request #2975 from wucm667/fix/easypay-queryorder-trade-status
...
fix(payment): EasyPay 查单以 trade_status 判定支付成功,避免未付订单误判到账
2026-06-05 13:54:54 +08:00
Wesley Liddick
f332e0a83c
Merge pull request #2872 from wucm667/fix/scheduler-sticky-health-escape
...
fix(scheduler): session_hash sticky 引入健康度逃逸,慢账号不再独占用户会话
2026-06-05 13:54:37 +08:00
Wesley Liddick
83cce858a5
Merge pull request #3039 from StarryKira/fix/issue-2994-codex-5h-used-percent-selfheal
...
fix(openai): self-heal stale Codex used% snapshots + lock semantics (#2994 )
2026-06-05 13:54:18 +08:00
Wesley Liddick
bebeaf57c5
Merge pull request #2854 from ttt132/fix/responses-stream-completed-output
...
fix: normalize responses streaming terminal output
2026-06-05 13:54:05 +08:00
Wesley Liddick
a879f254c8
Merge pull request #3012 from visa2/fix/responses-anthropic-tool-pairing
...
fix(apicompat): repair tool_use/tool_result pairing on the Responses→Anthropic path
2026-06-05 13:53:31 +08:00
Wesley Liddick
fbd25acae0
Merge pull request #3035 from ghostg00/fix/admin-group-clear-description
...
fix(group): 管理员清空分组描述时正确持久化
2026-06-05 13:53:20 +08:00
Wesley Liddick
05f0326e99
Merge pull request #2988 from wucm667: content audit auto-ban exempts admin accounts
...
fix(risk-control): 内容审计 auto-ban 豁免管理员账号,避免封禁管理员/超管
2026-06-05 13:47:10 +08:00
Wesley Liddick
b34480df68
Merge pull request #3001 from Pluviobyte: bump Go patch version to 1.26.4
...
chore: bump Go patch version to 1.26.4
2026-06-05 13:46:37 +08:00
Wesley Liddick
f1aa589646
Merge pull request #2993 from ghostg00/fix/openai-5h-used-percent-direct
...
fix(usage): revert OpenAI 5h used_percent inversion (#2918 regression)
2026-06-04 16:02:52 +08:00
Wesley Liddick
aa69e3947d
Merge pull request #2926 from visa2/feat/codex-responses-bridge-redesign
...
refactor(apicompat): redesign the Codex Responses ↔ Chat Completions …
2026-06-01 15:07:44 +08:00
Wesley Liddick
5f63fe1945
Merge pull request #2927 from moonagic/main
...
fix antigravity gemini rate limit and account scheduling
2026-06-01 14:50:36 +08:00
Wesley Liddick
3ba4a51355
Merge pull request #2937 from Kanshan03/fix/ws-codex-image-bridge
...
fix(openai): inject WS Codex image bridge tool
2026-06-01 14:18:58 +08:00
Wesley Liddick
a0057f44f2
Merge pull request #2932 from fatelei/issue-2917
...
fix: change balance to pointer type
2026-06-01 11:37:33 +08:00
Wesley Liddick
bc5813f023
Merge pull request #2936 from xlx0852/codex/ws-http-bridge-recovery
...
fix(openai): bridge oversized websocket requests
2026-06-01 11:11:11 +08:00
Wesley Liddick
80fa2f28c5
Merge pull request #2920 from wucm667/fix/openai-failover-stale-cached-body
...
test(openai): 覆盖 responses failover 请求体重映射,防止 alias 模型泄漏
2026-06-01 10:47:48 +08:00
Wesley Liddick
7ad2dc74dd
Merge pull request #2922 from gsh20040816/codex/fix-openai-ws-usage-dedup
...
fix: avoid OpenAI WS usage dedup conflicts
2026-06-01 10:23:01 +08:00
Wesley Liddick
418d09be56
Merge pull request #2881 from xiaoyiluck666/fix/openai-oauth-refresh-enrichment
...
修复 OpenAI OAuth 刷新未补全账号信息
2026-06-01 10:04:16 +08:00
Wesley Liddick
910ff3cd58
Merge pull request #2892 from Arron196/feat/sync-upstream-models-on-create
...
feat: 添加账号时支持同步上游支持的模型
2026-06-01 09:58:33 +08:00
Wesley Liddick
ed8f5666c6
Merge pull request #2895 from wucm667/feat/usage-window-tooltip
...
feat(admin): 账号用量窗口 5h/7d 增加说明 tooltip
2026-06-01 09:57:03 +08:00
Wesley Liddick
52ef848432
Merge pull request #2919 from wucm667/fix/claude-code-only-allow-count-tokens
...
fix(gateway): claude_code_only 不再误拦截官方 Claude Code 的 count_tokens 与非流式 messages 请求
2026-06-01 09:44:40 +08:00
Wesley Liddick
29c8b8aa4b
Merge pull request #2918 from wucm667/fix/openai-5h-usage-window-inverted
...
fix(usage): 修正 OpenAI 5h 用量窗口 used%/remaining% 颠倒
2026-06-01 09:42:20 +08:00
Wesley Liddick
0f70f84182
Merge pull request #2925 from is7Qin/feat/openai-oom
...
refactor(gateway): 降低大请求体内存保留
2026-06-01 09:40:31 +08:00
Wesley Liddick
c596b0a294
Merge pull request #2908 from DaydreamCoding/feat/admin-usage
...
feat(usage): /admin/usage 支持查看已删除用户 + 打开速度与刷新优化
2026-06-01 09:40:22 +08:00
Wesley Liddick
f18451e56f
Merge pull request #2891 from DaydreamCoding/feat/platform-quota-conn-optimization
...
feat(quota): 收敛 user×platform 配额的 DB 连接占用(sentinel 回填 + 写聚合 flusher)
2026-05-29 20:17:08 +08:00
shaw
68901cbfff
chore(pricing): update model pricing metadata
2026-05-29 16:29:29 +08:00
Wesley Liddick
0a8c77f8c3
Merge pull request #2884 from Pluviobyte/fix/gemini-messages-tool-text-block-ordering
...
fix(gemini): close tool_use block before text in messages streaming
2026-05-29 16:22:34 +08:00
Wesley Liddick
69e7c4db30
Merge pull request #2865 from wey-gu/feat/usage-request-context
...
fix(gateway): preserve usage request context
2026-05-29 16:21:59 +08:00
Wesley Liddick
52292741cb
Merge pull request #2849 from Pluviobyte/fix/count-tokens-payload-filter
...
fix(gateway): filter count_tokens generation fields
2026-05-29 16:11:01 +08:00
Wesley Liddick
f68d351158
Merge pull request #2873 from wucm667/feat/account-quota-threshold-auto-pause
...
feat(account): 支持按 5h/7d 用量阈值自动暂停账号调度
2026-05-29 15:40:33 +08:00
Wesley Liddick
1d46be02ae
Merge pull request #2830 from stabey/fix/anthropic-to-responses-cache-tokens
...
fix(apicompat): Anthropic 转 Responses 时按 OpenAI 语义汇总 input_tokens
2026-05-29 11:00:19 +08:00
Wesley Liddick
16842c2f8b
Merge pull request #2836 from siyuan-123/fix/openai-ws-compat-usage
...
修复 OpenAI WS 兼容性与 usage 统计
2026-05-29 10:47:12 +08:00
Wesley Liddick
21cd382f39
Merge pull request #2855 from gaoren002/fix/concurrency-error-classification
...
fix: classify concurrency acquire failures
2026-05-29 10:33:40 +08:00
Wesley Liddick
e6a3f1e12b
Merge pull request #2869 from Pluviobyte/fix/ws-first-token-terminal-event
...
fix(ws): exclude terminal events from first-token detection
2026-05-29 10:32:16 +08:00
Wesley Liddick
fc9d79d96b
Merge pull request #2835 from JIA-ss/fix/responses-passthrough-token-details
...
fix(apicompat): Responses→Chat 转换补齐 completion_tokens_details 透传
2026-05-29 10:31:52 +08:00
Wesley Liddick
d3a8db8084
Merge pull request #2833 from alfadb/fix/haiku-strip-context-management
...
fix(gateway): 按最终 anthropic-beta header 对 body.context_management 做能力维度 sanitize
2026-05-29 10:31:12 +08:00
Wesley Liddick
433f8dcd13
Merge pull request #2834 from DaydreamCoding/pr/openai-codex-cli-allow-claude-code
...
feat(openai): codex_cli_only 新增放行 Claude Code Codex 插件的机制
2026-05-29 10:30:33 +08:00
Wesley Liddick
6bc1983506
Merge pull request #2853 from wucm667/fix/system-update-already-up-to-date-response
...
fix(admin): system/update 在无更新时返回 200 + already_up_to_date 而非 500
2026-05-29 10:29:49 +08:00
shaw
6010c3cca9
test: 修复内容审计日志异步断言
2026-05-29 09:57:02 +08:00
shaw
514ac5c6a1
feat: 适配 claude-opus-4-8
2026-05-29 09:56:48 +08:00
shaw
37044b83eb
fix(openai): clarify endpoint capability UI
2026-05-29 09:23:06 +08:00
shaw
ed1b57c597
fix(openai): gate routing by endpoint capability
2026-05-29 08:58:10 +08:00
Wesley Liddick
8c1a07852c
Merge pull request #2858 from wey-gu/feat/openai-embeddings-gateway
...
feat(gateway): Add OpenAI embeddings gateway
2026-05-28 22:15:19 +08:00
Wesley Liddick
6b0ee8594c
Merge pull request #2860 from fofoj/fix/oauth-401-credentials-overwrite
...
fix(oauth): 401 handler 不再回写 credentials,避免 refresh_token 被陈旧快照覆盖
2026-05-28 21:59:02 +08:00
Wesley Liddick
c3cd2b9f47
Merge pull request #2862 from lyen1688/feat/pre-block-risk-control-runtime
...
feat: 完善前置拦截模式的风控运行态与审核记录
2026-05-28 20:25:43 +08:00
Wesley Liddick
cc077862b3
Merge pull request #2797 from wucm667/feat/account-list-created-at-column
...
feat(admin): 账号管理列表新增创建时间列
2026-05-27 22:10:21 +08:00
Wesley Liddick
bbe847ed3e
Merge pull request #2805 from StarryKira/feat/configurable-pool-retry-status-codes
...
feat(account): configurable pool-mode same-account retry status codes
2026-05-27 22:09:55 +08:00
Wesley Liddick
69657b2fa1
Merge pull request #2827 from ttt132/fix/api-key-responses-sse-fallback
...
fix: fallback to SSE body for API key responses
2026-05-27 21:56:00 +08:00
Wesley Liddick
61ce79533e
Merge pull request #2800 from wucm667/fix/scheduler-model-not-found-per-model-cooldown
...
fix(scheduler): 模型 404 仅冷却该账号-模型组合,不再封整个账号
2026-05-27 21:01:52 +08:00
Wesley Liddick
c949d22725
Merge pull request #2821 from Pluviobyte/fix/long-context-cache-creation-multiplier
...
fix(billing): apply long-context multiplier to cache_creation price (follow-up to #2816 )
2026-05-27 21:01:27 +08:00
Wesley Liddick
8461e42a97
Merge pull request #2822 from lyen1688/feat/group-custom-models-list
...
feat(group): 支持自定义 /v1/models 模型列表
2026-05-27 21:00:19 +08:00
Wesley Liddick
7579058e91
Merge pull request #2820 from Pluviobyte/fix/antigravity-passthrough-message-start-input-tokens
...
fix(antigravity): capture message_start input_tokens in streaming passthrough
2026-05-27 20:59:51 +08:00
shaw
a391635191
更新 OpenAI 使用密钥配置
2026-05-27 17:29:20 +08:00
Wesley Liddick
b0142146af
Merge pull request #2816 from Pluviobyte/fix/long-context-cache-read-multiplier
...
fix(billing): apply long-context multiplier to cache_read price (#2293 )
2026-05-27 15:59:11 +08:00
Wesley Liddick
2387cf9934
Merge pull request #2799 from siyuan-123/fix/ws-rate-limit-failover
...
修复 OpenAI WS 限额时不自动切换账号
2026-05-27 15:14:28 +08:00
shaw
f7ac5e5931
fix(openai): preserve chat responses usage billing
2026-05-26 21:33:28 +08:00
Wesley Liddick
4b9b63443f
Merge pull request #2790 from Arron196/from-arron-main
...
修复 Ops SLA 本地限制错误统计
2026-05-26 20:21:11 +08:00
Wesley Liddick
4a5c5367cf
Merge pull request #2796 from DaydreamCoding/fix/account-reauth-keep-extra
...
fix(account): 重新授权不再清空 Extra 配置
2026-05-26 20:06:48 +08:00
Wesley Liddick
b9f421d647
Merge pull request #2751 from wucm667/fix/bedrock-strip-context-management-when-beta-removed
...
fix(bedrock): v0.1.130 回归 — beta token 被移除时同步剥离 context_management 字段
2026-05-26 20:05:43 +08:00
Wesley Liddick
bebc082306
Merge pull request #2766 from DaydreamCoding/feat/user-platform-quota
...
feat(quota): 用户 × 平台 USD 配额
2026-05-26 14:13:18 +08:00
Wesley Liddick
83248478e2
Merge pull request #2777 from lyen1688/feat/content-moderation-risk-threshold
...
feat: 支持内容审计风险阈值配置
2026-05-26 14:12:54 +08:00
Wesley Liddick
a28e8e3d44
Merge pull request #2776 from mt21625457/fix-http2-bug
...
[codex] 修复 OpenAI/Codex HTTP/2 响应头超时
2026-05-26 14:12:11 +08:00
shaw
2f70d965bf
chore: update sponsors
2026-05-25 19:06:55 +08:00
shaw
53acde1efd
style: fix lint errors in response.failed SSE writer
...
Errcheck flagged three unchecked strings.Builder.WriteString calls and
gofmt rejected over-aligned trailing comment in the route table.
Rewrite writeResponsesFailedSSE with json.Marshal on typed structs
instead of Builder+strconv.Quote. Same wire format, but:
- no unchecked Write returns to silence
- strict JSON escaping (strconv.Quote emits \a and \v which are not
valid JSON; Marshal handles all runes correctly)
- omitempty model field via struct tag instead of conditional Builder
- consistent with the json.Marshal style used elsewhere in handler/
Collapse trailing comment whitespace in stream_error_event_test.go to
satisfy gofmt.
All 30+ subtests in the package still pass.
2026-05-25 18:16:46 +08:00
Wesley Liddick
a18738b29e
Merge pull request #2732 from wminjay/fix/responses-stream-failed-event
...
fix(openai): emit response.failed when /v1/responses SSE aborted post-flush
2026-05-25 18:12:25 +08:00
Wesley Liddick
2fb9fb2f71
Merge pull request #2747 from siyuan-123/fix/ws-tool-output-continuation
...
修复 WS 协议下工具输出续链识别问题
2026-05-25 17:58:00 +08:00
shaw
0cfabaa82e
fix(i18n): escape at-sign in email whitelist placeholder
...
Escape the at-sign in email whitelist placeholder to avoid Vue I18n linked message parsing errors on the settings page.
2026-05-23 14:18:20 +08:00
shaw
0430899748
feat(admin): add compact proxy IP resource link
...
Add a low-visibility proxy IP resource link near proxy-related controls.
- Show the link beside account proxy selectors
- Show the link in the create proxy dialog tab row
- Keep the entry inline to avoid interrupting form workflows
2026-05-23 14:18:19 +08:00
Wesley Liddick
3c5a444802
Merge pull request #2698 from deqiying/fix/log-real-client-ip
...
fix: 修复反代部署下拒绝日志客户端 IP 不准确
2026-05-23 11:08:47 +08:00
shaw
b6c0b40848
fix: update x/net vulnerability dependency
2026-05-23 10:55:44 +08:00
shaw
1e406fed52
fix: optimize OpenAI account cooldown scheduling
2026-05-23 10:18:43 +08:00
Wesley Liddick
f59d9a5f8e
Merge pull request #2674 from wucm667/feat/moderation-per-model-toggle
...
feat(risk-control): 内容审计支持按模型生效
2026-05-22 20:10:38 +08:00
Wesley Liddick
301032dc72
Merge pull request #2672 from wucm667/feat/email-whitelist-wildcard-suffix
...
feat(registration): 邮箱白名单支持后缀通配符匹配(*.edu.cn)
2026-05-22 17:33:29 +08:00
Wesley Liddick
a5efb84fa0
Merge pull request #2656 from wucm667/fix/apicompat-developer-role-to-system
...
fix(apicompat): Responses 转 Chat Completions 时 developer role 映射为 system
2026-05-22 17:32:47 +08:00
Wesley Liddick
9f91a8af17
Merge pull request #2662 from touwaeriol/feat/bedrock-cc-compat
...
feat(bedrock): add Claude Code compatibility for AWS Bedrock
2026-05-22 17:32:11 +08:00
Wesley Liddick
a33a294970
Merge pull request #2658 from wucm667/feat/account-test-chat-completions-path
...
feat(account): 测试连接支持 OpenAI-compatible Chat Completions 路径
2026-05-22 17:31:14 +08:00
Wesley Liddick
ac72b01d89
Merge pull request #2681 from wucm667/fix/moderation-dedupe-agent-loop
...
fix(risk-control): Agent 工具循环中同一用户消息重复审计去重
2026-05-22 17:29:22 +08:00
Wesley Liddick
e674a5628c
Merge pull request #2682 from Xch13/fix-cache-hit-rate
...
fix(frontend): 修正 Cache Hit Rate 计算分母,包含全部 prompt tokens
2026-05-22 17:27:26 +08:00
Wesley Liddick
85e60b4f51
Merge pull request #2687 from wucm667/fix/audit-exception-js-cookie
...
fix(deps): 升级 js-cookie 解决 GHSA-qjx8-664m-686j 阻塞 frontend-security CI
2026-05-22 17:14:59 +08:00