Add number of connections to Conversation Info (#8456)

Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
tofarr
2025-05-12 13:57:52 -06:00
committed by GitHub
parent 5a927c8651
commit f75fa50b80
4 changed files with 21 additions and 33 deletions

View File

@@ -267,13 +267,18 @@ async def search_conversations(
conversation.conversation_id for conversation in filtered_results
)
running_conversations = await conversation_manager.get_running_agent_loops(
user_id, set(conversation_ids)
user_id, conversation_ids
)
connection_ids_to_conversation_ids = await conversation_manager.get_connections(filter_to_sids=conversation_ids)
result = ConversationInfoResultSet(
results=await wait_all(
_get_conversation_info(
conversation=conversation,
is_running=conversation.conversation_id in running_conversations,
num_connections=sum(
1 for conversation_id in connection_ids_to_conversation_ids.values()
if conversation_id == conversation.conversation_id
)
)
for conversation in filtered_results
),
@@ -290,7 +295,8 @@ async def get_conversation(
try:
metadata = await conversation_store.get_metadata(conversation_id)
is_running = await conversation_manager.is_agent_loop_running(conversation_id)
conversation_info = await _get_conversation_info(metadata, is_running)
num_connections = len(await conversation_manager.get_connections(filter_to_sids={conversation_id}))
conversation_info = await _get_conversation_info(metadata, is_running, num_connections)
return conversation_info
except FileNotFoundError:
return None
@@ -318,6 +324,7 @@ async def delete_conversation(
async def _get_conversation_info(
conversation: ConversationMetadata,
is_running: bool,
num_connections: int
) -> ConversationInfo | None:
try:
title = conversation.title
@@ -333,6 +340,7 @@ async def _get_conversation_info(
status=(
ConversationStatus.RUNNING if is_running else ConversationStatus.STOPPED
),
num_connections=num_connections
)
except Exception as e:
logger.error(