From 6b96c65b49b5c1eacba04bc4c072dbb93da181e3 Mon Sep 17 00:00:00 2001 From: White-Mouse <15983334+White-Mouse@users.noreply.github.com> Date: Thu, 4 Jun 2026 20:42:18 +0800 Subject: [PATCH] fix(sessions): honor zero recent events in database service --- src/google/adk/sessions/database_session_service.py | 2 +- tests/unittests/sessions/test_session_service.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 2fdd673334..0d687b46c4 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -531,7 +531,7 @@ async def get_session( stmt = stmt.order_by(schema.StorageEvent.timestamp.desc()) - if config and config.num_recent_events: + if config and config.num_recent_events is not None: stmt = stmt.limit(config.num_recent_events) result = await sql_session.execute(stmt) diff --git a/tests/unittests/sessions/test_session_service.py b/tests/unittests/sessions/test_session_service.py index b86a65e8a8..30c054ab08 100644 --- a/tests/unittests/sessions/test_session_service.py +++ b/tests/unittests/sessions/test_session_service.py @@ -1058,6 +1058,13 @@ async def test_get_session_with_config(session_service): events = session.events assert len(events) == num_test_events + # Explicitly requesting zero recent events should return no event history. + config = GetSessionConfig(num_recent_events=0) + session = await session_service.get_session( + app_name=app_name, user_id=user_id, session_id=session.id, config=config + ) + assert not session.events + # Only expect the most recent 3 events. num_recent_events = 3 config = GetSessionConfig(num_recent_events=num_recent_events)