fix: preserve provider-defined reasoning levels - #38
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Provider reasoning choices were limited by client-side enums and fallback menus, so a service adding a new effort could fail discovery or require an Orchestral release. This change preserves any nonempty provider effort, including its casing, through discovery, selection, configuration, request serialization, and request identity.
/reasoning <value>or--reasoningfor service validation. For example, a declaredfuture-nextis sent unchanged asreasoning_effort: "future-next".noneremains an explicit effort, andon/offremain thinking controls. Theeffort:escape preserves literal provider efforts that collide with local controls:/reasoning effort:onsendsreasoning_effort: "on", without enabling the thinking switch.Validation completed locally:
cargo fmt --all -- --checkandcargo check --locked --workspace --all-targetspassed.future-nextand submitting/reasoning effort:on; it verifies the actual outgoing request, model/history retention, and existing session-resume behavior. It uses a local fixture service, not live model inference.webfeature: 5 passed; WASM compile check andscripts/build_web.shpassed. The first official build reached successful DX compilation but could not locate the shared target output; rerunning with the local ignored target mapping succeeded, without changing the script.git diff --checkpassed. Full workspace test/lint validation is delegated to CI; no paid-provider or GPU tests were run for this change.Native catalog choices are a connector-initialization snapshot, and a chosen model remains responsible for validating an effort from the catalog's combined choices. Preserving a native
ultrastring does not claim that an OpenAI HTTP effort namedultrareproduces Codex's native preset or multi-agent behavior. This PR does not change version numbers or documentation.