Skip to content

Commit

Permalink
Feature - sort conversations by created at (#6079)
Browse files Browse the repository at this point in the history
  • Loading branch information
tofarr authored Jan 6, 2025
1 parent 5626a22 commit e310f6b
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 9 deletions.
1 change: 1 addition & 0 deletions openhands/server/routes/manage_conversations.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ async def _get_conversation_info(
conversation_id=conversation.conversation_id,
title=title,
last_updated_at=conversation.last_updated_at,
created_at=conversation.created_at,
selected_repository=conversation.selected_repository,
status=ConversationStatus.RUNNING
if is_running
Expand Down
6 changes: 3 additions & 3 deletions openhands/storage/conversation/file_conversation_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ async def get_instance(cls, config: AppConfig, token: str | None):


def _sort_key(conversation: ConversationMetadata) -> str:
last_updated_at = conversation.last_updated_at
if last_updated_at:
return last_updated_at.isoformat() # YYYY-MM-DDTHH:MM:SS for sorting
created_at = conversation.created_at
if created_at:
return created_at.isoformat() # YYYY-MM-DDTHH:MM:SS for sorting
return ''
3 changes: 2 additions & 1 deletion openhands/storage/data_models/conversation_info.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from dataclasses import dataclass
from dataclasses import dataclass, field
from datetime import datetime

from openhands.storage.data_models.conversation_status import ConversationStatus
Expand All @@ -13,3 +13,4 @@ class ConversationInfo:
last_updated_at: datetime | None = None
status: ConversationStatus = ConversationStatus.STOPPED
selected_repository: str | None = None
created_at: datetime = field(default_factory=datetime.now)
3 changes: 2 additions & 1 deletion openhands/storage/data_models/conversation_metadata.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from dataclasses import dataclass
from dataclasses import dataclass, field
from datetime import datetime


Expand All @@ -9,3 +9,4 @@ class ConversationMetadata:
selected_repository: str | None
title: str | None = None
last_updated_at: datetime | None = None
created_at: datetime = field(default_factory=datetime.now)
12 changes: 8 additions & 4 deletions tests/unit/test_conversation.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ def _patch_store():
'selected_repository': 'foobar',
'conversation_id': 'some_conversation_id',
'github_user_id': 'github_user',
'last_updated_at': '2025-01-01T00:00:00',
'created_at': '2025-01-01T00:00:00',
'last_updated_at': '2025-01-01T00:01:00',
}
),
)
Expand All @@ -55,7 +56,8 @@ async def test_search_conversations():
ConversationInfo(
conversation_id='some_conversation_id',
title='Some Conversation',
last_updated_at=datetime.fromisoformat('2025-01-01T00:00:00'),
created_at=datetime.fromisoformat('2025-01-01T00:00:00'),
last_updated_at=datetime.fromisoformat('2025-01-01T00:01:00'),
status=ConversationStatus.STOPPED,
selected_repository='foobar',
)
Expand All @@ -73,7 +75,8 @@ async def test_get_conversation():
expected = ConversationInfo(
conversation_id='some_conversation_id',
title='Some Conversation',
last_updated_at=datetime.fromisoformat('2025-01-01T00:00:00'),
created_at=datetime.fromisoformat('2025-01-01T00:00:00'),
last_updated_at=datetime.fromisoformat('2025-01-01T00:01:00'),
status=ConversationStatus.STOPPED,
selected_repository='foobar',
)
Expand Down Expand Up @@ -105,7 +108,8 @@ async def test_update_conversation():
expected = ConversationInfo(
conversation_id='some_conversation_id',
title='New Title',
last_updated_at=datetime.fromisoformat('2025-01-01T00:00:00'),
created_at=datetime.fromisoformat('2025-01-01T00:00:00'),
last_updated_at=datetime.fromisoformat('2025-01-01T00:01:00'),
status=ConversationStatus.STOPPED,
selected_repository='foobar',
)
Expand Down

0 comments on commit e310f6b

Please sign in to comment.