mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-10-06 02:47:56 +00:00
fix: prevent message disappearing when task ends during queueing
- Add null check in queueMessage handler to catch edge case where task ends between send click and message processing - Send queueMessageFailed message to webview to restore user input - Handle queueMessageFailed in ChatView to restore text and images - Prevents user frustration from losing typed messages
This commit is contained in:
parent
78dc34498b
commit
0480868746
3 changed files with 20 additions and 1 deletions
|
|
@ -3036,7 +3036,18 @@ export const webviewMessageHandler = async (
|
|||
*/
|
||||
|
||||
case "queueMessage": {
|
||||
provider.getCurrentTask()?.messageQueueService.addMessage(message.text ?? "", message.images)
|
||||
const currentTask = provider.getCurrentTask()
|
||||
if (!currentTask) {
|
||||
// Task ended between when the user clicked send and when the message was processed
|
||||
provider.log("Cannot queue message: No active task")
|
||||
await provider.postMessageToWebview({
|
||||
type: "queueMessageFailed",
|
||||
text: message.text,
|
||||
images: message.images,
|
||||
})
|
||||
break
|
||||
}
|
||||
currentTask.messageQueueService.addMessage(message.text ?? "", message.images)
|
||||
break
|
||||
}
|
||||
case "removeQueuedMessage": {
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ export interface ExtensionMessage {
|
|||
| "browserSessionUpdate"
|
||||
| "browserSessionNavigate"
|
||||
| "claudeCodeRateLimits"
|
||||
| "queueMessageFailed"
|
||||
text?: string
|
||||
payload?: any // Add a generic payload for now, can refine later
|
||||
// Checkpoint warning message
|
||||
|
|
|
|||
|
|
@ -820,6 +820,13 @@ const ChatViewComponent: React.ForwardRefRenderFunction<ChatViewRef, ChatViewPro
|
|||
)
|
||||
}
|
||||
break
|
||||
case "queueMessageFailed":
|
||||
// Restore the message that failed to queue
|
||||
if (message.text || (message.images && message.images.length > 0)) {
|
||||
setInputValue(message.text || "")
|
||||
setSelectedImages(message.images || [])
|
||||
}
|
||||
break
|
||||
case "invoke":
|
||||
switch (message.invoke!) {
|
||||
case "newChat":
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue