Skip to content

Commit 788e3e8

Browse files
authored
enhance: Stream mode task spliting PR767 (#791)
2 parents 9e40e97 + 6cb6817 commit 788e3e8

4 files changed

Lines changed: 8 additions & 7 deletions

File tree

backend/app/service/chat_service.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import json
44
from pathlib import Path
55
import platform
6-
from typing import Literal
6+
from typing import Any, Literal
77
from fastapi import Request
88
from inflection import titleize
99
from pydash import chain
@@ -464,7 +464,7 @@ def on_stream_text(chunk):
464464
logger.warning(f"Failed to stream decomposition text: {e}")
465465

466466
async def run_decomposition():
467-
nonlocal camel_task
467+
nonlocal camel_task, summary_task_content
468468
try:
469469
sub_tasks = await asyncio.to_thread(
470470
workforce.eigent_make_sub_tasks,

backend/app/service/task.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ class ActionSkipTaskData(BaseModel):
241241
| ActionRemoveTaskData
242242
| ActionSkipTaskData
243243
| ActionDecomposeTextData
244+
| ActionDecomposeProgressData
244245
)
245246

246247

backend/app/utils/agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ def agent_model(
547547
if k not in ["model_platform", "model_type", "api_key", "url"]
548548
}
549549
)
550-
if agent_name in (Agents.task_agent):
550+
if agent_name == Agents.task_agent:
551551
model_config["stream"] = True
552552

553553
return ListenChatAgent(

src/components/ChatBox/ProjectSection.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,16 +66,16 @@ export const ProjectSection = React.forwardRef<HTMLDivElement, ProjectSectionPro
6666
const messages = task.messages || [];
6767

6868
// Create a stable key based on messages content to prevent excessive re-renders
69+
const lastMessage = messages[messages.length - 1];
6970
const messagesKey = React.useMemo(() => {
7071
// Only re-compute when message count or last message changes
71-
const lastMsg = messages[messages.length - 1];
72-
return `${messages.length}-${lastMsg?.id || ''}-${lastMsg?.content?.length || 0}`;
73-
}, [messages.length, messages[messages.length - 1]?.id, messages[messages.length - 1]?.content?.length]);
72+
return `${messages.length}-${lastMessage?.id || ''}-${lastMessage?.content?.length || 0}`;
73+
}, [messages.length, lastMessage?.id, lastMessage?.content?.length]);
7474

7575
// Memoize grouping to prevent re-creating objects on every render
7676
const queryGroups = React.useMemo(() => {
7777
return groupMessagesByQuery(messages);
78-
}, [messagesKey, messages]);
78+
}, [messagesKey]);
7979

8080
return (
8181
<motion.div

0 commit comments

Comments
 (0)