fix: Task Box Count Inconsistent Before and After Task Start (#460)

This commit is contained in:
Wendong-Fan 2025-10-06 15:03:17 +08:00 committed by GitHub
commit 331ab40a36
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 9 deletions

View file

@ -179,14 +179,17 @@ export function TaskCard({
<div className="flex items-center gap-2 ">
{taskType === 1 && (
<TaskState
all={taskInfo.length || 0}
all={taskInfo.filter((task) => task.content !== "").length || 0}
done={
taskInfo.filter((task) => task.status === "completed")
.length || 0
taskInfo.filter(
(task) =>
task.content !== "" && task.status === "completed"
).length || 0
}
progress={
taskInfo.filter(
(task) =>
task.content !== "" &&
task.status !== "completed" &&
task.status !== "failed" &&
task.status !== "skipped" &&
@ -197,14 +200,16 @@ export function TaskCard({
skipped={
taskInfo.filter(
(task) =>
task.status === "skipped" ||
task.status === "waiting" ||
task.status === ""
task.content !== "" &&
(task.status === "skipped" ||
task.status === "waiting" ||
task.status === "")
).length || 0
}
failed={
taskInfo.filter((task) => task.status === "failed")
.length || 0
taskInfo.filter(
(task) => task.content !== "" && task.status === "failed"
).length || 0
}
forceVisible={true}
clickable={clickable}

View file

@ -1311,13 +1311,16 @@ const chatStore = create<ChatStore>()(
}))
},
handleConfirmTask: async (taskId: string, type?: string) => {
const { tasks, setMessages, setActiveWorkSpace, setStatus, setTaskTime, setTaskInfo } = get();
const { tasks, setMessages, setActiveWorkSpace, setStatus, setTaskTime, setTaskInfo, setTaskRunning } = get();
if (!taskId) return;
// record task start time
setTaskTime(taskId, Date.now());
const taskInfo = tasks[taskId].taskInfo.filter((task) => task.content !== '')
setTaskInfo(taskId, taskInfo)
// Also update taskRunning with the filtered tasks to keep counts consistent
const taskRunning = tasks[taskId].taskRunning.filter((task) => task.content !== '')
setTaskRunning(taskId, taskRunning)
if (!type) {
await fetchPut(`/task/${taskId}`, {
task: taskInfo,