mirror of
https://github.com/Wei-Shaw/sub2api.git
synced 2026-10-14 20:12:39 +08:00
合并 main 解决拆分冲突后,将原先 Forward 内的 body-signal 提升重构到 handler 的 compact 归一化入口之前,修复原方案的四个问题: - reqStream 未重推导:body-signal 原始请求带 stream:true,Forward 级提升 后 compact 上游返回 JSON(Accept: application/json)却被流式 handler 解析,"stream ended before a terminal event" 会触发最多 max_account_switches 次换号 failover,且每次都白烧一次上游 compact 配额; handler 级提升让白名单归一化先删除 stream,reqStream 自然为 false。 - requireCompact 调度过滤失效:原方案 path 改写发生在 requireCompact 判定 之后,调度器不会过滤不支持 compact 的账号;现在改写先于该判定。 - passthrough / Grok / chat-completions 桥接分支位于 Forward 检测点之前, passthrough 账号完全无法命中;handler 级改写对所有分支生效。 - body 归一化口径不一致:body-signal 现在与 path-based 一样走白名单归一化 (prompt_cache_key 等一并删除),而非仅依赖 OAuth 黑名单转换。 检测函数导出为 HasCompactionTriggerInInput 供 handler 使用,保留原 PR 的 7 个单测;新增 6 个 handler 级回归测试(提升、codex 别名路由、尾斜杠、 子路径不误伤、path-based 无双重后缀、普通请求不受影响)。 Refs #3777