Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/core/assistant-message/presentAssistantMessage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,11 @@ export async function presentAssistantMessage(cline: Task) {
// uses since we should only ever present one tool result per
// message.
cline.didAlreadyUseTool = true

// Process any queued messages immediately after tool completion
// This ensures queued messages are injected ASAP rather than waiting
// for approval-related actions
cline.processQueuedMessages()
}

const askApproval = async (
Expand Down
5 changes: 0 additions & 5 deletions src/core/tools/ApplyDiffTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,6 @@ export class ApplyDiffTool extends BaseTool<"apply_diff"> {

if (!didApprove) {
await task.diffViewProvider.revertChanges()
task.processQueuedMessages()
return
}

Expand Down Expand Up @@ -259,14 +258,10 @@ export class ApplyDiffTool extends BaseTool<"apply_diff"> {

await task.diffViewProvider.reset()

// Process any queued messages after file edit completes
task.processQueuedMessages()

return
} catch (error) {
await handleError("applying diff", error as Error)
await task.diffViewProvider.reset()
task.processQueuedMessages()
return
}
}
Expand Down
3 changes: 0 additions & 3 deletions src/core/tools/InsertContentTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,6 @@ export class InsertContentTool extends BaseTool<"insert_content"> {
pushToolResult(message)

await task.diffViewProvider.reset()

// Process any queued messages after file edit completes
task.processQueuedMessages()
} catch (error) {
await handleError("insert content", error as Error)
await task.diffViewProvider.reset()
Expand Down
5 changes: 0 additions & 5 deletions src/core/tools/MultiApplyDiffTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,6 @@ Original error: ${errorMessage}`
TelemetryService.instance.captureDiffApplicationError(cline.taskId, cline.consecutiveMistakeCount)
await cline.say("diff_error", `Failed to parse apply_diff XML: ${errorMessage}`)
pushToolResult(detailedError)
cline.processQueuedMessages()
return
}
} else if (legacyPath && typeof legacyDiffContent === "string") {
Expand All @@ -220,7 +219,6 @@ Original error: ${errorMessage}`
"args (or legacy 'path' and 'diff' parameters)",
)
pushToolResult(errorMsg)
cline.processQueuedMessages()
return
}

Expand All @@ -236,7 +234,6 @@ Original error: ${errorMessage}`
: "args (must contain at least one valid file element)",
),
)
cline.processQueuedMessages()
return
}

Expand Down Expand Up @@ -746,12 +743,10 @@ ${errorDetails ? `\nTechnical details:\n${errorDetails}\n` : ""}

// Push the final result combining all operation results
pushToolResult(results.join("\n\n") + singleBlockNotice)
cline.processQueuedMessages()
return
} catch (error) {
await handleError("applying diff", error)
await cline.diffViewProvider.reset()
cline.processQueuedMessages()
return
}
}
2 changes: 0 additions & 2 deletions src/core/tools/WriteToFileTool.ts
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,6 @@ export class WriteToFileTool extends BaseTool<"write_to_file"> {

await task.diffViewProvider.reset()

task.processQueuedMessages()

return
} catch (error) {
await handleError("writing file", error as Error)
Expand Down
Loading