diff --git a/packages/coding-agent/test/interactive-mode-todo-clear.test.ts b/packages/coding-agent/test/interactive-mode-todo-clear.test.ts index bedac0bad..1fa6c0abf 100644 --- a/packages/coding-agent/test/interactive-mode-todo-clear.test.ts +++ b/packages/coding-agent/test/interactive-mode-todo-clear.test.ts @@ -134,6 +134,9 @@ describe("InteractiveMode todo HUD persistence", () => { mode.setTodos(session.getTodoPhases()); await mode.init(); + // Subagent lifecycle changes coalesce behind a 100ms observer UI sync + // timer before todo reconciliation runs; flush it deterministically. + vi.useFakeTimers(); eventBus.emit(TASK_SUBAGENT_LIFECYCLE_CHANNEL, { id: "ReviewFixer", index: 0, @@ -142,6 +145,7 @@ describe("InteractiveMode todo HUD persistence", () => { status: "completed", detached: true, }); + vi.advanceTimersByTime(100); expect(session.getTodoPhases()[0]?.tasks[0]?.status).toBe("completed"); });