Commit Graph

3 Commits

Author SHA1 Message Date
Paijo
8a8d0cf336 fix(providers): stop silently dropping reasoning effort on opencode families (#10788) (#11409)
Validated in a combined 3-PR batch worktree off release/v3.8.51 tip (a sibling PR from the same author, #11495, was held out after an interaction-only typecheck error was isolated to it — reproduced clean without it, see #11495's own comment).
- Focused tests: opencode-go-effort-aliases-6922.test.ts, opencode-go-effort-aliases-8353.test.ts, chatcore-upstream-body.test.ts — part of batch's 94/94 node:test run
- typecheck:core, file-size, changelog-integrity, complexity, cognitive-complexity — all OK
- Full-repo lint: 228 pre-existing dashboard react-hooks/* findings, unrelated to this diff

Thanks for tracing this all the way to the wire format — forwarding the aliased id verbatim instead of injecting a field the non-DeepSeek families never had is exactly the right fix.
2026-08-25 18:22:23 -03:00
Ke Jin
f92075bb63 fix(deepseek): align V4 reasoning efforts across DeepSeek and OpenCode Go (#10540)
* fix(deepseek): align V4 reasoning efforts

* docs(changelog): note DeepSeek effort fix

* fix(deepseek): align OpenCode V4 effort aliases

* test(deepseek): align effort alias expectation

* fix(deepseek): scope low effort to v4

* fix(opencode-go): route DeepSeek V4 through Responses
2026-08-18 10:51:52 -03:00
Rafael Dias Zendron
1843b34866 feat(6922): effort-tier aliases for glm-5.2 & mimo-v2.5 on opencode-go (#6987)
* feat(6922): register effort-tier aliases for glm-5.2 & mimo-v2.5 on opencode-go

Previously only deepseek-v4-pro had effort-tier aliases on the opencode-go
provider. GLM-5.2 and MiMo-V2.5 only had base model ids, making it impossible
to pin reasoning effort per combo target.

Changes:
- Generalize parseDeepSeekEffortLevel → parseEffortLevel with EFFORT_TIERS table
- deepseek-v4-pro: low/medium/high/max (unchanged)
- glm-5.2: high/max only (OpenAI transport; low/medium not supported)
- mimo-v2.5: high/max only (same reasoning)
- Register alias model ids in opencode-go registry
- Mark base models supportsReasoning: true
- 9 unit tests covering registry + executor + backward compat

Closes #6922

* ci: retrigger CI for Electron Package Smoke flaky test

* ci: retrigger flaky Electron Package Smoke

* test(#6922): rewrite tests to call real parseEffortLevel function

- Export parseEffortLevel from opencode.ts so tests can import it
- Replace grep-on-source-file assertions with real function calls
- 13 tests: 4 deepseek tiers + 2 glm-5.2 tiers + 2 mimo-v2.5 tiers
  + 5 negative cases (unknown model, unsupported tiers, empty, base-only)
- Remove dependency on readFileSync / string matching

* chore: retrigger CI (should-promote-latest flaky EPIPE)

* test(#6922): cover transformRequest end-to-end, not just parseEffortLevel

parseEffortLevel already has real assertions (own follow-up commit
4a4d37ba5). This adds coverage one layer up, at the public entry point
that actually wires the parser into the request pipeline
(OpencodeExecutor.transformRequest): asserts body.model is rewritten to
the base id and body.reasoning_effort is injected for glm-5.2-high and
mimo-v2.5-max, that an explicit caller-supplied reasoning_effort is not
clobbered, and that an unaliased model passes through untouched.

Red-first proof: neutered the `if (parsed)` branch in transformRequest
(`if (false && parsed)`) and reran — the 3 assertions that depend on the
wiring failed as expected (model/reasoning_effort left unrewritten); the
13 parseEffortLevel tests and the unaliased-model case stayed green.
Restored and reran clean (17/17).

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

---------

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
2026-07-18 15:14:37 -03:00