From 8dddf4d0cf84a1636069ddc0fa32b6989e2bb32c Mon Sep 17 00:00:00 2001 From: Gemini AI Date: Wed, 24 Dec 2025 23:24:22 +0400 Subject: [PATCH] Optimize message handling to prevent UI freezing --- .../src/components/chat/multi-task-chat.tsx | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/ui/src/components/chat/multi-task-chat.tsx b/packages/ui/src/components/chat/multi-task-chat.tsx index 8c15a74..49a1547 100644 --- a/packages/ui/src/components/chat/multi-task-chat.tsx +++ b/packages/ui/src/components/chat/multi-task-chat.tsx @@ -279,31 +279,31 @@ export default function MultiTaskChat(props: MultiTaskChatProps) { if (!message || isSending()) return; setIsSending(true); - log.info("handleSendMessage started", { - instanceId: props.instanceId, - sessionId: props.sessionId, - selectedTaskId: selectedTaskId(), - messageLength: message.length - }); + + // Yield to let UI update "Is Sending" state before heavy operations + await new Promise(resolve => setTimeout(resolve, 0)); + + // Reduced logging to prevent IPC overload + // log.info("handleSendMessage started", { ... }); try { let taskId = selectedTaskId(); let targetSessionId = props.sessionId; // If no task selected, create one automatically if (!taskId) { - log.info("No task selected, creating new task"); + // log.info("No task selected, creating new task"); const title = message.length > 30 ? message.substring(0, 27) + "..." : message; const result = await addTask(props.instanceId, props.sessionId, title); taskId = result.id; targetSessionId = result.taskSessionId || props.sessionId; - log.info("New task created", { taskId, targetSessionId }); + // log.info("New task created", { taskId, targetSessionId }); setSelectedTaskId(taskId); // If autonomous mode is on, we might want to queue it or set it as active const s = solo(); if (s.isAutonomous) { - log.info("Autonomous mode active, setting active task or queuing"); + // log.info("Autonomous mode active, setting active task or queuing"); if (!s.activeTaskId) { setActiveTaskId(props.instanceId, taskId); } else { @@ -315,14 +315,14 @@ export default function MultiTaskChat(props: MultiTaskChatProps) { targetSessionId = task?.taskSessionId || props.sessionId; } - log.info("Target session identified", { targetSessionId, taskId }); + // log.info("Target session identified", { targetSessionId, taskId }); const store = messageStore(); - log.info("Message store check before sending", { + /* log.info("Message store check before sending", { instanceId: props.instanceId, storeExists: !!store, messageCount: store?.getSessionMessageIds(targetSessionId).length - }); + }); */ await sendMessage( props.instanceId, @@ -332,18 +332,18 @@ export default function MultiTaskChat(props: MultiTaskChatProps) { taskId || undefined ); - log.info("sendMessage call completed"); + // log.info("sendMessage call completed"); setChatInput(""); setAttachments([]); // Auto-scroll to bottom after sending setTimeout(scrollToBottom, 100); } catch (error) { - log.error("handleSendMessage failed", error); + // log.error("handleSendMessage failed", error); console.error("[MultiTaskChat] Send failed:", error); } finally { setIsSending(false); - log.info("handleSendMessage finished"); + // log.info("handleSendMessage finished"); } };