Wesley Liddick
405727805a
Merge pull request #7477 from Pluviobyte/codex/fix-subscription-reduction-remainder
...
fix(subscriptions): preserve partial days during redemption deductions
2026-09-22 18:11:46 +08:00
Wesley Liddick
a46493724b
Merge pull request #7476 from Pluviobyte/codex/fix-subscription-reduction-lock
...
fix(subscriptions): lock negative redemption updates
2026-09-22 18:11:11 +08:00
Wesley Liddick
d8eeb0989b
Merge pull request #7481 from spongehah/fix/selection-skip-account-count
...
perf: 选号读取分组时不再聚合账号数
2026-09-22 18:11:00 +08:00
Wesley Liddick
a266e50e8e
Merge pull request #7369 from feeeei/feat/admin-users-toggle-status-in-place
...
ui(users): 禁用/启用用户后原地更新该行
2026-09-22 18:10:45 +08:00
Wesley Liddick
5295bd8227
Merge pull request #7446 from wucm667/fix/issue-7441-csv-reasoning-effort
...
fix(usage): export missing reasoning effort cleanly
2026-09-22 18:10:35 +08:00
spongehah
7fbc59eb69
fix: 选号读取分组时不再聚合账号数
...
- 推理选号只需要隐私开关和分组名,改为 GetByIDLite
- 避免 GetByID 附带的账号计数聚合打满主库
- 管理列表的实时账号数统计保持不变
2026-09-22 16:54:36 +08:00
Rain
0c0df031c5
fix(subscriptions): preserve partial days during redemption deductions
2026-09-22 15:03:06 +08:00
Rain
85ed17b313
fix(subscriptions): lock negative redemption updates
2026-09-22 15:03:05 +08:00
Wesley Liddick
1c0a69c0ce
Merge pull request #7412 from StarryKira/codex/custom-reasoning-effort-billing
...
feat: 支持自定义思考等级倍率计费
2026-09-21 22:55:17 +08:00
haruka
e47255715d
fix(billing): preserve final reasoning effort across forwarding paths
2026-09-21 19:58:02 +08:00
wucm667
386f321d3c
fix(usage): export missing reasoning effort cleanly
2026-09-21 12:41:01 +08:00
shaw
7c700729c2
chore: update gitignore
2026-09-20 20:05:09 +08:00
Wesley Liddick
87957a608b
Merge pull request #7413 from ranxi2001/ci/release-build-matrix
...
ci: parallelize release builds across platform runners
2026-09-20 20:02:48 +08:00
ranxi2001
d1556a7a96
ci: point release helper tests at their final directory
2026-09-20 17:01:27 +08:00
ranxi2001
d2416a9b68
ci: keep release tooling and cache keys stable across jobs
2026-09-20 16:54:06 +08:00
haruka
b8d52fad34
feat(billing): support configurable reasoning effort multipliers
2026-09-20 16:41:49 +08:00
shaw
d2e319b2a1
test: 修复 WebSocket 同线程抢占测试的关闭时序竞态
2026-09-20 16:37:07 +08:00
ranxi2001
0892ef3a9a
ci: build release targets on independent matrix runners
2026-09-20 16:36:24 +08:00
shaw
95134201b2
docs: 删除误合入的 Codex 积分文档和截图
2026-09-20 16:12:11 +08:00
Wesley Liddick
acdf3c54da
Merge pull request #7401 from StarryKira/codex/codex-credits-referrals-upstream
...
feat(openai): display Codex credits and support referral invitations
2026-09-20 16:00:28 +08:00
haruka
fc96132e72
fix(openai): harden referral outcomes and isolate HTTP transport
2026-09-20 15:47:53 +08:00
haruka
8f6bbb59c7
test: stabilize Gemini keepalive test
2026-09-20 15:04:15 +08:00
Wesley Liddick
fbb9006ade
Merge pull request #7402 from Wei-Shaw/fix/7268-openai-http2-keepalive
...
fix(upstream): 恢复 OpenAI HTTP/2 保活容错期限
2026-09-20 14:57:35 +08:00
shaw
e009ea3036
fix(upstream): 恢复 OpenAI HTTP/2 保活容错期限
2026-09-20 14:46:25 +08:00
haruka
e509937382
docs: add Codex referral UI validation screenshots
2026-09-20 14:38:30 +08:00
haruka
5090ffe05e
feat(openai): show Codex credits and manage referral invitations
2026-09-20 14:38:29 +08:00
Wesley Liddick
bbdcfbac0a
Merge pull request #7304 from wucm667/fix/issue-7298-response-model-alias
...
fix(gateway): restore public response model aliases
2026-09-20 14:07:16 +08:00
Wesley Liddick
7403a01177
Merge pull request #7314 from wucm667/fix/issue-7306-keyword-reminder-bypass
...
fix(moderation): prevent reminder tags from bypassing keyword checks
2026-09-20 14:07:04 +08:00
Wesley Liddick
53b4bbe736
Merge pull request #7349 from wucm667/fix/issue-7348-preserve-client-version
...
fix(settings): preserve client version on invalid user agent
2026-09-20 14:06:48 +08:00
Wesley Liddick
8bb48622a3
Merge pull request #7362 from wucm667/fix/issue-7358-preserve-account-errors
...
fix(accounts): preserve refresh errors during usage queries
2026-09-20 14:06:36 +08:00
Wesley Liddick
f28adb6ddb
Merge pull request #7387 from Brisbanehuang/codex/upstream-content-audit-typesafe
...
feat: 内容审计接入 TypeSafe AI,支持双引擎切换与独立配置
2026-09-20 13:47:14 +08:00
Wesley Liddick
19794bc46a
Merge pull request #7397 from Wei-Shaw/feat/hostservice-account-metadata
...
feat(pluginapi): HostService 账号目录返回结构化只读元数据
2026-09-20 11:39:15 +08:00
shaw
29eead917f
feat(pluginapi): HostService 账号目录返回结构化只读元数据
...
纯宿主侧改动,向后兼容。
- 契约(pkg/pluginapi/v1/plugin.proto,已重新生成):ListAccounts 增补
repeated AccountInfo accounts(保留 account_ids 向后兼容),新增 metadata_json
只读快照字段。HostServiceAPIVersion 1→2(InitHostServices 运行时协商,加法式,
旧调用方忽略新字段即可)。
- 权限边界:可见范围由清单能力经 pluginCapabilityAccountScopeGrants 推导,
ListAccounts 与 ResolveOutboundIdentity 均以该范围为权威边界。
- metadata_json 采用 denylist:剥离 Credentials 与含反向引用的关联对象
Groups/AccountGroups(避免 encoding/json 循环引用),其余字段自动透传,
数据模型新增非机密字段无需改宿主。
测试:范围/元数据/无凭据泄漏用例、denylist 反射护栏 + 循环引用安全断言、纵深过滤用例;
build/vet/gofmt、-tags unit 与 -race 全绿。
2026-09-20 11:26:19 +08:00
Brisbanehuang
1bfe0d3728
fix: sync draft audit key status and threshold defaults
2026-09-19 20:52:31 -04:00
Brisbanehuang
783a0a9830
feat(content-audit): add independent TypeSafe engine profiles
2026-09-19 20:52:31 -04:00
feeeei
f6eeed3d5a
ui(users): 禁用/启用用户后原地更新该行
...
管理端用户列表点「禁用/启用」后会重新拉取整个列表:表格先换成骨架屏,
再重新请求用户列表与用量、属性、平台限额三份附属数据,滚动位置随之丢失,
连续处理多个用户时每点一次都像整页刷新。
- 请求成功后按 id 找到当前列表中的那一行,只回写 status 与 updated_at;
更新接口的响应不含 current_concurrency、subscriptions 等列表专属字段,
不能整行替换
- 更新返回时若有列表请求在途,该请求可能读到更新前的状态,此时重新拉取列表
- 按状态筛选时,被切换的行留在原地并显示新状态,可当场撤回误操作;
总数在下次刷新前不变
- 新增三条用例:原地更新且不重载列表、请求失败时该行不变、并发列表请求时回退为重载
2026-09-19 18:14:27 +08:00
wucm667
b252821c59
fix(accounts): preserve refresh errors during usage queries
2026-09-19 17:22:39 +08:00
github-actions[bot]
1a9d49e16f
chore: sync VERSION to 0.2.7 [skip ci]
2026-09-19 04:29:03 +00:00
Wesley Liddick
aea725f2ea
Merge pull request #7247 from Qiaogun/codex/seedance-native-api
...
feat: 支持 Seedance / Ark 原生视频任务 API
v0.2.7
2026-09-19 12:11:17 +08:00
Wesley Liddick
74431ffad8
Merge pull request #7258 from HuntercodeT/fix/antigravity-gemini-bare-model-thinking-variant
...
fix(antigravity): Gemini 原生请求的裸模型名按 thinkingConfig 解析到 -low/-medium/-high 变体
2026-09-19 12:01:22 +08:00
Wesley Liddick
0c9e83b59c
Merge pull request #7278 from HuntercodeT/fix/antigravity-gemini-sse-comment-keepalive
...
fix(antigravity): Gemini 原生流对 go-genai / python-genai 客户端不发 SSE 注释心跳
2026-09-19 12:00:18 +08:00
Wesley Liddick
09f88865e0
Merge pull request #7294 from feeeei/feat/model-plaza-icon
...
ui(header): 手机竖屏顶栏保留模型广场图标入口
2026-09-19 11:59:46 +08:00
Wesley Liddick
1b45d21328
Merge pull request #7340 from ye4241/fix/kimi-cn-quota-403-rate-limit-pause
...
fix(ratelimit): CN coding-plan 账号配额耗尽的 403 按限流暂停调度,而非永久禁用
2026-09-19 11:59:21 +08:00
Wesley Liddick
d5cea617a5
Merge pull request #7345 from laoxiechuzheng/fix/anthropic-root-union-schema
...
fix(apicompat): 摊平 Responses→Anthropic 工具 schema 顶层联合,修复 Codex 内置工具导致的 400
2026-09-19 11:59:00 +08:00
Wesley Liddick
4275047d16
Merge pull request #7313 from baryon/contrib/deepseek-chat-reasoning-content
...
fix(openai): pass DeepSeek thinking-mode reasoning_content on chat fallback
2026-09-19 11:57:55 +08:00
Wesley Liddick
4dbcdce43c
Merge pull request #7351 from Wei-Shaw/feat/plugin-host-services-status-bridge
...
feat(plugin): generic host services + read-only status bridge channel
2026-09-19 11:57:41 +08:00
shaw
6477143533
test(plugin): check type assertions to satisfy errcheck lint
2026-09-19 11:47:14 +08:00
shaw
c63bd14a02
feat(plugin): generic host services + read-only status bridge channel
...
Extend the local plugin system's host<->plugin contract with generic,
capability-neutral facilities, so transport plugins can be built on top
without embedding plugin-specific logic in the host.
Host services (plugin dials a broker-provided HostService gRPC):
- per-plugin namespaced KV store (key/value size and TTL bounded)
- account directory: ListAccounts + ResolveOutboundIdentity, restricted to
the accounts a plugin's declared capability already covers
- InitHostServices lifecycle hook; plugins that don't implement it run
unchanged and are simply offered no host services
Read-only runtime status channel:
- HealthResponse gains an opaque, plugin-defined status_json produced
passively (no config apply, no upstream call, no side effects)
- GET /admin/plugins/:id/status (ungated) and the plugin.status UI-bridge
verb map to Health, so a status UI can poll live state without a step-up
prompt or a "test" side effect
- config.test no longer force-shows a host success toast; the plugin UI owns
result presentation, so plugins that read status do not spam toasts
Document the UI-bridge verb taxonomy (read vs mutate/test gating) and the
status contract under pkg/pluginapi.
2026-09-19 11:25:56 +08:00
wucm667
2d37088bd9
fix(settings): preserve client version on invalid user agent
2026-09-19 10:36:51 +08:00
laoxiechuzheng
a8a1a3a958
fix(apicompat): flatten root union tool schemas for Anthropic
...
Codex 会把 codex_app 等内置工具的 parameters 根节点声明成对象分支的 oneOf/anyOf,Anthropic 拒绝工具 input_schema 顶层的 oneOf/anyOf/allOf,导致 /v1/responses -> /v1/messages 直接 400。
Responses->Anthropic 转换时摊平顶层联合:属性取各分支并集,同名属性用嵌套联合保留两侧约束,required 在 oneOf/anyOf 下取分支交集、allOf 下取并集;嵌套联合保持不变。
2026-09-19 07:34:21 +08:00