diff --git a/packages/coding-agent/src/modes/interactive/controllers/command-controller.ts b/packages/coding-agent/src/modes/interactive/controllers/command-controller.ts index 74ccafdf0..1157073ee 100644 --- a/packages/coding-agent/src/modes/interactive/controllers/command-controller.ts +++ b/packages/coding-agent/src/modes/interactive/controllers/command-controller.ts @@ -376,6 +376,7 @@ export class CommandController { this.ctx.chatContainer.addChild( new Text(`${theme.fg("accent", `${theme.status.success} New session started`)}`, 1, 1), ); + await this.ctx.reloadTodos(); this.ctx.ui.requestRender(); } diff --git a/packages/coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts b/packages/coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts index b6fdb7245..65b4aea7e 100644 --- a/packages/coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts +++ b/packages/coding-agent/src/modes/interactive/controllers/extension-ui-controller.ts @@ -141,6 +141,7 @@ export class ExtensionUiController { this.ctx.chatContainer.addChild( new Text(`${theme.fg("accent", `${theme.status.success} New session started`)}`, 1, 1), ); + await this.ctx.reloadTodos(); this.ctx.ui.requestRender(); return { cancelled: false }; @@ -154,6 +155,7 @@ export class ExtensionUiController { // Update UI this.ctx.chatContainer.clear(); this.ctx.renderInitialMessages(); + await this.ctx.reloadTodos(); this.ctx.editor.setText(result.selectedText); this.ctx.showStatus("Branched to new session"); @@ -168,6 +170,7 @@ export class ExtensionUiController { // Update UI this.ctx.chatContainer.clear(); this.ctx.renderInitialMessages(); + await this.ctx.reloadTodos(); if (result.editorText) { this.ctx.editor.setText(result.editorText); } @@ -289,6 +292,7 @@ export class ExtensionUiController { this.ctx.chatContainer.addChild( new Text(`${theme.fg("accent", `${theme.status.success} New session started`)}`, 1, 1), ); + await this.ctx.reloadTodos(); this.ctx.ui.requestRender(); return { cancelled: false }; @@ -305,6 +309,7 @@ export class ExtensionUiController { // Update UI this.ctx.chatContainer.clear(); this.ctx.renderInitialMessages(); + await this.ctx.reloadTodos(); this.ctx.editor.setText(result.selectedText); this.ctx.showStatus("Branched to new session"); @@ -322,6 +327,7 @@ export class ExtensionUiController { // Update UI this.ctx.chatContainer.clear(); this.ctx.renderInitialMessages(); + await this.ctx.reloadTodos(); if (result.editorText) { this.ctx.editor.setText(result.editorText); } diff --git a/packages/coding-agent/src/modes/interactive/controllers/selector-controller.ts b/packages/coding-agent/src/modes/interactive/controllers/selector-controller.ts index a8e79c4e6..aeda119b2 100644 --- a/packages/coding-agent/src/modes/interactive/controllers/selector-controller.ts +++ b/packages/coding-agent/src/modes/interactive/controllers/selector-controller.ts @@ -428,6 +428,7 @@ export class SelectorController { // Update UI this.ctx.chatContainer.clear(); this.ctx.renderInitialMessages(); + await this.ctx.reloadTodos(); if (result.editorText) { this.ctx.editor.setText(result.editorText); } @@ -500,6 +501,7 @@ export class SelectorController { // Clear and re-render the chat this.ctx.chatContainer.clear(); this.ctx.renderInitialMessages(); + await this.ctx.reloadTodos(); this.ctx.showStatus("Resumed session"); } diff --git a/packages/coding-agent/src/modes/interactive/interactive-mode.ts b/packages/coding-agent/src/modes/interactive/interactive-mode.ts index 7542e509b..3a88e9d6f 100644 --- a/packages/coding-agent/src/modes/interactive/interactive-mode.ts +++ b/packages/coding-agent/src/modes/interactive/interactive-mode.ts @@ -757,6 +757,11 @@ export class InteractiveMode implements InteractiveModeContext { this.ui.requestRender(); } + async reloadTodos(): Promise { + await this.loadTodoList(); + this.ui.requestRender(); + } + openExternalEditor(): void { this.inputController.openExternalEditor(); } diff --git a/packages/coding-agent/src/modes/interactive/types.ts b/packages/coding-agent/src/modes/interactive/types.ts index 0aa87fff4..bef2c8536 100644 --- a/packages/coding-agent/src/modes/interactive/types.ts +++ b/packages/coding-agent/src/modes/interactive/types.ts @@ -124,6 +124,7 @@ export interface InteractiveModeContext { updateEditorBorderColor(): void; rebuildChatFromMessages(): void; setTodos(todos: TodoItem[]): void; + reloadTodos(): Promise; toggleTodoExpansion(): void; // Command handling