qwen-code/docs/users
易良 bd42e67137
fix(core): emit OpenRouter's reasoning disable when thinking is off (#9758)
* fix(core): emit OpenRouter's reasoning disable when thinking is off

The AUTO-mode permission classifier's stage-1 side query forces a
respond_in_schema tool call (tool_choice: 'required') with a 256-token
budget and includeThoughts: false. On OpenRouter endpoints the
thinking-disable rendered only into shapes the gateway ignores
(chat_template_kwargs.enable_thinking for qwen-family models), and the
pipeline's unconditional strip then removed the `reasoning` object —
OpenRouter's native thinking knob. Thinking stayed on, the model spent
the whole budget on reasoning, never emitted the tool call, and the
classifier fail-closed with "Classifier stage 1 unavailable" (#9757).

Mirror the isDeepSeekHostname precedent: hostname-gated detection
(openrouter.ai / *.openrouter.ai) and emit `reasoning: { enabled: false }`
in the reasoningDisabled branch after the strip — the provider
buildRequest hook runs before the strip, so emitting earlier would be
removed again. Applied endpoint-wide rather than qwen-family-gated:
`reasoning` is an OpenRouter provider-level parameter, unlike
`enable_thinking`, which is a qwen wire field that leaks upstream on
non-qwen routings. thinkingMandatory models stay exempt; DashScope
(both shapes), vLLM/SGLang, DeepSeek hostname, and the official OpenAI
endpoint are untouched.

Repro + regression coverage added in pipeline.test.ts (red before the
fix, green after).

* test(core): cover OpenRouter reasoning guard
2026-08-25 07:43:08 +00:00
..
configuration fix(core): emit OpenRouter's reasoning disable when thinking is off (#9758) 2026-08-25 07:43:08 +00:00
extension fix(core): support public GitHub extensions with older Git (#9690) 2026-08-23 13:03:15 +00:00
features feat(channels): add DingTalk Workspace channel (#9394) 2026-08-25 06:40:47 +00:00
ide-integration fix(cli): replace all emoji with Unicode text symbols in TUI rendering (#5999) 2026-06-30 15:18:01 +00:00
reference fix(cli): switch completion tabs with bare arrows (#8576) 2026-08-11 02:29:11 +00:00
support fix(cli): add ui.mouseTracking setting to restore right-click and URL clicks (#8198) 2026-08-01 14:15:42 +00:00
_meta.ts feat(daemon): merge daemon-mode feature batch into main (#4490) 2026-06-12 00:34:49 +08:00
common-workflow.md docs: fix stale defaults, CLI syntax, and tool naming drift (#5158) 2026-06-15 20:06:34 +08:00
integration-github-action.md feat(web-shell): show subagent sessions in detail panel (#7380) 2026-07-22 02:31:08 +00:00
integration-jetbrains.md feat(cli): expose reasoning effort through ACP (#8526) 2026-08-11 10:32:33 +00:00
integration-vscode.md fix(core): honor NO_PROXY for model requests (#6640) 2026-07-10 10:41:04 +00:00
integration-zed.md docs(integration): use CDN URLs for images and fix formatting 2026-03-16 14:12:48 +08:00
overview.md feat(auth): add Kimi (Moonshot AI) as a built-in third-party provider (#9814) 2026-08-24 03:18:40 +00:00
quickstart.md feat(auth): add Kimi (Moonshot AI) as a built-in third-party provider (#9814) 2026-08-24 03:18:40 +00:00
qwen-serve-deploy-local.md feat: consolidate Local Control into one daemon-owned implementation (#9106) 2026-08-17 16:44:48 +00:00
qwen-serve.md fix(acp-bridge): Disable permission timeout by default (#9933) 2026-08-24 16:08:44 +00:00