
CLIProxyAPI 的插件鉴权对每个请求整包读体再复制,8 GB 机器 20 分钟被内核杀了 5 次;同一窗口 sub2api 两张补丁并进主干却没进版本,上期那张 Claude Code 指纹补丁被作者自己关掉。
adapters_interceptors.go 第 422–423 行取出原始 body,io.ReadAll 一次读完;第 434 行把 r.Body 换成 bytes.NewReader(body),这份缓冲留在请求里,给后面的 handler 再读一遍。
internal/pluginhost/adapters_interceptors.go 第 418–436 行,v8.0.45:第 423 行的 io.ReadAll 没有长度上限,第 434 行把读到的整包换回请求体。3Body: bytes.Clone(body) 把整包再复制一遍。2
internal/pluginhost/adapters_auth.go 第 246–256 行,v8.0.45:第 248 行把控制权交给插件,第 253 行用 bytes.Clone 把整包复制进 Body 字段。2FrontendAuthRequest.Body 声明成 []byte,json.Marshal 会把它 base64 编码一次,宿主再用 C.CBytes 把这段字节交给插件的 C ABI。bytes.Clone 的副本、base64 字符串、C 堆各一份。1RequestInterceptorOmitBodyBefore 与 RequestInterceptorOmitBodyAfter,插件声明后宿主不必把 body 交过去;这两个字段从 v8.0.44 起就在协议里。4FrontendAuthRequest 的 Body 无条件填满,插件只能连 body 一起收下。5
sdk/pluginapi/types.go 第 458–474 行,v8.0.45:第 470 行的 Body []byte 是无条件字段,结构体里没有「不要 body」的开关。5Manager.Authenticate 按注册顺序遍历提供者,第一个返回成功的就是结果,返回「不处理」的继续往下走。6RegisterFrontendAuthProviders 把它的适配器注册进这条链,之后每个进来的请求都先经过它。插件若声明 exclusive,这条链上只剩它一个。io.ReadAll 206 MB、bytes.growSlice 136 MB、handlers.cloneBytes 103 MB。1server.max-request-body-bytes 从默认的 0 改成有限的数。配置样例第 35 行写的就是 0,含义是不限。7features_config,于是任何一次界面保存都会抹掉 openai、command_code 等平台的 web search 模拟。8mergeWebSearchEmulationDimensions:请求带这个键就按平台合并、缺失的维度继承现值,完全不带就整键继承,显式传空对象或 null 才清空。9model_mapping 时,列表返回各账号映射键的并集,详情按同一来源判断,未覆盖的模型回 404,也不再请求上游。只要有一个账号没配映射,就退回原来的选号透传。
backend/internal/service/gemini_models_endpoints.go 第 27–54 行,sub2api main:第 40–45 行逐步收集每个账号的映射键,第 41–42 行遇到没配映射的账号直接返回空,读侧因此退回选号透传。12geminiModels、geminicli.DefaultModels、gemini.DefaultModels() 三处统一成 17 个现役模型,移除 2.0/2.5 系列与 gemini-3-pro-preview;连接测试的默认模型从 gemini-2.0-flash 改成 gemini-3.5-flash。11DeclaredModelIDs,这张单的改动也只在 main 上。13cc_entrypoint 默认改成 sdk-cli、补五个 anthropic-beta、把 Stainless 版本号与 Runtime 版本对齐真机、给 body 补 safeguards 块。14merged 为 false。14crypto/tls 换成 Chrome uTLS。15.env.example 与 docker-compose.pgredis2004.yml 的 CODEX_TRANSPORT_MODE 默认值改成 utls_chrome,用 compose 部署的人升级后传输模式跟着变。15STABILIZE_DEVICE_PROFILE 未设置时从关变成开,显式写 false 才关。codex2api 的 main 上,这一项要读到环境变量等于真值才打开稳定化。16
proxy/device_profile.go 第 101–119 行,codex2api main:第 116 行只在 STABILIZE_DEVICE_PROFILE 等于 true 时打开设备画像稳定化,未设置即为关;#839 直接把这一行的语义改成默认开。16github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.