Skip to content
This repository was archived by the owner on May 15, 2026. It is now read-only.

Commit 24baf36

Browse files
committed
Some IPC fixes
1 parent ede1d29 commit 24baf36

4 files changed

Lines changed: 19 additions & 1 deletion

File tree

packages/types/src/events.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { z } from "zod"
22

3-
import { clineMessageSchema, tokenUsageSchema } from "./message.js"
3+
import { clineMessageSchema, queuedMessageSchema, tokenUsageSchema } from "./message.js"
44
import { toolNamesSchema, toolUsageSchema } from "./tool.js"
55

66
/**
@@ -35,6 +35,7 @@ export enum RooCodeEventName {
3535
TaskModeSwitched = "taskModeSwitched",
3636
TaskAskResponded = "taskAskResponded",
3737
TaskUserMessage = "taskUserMessage",
38+
QueuedMessagesUpdated = "queuedMessagesUpdated",
3839

3940
// Task Analytics
4041
TaskTokenUsageUpdated = "taskTokenUsageUpdated",
@@ -100,6 +101,7 @@ export const rooCodeEventsSchema = z.object({
100101
[RooCodeEventName.TaskModeSwitched]: z.tuple([z.string(), z.string()]),
101102
[RooCodeEventName.TaskAskResponded]: z.tuple([z.string()]),
102103
[RooCodeEventName.TaskUserMessage]: z.tuple([z.string()]),
104+
[RooCodeEventName.QueuedMessagesUpdated]: z.tuple([z.string(), z.array(queuedMessageSchema)]),
103105

104106
[RooCodeEventName.TaskToolFailed]: z.tuple([z.string(), toolNamesSchema, z.string()]),
105107
[RooCodeEventName.TaskTokenUsageUpdated]: z.tuple([z.string(), tokenUsageSchema, toolUsageSchema]),
@@ -217,6 +219,11 @@ export const taskEventSchema = z.discriminatedUnion("eventName", [
217219
payload: rooCodeEventsSchema.shape[RooCodeEventName.TaskAskResponded],
218220
taskId: z.number().optional(),
219221
}),
222+
z.object({
223+
eventName: z.literal(RooCodeEventName.QueuedMessagesUpdated),
224+
payload: rooCodeEventsSchema.shape[RooCodeEventName.QueuedMessagesUpdated],
225+
taskId: z.number().optional(),
226+
}),
220227

221228
// Task Analytics
222229
z.object({

packages/types/src/task.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ export type TaskEvents = {
154154
[RooCodeEventName.TaskModeSwitched]: [taskId: string, mode: string]
155155
[RooCodeEventName.TaskAskResponded]: []
156156
[RooCodeEventName.TaskUserMessage]: [taskId: string]
157+
[RooCodeEventName.QueuedMessagesUpdated]: [taskId: string, messages: QueuedMessage[]]
157158

158159
// Task Analytics
159160
[RooCodeEventName.TaskToolFailed]: [taskId: string, tool: ToolName, error: string]

src/core/task/Task.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,7 @@ export class Task extends EventEmitter<TaskEvents> implements TaskLike {
675675

676676
this.messageQueueStateChangedHandler = () => {
677677
this.emit(RooCodeEventName.TaskUserMessage, this.taskId)
678+
this.emit(RooCodeEventName.QueuedMessagesUpdated, this.taskId, this.messageQueueService.messages)
678679
this.providerRef.deref()?.postStateToWebviewWithoutTaskHistory()
679680
}
680681

src/extension/api.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@ export class API extends EventEmitter<RooCodeEvents> implements RooCodeAPI {
187187
if (provider) {
188188
await provider.cancelTask()
189189
this.taskMap.delete(taskId)
190+
} else {
191+
// Fallback: taskMap entry may have been removed on TaskCompleted
192+
// but the task is still the current task on the provider's stack
193+
// (e.g. after SendMessage resumed a completed task).
194+
await this.sidebarProvider.cancelTask()
190195
}
191196
}
192197

@@ -301,6 +306,10 @@ export class API extends EventEmitter<RooCodeEvents> implements RooCodeAPI {
301306
this.emit(RooCodeEventName.TaskAskResponded, task.taskId)
302307
})
303308

309+
task.on(RooCodeEventName.QueuedMessagesUpdated, (taskId, messages) => {
310+
this.emit(RooCodeEventName.QueuedMessagesUpdated, taskId, messages)
311+
})
312+
304313
// Task Analytics
305314

306315
task.on(RooCodeEventName.TaskToolFailed, (taskId, tool, error) => {

0 commit comments

Comments
 (0)