fix(session): strip reasoning blocks for Claude Code compatibility #7035
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.

Summary
Strip reasoning blocks from message history when converting to model format, enabling seamless switching between reasoning and non-reasoning models.
Problem
When using a reasoning model (e.g., Claude with extended thinking) and then switching to Claude Code, the session fails with an "Invalid signature" error. This happens because Claude Code's API doesn't recognize the reasoning blocks that were added by the previous model.
Solution
Filter out
reasoningtype parts from messages inconvertToModelMessages()before sending to the model API. This ensures compatibility regardless of which models were used earlier in the session.Changes
packages/opencode/src/session/message-v2.ts- Filter reasoning parts in message conversionTesting