mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
fix: process queued messages immediately after any tool completion
- Add processQueuedMessages() call to pushToolResult in presentAssistantMessage.ts - Remove redundant processQueuedMessages() calls from individual tool files - Ensures queued messages are injected ASAP rather than waiting for approval-related actions Fixes #9315
This commit is contained in:
parent
3e0bd0ea55
commit
bbd8f78c86
5 changed files with 5 additions and 15 deletions
|
|
@ -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 (
|
||||
|
|
|
|||
|
|
@ -220,7 +220,6 @@ export class ApplyDiffTool extends BaseTool<"apply_diff"> {
|
|||
|
||||
if (!didApprove) {
|
||||
await task.diffViewProvider.revertChanges()
|
||||
task.processQueuedMessages()
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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") {
|
||||
|
|
@ -220,7 +219,6 @@ Original error: ${errorMessage}`
|
|||
"args (or legacy 'path' and 'diff' parameters)",
|
||||
)
|
||||
pushToolResult(errorMsg)
|
||||
cline.processQueuedMessages()
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -236,7 +234,6 @@ Original error: ${errorMessage}`
|
|||
: "args (must contain at least one valid file element)",
|
||||
),
|
||||
)
|
||||
cline.processQueuedMessages()
|
||||
return
|
||||
}
|
||||
|
||||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue