
CLIProxyAPI 的 dev 分支在六十分钟里落下四笔修复,把上两期报过的四张单全部关掉,而 v8.0.53 里一条都没有——附四条各自在 v8.0.53 上的表现、能核到的源码位置和今晚就能用的绕法。
Fixed 只说明 dev 上有修复,不说明你手上的这一版已经好了。这四条在 v8.0.53 里一条都没有。| 条目 | 在 v8.0.53 上会看到什么 | 影响 | 今晚能做的 |
|---|---|---|---|
#7233 Codex 输入 ID 截断保留 + / | 长 ID 的历史会话反复 400 | 请求直接失败,重试照样失败 | payload 过滤 / 开新会话 / 从 dev 构建 |
#7235 devin/ 开头的 Claude 模型 | 恒按最低档变体跑 | 质量与费用都偏 | 模型名写档位后缀 |
| #7232 插件热重载 | quiesce 失败插件照旧被替换,用量可能丢 | 账目缺口 | 停流后再重载,或直接重启 |
| #7234 用量记录里的档位 | 记成顶层占位值 | 只影响记录与统计 | 无 |
+ 还在Invalid 'input[102].id': … Expected an ID that contains letters, numbers, underscores, or dashes, but this value contained additional characters.
+ 仍然在。3
internal/runtime/executor/helps/codex_input_ids.go 第 224–236 行:shortenCodexInputItemIDWithHashSuffixRunes 只按 rune 截到 47 个再拼后缀,没有字符集检查。5sanitizeCodexInputItemIDChars,把字母数字下划线连字符之外的字符逐个换成 _;再拿清洗前的 ID 当碰撞哈希种子,让两个只差非法字符的 ID 不会撞成同一个。6
normalizeCodexInputItemID 只在短 ID 上清洗,长 ID 交给截断路径,两处都过一遍 sanitizeCodexInputItemIDChars。6payload:
filter:
- models:
- name: "gpt-*"
protocol: "codex"
params:
- 'input.#(type=="message")#.id'apply_patch 工具的那条同形,都是 gjson 查询路径。8input。第三条,从 dev 构建。devin/claude-opus-5-5 这类模型、客户端又在会话中途发 effort 指令时,实际选中的是最低档变体。4thinkingLevel 取自翻译后的 payload,而翻译只保留顶层 output_config.effort——发指令的客户端把顶层值钉成缓存占位值,逐轮指令被丢掉了。9
internal/runtime/executor/devin_executor.go 第 409–442 行:第 417 行的 thinkingLevel 来自 parseInteractionsPayload,第 433 行拿它和 req.Model 一起解析上游 UID,中间没有读逐轮指令的那一步。9ClaudeEffortDirective,扫 messages 里最后一条 role=system 且带 output_config.effort 的指令,用它的档位覆盖占位值;thinking 显式关掉时不做覆盖。10ResolveDevinChatModelUID 对已经带已知后缀的名字是直接使用,后缀也优先于 body 里的档位。11devin/claude-opus-5-5-high 在 v8.0.53 上就走高档,前提是该模型在目录里允许 high。代价是一段对话里想换档只能换模型名。
internal/pluginhost/host.go 第 293–316 行:第 301 行的返回值被丢掉,第 302 行只判断上下文是否取消;插件自己报的错拦不住第 308 行的加载。14reasoning_effort 写的是顶层占位值,不是这一轮真正用的档位。16ClaudeEffortDirective 接到用量提取路径上,占位值让位给最后一条逐轮指令。17reasoning_effort 在一批请求里全是同一个值时,别拿它当真实分布。config.example.yaml,也没有任何配置结构体。从 dev 构建不需要改配置。dev 分支停在三月的旧线,别把它当成"未发版的修复"。signal.active 是 false,最后一条重置承诺停在 11-02 23:51,这个窗口里没有新承诺。25github.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
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.