Commit Graph

2 Commits

Author SHA1 Message Date
Chewji
af0a9609f4 feat(sse): support native max reasoning effort and per-model clamping (#11875)
* fix(sse): map normalized xhigh to max for GLM-5.x+, DeepSeek-V4+, and provider aliases

* feat(sse): support native max reasoning effort and per-model clamping

* test(sse): add unit tests for Qwen 3.8, Claude 4.7+, GPT-5.6, and 2026 reasoning models

* fix(sse): align tests and file-size split for native max effort

Keep `max` as a first-class canonical tier. Split the new sanitizer
coverage out of base-executor-sanitize-effort.test.ts so the file stays
under testCap, and update discovery/catalog/vscode assertions to expect
native max instead of the old xhigh alias.

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

* fix(sse): keep combo effort lists and drop unused collectSSE helper

Combo vscode routes still advertise the 5-tier list. Canonical `max` is
preserved in discovery (#9160) and github model metadata. Remove the
unused collectSSE helper that failed the absolute ESLint gate.

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>

---------

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
Co-authored-by: Chewji <Chewji9875@users.noreply.github.com>
2026-09-02 00:12:13 -03:00
Andrew B.
eadcbea1c9 fix(combo): strip boolean reasoning field for opencode-go providers (#7891)
* fix(combo): strip boolean reasoning field for opencode-go providers

opencode-go backed providers (ollama-cloud, opencode-go, opencode,
opencode-zen) use a Go ChatCompletionRequest struct where the reasoning
field is typed as openai.Reasoning (a structured type). When a client
sends reasoning: true or reasoning: false — valid per the OpenAI API —
the Go JSON decoder rejects it with:

  400: json: cannot unmarshal bool into Go struct field
  ChatCompletionRequest.reasoning of type openai.Reasoning

This strips the boolean reasoning field before forwarding to these
providers, allowing the upstream to apply its own default reasoning
behavior. Object/string forms are left untouched.

Observed in production: 3 consecutive 400 errors from ollama-cloud/glm-5.2
in a 30-second window, each with the unmarshal error.

* fix(opencode): add null/primitive guard in stripBooleanReasoning

Adds defensive check for null, undefined, and non-object inputs
as suggested in review. Added unit test coverage for these edge cases.
2026-07-20 22:26:13 -03:00