fix(cli): ignore session_db_kwargs for sqlite session services

Close issue #4317

Co-authored-by: Liang Wu <wuliang@google.com>
PiperOrigin-RevId: 864979145
This commit is contained in:
Liang Wu
2026-02-03 11:48:42 -08:00
committed by Copybara-Service
parent 706a6dda81
commit ce07cd8144
2 changed files with 28 additions and 9 deletions
+10 -3
View File
@@ -250,9 +250,16 @@ def _register_builtin_services(registry: ServiceRegistry) -> None:
return memory_session_factory("memory://", **kwargs)
elif db_path.startswith("/"):
db_path = db_path[1:]
kwargs_copy = kwargs.copy()
kwargs_copy.pop("agents_dir", None)
return SqliteSessionService(db_path=db_path, **kwargs_copy)
# SqliteSessionService only accepts db_path, warn if extra kwargs provided
ignored_kwargs = {k: v for k, v in kwargs.items() if k != "agents_dir"}
if ignored_kwargs:
logger.warning(
"SqliteSessionService does not support additional kwargs. "
"The following parameters will be ignored: %s",
list(ignored_kwargs.keys()),
)
return SqliteSessionService(db_path=db_path)
registry.register_session_service("memory", memory_session_factory)
registry.register_session_service("agentengine", agentengine_session_factory)
+18 -6
View File
@@ -63,13 +63,25 @@ def test_create_session_service_sqlite(registry, mock_services):
mock_services["sqlite_session"].assert_called_once_with(db_path="test.db")
def test_create_session_service_sqlite_with_kwargs(registry, mock_services):
registry.create_session_service(
"sqlite:///test.db", pool_size=10, agents_dir="foo"
)
mock_services["sqlite_session"].assert_called_once_with(
db_path="test.db", pool_size=10
def test_create_session_service_sqlite_ignores_unsupported_kwargs(
registry, mock_services, caplog
):
"""Test that SqliteSessionService ignores unsupported kwargs and logs warning."""
import logging
with caplog.at_level(logging.WARNING):
registry.create_session_service(
"sqlite:///test.db", pool_size=10, agents_dir="foo"
)
# SqliteSessionService should only receive db_path, not pool_size
mock_services["sqlite_session"].assert_called_once_with(db_path="test.db")
# Verify warning was logged about ignored kwargs
assert (
"SqliteSessionService does not support additional kwargs" in caplog.text
)
assert "pool_size" in caplog.text
def test_create_session_service_postgresql(registry, mock_services):