From 2d24b8151eac7a88bbdc7a0752c96981f521ff6b Mon Sep 17 00:00:00 2001 From: Wendong-Fan Date: Sat, 6 Sep 2025 07:55:02 +0800 Subject: [PATCH] fix: task shown 2 times in the frontend --- src/store/chatStore.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/store/chatStore.ts b/src/store/chatStore.ts index 52205d88c..52aec6a5a 100644 --- a/src/store/chatStore.ts +++ b/src/store/chatStore.ts @@ -604,7 +604,7 @@ const chatStore = create()( // The following logic is for when the task actually starts executing (running) if (taskAssigning && taskAssigning[assigneeAgentIndex]) { - // const exist = taskAssigning[assigneeAgentIndex].tasks.find(item => item.id === task_id); + const exist = taskAssigning[assigneeAgentIndex].tasks.find(item => item.id === task_id); let taskTemp = null if (task) { taskTemp = JSON.parse(JSON.stringify(task)) @@ -613,12 +613,21 @@ const chatStore = create()( taskTemp.toolkits = [] taskTemp.report = "" } - taskAssigning[assigneeAgentIndex].tasks.push(taskTemp ?? { id: task_id, content, status: "running", }); - // if (exist) { - // exist.status = "running"; - // } else { - // taskAssigning[assigneeAgentIndex].tasks.push(taskTemp ?? { id: task_id, content, status: "running", }); - // } + if (exist) { + // Update existing task instead of adding duplicate + const existingIndex = taskAssigning[assigneeAgentIndex].tasks.findIndex(item => item.id === task_id); + if (existingIndex !== -1) { + taskAssigning[assigneeAgentIndex].tasks[existingIndex] = { + ...exist, + status: "running", + failure_count: 0, + toolkits: [], + report: "" + }; + } + } else { + taskAssigning[assigneeAgentIndex].tasks.push(taskTemp ?? { id: task_id, content, status: "running", }); + } } if (taskRunningIndex === -1) { taskRunning!.push(