Skip to content

Commit f472a82

Browse files
daniel-lxscteroomotehannesrudolph
authored
fix: validate and fix tool_result IDs before API requests (#9952)
Co-authored-by: cte <[email protected]> Co-authored-by: Roo Code <[email protected]> Co-authored-by: Hannes Rudolph <[email protected]>
1 parent 24eb6ae commit f472a82

File tree

3 files changed

+667
-2
lines changed

3 files changed

+667
-2
lines changed

src/core/task/Task.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ import { getMessagesSinceLastSummary, summarizeConversation, getEffectiveApiHist
129129
import { MessageQueueService } from "../message-queue/MessageQueueService"
130130
import { AutoApprovalHandler, checkAutoApproval } from "../auto-approval"
131131
import { MessageManager } from "../message-manager"
132+
import { validateAndFixToolResultIds } from "./validateToolResultIds"
132133

133134
const MAX_EXPONENTIAL_BACKOFF_SECONDS = 600 // 10 minutes
134135
const DEFAULT_USAGE_COLLECTION_TIMEOUT_MS = 5000 // 5 seconds
@@ -811,7 +812,9 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
811812

812813
this.apiConversationHistory.push(messageWithTs)
813814
} else {
814-
const messageWithTs = { ...message, ts: Date.now() }
815+
// For user messages, validate and fix tool_result IDs against the previous assistant message
816+
const validatedMessage = validateAndFixToolResultIds(message, this.apiConversationHistory)
817+
const messageWithTs = { ...validatedMessage, ts: Date.now() }
815818
this.apiConversationHistory.push(messageWithTs)
816819
}
817820

@@ -850,7 +853,9 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
850853
content: this.userMessageContent,
851854
}
852855

853-
const userMessageWithTs = { ...userMessage, ts: Date.now() }
856+
// Validate and fix tool_result IDs against the previous assistant message
857+
const validatedMessage = validateAndFixToolResultIds(userMessage, this.apiConversationHistory)
858+
const userMessageWithTs = { ...validatedMessage, ts: Date.now() }
854859
this.apiConversationHistory.push(userMessageWithTs as ApiMessage)
855860

856861
await this.saveApiConversationHistory()

0 commit comments

Comments
 (0)