turingcat and Claude Fable 5
2bbdd47002
feat(payment): 订阅套餐支持币种标注,区分 $ 符号对应币种
...
后台配置与用户端展示的套餐价格统一使用 $ 符号,而实际扣款币种随
支付渠道配置漂移(如 Stripe 配置 NZD 时按新西兰元扣款),用户易
误认为美元。本次为套餐新增可选的展示性币种标注:
- SubscriptionPlan 新增 currency 字段(ISO 4217 三字母码,默认空)
- 空值不展示任何标注,存量套餐行为完全不变
- 非空值复用 payment.NormalizePaymentCurrency 校验并规范化为大写
- 后台套餐编辑弹窗新增可选币种输入,列表价格列展示币种小字
- 用户端套餐卡片价格与划线原价旁展示币种小字
- 纯展示性质,不影响任何支付/扣款逻辑
Closes #4315
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-15 11:17:45 +08:00
shaw
cf6aa1a5c3
fix(openai): 和解 #4304 与 #4306 的透传错误语义冲突
...
两个 PR 分别合并后在 main 上语义相撞(文本无冲突,CI 才暴露):
- #4306 把所有非 failover 透传错误重建为通用净化信封;
- #4304 要求确定性 context-window 错误不切号且文案对客户端可见
(如触发客户端自动压缩),其测试断言原文可达。
和解方案(保留双方意图):
- 净化器拆出 writeOpenAIPassthroughErrorEnvelope;context-window 错误
仍走本地 JSON 信封 + 净化头策略,但 message 使用脱敏后的上游消息,
不再抹成通用文案;其余错误净化行为不变。
- RebuildsUpstreamErrors 的两个 5xx 用例改用非瞬时状态码(530/501):
瞬时 5xx 对 API-key 账号已按 #4304 契约走 failover(由
APIKeyPassthrough_Transient5xxTriggersFailover 覆盖),净化重建
路径的 5xx 覆盖由非瞬时状态码继续承担。
2026-07-15 10:40:14 +08:00
Wesley Liddick
40a59c9e86
Merge pull request #4275 from jianjianai/codex/perf-u17-response-sse-flush
...
优化 Responses 流式事件边界刷新
2026-07-15 10:30:31 +08:00
Wesley Liddick
2381b6c104
Merge pull request #4304 from wp-a/fix/openai-passthrough-5xx-failover
...
fix(openai): fail over API-key passthrough 5xx
2026-07-15 10:20:44 +08:00
shaw
a38220ebdc
Merge origin/main into fix/openai-passthrough-5xx-failover ( resolve #4269 conflicts)
...
# Conflicts:
# backend/internal/service/openai_gateway_passthrough.go
2026-07-15 10:18:55 +08:00
Wesley Liddick
2ceaa4783c
Merge pull request #4311 from jianjianai/codex/perf-openai-forwarding-final
...
perf(openai): 优化 Responses 图片意图判定与透传流式刷新
2026-07-15 10:12:05 +08:00
Wesley Liddick
9b86585909
Merge pull request #4296 from wp-a/fix/openai-responses-sse-json-boundaries
...
fix(openai): repair concatenated Responses stream events
2026-07-15 10:11:55 +08:00
Wesley Liddick
42d1bf298d
Merge pull request #4306 from wp-a/fix/openai-passthrough-error-sanitization
...
fix(openai): sanitize passthrough upstream errors
2026-07-15 10:11:41 +08:00
shaw
eb7933af4c
fix(openai): 移除 #4269 合并时复活的旧版 Grok 错误路径处理
...
#4269 分支基于 #4212 之前的 main(merge-base da85cc7e),合并后把
ForwardAsAnthropic 错误路径上已被 #4212 重构移除的 Grok 块带了回来:
- xai.ParseQuotaHeaders 的 import 已被 main 删除,导致 main 编译失败;
- 该块与 failoverOpenAIUpstreamHTTPError 内部的 handleGrokAccountUpstreamError
重复(后者第一步就用新解析器 parseGrokQuotaSnapshot 更新配额快照),
保留会造成 Grok 错误双重处置。
删除整块,恢复 #4212 语义;#4269 的 agent identity 恢复逻辑保留不动。
2026-07-15 10:01:31 +08:00
Wesley Liddick
4355861ef2
Merge pull request #4269 from catoncat/agent/sub2api-agent-identity
...
feat(openai): support Codex Agent Identity authentication
2026-07-15 09:47:00 +08:00
Wesley Liddick
30df3f68e4
Merge pull request #4264 from lyon-le/perf/content-moderation-keyword-hot-path
...
perf(risk): 优化内容审核关键词热路径(优化性能)
2026-07-15 09:39:33 +08:00
Wesley Liddick
1c61225b28
Merge pull request #4271 from jianjianai/codex/perf-u10-ops-projection
...
优化 Ops 队列深度账号查询
2026-07-15 09:39:09 +08:00
Wesley Liddick
7cb8ece8d3
Merge pull request #4274 from jianjianai/codex/perf-u16-content-seed-scan
...
优化内容会话种子字段扫描
2026-07-15 09:38:59 +08:00
Wesley Liddick
8d13bbbea5
Merge pull request #4284 from zh239ns/codex/fix-openai-oauth-image-actual-size
...
fix(images): report decoded OAuth output dimensions
2026-07-15 09:37:34 +08:00
Wesley Liddick
1f91b69ca6
Merge pull request #4288 from wucm667/fix/issue-4285-gpt56-account-cost
...
fix: 修复 GPT-5.6 长上下文账号成本统计
2026-07-15 09:36:43 +08:00
jjaw
4aedbfc4a8
补充 OpenAI 转发复用边界注释
2026-07-15 06:59:00 +08:00
王鹏
536865032c
fix(openai): sanitize passthrough upstream errors
2026-07-15 04:47:16 +08:00
王鹏
91dc31ef39
fix(openai): fail over API-key passthrough 5xx
2026-07-15 04:21:38 +08:00
jjaw
78e09a0f1a
复用请求级图片生成意图判断
2026-07-15 04:20:11 +08:00
jjaw
43a2c13173
优化图片生成意图字段扫描
2026-07-15 03:54:32 +08:00
王鹏
b286cca0c4
fix(openai): repair concatenated Responses stream events
2026-07-15 02:41:23 +08:00
jjaw
5e43c7faac
优化透传流事件边界刷新
2026-07-15 00:00:40 +08:00
wucm667
25e6688af6
[verified] fix: apply long-context pricing to account cost
2026-07-14 22:31:39 +08:00
jjaw
92edda2f6e
优化透传图片意图判定复用
2026-07-14 21:57:26 +08:00
zh239ns
bef520b191
fix(images): report decoded OAuth output dimensions
...
ChatGPT OAuth may normalize explicit image size controls to auto while returning smaller raster bytes. Decode final image headers so Images API metadata and tier billing reflect the actual output for both streaming and non-streaming OAuth responses.
2026-07-14 20:31:17 +08:00
cat
ec7c1b6f72
fix(openai): 修复 Agent Identity CI 问题
2026-07-14 19:24:56 +08:00
cat
d68a2aac1a
chore(openai): 同步上游并解决认证冲突
2026-07-14 19:04:04 +08:00
cat
f479a5d10c
fix(openai): 收紧 Agent Identity task 生命周期
2026-07-14 18:09:59 +08:00
cat
bd1399f81e
fix(openai): 允许 Agent Identity 无令牌拨号 WS
2026-07-14 17:41:17 +08:00
Lyonle
8b37ba8828
perf(risk): optimize keyword moderation hot path
2026-07-14 17:39:49 +08:00
cat
10aa88aab9
fix(openai): 补齐身份失效恢复路径
2026-07-14 17:19:15 +08:00
cat
3fe7b4da78
fix(openai): 闭合直通 WS 恢复与错误脱敏
2026-07-14 17:05:47 +08:00
cat
57cf2df09f
fix(openai): 收紧 Agent Identity 恢复与脱敏
2026-07-14 17:05:47 +08:00
cat
1dab126944
feat(openai): 支持 Agent Identity 认证
2026-07-14 17:05:46 +08:00
jjaw
86800a8cd0
优化内容会话种子字段扫描
2026-07-14 16:53:21 +08:00
jjaw
23f93a9348
优化 Responses 流式事件边界刷新
2026-07-14 16:38:37 +08:00
jjaw
a8afc20969
优化 Ops 队列深度账号查询
2026-07-14 16:18:26 +08:00
Heatherm Huang
4c764d3fc9
test(grok): use healthy quota account fixture
2026-07-14 15:07:09 +08:00
Heatherm Huang
cb7dfea5a9
test(grok): update default model fixture
2026-07-14 14:55:30 +08:00
Heatherm Huang
81b8b78378
fix(grok): resolve upstream OAuth imports
2026-07-14 14:55:30 +08:00
Heatherm Huang
b32b815e46
fix(grok): harden OAuth pool recovery
2026-07-14 14:55:30 +08:00
Heatherm Huang
91ae671a58
fix(grok): satisfy lint checks
2026-07-14 14:55:30 +08:00
Heatherm Huang
343390057d
fix(grok): fail over OAuth credential errors safely
2026-07-14 14:55:30 +08:00
shaw
fa1641f05f
fix: keep namespace verbatim on WSv2 forwards and check test type assertions
...
WSv2 egress relays upstream events verbatim without the HTTP-path
namespace restore, so flattening requests that take the WSv2 branch
would surface flattened tool names the client cannot match. Resolve
the WS transport decision before flattening and skip flattening only
when the request will actually go WSv2 (passthrough accounts return
via HTTP before the WSv2 branch and still flatten).
Also check all type assertions in responses_namespace_test.go to
satisfy golangci-lint errcheck.
2026-07-14 14:48:22 +08:00
shaw
252ef8b73a
Merge origin/main into codex/fix-native-responses-namespace
...
Resolve conflict in openai_gateway_passthrough.go streaming path: keep
main's normalizeCompletedImageGenerationStatus normalization ahead of
this branch's namespace restore block, mirroring the established order
in openai_gateway_response_handling.go.
2026-07-14 14:45:04 +08:00
Wesley Liddick
53004e2e90
Merge pull request #4238 from superman2003/feat/grok-monitor-auto-probe
...
feat(grok): add import probes and channel monitoring
2026-07-14 14:23:04 +08:00
Wesley Liddick
11ed22d052
Merge pull request #4240 from chensunlai/fix/openai-responses-lite-image-display
...
fix(openai): preserve client image tools in Responses Lite
2026-07-14 14:22:50 +08:00
li
2e9b8d9a64
fix: resolve golangci-lint errcheck and gofmt violations in reasoning test
...
Use two-value type assertions with require.True(t, ok) to satisfy
errcheck, and run gofmt to fix alignment.
2026-07-14 13:23:57 +08:00
chensunlai
2f715baf05
fix(openai): preserve client image tools in Responses Lite
2026-07-14 05:19:13 +00:00
li
ff639ba757
fix(grok): 清洗 reasoning 项中 content: null 避免 xAI 422
...
Fixes #4237
2026-07-14 13:13:32 +08:00