Wesley Liddick
dfa83fbe93
Merge pull request #6986 from feeeei/feat/site-billing-mode
...
feat(settings): 新增「站点类型」开关(充值 & 订阅 / 仅充值 / 仅订阅)
2026-09-11 16:34:46 +08:00
Wesley Liddick
2dff7af0f9
Merge pull request #6954 from feeeei/fix/quota
...
fix(quota): 修复仪表盘默认会给所有人分配显示所有平台卡片的问题
2026-09-11 16:34:18 +08:00
Wesley Liddick
40cf3f50a6
Merge pull request #6968 from ouchihao/codex/issue-6903-deepseek-vision-modality
...
fix(codex): advertise DeepSeek vision image input
2026-09-11 14:01:36 +08:00
Wesley Liddick
75b7dd1e0b
Merge pull request #6969 from ouchihao/codex/issue-5882-peak-rate-validation
...
fix(groups): return bad request for invalid peak-rate settings
2026-09-11 14:01:14 +08:00
Wesley Liddick
642d20b8ac
Merge pull request #6988 from ZeroClover/fix/codex-manifest-display-name
...
fix(openai): keep Codex manifest display names in account model lists
2026-09-11 14:00:42 +08:00
Wesley Liddick
310f8b7fa2
Merge pull request #6964 from xlplbo/fix/apicompat-agent-message-chat-bridge
...
fix(apicompat): chat 桥保留 Codex agent_message 任务正文
2026-09-11 13:59:41 +08:00
Wesley Liddick
6254aba5e9
Merge pull request #6575 from doublepi123/feat/antigravity-gemini-3.8-flash
...
feat(antigravity): support Gemini 3.7 and 3.8 Flash models
2026-09-11 13:58:54 +08:00
Wesley Liddick
7145484fde
Merge pull request #6971 from ouchihao/codex/issue-1890-ttft-request-details
...
fix(ops): show first-token latency in TTFT request details
2026-09-11 13:58:37 +08:00
Wesley Liddick
fd300ab6f3
Merge pull request #6974 from alfadb/fix/deepseek-v41-flash-pricing
...
fix(billing): 适配 DeepSeek V4.1-Flash 新价与 pro→Flash 计费切换
2026-09-11 13:58:23 +08:00
Wesley Liddick
88011a6a2e
Merge pull request #6783 from asmoyou/fix/large-image-request-memory
...
perf(gateway): reduce memory amplification for large Responses image requests
2026-09-11 13:58:11 +08:00
Wesley Liddick
14029e50aa
Merge pull request #6661 from whhphd/fix/grok-media-slot-release
...
fix(grok): release abandoned media slots and preserve video ownership
2026-09-11 13:57:07 +08:00
Wesley Liddick
3fb03cdac1
Merge pull request #6960 from xlplbo/fix/openai-ws-exec-scope-preemption
...
fix(openai-ws): ctx_pool 会话抢占与会话状态按 codex 线程隔离
2026-09-11 13:56:52 +08:00
Wesley Liddick
8f9a9a255b
Merge pull request #6965 from xlplbo/fix/openai-ws-pool-reader-loop
...
fix(openai-ws): 连接池常驻读循环应答上游 ping,根治空闲连接 1011 keepalive ping timeout
2026-09-11 13:56:23 +08:00
xlplbo
4543ddc5c1
fix(openai): WS 执行作用域按 request_kind 分道
2026-09-11 13:37:59 +08:00
matt
5af7e7438a
fix(ci): check deferred sql.DB.Close errors in setup tests
...
PR #6499 merged without CI ever running on its head commit (fork run stayed
action_required), landing three bare `defer db.Close()` calls in
internal/setup/setup_test.go. The repo's errcheck config sets
disable-default-exclusions: true, so those are reported and golangci-lint has
been red on main ever since, failing every subsequent PR run.
Switch them to the codebase's existing convention
`defer func() { _ = db.Close() }()`.
2026-09-11 11:45:59 +08:00
xlplbo
613722eee4
fix(openai): HTTP 转发的执行作用域改从原始请求计算
2026-09-11 11:36:29 +08:00
xlplbo
d0ca057ca4
fix(openai): WS 会话被抢占时先发关闭帧再取消
2026-09-11 10:25:50 +08:00
xlplbo
e4c369bd56
fix(openai): HTTP 经 WS 池转发按执行作用域取会话状态键
2026-09-11 10:25:50 +08:00
Wesley Liddick
f4dd88b001
Merge pull request #6847 from ouchihao/codex/issue-4064-custom-page-button-visibility
...
feat(settings): allow hiding the custom page open button
2026-09-11 09:34:11 +08:00
Wesley Liddick
2493b0dc31
Merge pull request #6924 from smyyyyy2025/fix/codex-user-agent-validation
...
fix: validate Codex User-Agent before identity parsing
2026-09-11 09:33:19 +08:00
Wesley Liddick
264cbbec26
Merge pull request #6499 from soulxyz/fix/setup-database-bootstrap
...
fix(setup): avoid hardcoded postgres connection
2026-09-11 09:32:01 +08:00
Wesley Liddick
87e01596b7
Merge pull request #6850 from reallyfeishi/fix/channel-monitor-utc-buckets
...
fix: anchor channel monitor date_bin buckets to UTC
2026-09-11 09:31:22 +08:00
Wesley Liddick
43f9383d40
Merge pull request #6869 from Garfielk/codex/fix-heartbeat-envelope-fields
...
fix(openai): accept full heartbeat bootstrap envelopes
2026-09-11 09:30:45 +08:00
Wesley Liddick
685e97a3a6
Merge pull request #6904 from m11y/fix-scheduling-threshold-snapshot
...
fix(scheduler): preserve threshold metadata
2026-09-11 09:30:00 +08:00
Wesley Liddick
e71d291b39
Merge pull request #6917 from ouchihao/codex/issue-2149-monitor-base-path
...
fix(monitor): support upstream base URL paths
2026-09-11 09:29:25 +08:00
Wesley Liddick
4adcef4ff4
Merge pull request #6943 from xiuai-labs/fix/keep-client-system-cache-control
...
fix(gateway): 不再剥离客户端 system 上的 cache_control / stop stripping client system cache_control
2026-09-11 09:28:55 +08:00
Zero Clover
6feefb7aec
fix(openai): keep Codex manifest display names in account model lists
2026-09-11 03:18:00 +08:00
feeeei
9d475f9edb
feat(settings): 新增「站点类型」三态开关,关闭订阅后用户端收起所有「订阅」入口与文案
...
后台功能开关页新增「站点类型」单选:充值 & 订阅(默认,即现状)/ 仅充值 / 仅订阅。
它由两个后端开关派生并在保存时同时写回:
- subscription_enabled(新增;默认 true,缺省/空值视为开启,仅显式 false 关闭),按既有
开关模式贯通常量、公共设置、SSR 注入载荷、默认值、更新写入、DTO、审计 diff 与前端注册表;
- payment_balance_disabled(支付配置里既有的 BALANCE_PAYMENT_DISABLED,此前只能走接口/数据库
改),补进公共设置与注入载荷,让用户端在任何鉴权请求之前就能推导站点类型。
两者都关闭是接口层可表达但 UI 不提供的组合,前端归为「仅充值」,后台保存时会把余额充值重新打开。
「仅充值」时的表现:
- 用户侧边栏隐藏「我的订阅」,「充值/订阅」入口收窄为「充值」;管理端侧边栏隐藏「订阅管理」
入口(页面仍可通过地址访问);
- 购买页不再渲染「订阅」tab,只剩单个 tab 时顶部切换器随之隐藏;tab 列表变化时当前 tab
自动收敛到可用项(关闭订阅回到充值、仅订阅站点重新打开订阅进入订阅),列表为空时展示
「充值与订阅均暂未开放」而不是一个必定被后端拒绝的充值表单;
- /purchase 的页头标题/描述与 document.title 改走 resolveRouteMetaKeys 按站点类型切换;
- /subscriptions 路由新增 requiresSubscription 守卫,直达时重定向到仪表盘;
- 顶栏订阅进度徽章不再挂载,App.vue、PaymentView 与徽章组件都不再预加载/轮询订阅接口;
- 用量页隐藏「计费类型(余额/订阅)」筛选,Key 用量公开页「订阅类型」行改为「计费方式」。
「仅订阅」时侧边栏入口与页头显示为「订阅」,购买页只剩订阅 tab(余额下单由后端既有逻辑拒绝)。
购买订阅接口、已有订阅的计费、兑换码发放订阅与管理端订阅管理页面本身均不受影响。
featureFlags 抽出纯函数 resolveFeatureFlag,新增 utils/siteBillingMode 承载三态派生与反解,
PaymentView 测试改用响应式 store mock 覆盖开关双向切换。
2026-09-11 00:50:17 +08:00
alfadb
ab9bd9e877
fix(billing): 适配 DeepSeek V4.1-Flash 新价与 pro→Flash 切换
...
- flash 低谷价更新为 $0.15/$0.60/$0.003 per MTok(2026-09-10 官方降价)
- deepseek-v4-pro 自 2026-09-14 04:00 UTC 起按 Flash 价计费(上游路由变更)
- 计费时点显式驱动 pro→Flash 切换,定价展示与计费两条路径同源
- deepseek-flash 保留 reasoning_effort=max;补 Codex 模型清单与前端白名单
- 价表 JSON 新增 deepseek-flash 条目并同步 flash 系价格
2026-09-10 22:10:29 +08:00
chihao.ou
b112805ffa
test(ops): align query matcher formatting with gofmt
2026-09-10 21:21:08 +08:00
chihao.ou
d3bd614ba7
test(groups): initialize a valid rate multiplier in peak validation case
2026-09-10 21:17:42 +08:00
chihao.ou
e9f5add97c
fix(ops): show first-token latency in TTFT request details
2026-09-10 21:13:17 +08:00
chihao.ou
ab3b398b5f
fix(groups): return bad request for invalid peak-rate settings
2026-09-10 21:05:47 +08:00
chihao.ou
5032d06697
fix(codex): advertise DeepSeek vision image input
2026-09-10 21:04:56 +08:00
xlplbo
bed1e3c362
fix(openai): 重试强制新建连接并放宽轮次预检超时
2026-09-10 20:35:53 +08:00
xlplbo
a5b07b2960
feat(openai): WS 连接池常驻读循环应答上游 ping
2026-09-10 20:35:53 +08:00
xlplbo
df8eceba0c
fix(apicompat): chat 桥保留 Codex agent_message 任务正文
2026-09-10 20:25:38 +08:00
xlplbo
95a04c8dff
test(apicompat): additional_tools 走 chat 桥的回归用例
2026-09-10 19:50:26 +08:00
xlplbo
cd1ee1d1ad
fix(openai): WS 接入会话状态改用执行作用域键
2026-09-10 17:50:24 +08:00
xlplbo
9e7c2d713c
fix(openai): WS 会话抢占改用执行作用域键
2026-09-10 17:50:24 +08:00
xlplbo
06b61ba96f
feat(openai): 解析 codex 线程标识派生 WS 执行作用域
2026-09-10 17:50:23 +08:00
feeeei
4a4b50d807
fix(quota): 平台限额表只保存已配置限额的记录,仪表盘按用量与限额展示平台
...
user_platform_quotas 只保存至少配置了一档限额的记录;不存在的行等价于不限额。
- 注册播种只为配置了限额的平台建行,一个都没有时不写入
- IncrementUsageWithReset 无行时不再 fail-open 建行
- BatchSnapshotUsage 改为只更新既有活跃行,不再插入无限额的新行
- 仓储 BulkInsertInitial/UpsertForUser 把三档全空的记录视为未配置;
管理员全量替换接口同样剔除,清空限额即软删并放弃累计用量
- 迁移 238 删除三档全 NULL 的历史行
- 用户仪表盘平台卡片 = 有用量的平台 ∪ 配置了限额的平台,计数改为卡片数
- 管理员限额弹窗对未保存限额的平台禁用"重置窗口"
2026-09-10 16:41:58 +08:00
r266-tech
1c0932e173
feat(gateway): retrieve models from the visible catalogue
2026-09-10 15:57:17 +08:00
nekocode
a4edda36d5
fix(gateway): 不再剥离客户端 system 上的 cache_control
...
OAuth mimic 路径无条件删除 system[*].cache_control,不打日志也不报错。
把稳定前缀锚在 system 上的客户端因此拿到 cache_creation 与 cache_read
双 0 —— 不是没命中,是连写都没写。
这个动作是 46e5ac9 引进时「system 必然被整个重写」的配套:客户端的
system 内容都搬进 messages 了,残留断点指着空气,删它是对的。后来
system 注入变成可配置,于是长出了原设计里不存在的组合 —— system 没被
重写,断点照删。剥离失去了赖以成立的前提,代码却还在。
三处调用点里 count_tokens 那处还是硬编码 true,与另两处的
!systemRewritten 语义不一致。
直接移除该选项而不是再加一个开关:注入开启时 system 已被整个替换、
留在上面的断点是我们自己拼进去的稳定锚点;注入关闭时断点就是客户端的
缓存意图。两种情形都没有删它的理由,而需要开关的是有取舍的行为。
顺带补上 count_tokens 的 4 块上限兜底:五条出口里只有它没在自己的转发
路径上调过 enforceCacheControlLimit,原先那句 strip 是这条路上唯一压制
断点数量的东西。拿掉之后「客户端 system + 客户端 messages + 刚注入的
tools[-1]」实测顶到 5 块,而上游对超限是 400。
messages 层的同类改写见 #2369,那次只落地了 messages 一半。
此前该行为零测试覆盖(stripSystemCacheControl 在 _test.go 里零命中),
本次补 4 个用例,其中上限兜底那条撤掉修复即红。
Claude-Session: https://claude.ai/code/session_01WnTW52pmELGy3g7KPEUXj2
2026-09-10 15:48:17 +08:00
smyyyyy
4e5632c3e3
fix: validate Codex User-Agent before identity parsing
2026-09-10 03:18:31 +08:00
chihao.ou
21323c31f8
fix(monitor): support upstream base URL paths
2026-09-09 20:02:25 +08:00
wangjunwei
de76baaa0d
fix(scheduler): preserve Anthropic threshold metadata
2026-09-09 17:13:37 +08:00
刘世俊
a0babc93dd
fix(openai): accept full heartbeat bootstrap envelopes
2026-09-09 12:48:57 +08:00
hansnow
7ccc8a6f50
fix(openai): 支持 Image 2.5 并修复 OAuth 生图主控模型
2026-09-09 11:04:59 +08:00
lcy
29a36a10be
Merge upstream/main into feat/antigravity-gemini-3.8-flash
...
Resolve comment-wording conflict in normalizeGeminiThinkingTierAlias by
keeping upstream's phrasing. Function body and behavior are unchanged.
2026-09-09 01:49:32 +08:00