Skip to content

fix(sensenova): clamp unsupported max reasoning effort to xhigh - #10733

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
InkshadeWoods:release/v3.8.50
Aug 20, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.50from
InkshadeWoods:release/v3.8.50

Conversation

@InkshadeWoods

Copy link
Copy Markdown
Contributor

Summary

  • Normalize reasoning_effort: "max" to xhigh for SenseNova's deepseek-v4-flash, whose upstream contract explicitly accepts up to xhigh but rejects max.
  • Preserve literal max passthrough for models without explicit per-model effort metadata and avoid cross-provider capability lookup for same-ID models.
  • Add a regression test for the SenseNova capability ceiling.

Related Issues

  • Closes #
  • Related to #

Validation

Choose the change type and focused loop from the
Contribution Golden Path. The full unit suite,
Vitest, the 60% coverage gate, and the production build all run in CI on this PR (#8329):

  • Change type: provider
  • Focused tests and category gates from the golden path
    • node --import tsx/esm --test tests/unit/base-reasoning-effort-split.test.ts tests/unit/sensenova-reasoning-effort.test.ts tests/unit/opencode-zen-reasoning-effort.test.ts
    • Result: 12 passed, 0 failed.
    • Manual live validation: input max was normalized to xhigh; sensenova/deepseek-v4-flash returned HTTP 200 with a non-empty reply.
  • npm run lint
    • The full local ESLint process hung without diagnostics and was stopped. Targeted ESLint for all changed files exited successfully with code 0.
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include a new or updated automated test in this PR
  • SonarQube is temporarily opt-in while the private project has no quota; it is not a PR gate.

Tests Added Or Updated

  • Added tests/unit/sensenova-reasoning-effort.test.ts.

Coverage Notes

  • tests/unit/sensenova-reasoning-effort.test.ts covers the explicit SenseNova max to xhigh normalization and verifies that a SenseNova model without explicit effort metadata continues to preserve max.
  • tests/unit/opencode-zen-reasoning-effort.test.ts confirms same-ID OpenCode models retain their existing max passthrough behavior.
  • tests/unit/base-reasoning-effort-split.test.ts confirms both supported import paths resolve to the same sanitizer.
  • No known coverage decrease in touched files.

Reviewer Notes

  • No migrations or feature flags.
  • The capability lookup intentionally stays scoped to the current provider because providers can expose the same model ID with different upstream reasoning-effort contracts.
  • The change only affects models that explicitly declare supported reasoning efforts and omit max; models with absent metadata keep the existing passthrough behavior.

@diegosouzapw
diegosouzapw merged commit 5100642 into diegosouzapw:release/v3.8.50 Aug 20, 2026
5 checks passed
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
Merged via merge-train (release/v3.8.50, batch1 2026-08-20) — static gates (typecheck/file-size/complexity/cognitive/changelog) green on the combined tree; test:unit reds observed in the boarded run were verified pre-existing on the pure release tip (unrelated flake), not caused by this PR. Thanks for the contribution!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants