@@ -59,22 +59,24 @@ def render() -> None:
5959 is_stream_output = assistant_cfg .enable_streaming ,
6060 )
6161 agent_placeholder = history_container .agent_placeholder
62+ if chat_state .future_result :
63+ agent_placeholder .show_status ()
64+
6265 # TODO: feature - select mode for agent (auto, create, multipurpose)
6366 UserInputField .render (controller ) # if user input: save to chat state and rerun
6467
6568 # Handle input and response logic
66- run_every = 0.5 if chat_state .future_result else None
69+ run_every = 2 if chat_state .future_result else None
6770
6871 @st .fragment (run_every = run_every )
69- def handle_future_response (placeholder ):
72+ def handle_future_response ():
7073 state = ChatStateManager .get_or_create_state ()
7174 if not state .future_result :
7275 return
7376 if state .future_result .done ():
7477 try :
7578 response = state .future_result .result () # get result
7679 state .future_result = None
77- agent_placeholder .handle_response (response )
7880 ChatStateManager .update_state (response )
7981 except Exception as e :
8082 ChatStateManager .add_message (
@@ -83,10 +85,10 @@ def handle_future_response(placeholder):
8385 content = str (e ),
8486 thinking = None ,
8587 )
88+ chat_scroll ()
8689 finally : # prevent eternal loop
8790 st .rerun ()
8891 else :
89- placeholder .show_status ()
90- chat_scroll ()
92+ return
9193
92- handle_future_response (agent_placeholder )
94+ handle_future_response ()
0 commit comments