Skip to content

WI-1799: Honor OpenRouter reasoning settings on Chat Completions requests - #369

Closed
windshiftsite[bot] wants to merge 1 commit into
mainfrom
agent-runs/run-158
Closed

windshiftsite[bot] wants to merge 1 commit into
mainfrom
agent-runs/run-158

Conversation

@windshiftsite

@windshiftsite windshiftsite Bot commented Oct 22, 2026

Copy link
Copy Markdown
Contributor

Implemented WI-1799. Chat Completions now translates normalized reasoning effort and enabled=false/true into the provider-native reasoning object, while private controls remain excluded from generic passthrough. Validation now rejects unknown reasoning fields and protocol-incompatible summary/budget/enabled settings instead of silently dropping them; Responses and Anthropic paths reject enabled explicitly. Committed as 16be5d8. Runtime tests could not be executed because the Go toolchain is unavailable in the container; git diff --check passed.


Opened by the Windshift coding-agent harness.

Run id: 158
Base commit: ecff5a7
Branch: agent-runs/run-158

@github-actions

Copy link
Copy Markdown


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


windshift-agent seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

@stefan-ernst

Copy link
Copy Markdown
Contributor

Closing in favor of a re-scoped WI-1799.

The design direction changed after review. Instead of a closed, provider-specific reasoning schema with strict validation, Windshift will:

  • expose a normalized reasoning default (a connection setting), translated per protocol; and
  • let an operator-supplied, provider-native field (reasoning, reasoning_effort, thinking) override that default verbatim.

Consequently the strict reasoning validation introduced here (unknown-subfield rejection, protocol-incompatible rejection) and the provider-specific enabled field are no longer wanted, and reasoning will stop being a reserved key. The one reusable mechanism is that Chat Completions must set its field through WithJSONSet, because fantasy's Chat Completions path does not read openai.ProviderOptions.ReasoningEffort (only the Responses model does).

WI-1799 has been re-scoped accordingly. Wire-level tests remain a requirement and were missing here.

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.

1 participant