diff --git a/src/tui/tui-event-handlers.ts b/src/tui/tui-event-handlers.ts index b503801d8dc..8ac9262bcc8 100644 --- a/src/tui/tui-event-handlers.ts +++ b/src/tui/tui-event-handlers.ts @@ -298,15 +298,18 @@ export function createEventHandlers(context: EventHandlerContext) { } } if (evt.state === "delta") { + // Arm watchdog and mark streaming on every delta, even when the visible + // text hasn't changed yet (e.g. first commentary-only or tool-call delta). + // Without this, the watchdog never fires and the status bar stays stale. + setActivityStatus("streaming"); + if (state.activeChatRunId === evt.runId) { + armStreamingWatchdog(evt.runId); + } const displayText = streamAssembler.ingestDelta(evt.runId, evt.message, state.showThinking); if (!displayText) { return; } chatLog.updateAssistant(displayText, evt.runId); - setActivityStatus("streaming"); - if (state.activeChatRunId === evt.runId) { - armStreamingWatchdog(evt.runId); - } } if (evt.state === "final") { const isLocalBtwRun = isLocalBtwRunId?.(evt.runId) ?? false;