
sub2api 维护者本人当晚就提交了上期那条 403 的补丁:白名单多出 12 条独立权限、权限表 48 变 60,但已有 Key 不会自动扩权;同一小时 Gemini 工具定义那处 400 修进了 dev,Muse 的 403 则要先核自己跑的版本。
POST /accounts/today-stats/batch 与 GET /accounts/:id/today-stats → accounts.stats.readPOST /accounts/usage/batch 与 GET /accounts/:id/usage → accounts.usage.readPOST /api/v1/admin/openai/refresh-token → openai.tokens.refresh
backend/internal/pkg/adminaccess/catalog.go 第 22–35 行:插在原有 accounts.read 之前的一整块,就是这 12 条新权限。前三行正是上期那四个统计接口的去处,第 34 行 openai.tokens.refresh 接了第五个 3POST /openai/accounts/:id/quota/refresh 被归在 openai.quota.read 这条「读」里,不是写权限。openai.quota.reset。按名字猜着勾,会勾错。policy.full_access 默认关闭。RouteAllowed 第一行就短路成前缀放行 4。/api/v1/admin/,但排除以 /api/v1/admin/settings/admin-api-key 开头的那一条。
catalog.go 第 92–101 行:第 95–96 行是全权模式的唯一判定,前缀放行加一个 ! 排除;第 98 行之后才是原来那条逐字符全等的细粒度路径 4parameters 5。parametersJsonSchema 时只改了字段名,没改里面的类型。value at properties.Message.minLength must be a number。minLength 与 minItems 都有。Closes: #7149 6。dev 头就是这一笔,tag 与 main 都还停在 v8.0.50 的 f7331b51。minLength、maxLength、minItems、maxItems、minProperties、maxProperties——值是字符串、且能解析成非负整数,才替换。properties、patternProperties、$defs、items、anyOf/oneOf/allOf、if/then/else 这类真正的 schema 位置。enum、default、example 里的同名字符串一律不动。
internal/util/gemini_schema.go(dev 分支)第 1435–1500 行:第 1440–1467 行是主函数,按 offset/end 拼接原串;第 1477 行是那六个关键字;第 1490 行起只把properties、$defs 这类容器当 schema 继续往下走 7parameters 就别转,二是要转就把类型补对。parameters 写成 parametersJsonSchema、再删掉原名,只是值换成了数字。parameters 会被原样保留」这件事不会发生——别按第一条去改客户端。parametersJsonSchema 的,现在也会被归一,新增了一条 else if。"1" 改成 1;或者今晚先别让这条请求经过 Gemini 转译。TodoWrite 触发 403,其余 14 个回 200。TodoWrite、bash、shell、read_file、write_file、edit_file、apply_patch、update_plan、request_user_input。muse 命名空间。EnsureMetaMuseToolNamespace 10。
internal/runtime/executor/meta_executor_execute.go(v8.0.50)第 74–86 行:第 81 行加命名空间,第 83 行才跑 payload 规则。中间隔两行,顺序就是结论 10payload.filter 里动了 tools,命名空间会被一起摘掉。tools;都不行就换标准 API key——订阅 key 本来就只覆盖 Muse Code 客户端。if role == "developer" { role = "user" }
internal/translator/openai/openai/responses/openai_openai-responses_request.go(v8.0.50)第 251–267 行:第 255–256 行那句注释解释了为什么 isUserTurn 只认原始 user,第 258–259 行才是改写本身 13internal/translator 的 PR,按仓库政策该由维护团队处理,已改开 issue。drop-mid-system-message:把 role 为 system 的中段消息从 messages 里直接删掉,而不是像 rebuild-mid-system-message 那样搬到顶层 system 字段。| 仓库 | 当前版本 | 发布时间(北京) | 本窗口 |
|---|---|---|---|
| CLIProxyAPI | v8.0.50 | 11-01 21:32 | 无新版本;dev 多一笔已修未发 |
| sub2api | 0.2.19 | 10-28 18:16 | 无;一张修 403 的补丁仍 open |
| codex-proxy | v2.1.21 | 10-28 04:33 | 无 |
| codex2api | v3.1.2 | 10-28 04:39 | 无 |
accounts.stats.read、accounts.usage.read、openai.tokens.refresh 逐条勾上——已有 Key 不会自动多出来payload.filter 有没有动 tools,最后才考虑改名或换标准 keygithub.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
status.openai.com
status.anthropic.com
status.cloud.google.com
codex-reset.com
opentherank.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.