File tree Expand file tree Collapse file tree 4 files changed +29
-33
lines changed
Expand file tree Collapse file tree 4 files changed +29
-33
lines changed Original file line number Diff line number Diff line change @@ -559,23 +559,19 @@ export default function ChatPage() {
559559 setDisplayedMessages ( ( prev ) =>
560560 prev . map ( ( msg ) => {
561561 if ( msg . id === assistantMessageId ) {
562- // --- CHANGED --- Handle the final 'done' event with parsed data
562+ // Only update the message when the stream is done
563563 if ( parsed . done ) {
564564 return {
565565 ...msg ,
566- content :
567- parsed . final_content ||
568- msg . content , // Replace content with clean version
569- turn_steps :
570- parsed . turn_steps ||
571- msg . turn_steps // Populate turn_steps
566+ content : parsed . final_content || "" , // Replace content with clean final version
567+ turn_steps : parsed . turn_steps || [ ] , // Populate turn_steps
568+ tools : parsed . tools || [ ] // Update tools on final event
572569 }
573570 }
574- // For intermediate chunks, just append the token
571+ // For intermediate chunks, we don't update the content to prevent streaming.
572+ // We can still update tools if they arrive early.
575573 return {
576574 ...msg ,
577- content :
578- msg . content + ( parsed . token || "" ) ,
579575 tools : parsed . tools || msg . tools
580576 }
581577 }
Original file line number Diff line number Diff line change @@ -71,7 +71,7 @@ const SubTaskItem = ({ task, onSelectTask }) => {
7171 } }
7272 className = "flex items-center justify-between p-2 md:mx-2 rounded-md hover:bg-neutral-800 cursor-pointer transition-colors group"
7373 >
74- < div className = "flex flex-1 items-center gap-2 min-w-0" >
74+ < div className = "flex flex-1 items-center gap-2 min-w-0 overflow-hidden " >
7575 < IconSubtask
7676 size = { 14 }
7777 className = "text-neutral-500 group-hover:text-neutral-300 flex-shrink-0"
@@ -201,26 +201,26 @@ const TaskCardList = ({ task, onSelectTask }) => {
201201 </ button >
202202 ) }
203203 </ div >
204+ < AnimatePresence >
205+ { isExpanded && hasSubTasks && (
206+ < motion . div
207+ initial = { { opacity : 0 , height : 0 } }
208+ animate = { { opacity : 1 , height : "auto" } }
209+ exit = { { opacity : 0 , height : 0 } }
210+ transition = { { duration : 0.2 } }
211+ className = "pb-2"
212+ >
213+ { subTasks . map ( ( subTask ) => (
214+ < SubTaskItem
215+ key = { subTask . task_id }
216+ task = { subTask }
217+ onSelectTask = { onSelectTask }
218+ />
219+ ) ) }
220+ </ motion . div >
221+ ) }
222+ </ AnimatePresence >
204223 </ div >
205- < AnimatePresence >
206- { isExpanded && hasSubTasks && (
207- < motion . div
208- initial = { { opacity : 0 , height : 0 } }
209- animate = { { opacity : 1 , height : "auto" } }
210- exit = { { opacity : 0 , height : 0 } }
211- transition = { { duration : 0.2 } }
212- className = "pb-2"
213- >
214- { subTasks . map ( ( subTask ) => (
215- < SubTaskItem
216- key = { subTask . task_id }
217- task = { subTask }
218- onSelectTask = { onSelectTask }
219- />
220- ) ) }
221- </ motion . div >
222- ) }
223- </ AnimatePresence >
224224 </ motion . div >
225225 )
226226}
Original file line number Diff line number Diff line change 66from json_extractor import JsonExtractor
77from datetime import datetime
88from zoneinfo import ZoneInfo , ZoneInfoNotFoundError
9-
9+ from main . llm import run_agent as run_main_agent
1010from . import auth , prompts
1111from main .dependencies import mongo_manager # This is the main server's mongo manager
12- from main .llm import run_agent , LLMProviderDownError
12+ from main .llm import LLMProviderDownError
1313from workers .long_form_tasks import start_long_form_task
1414from workers .tasks import generate_plan_from_context
1515from workers .utils .text_utils import clean_llm_output
Original file line number Diff line number Diff line change @@ -325,7 +325,7 @@ async def async_refine_and_plan_ai_task(task_id: str, user_id: str):
325325 original_schedule = task .get ("schedule" )
326326
327327 user_id = task ["user_id" ]
328- user_profile = await db_manager .user_profiles_collection . find_one ({ " user_id" : user_id } )
328+ user_profile = await db_manager .get_user_profile ( user_id )
329329 personal_info = user_profile .get ("userData" , {}).get ("personalInfo" , {}) if user_profile else {}
330330 user_name = personal_info .get ("name" , "User" )
331331 user_timezone_str = personal_info .get ("timezone" , "UTC" )
You can’t perform that action at this time.
0 commit comments