From 1c78d614cb0d94dae53f1b7f3a2186cd6afdd63c Mon Sep 17 00:00:00 2001 From: WeiCHEN Date: Tue, 22 Sep 2026 23:02:13 +0800 Subject: [PATCH] fix(web): ignore retained task run id when unlocking chat composer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Orphan streaming_status plus a leftover activeTaskRunId kept InputArea on 停止 after squad terminal. Gate taskRunLive on isThinking only and clear runId on abortSession so stop/send can proceed for UI-05+. --- web/src/App.tsx | 11 ++++------- web/src/hooks/useTaskRunStream.ts | 1 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/web/src/App.tsx b/web/src/App.tsx index bc69aec5..469836a4 100644 --- a/web/src/App.tsx +++ b/web/src/App.tsx @@ -1160,14 +1160,11 @@ export default function App() { () => resolveChatComposerStreaming(currentSessionMessages, { turnLive: turnRuntime.isThinking, - taskRunLive: taskRunStream.isThinking || Boolean(taskRunStream.activeTaskRunId), + // Retained activeTaskRunId alone must not lock send after the run is + // terminal; orphan streaming_status + leftover run id was blocking UI-05+. + taskRunLive: taskRunStream.isThinking, }), - [ - currentSessionMessages, - turnRuntime.isThinking, - taskRunStream.isThinking, - taskRunStream.activeTaskRunId, - ], + [currentSessionMessages, turnRuntime.isThinking, taskRunStream.isThinking], ); // 处理交互卡片动作流转 (驳回门禁确认、撤回、取消与终审联动) diff --git a/web/src/hooks/useTaskRunStream.ts b/web/src/hooks/useTaskRunStream.ts index ba678491..0fba8bff 100644 --- a/web/src/hooks/useTaskRunStream.ts +++ b/web/src/hooks/useTaskRunStream.ts @@ -84,6 +84,7 @@ export function useTaskRunStream(activeSessionId: string) { rt.controller?.abort(); rt.controller = null; rt.thinking = false; + rt.runId = null; notify(); }, [getRuntime, notify],