File tree Expand file tree Collapse file tree 4 files changed +32
-2
lines changed
Expand file tree Collapse file tree 4 files changed +32
-2
lines changed Original file line number Diff line number Diff line change @@ -138,6 +138,10 @@ async def consume_all(self) -> AsyncGenerator[Event]:
138138 # python 3.12 and get a queue empty error on an open queue
139139 if self .queue .is_closed ():
140140 break
141+ except Exception as e :
142+ logger .error (f'Stopping event consumption due to exception: { e } ' )
143+ self ._exception = e
144+ continue
141145
142146 def agent_task_callback (self , agent_task : asyncio .Task [None ]) -> None :
143147 """Callback to handle exceptions from the agent's execution task.
Original file line number Diff line number Diff line change @@ -248,7 +248,9 @@ async def on_message_send(
248248 raise ServerError (
249249 InternalError (message = 'Task ID mismatch in agent response' )
250250 )
251-
251+ except Exception as e :
252+ logger .error (f'Agent execution failed. Error: { e } ' )
253+ raise
252254 finally :
253255 if interrupted :
254256 # TODO: Track this disconnected cleanup task.
Original file line number Diff line number Diff line change @@ -136,7 +136,10 @@ async def save_task_event(
136136 task .history = [task .status .message ]
137137 else :
138138 task .history .append (task .status .message )
139-
139+ if event .metadata :
140+ if not task .metadata :
141+ task .metadata = {}
142+ task .metadata .update (event .metadata )
140143 task .status = event .status
141144 else :
142145 logger .debug ('Appending artifact to task %s' , task .id )
Original file line number Diff line number Diff line change @@ -127,6 +127,27 @@ async def test_save_task_event_artifact_update(
127127 updated_task .artifacts = [new_artifact ]
128128 mock_task_store .save .assert_called_once_with (updated_task )
129129
130+ @pytest .mark .asyncio
131+ async def test_save_task_event_metadata_update (
132+ task_manager : TaskManager , mock_task_store : AsyncMock
133+ ) -> None :
134+ """Test saving an updated metadata for an existing task."""
135+ initial_task = Task (** MINIMAL_TASK )
136+ mock_task_store .get .return_value = initial_task
137+ new_metadata = {"meta_key_test" : "meta_value_test" }
138+
139+ event = TaskStatusUpdateEvent (
140+ taskId = MINIMAL_TASK ['id' ],
141+ contextId = MINIMAL_TASK ['contextId' ],
142+ metadata = new_metadata ,
143+ status = TaskStatus (state = TaskState .working ),
144+ final = False ,
145+ )
146+ await task_manager .save_task_event (event )
147+
148+ updated_task = mock_task_store .save .call_args .args [0 ]
149+ assert updated_task .metadata == new_metadata
150+
130151
131152@pytest .mark .asyncio
132153async def test_ensure_task_existing (
You can’t perform that action at this time.
0 commit comments