diff --git a/openhands/events/stream.py b/openhands/events/stream.py index 8a6cdfb35ae2..ca1025d0f163 100644 --- a/openhands/events/stream.py +++ b/openhands/events/stream.py @@ -384,7 +384,7 @@ def get_matching_events( start_id: int = 0, limit: int = 100, reverse: bool = False, - ) -> list: + ) -> list[type[Event]]: """Get matching events from the event stream based on filters. Args: @@ -414,7 +414,7 @@ def get_matching_events( ): continue - matching_events.append(event_to_dict(event)) + matching_events.append(event) # Stop if we have enough events if len(matching_events) >= limit: diff --git a/openhands/server/routes/conversation.py b/openhands/server/routes/conversation.py index c0cef6c4ae01..b91c8070b56f 100644 --- a/openhands/server/routes/conversation.py +++ b/openhands/server/routes/conversation.py @@ -3,7 +3,7 @@ from openhands.core.logger import openhands_logger as logger from openhands.events.event import Event -from openhands.events.serialization.event import event_from_dict +from openhands.events.serialization.event import event_from_dict, event_to_dict from openhands.runtime.base import Runtime app = APIRouter(prefix='/api/conversations/{conversation_id}') @@ -156,6 +156,8 @@ async def search_events( has_more = len(matching_events) > limit if has_more: matching_events = matching_events[:limit] # Remove the extra event + + matching_events = [event_to_dict(event) for event in matching_events] return { 'events': matching_events, 'has_more': has_more,