Repository navigation
Re-land #8392: feat(anthropic): add an opt-in thinking display policy per provider and model - #8406
Conversation
Native Opus 5.5 on api.anthropic.com always sent thinking.display "updates" unless the request asked for a summary, and every other adaptive model sent "summarized". A Chat Completions client on an updates display saw only heartbeats during a long think, and no operator setting could change it. Add provider-level `thinkingDisplay` and per-model `modelThinkingDisplay` with values auto, summarized, updates and omitted. Unset and auto keep the built-in selection byte for byte. A model entry wins over the provider value, updates degrades to auto on models this adapter never sent it to, omitted sends adaptive thinking with no display field, and an explicit request reasoning.summary of concise or detailed still forces summarized. progressUpdates keeps deriving from the final body display. The new keys validate at every write boundary, migrate through model-rename for model-keyed maps, participate in resolved model policy, survive unrelated provider overwrites, and are accepted by the management PATCH mask and `ocx config set`. Closes #8363 (cherry picked from commit b684b46)
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Caution Review failedThe pull request is closed.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3f9b35ddf4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| || (thinkingDisplayPolicy === "auto" && parsed.options.hideThinkingSummary); | ||
| body.thinking = hiddenThinkingDisplay | ||
| ? { type: "adaptive" } | ||
| : { type: "adaptive", display: "summarized" }; |
There was a problem hiding this comment.
Apply the display policy when adaptive effort is omitted
For default-on adaptive models such as claude-sonnet-5, configuring thinkingDisplay: "summarized" has no effect when neither the request nor modelDefaultReasoningEfforts specifies an effort. This assignment is inside the branch requiring a non-none string effectiveReasoning, so the adapter sends no thinking object despite the configured display policy. The upstream can still think by default, but the operator's requested summaries are not requested. Apply an explicit display policy independently of the effort-setting branch for default-on adaptive models, while preserving explicit thinking-disable behavior, and add coverage without a request or provider-default effort.
Useful? React with 👍 / 👎.
|
✅ Deterministic PR hygiene checks passed. |
Summary
Re-lands #8392 (original squash b684b46), which was reverted in #8402 together with the other PRs that were admin-merged on 2026-11-09. Cherry-picked unchanged onto current
dev(git cherry-pick -x).Verification
--adminon that evidence. Pushed with--no-verify. NOT RUN: CI on this re-land head.Checklist