From 7ec608b5c541c3c67979dc2aef3aa44fde2b7b41 Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Wed, 24 Sep 2025 13:10:29 -0300 Subject: [PATCH] implement delete user conversation on agent --- src/agent.py | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/agent.py b/src/agent.py index 1eb362bd..eceb2ac4 100644 --- a/src/agent.py +++ b/src/agent.py @@ -636,6 +636,34 @@ async def async_langflow_chat_stream( logger.debug( f"Stored langflow conversation thread for user {user_id} with response_id: {response_id}" ) - logger.debug( - f"Stored langflow conversation thread for user {user_id} with response_id: {response_id}" - ) + + +def delete_user_conversation(user_id: str, response_id: str) -> bool: + """Delete a conversation for a user from both memory and persistent storage""" + deleted = False + + try: + # Delete from in-memory storage + if user_id in active_conversations and response_id in active_conversations[user_id]: + del active_conversations[user_id][response_id] + logger.debug(f"Deleted conversation {response_id} from memory for user {user_id}") + deleted = True + + # Delete from persistent storage + conversation_deleted = conversation_persistence.delete_conversation_thread(user_id, response_id) + if conversation_deleted: + logger.debug(f"Deleted conversation {response_id} from persistent storage for user {user_id}") + deleted = True + + # Release session ownership + try: + from services.session_ownership_service import session_ownership_service + session_ownership_service.release_session(user_id, response_id) + logger.debug(f"Released session ownership for {response_id} for user {user_id}") + except Exception as e: + logger.warning(f"Failed to release session ownership: {e}") + + return deleted + except Exception as e: + logger.error(f"Error deleting conversation {response_id} for user {user_id}: {e}") + return False