fix: always drop orphaned OpenAI reasoning blocks in session history

downgradeOpenAIReasoningBlocks was only called on model change, but
orphaned reasoning items (e.g. from an aborted stream) can exist without
a model switch and cause a 400 from the OpenAI Responses API.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ty Sabs
2026-02-16 16:40:17 -06:00
committed by Peter Steinberger
parent e33017982c
commit 46bf210e04
2 changed files with 5 additions and 6 deletions

View File

@@ -457,10 +457,9 @@ export async function sanitizeSessionHistory(params: {
modelId: params.modelId,
})
: false;
const sanitizedOpenAI =
isOpenAIResponsesApi && modelChanged
? downgradeOpenAIReasoningBlocks(sanitizedToolResults)
: sanitizedToolResults;
const sanitizedOpenAI = isOpenAIResponsesApi
? downgradeOpenAIReasoningBlocks(sanitizedToolResults)
: sanitizedToolResults;
if (hasSnapshot && (!priorSnapshot || modelChanged)) {
appendModelSnapshot(params.sessionManager, {