The adapter's #651 twin (src/reasoning-drop.ts, drop:true default) strips the reasoning run preceding a closed compress call — on strict-echo thinking upstreams (DeepSeek: reasoning_content must be passed back when tools are in play) that produces the same HTTP 400 fixed in billion-context#690 (proxy side) + acp-kernel#245 (fold atomicity).
The kernel-side fix protects the fold split for every host, but the pi-side DROP itself has no strictness gate. Suggested: port isStrictReasoningEcho() (static deepseek host check from the provider baseUrl + learned flag), or at minimum document compress.reasoning.drop:false for DeepSeek/GLM-thinking/QwQ provider configs.
Depends on acp-kernel 0.0.63 (turn-integrity) for the full closure; pin bump will come with the next release PR.
The adapter's #651 twin (src/reasoning-drop.ts, drop:true default) strips the reasoning run preceding a closed compress call — on strict-echo thinking upstreams (DeepSeek:
reasoning_content must be passed backwhen tools are in play) that produces the same HTTP 400 fixed in billion-context#690 (proxy side) + acp-kernel#245 (fold atomicity).The kernel-side fix protects the fold split for every host, but the pi-side DROP itself has no strictness gate. Suggested: port
isStrictReasoningEcho()(static deepseek host check from the provider baseUrl + learned flag), or at minimum documentcompress.reasoning.drop:falsefor DeepSeek/GLM-thinking/QwQ provider configs.Depends on acp-kernel 0.0.63 (turn-integrity) for the full closure; pin bump will come with the next release PR.