diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 42d06eae..be1bb21a 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -13,7 +13,6 @@ # limitations under the License. import copy from datetime import datetime -from datetime import timezone import json import logging from typing import Any @@ -371,10 +370,8 @@ async def get_session( return None if config and config.after_timestamp: - after_dt = datetime.fromtimestamp( - config.after_timestamp, tz=timezone.utc - ) - timestamp_filter = StorageEvent.timestamp > after_dt + after_dt = datetime.fromtimestamp(config.after_timestamp) + timestamp_filter = StorageEvent.timestamp >= after_dt else: timestamp_filter = True @@ -382,7 +379,7 @@ async def get_session( session_factory.query(StorageEvent) .filter(StorageEvent.session_id == storage_session.id) .filter(timestamp_filter) - .order_by(StorageEvent.timestamp.asc()) + .order_by(StorageEvent.timestamp.desc()) .limit( config.num_recent_events if config and config.num_recent_events @@ -429,7 +426,7 @@ async def get_session( error_message=e.error_message, interrupted=e.interrupted, ) - for e in storage_events + for e in reversed(storage_events) ] return session diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index 59f2443b..e28f7ff0 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -315,7 +315,7 @@ async def test_append_event_complete(service_type): @pytest.mark.asyncio -@pytest.mark.parametrize('service_type', [SessionServiceType.IN_MEMORY]) +@pytest.mark.parametrize('service_type', [SessionServiceType.IN_MEMORY, SessionServiceType.DATABASE]) async def test_get_session_with_config(service_type): session_service = get_session_service(service_type) app_name = 'my_app'