Skip to content

v3.25.4

Choose a tag to compare

@github-actions github-actions released this 01 Sep 06:48
· 5 commits to main since this release
  • openai-compat requests say stream: false out loud (#94). The OpenAI spec defaults stream to false when the field is absent, but some self-hosted and regional gateways default the other way and answer an SSE body, which response.json() rejects with Unexpected token 'd', "data:{"id""... is not valid JSON — making modlens unusable against such a gateway. The request body now carries stream: false explicitly, so the response is plain JSON regardless of what the gateway assumes. The field was already on mergeExtraBody's reserved list, so extraBody could never override it; it just was never actually sent. Thanks to @moyi497475207 for a report that arrived with curl proof of the gateway's behavior and the exact one-line patch.
  • dsh >= 0.1.2: compact works on (modlens vision) routes (#93). dsh 0.1.2 gave its LlmAdapter base class a new imageRequestPricing default, and LlmRuntime forwards to it synchronously while measuring token pressure — no feature check, same shape as the 0.1.1 prepareCall dispatch (#73). The wrapper registers a plain object, so the missing method turned every compact on a modlens-synthesized route into imageRequestPricing is not a function, and compaction never ran. The adapter now carries the same default itself and returns undefined: the synthetic route declares no provider-side image pricing, so the token meter keeps its neutral estimate. The regression test drives the registered adapter through the 0.1.2 dispatch shape and failed with the reported TypeError before the fix. Thanks to @ZzAltMan for a root-cause report down to the exact dsh call site, and @Ztyss for cross-checking every official adapter to confirm the wrapper was the only one missing the method.