Wesley Liddick
8116d235ef
Merge pull request #6629 from superdav42/fix/preserve-function-arguments-done
...
fix(apicompat): preserve function arguments from done events
2026-09-07 17:36:10 +08:00
Wesley Liddick
959cbe3d87
Merge pull request #5453 from wucm667/fix/issue-5451-ws-passthrough-before-turn
...
fix(openai): reacquire passthrough turn slots
2026-09-07 17:35:57 +08:00
Wesley Liddick
c0420e2b8a
Merge pull request #6484 from aofee/codex/fix-fable-credits-required-scope
...
fix(anthropic): keep Fable credits_required model-scoped
2026-09-07 17:33:59 +08:00
Wesley Liddick
9578ddbddd
Merge pull request #6687 from Chenning-Tao/codex/fix-native-delegation-ws
...
fix(openai): preserve named standalone Responses inputs
2026-09-07 17:31:17 +08:00
Wesley Liddick
e274de45b7
Merge pull request #6702 from a1gaoshanlaiyige/fix/message-cache-json-escaping
...
fix(gateway): use JSON escaping for message cache promotion
2026-09-07 17:30:54 +08:00
Wesley Liddick
ce328fb37a
Merge pull request #6670 from ssharkkky/fix/payment-fulfillment-isolation
...
fix(payment): isolate fulfillment from redeem limits
2026-09-07 17:30:43 +08:00
Wesley Liddick
8f7f2b5d92
Merge pull request #6727 from wucm667/feat/issue-6723-subscription-usage-link
...
feat(admin): link subscriptions to user usage
2026-09-07 16:45:32 +08:00
Wesley Liddick
a7d2c782df
Merge pull request #5717 from wucm667/feat/issue-2629-current-main
...
feat(simple-mode): allow basic account grouping
2026-09-07 15:43:22 +08:00
Wesley Liddick
a3aa9bae6d
Merge pull request #6662 from ZeroClover/fix/codex-manifest-pinned-accounts
...
fix(openai): reuse pinned accounts for model lists and fix manifest controls
2026-09-07 15:35:49 +08:00
wucm667
8c8fd6e298
feat(admin): link subscriptions to user usage
2026-09-07 10:13:18 +08:00
wucm667
b59f3bf46c
fix(simple-mode): enforce basic group boundaries
2026-09-07 09:20:48 +08:00
Zero Clover
f88d62ad28
fix(openai): use live account models in connection tests
2026-09-07 00:23:49 +08:00
a1gaoshanlaiyige
0b061c5fa1
fix(gateway): use JSON escaping for message cache promotion
...
Use encoding/json instead of Go string quoting when promoting message content to cached text blocks. Add regression coverage for control characters, Unicode, literal backslashes, text preservation, and idempotence.
2026-09-06 16:42:57 +08:00
Chenning-Tao
985428d9d2
fix(openai): preserve named standalone Responses inputs
2026-09-06 09:33:53 +08:00
wucm667
4a4fd35e0c
fix(simple-mode): guard non-empty group deletion
2026-09-06 08:11:23 +08:00
wucm667
f46038820b
fix(simple-mode): enforce group capability allowlist
2026-09-06 08:11:23 +08:00
wucm667
05ad6b49a1
fix(simple-mode): enforce basic group capabilities
2026-09-06 08:10:41 +08:00
wucm667
a3675552bd
feat(simple-mode): allow basic account grouping
2026-09-06 08:10:41 +08:00
TT
7a70de401c
fix(payment): isolate fulfillment from redeem limits
...
Payment and admin fulfillment shared the public Redeem entry point, so
fulfillment retries were blocked by, and contributed to, the user's
public redeem failure counter, and lookup errors were silently treated as
"code does not exist" on a partial re-run.
- resolveRedeemAction now distinguishes a genuine not-found lookup from
other lookup errors (which now fail the fulfillment instead of being
swallowed and re-created).
- Add validatePaymentRedeemCode: before reusing an existing code during
fulfillment, verify it belongs to the order (code id, balance type,
amount, user, status), so a stale or foreign code can never be
credited against the wrong order/user.
- Split Redeem into a policy-based core: public redemption enforces the
failure counter; payment fulfillment (redeemForPaymentFulfillment) and
admin fulfillment (RedeemForAdminFulfillment) bypass it, while all code
validation and transactional updates remain identical. Admin
fulfillment keeps the normal redeem-level affiliate rebate.
- The admin CreateAndRedeem endpoint now uses RedeemForAdminFulfillment.
Tests: updated resolveRedeemAction cases, new TestValidatePaymentRedeemCode,
code-used-by-another-user rejection, payment/admin rate-limit bypass
coverage, and public-path regression coverage.
2026-09-05 23:56:59 +08:00
Zero Clover
cb31033972
feat(openai): reuse pinned accounts for standard model discovery
2026-09-05 19:58:47 +08:00
Zero Clover
f3bbb95310
fix(groups): react immediately to Codex manifest edits and unify dialog toggles
2026-09-05 19:46:25 +08:00
github-actions[bot]
ab99d56e96
chore: sync VERSION to 0.2.1 [skip ci]
2026-09-05 09:45:17 +00:00
Wesley Liddick
578785ee7f
Merge pull request #6640 from cyhhao/fix/claude-billing-fingerprint
...
fix(claude): align billing fingerprint with outbound User-Agent
v0.2.1
2026-09-05 16:59:33 +08:00
Wesley Liddick
ed7c8f2208
Merge pull request #6572 from lyy0709/codex/gpt-6-astra
...
feat(openai): complete GPT-6 Astra support
2026-09-05 16:50:40 +08:00
cyh
2e1c7c00a6
test(claude): check request body close errors
2026-09-05 16:43:54 +08:00
cyh
994ca26e92
fix(claude): align billing fingerprint with outbound user agent
2026-09-05 16:34:00 +08:00
Wesley Liddick
d2f87c612e
Merge pull request #6638 from feeeei/feat/images-url-to-b64json-backfill
...
feat(images): 账户开关将生图结果 url 下载回填为 b64_json
2026-09-05 16:24:40 +08:00
lyy0709
62cd63bfda
fix(openai): retain capabilities when model listing is unavailable
2026-09-05 16:24:15 +08:00
lyy0709
dee35a841d
merge: reconcile Astra fixes with upstream capability sync
2026-09-05 16:19:57 +08:00
Wesley Liddick
fb44e2dd09
Merge pull request #6514 from StarryKira/codex/anthropic-reasoning-pricing
...
feat: add Anthropic reasoning effort and Fable 5.1 max pricing
2026-09-05 16:19:18 +08:00
Wesley Liddick
c42d78e26c
Merge pull request #6571 from DuskLin/feat/codex-ultrafast-tier
...
feat(codex): support ultrafast service tier
2026-09-05 16:18:16 +08:00
Wesley Liddick
2dc287f2e0
Merge pull request #6636 from specialpointcentral/cyber-ws-recording-fix
...
fix(openai): record WS cyber policy failures across paths
2026-09-05 16:17:33 +08:00
Wesley Liddick
83094abf21
Merge pull request #6536 from wucm667/fix/issue-6526-mapped-model-scheduling
...
fix(openai): schedule accounts with mapped model
2026-09-05 16:17:04 +08:00
Wesley Liddick
aafe93b335
Merge pull request #6557 from Ritel-T/pr/compact-admin-account-list
...
perf(admin): return compact account lists for lite requests
2026-09-05 16:16:26 +08:00
Wesley Liddick
cc52c93ad7
Merge pull request #6539 from creamtea47/codex/fix-delegation-bootstrap-resume
...
fix(openai): 兼容历史任务委派续聊
2026-09-05 16:16:00 +08:00
lyy0709
d7f048a265
fix(openai): preserve synced Astra capabilities and continuation
2026-09-05 16:13:28 +08:00
Wesley Liddick
0d9e7e1530
Merge pull request #6628 from baryon/contrib/openai-gpt6-astra-capability-sync
...
fix(openai): persist GPT-6 Astra Codex capabilities from upstream sync
2026-09-05 16:07:50 +08:00
Wesley Liddick
9b4fcfb897
Merge pull request #6606 from luckydududu/feat/claude-cli-version-env-override
...
feat(claude): allow operators to override the advertised CLI version
2026-09-05 16:05:33 +08:00
Wesley Liddick
9517f12cdd
Merge pull request #6510 from wall-wxk/fix/release-session-slot-on-forward-failure
...
fix(gateway): 转发失败的请求立即释放会话槽,不再占用整个空闲超时窗口
2026-09-05 16:05:06 +08:00
Wesley Liddick
40f4d450be
Merge pull request #6507 from wucm667/fix/issue-6501-glm53-thinking-effort
...
fix(gateway): normalize GLM-5.3 thinking effort
2026-09-05 16:04:16 +08:00
Wesley Liddick
620eb3fd00
Merge pull request #6581 from r266-tech/r266/forward-opencode-session
...
fix(openai): scope OpenCode session forwarding
2026-09-05 16:03:57 +08:00
Wesley Liddick
c6ff69fd12
Merge pull request #6542 from wucm667/fix/issue-6530-gateway-concurrency-origin
...
fix(handler): distinguish gateway admission rejections
2026-09-05 16:03:17 +08:00
Wesley Liddick
7b271bbee9
Merge pull request #6529 from wucm667/fix/issue-6521-preserve-passthrough-reasoning
...
fix(openai): preserve reasoning effort in API-key passthrough
2026-09-05 16:02:56 +08:00
Wesley Liddick
68f099707e
Merge pull request #6553 from wucm667/fix/issue-6547-heartbeat-bootstrap
...
fix(openai): normalize automation heartbeat bootstrap
2026-09-05 16:02:36 +08:00
feeeei
c227863d51
fix(images): 生图 url 回填下载拒绝私网目的地并只信字节嗅探
...
账户开关 images_url_to_b64_json 下载的图片 url 来自上游响应,是不可信输入。此前沿用
base_url 的 security.url_allowlist 策略,默认配置下只做格式校验,上游返回
localhost:8080 之类地址时网关会真的去请求内网。
- 下载 URL 主机为 localhost、回环、私网、链路本地、未指定地址的字面量时直接拒绝,
不受 security.url_allowlist 配置影响(urlvalidator 导出 IsBlockedHost)
- 新增 ctx 标记 WithHTTPUpstreamPublicHostsOnly:共享上游客户端对带标记的请求无视配置
校验解析后 IP,并为其克隆客户端挂 redirectChecker,重定向保持跟随但每一跳都校验
- 下载内容改为只信 http.DetectContentType 嗅探结果且限 png/jpeg/webp/gif,
响应头不再作为依据
- 下载失败仍只记日志并保留原样;超时与端口策略不变
2026-09-05 15:50:56 +08:00
lyy0709
3a8c9f16de
Merge remote-tracking branch 'upstream/main' into codex/gpt-6-astra
2026-09-05 15:48:49 +08:00
Qi HU
2da31290a1
fix(openai): record WS cyber policy failures across paths
...
Cyber-policy detection only inspected response.failed, and the ingress check ran after error-specific early returns. As a result, error-shaped failures and the connection-pool, HTTP-bridge, and WSv2 paths could miss cyber-policy hits.
Centralize event marking and invoke it before retry and failover returns across the WebSocket implementations. Preserve the recorded guard during account failover and defer connection blocking until the logical failover chain completes, avoiding duplicate records while ensuring subsequent turns are blocked.
2026-09-05 15:32:29 +08:00
feeeei
3c53ba01a7
feat(images): 账户开关将生图结果 url 下载回填为 b64_json
...
部分第三方 GPT-image 上游把 Images 响应里的 b64_json 换成 url,按官方接口实现的
客户端读不到图。账户 extra.images_url_to_b64_json 开启后,OpenAI API Key 的
Images 非流式响应里 b64_json 缺失或为空且 url 非空的项,由网关下载 url 内容并以
base64 回填 b64_json,url 与其余字段原样保留;异步生图任务复用同一路径。
- 下载经账户代理发起,沿用 base_url 的出站 URL 校验策略(validateUpstreamBaseURL
抽出 validateOutboundURL,nil cfg 按仅格式校验处理),单图上限 20MB 且须为图片
内容(响应头或字节嗅探);data: URL 直接取 base64 载荷
- 单项下载失败仅记日志并保留原样;客户端显式 response_format=url 时不回填;
流式响应不处理
- 创建/编辑账户弹窗在 OpenAI API Key 的 Responses 模式块后新增“生图结果 URL 转
base64”开关,中英文案;新增 openai_images_b64_backfill_test.go
- 只被 unit 标签测试引用的定价目录测试辅助补上 //go:build unit(admin 包整文件加标签,
service 包的 newPricingServiceFromModelPricing 搬到 pricing_stub_helpers_unit_test.go),
消除 golangci-lint 在默认标签下的 unused 报错
2026-09-05 15:17:57 +08:00
Wesley Liddick
07bf8b92fd
Merge pull request #6550 from weiness/fix/alipay-payment-reconciliation
...
修复支付宝回调延迟或丢失,已支付订单可能长时间停留在待支付状态的问题
2026-09-05 15:08:56 +08:00
Wesley Liddick
63dc24b5e8
Merge pull request #6626 from wucm667/feat/issue-6624-none-reasoning-mapping
...
feat(openai): allow none as reasoning mapping source
2026-09-05 15:06:32 +08:00