Skip to content

Fix reasoning effort handling in Claude#312041

Merged
TylerLeonhardt merged 1 commit intomainfrom
tyler/due-peacock
Apr 23, 2026
Merged

Fix reasoning effort handling in Claude#312041
TylerLeonhardt merged 1 commit intomainfrom
tyler/due-peacock

Conversation

@TylerLeonhardt
Copy link
Copy Markdown
Member

The reasoning effort wasn't really getting passed down properly. This ensures that it does and if a model only has 1 reasoning value then we use that.

Fixes #311862

Co-authored-by: Copilot copilot@github.com

The reasoning effort wasn't really getting passed down properly. This ensures that it does and if a model only has 1 reasoning value then we use that.

Co-authored-by: Copilot <copilot@github.com>
Copilot AI review requested due to automatic review settings April 22, 2026 23:56
@TylerLeonhardt TylerLeonhardt enabled auto-merge (squash) April 22, 2026 23:56
@TylerLeonhardt TylerLeonhardt self-assigned this Apr 22, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes Claude “reasoning effort” propagation for Claude SDK mode by resolving the requested effort against the selected endpoint’s supported effort levels, including a fallback behavior when the endpoint only supports a single effort level.

Changes:

  • Add resolveReasoningEffort to ClaudeCodeModels and use it when committing session state from the VS Code chat session provider.
  • Pass resolved effort into the Claude agent SDK Options and restart sessions when the effort level changes.
  • Update model picker configuration schema/tests to include reasoning effort even when only one level is supported, and add unit tests for the new resolution logic.
Show a summary per file
File Description
extensions/copilot/src/extension/chatSessions/vscode-node/claudeChatSessionContentProvider.ts Resolve and persist reasoning effort per request using IClaudeCodeModels.
extensions/copilot/src/extension/chatSessions/claude/node/claudeCodeModels.ts Introduce resolveReasoningEffort, accept parsed model IDs in resolveEndpoint, export isEffortLevel, and adjust configuration schema behavior.
extensions/copilot/src/extension/chatSessions/claude/node/claudeLanguageModelServer.ts Gate reasoningEffort sent to the proxy request based on endpoint support.
extensions/copilot/src/extension/chatSessions/claude/node/claudeCodeAgent.ts Track and pass SDK effort option; restart session when effort changes.
extensions/copilot/src/extension/chatSessions/claude/common/claudeSessionStateService.ts Type session reasoningEffort as SDK EffortLevel.
extensions/copilot/src/extension/chatSessions/claude/node/claudeSessionStateService.ts Update implementation to use EffortLevel for reasoning effort storage.
extensions/copilot/src/extension/chatSessions/claude/node/test/claudeCodeModels.spec.ts Add/adjust tests for single-effort schema behavior, endpoint resolution, and resolveReasoningEffort/isEffortLevel.
extensions/copilot/src/extension/chatSessions/claude/node/test/claudeCodeAgent.spec.ts Add tests asserting SDK options include effort and that sessions restart when effort changes.

Copilot's findings

  • Files reviewed: 8/8 changed files
  • Comments generated: 2

@github-actions
Copy link
Copy Markdown
Contributor

Screenshot Changes

Base: 01ae82da Current: 76837007

Changed (27)

chat/aiCustomizations/aiCustomizationManagementEditor/McpBrowseMode/Light
Before After
before after
agentSessionsViewer/CompletedRead/Dark
Before After
before after
agentSessionsViewer/CompletedRead/Light
Before After
before after
agentSessionsViewer/CompletedUnread/Dark
Before After
before after
agentSessionsViewer/CompletedUnread/Light
Before After
before after
agentSessionsViewer/FailedWithDuration/Dark
Before After
before after
agentSessionsViewer/FailedWithDuration/Light
Before After
before after
agentSessionsViewer/FailedWithoutDuration/Dark
Before After
before after
agentSessionsViewer/FailedWithoutDuration/Light
Before After
before after
agentSessionsViewer/WithDiffChanges/Dark
Before After
before after
agentSessionsViewer/WithDiffChanges/Light
Before After
before after
agentSessionsViewer/WithFileChangesList/Dark
Before After
before after
agentSessionsViewer/WithFileChangesList/Light
Before After
before after
agentSessionsViewer/WithBadge/Dark
Before After
before after
agentSessionsViewer/WithBadge/Light
Before After
before after
agentSessionsViewer/WithMarkdownBadge/Dark
Before After
before after
agentSessionsViewer/WithMarkdownBadge/Light
Before After
before after
agentSessionsViewer/WithDescription/Dark
Before After
before after
agentSessionsViewer/WithDescription/Light
Before After
before after
agentSessionsViewer/WithBadgeAndDiff/Dark
Before After
before after
agentSessionsViewer/WithBadgeAndDiff/Light
Before After
before after
agentSessionsViewer/CloudProvider/Dark
Before After
before after
agentSessionsViewer/CloudProvider/Light
Before After
before after
agentSessionsViewer/BackgroundProvider/Dark
Before After
before after
agentSessionsViewer/BackgroundProvider/Light
Before After
before after
agentSessionsViewer/ClaudeProvider/Dark
Before After
before after
agentSessionsViewer/ClaudeProvider/Light
Before After
before after

@TylerLeonhardt TylerLeonhardt merged commit 1bad831 into main Apr 23, 2026
30 checks passed
@TylerLeonhardt TylerLeonhardt deleted the tyler/due-peacock branch April 23, 2026 00:18
@vs-code-engineering vs-code-engineering Bot added this to the 1.118.0 milestone Apr 23, 2026
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.

Claude Opus 4.7 not working in claude SDK mode

3 participants