You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: gate reasoning fields on model.reasoning inside apply_reasoning_control
Consolidates the model.reasoning check that each provider re-implemented
inconsistently into apply_reasoning_control itself:
- Anthropic no longer sends thinking:enabled to non-reasoning models (the
deleted clamp_thinking_level used to guarantee this; nothing replaced it).
- Hybrid/off-mode payloads (e.g. Qwen's enable_thinking:false) now apply
regardless of model.reasoning, restoring the pre-refactor behavior.
- Chat Completions no longer injects a default temperature for reasoning
models (o-series/gpt-5 reject non-default temperature), matching the
guard already present in the Responses provider.
- Anthropic's built-in profile now has budgets for effort="minimal"/"max"
so requesting them doesn't produce thinking:enabled with no budget_tokens.
- OpenAI's effort="max" now maps to the real "xhigh" tier instead of the
invalid literal "max".
- get_capability_profile() drops unreachable fallback branches and the
magic "anthropic.messages.legacy_budget" string in favor of a small
alias table and a direct ("anthropic", "messages") call.
- The postgres schema-mismatch hint now names the actual upgrade_vN_to_vM_op
helper(s) needed instead of hardcoding the v3->v4 helper.
- Docs updated for the ReasoningControl/ReasoningCapability rename.
0 commit comments