Commit Graph
100 Commits
Author SHA1 Message Date
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
shaw 16793d3af0 chore: update sponsors 2026-05-21 15:26:20 +08:00
shaw aae20ef437 fix(oidc): harden verified-email fast path 2026-05-21 15:19:29 +08:00
Wesley Liddick 35901a174b Merge pull request #2655 from ye4241/feat/oidc-trust-verified-email-fast-path
feat(oidc): 上游邮箱已验证时跳过 choice 页直接登录注册
2026-05-21 14:47:08 +08:00
shaw a613a587ba feat: add subscription expiry email toggle 2026-05-21 14:27:50 +08:00
Wesley Liddick bd3d4d9a24 Merge pull request #2399 from gaoren002/fix/openai-image-upstream-errors
fix(openai): surface image moderation errors
2026-05-21 11:31:22 +08:00
Wesley Liddick a60a349ecf Merge pull request #2375 from gaoren002/fix/account-delete-scheduler-cache
fix: clear scheduler cache when deleting accounts
2026-05-21 11:31:05 +08:00
Wesley Liddick 131d4b3050 Merge pull request #2374 from gaoren002/fix/openai-refresh-token-reused
fix: mark reused refresh tokens non-retryable and unschedule errored accounts
2026-05-21 11:30:52 +08:00
shaw 9673a22f26 fix(i18n):
去除兑换码批量修改重复的翻译 key

  PR #2613 与 PR #2615 各自独立添加了同一组批量修改 i18n key,
  导致 vue-tsc 报 TS1117 错误。保留 Title Case 一组,删除重复定义。
2026-05-21 11:12:32 +08:00
Wesley Liddick eda04c6129 Merge pull request #2615 from wucm667/feat/redeem-code-batch-update
feat(redeem): 兑换码支持批量修改
2026-05-21 10:39:46 +08:00
Wesley Liddick b106192ee2 Merge pull request #2648 from DaydreamCoding/fix/user-provider-default-grants-check
fix(auth): user_provider_default_grants 加入 github/google/dingtalk
2026-05-21 10:38:34 +08:00
Wesley Liddick d3c4e50753 Merge pull request #2645 from lyen1688/fix/trusted-forwarded-ip-acl
PR:为 API Key IP 白/黑名单增加可配置的反代真实 IP 判断
2026-05-21 10:34:28 +08:00
Wesley Liddick e5d6f1727f Merge pull request #2641 from Arron196/fix/channel-monitor-responses-reasoning
fix(channel-monitor): 兼容 Responses reasoning 输出
2026-05-20 22:36:46 +08:00
Wesley Liddick f2d072ffc7 Merge pull request #2643 from Arron196/fix/ops-sla-local-client-errors
fix(ops): 排除本地客户端限制错误的 SLA 计数
2026-05-20 22:36:02 +08:00
Wesley Liddick 99261741af Merge pull request #2642 from touwaeriol/feat/bedrock-cc-compat
feat(bedrock): add Claude Code compatibility transformations
2026-05-20 22:35:30 +08:00
Wesley Liddick 73b43bbb8a Merge pull request #2636 from is7Qin/fix/thinking-block-empty-content-retry
fix: 命中"thinking block must contain thinking"上游错误时触发重试
2026-05-20 19:59:49 +08:00
shaw 5c074e6fe8 ci: restrict cla workflow to upstream repo 2026-05-20 17:09:57 +08:00
Wesley Liddick 51f72186a5 Merge pull request #2613 from wucm667/feat/api-key-usage-daily-detail
feat(usage): 用户 API Key 用量页支持按日明细
2026-05-20 16:55:42 +08:00
Wesley Liddick a6db05c824 Merge pull request #2612 from wucm667/fix/group-status-key-auth-block
fix(auth): 停用/删除分组后阻断已发放 API Key 的请求
2026-05-20 16:55:08 +08:00
Wesley Liddick 655e157658 Merge pull request #2611 from wucm667/test/repo-aes-encryptor
test(repository): 补充 AES Encryptor 单元测试
2026-05-20 16:54:33 +08:00
shaw df2b02e61c fix: 修正分组账号可用计数口径 2026-05-20 16:53:23 +08:00
shaw dd4d482a70 fix email reminder dedup keys 2026-05-20 16:40:18 +08:00
Wesley Liddick 7ec61eb2f5 Merge pull request #2606 from wucm667/fix/openai-responses-respect-force-chat-completions
fix(openai): /v1/responses 入口尊重 force_chat_completions 设置
2026-05-20 15:13:43 +08:00
Wesley Liddick 378a0a6a61 Merge pull request #2599 from Arron196/feature/email-template-editor
feat: 添加邮件模板编辑器与通知邮件模板化
2026-05-20 15:12:57 +08:00
Wesley Liddick 1222d75119 Merge pull request #2595 from wucm667/fix/group-list-available-account-count
test(group): 补充分组列表账号统计回归测试
2026-05-20 15:11:08 +08:00
shaw 825834b5cb test(api-contract): fix admin/settings expected map missing openai_codex_user_agent 2026-05-20 15:07:07 +08:00
Wesley Liddick fb2098018e Merge pull request #2593 from wucm667/fix/openai-images-n-param
fix(openai-images): 修复 /v1/images/generations 的 n 参数不生效
2026-05-20 14:35:06 +08:00
shaw 878ad3b569 feat(openai-gateway): Codex OAuth 账号浏览器 UA 自动改写规避 Cloudflare
质询
2026-05-20 14:33:51 +08:00
shaw 91da815993 feat(risk-control): 内容审计新增关键词拦截 2026-05-20 11:13:53 +08:00
shaw 3d22dd34d3 feat: add gemini-3.5-flash model support across backend and frontend 2026-05-20 09:28:46 +08:00
Wesley Liddick 03730fbcf3 Merge pull request #2585 from Arron196/feature/channel-monitor-openai-detection
优化渠道监控 OpenAI 检测协议与内置模板
2026-05-20 08:50:44 +08:00
Wesley Liddick 74e35a0150 Merge pull request #2582 from wucm667/feat/channel-pricing-sync-models
feat(channels): 模型定价支持一键同步最新模型
2026-05-20 08:43:10 +08:00
Wesley Liddick ec283cb072 Merge pull request #2580 from wucm667/fix/openai-responses-strip-temperature
fix(apicompat): Responses 转换为推理模型时剥离不支持的 temperature 参数
2026-05-20 08:42:26 +08:00
Wesley Liddick 44c13e7a73 Merge pull request #2578 from wucm667/feat/payment-force-qrcode
feat(payment): 支持强制移动端统一使用二维码支付
2026-05-20 08:41:29 +08:00
Wesley Liddick 8e77241386 Merge pull request #2581 from is7Qin/fix/ops-body-memory-retention
降低大请求体场景下的 Ops 错误日志内存放大
2026-05-20 08:40:24 +08:00
shaw 4b6d5d76de chore: update sponsors 2026-05-19 21:18:41 +08:00
Wesley Liddick e65fb8b086 Merge pull request #2543 from L494264Tt/fix/deepseek-reasoning-content
fix: preserve DeepSeek reasoning_content in chat compatibility paths
2026-05-19 17:34:58 +08:00
Wesley Liddick 1320f5c49e Merge pull request #2514 from is7Qin/fix/openai-token-missing-refresh-disable
fix(openai): 修复 access_token 已过期且 refresh_token 缺失时 持续命中,呈现502错误的bug
2026-05-19 17:29:01 +08:00
Wesley Liddick a84bf3fab9 Merge pull request #2521 from Brisbanehuang/codex/fix-subscription-model-scopes
fix: hide model scopes for non-antigravity plans
2026-05-19 17:15:15 +08:00
Wesley Liddick 1f2c5dc573 Merge pull request #2574 from LiuZhouZhouJieLun/fix/wxpay-pending-reconcile
Fix wxpay pending order reconciliation
2026-05-19 17:14:02 +08:00
Wesley Liddick 6c8b6843fd Merge pull request #2546 from nanobanana123/fix/anthropic-empty-thinking-sse
fix(apicompat): preserve empty streaming thinking blocks
2026-05-19 17:03:54 +08:00
Wesley Liddick 21ae52c01f Merge pull request #2571 from sherlockwhite/fix/openai-account-email-and-usage-refresh
fix(accounts): show email and fix usage refresh for OpenAI OAuth accounts
2026-05-19 16:56:26 +08:00
Wesley Liddick 2a242aec0f Merge pull request #2573 from wucm667/feat/redeem-code-expiry
feat(redeem): 兑换码支持设置使用有效期
2026-05-19 16:25:12 +08:00
Wesley Liddick 66fca3d598 Merge pull request #2572 from wucm667/fix/openai-silent-refusal-failover
fix(openai): 识别上游静默拒绝(空流+finish_reason=stop)并触发 failover
2026-05-19 16:15:54 +08:00
Wesley Liddick a929e285ce Merge pull request #2271 from StarryKira/fix/redact-account-credentials
fix(security): 屏蔽 admin 账号接口返回的敏感凭证字段
2026-05-19 16:15:36 +08:00
Wesley Liddick 32037cb17b Merge pull request #2570 from wucm667/fix/ops-sla-exclude-ip-denied
fix(ops): 用户 IP 限制导致的 ACCESS_DENIED 不计入 SLA 错误
2026-05-19 16:03:16 +08:00
Wesley Liddick 4fa4e372ca Merge pull request #2568 from wucm667/fix/setup-page-guard-after-init
fix(setup): 初始化完成后阻止访问 setup 页面
2026-05-19 16:02:58 +08:00