mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 05:50:43 +00:00
fix(tui): arm streaming watchdog on every delta, not only visible ones (#69338)
When ingestDelta returns null (first empty/commentary delta or unchanged
content), the handler returned early, skipping setActivityStatus and
armStreamingWatchdog. If all subsequent deltas were also null (e.g.
due to phase filtering), the watchdog was never armed and the status bar
stayed stale as "idle" while a run was live.
Move setActivityStatus("streaming") and armStreamingWatchdog before
the null-displayText guard so they fire on every received delta event.
Fixes #34513, #40824
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
committed by
GitHub
parent
081da17090
commit
89b6d02481
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user