fix(session): use datetime UTC and tighten timestamp logging
All checks were successful
CI / ci (pull_request) Successful in 19s

This commit is contained in:
2026-03-10 21:24:11 +00:00
parent 93c870c8d6
commit f3515ee71c

View File

@@ -6,7 +6,7 @@ import asyncio
import logging import logging
import time import time
import uuid import uuid
from datetime import datetime, timezone from datetime import UTC, datetime
from typing import TYPE_CHECKING, Any, override from typing import TYPE_CHECKING, Any, override
from google.adk.errors.already_exists_error import AlreadyExistsError from google.adk.errors.already_exists_error import AlreadyExistsError
@@ -112,8 +112,13 @@ class FirestoreSessionService(BaseSessionService):
if hasattr(value, "timestamp"): if hasattr(value, "timestamp"):
try: try:
return float(value.timestamp()) return float(value.timestamp())
except Exception: # pragma: no cover - defensive fallback except (
logger.debug("Failed to convert timestamp %r", value) TypeError,
ValueError,
OSError,
OverflowError,
) as exc: # pragma: no cover
logger.debug("Failed to convert timestamp %r: %s", value, exc)
return default return default
# ------------------------------------------------------------------ # ------------------------------------------------------------------
@@ -185,7 +190,7 @@ class FirestoreSessionService(BaseSessionService):
) )
) )
now = datetime.now(timezone.utc) now = datetime.now(UTC)
write_coros.append( write_coros.append(
self._session_ref(app_name, user_id, session_id).set( self._session_ref(app_name, user_id, session_id).set(
{ {
@@ -384,7 +389,7 @@ class FirestoreSessionService(BaseSessionService):
# Persist state deltas # Persist state deltas
session_ref = self._session_ref(app_name, user_id, session_id) session_ref = self._session_ref(app_name, user_id, session_id)
last_update_dt = datetime.fromtimestamp(event.timestamp, timezone.utc) last_update_dt = datetime.fromtimestamp(event.timestamp, UTC)
if event.actions and event.actions.state_delta: if event.actions and event.actions.state_delta:
state_deltas = _session_util.extract_state_delta(event.actions.state_delta) state_deltas = _session_util.extract_state_delta(event.actions.state_delta)