diff --git a/navi/core/sqlite_session_store.py b/navi/core/sqlite_session_store.py index 8583c53..e8ce93f 100644 --- a/navi/core/sqlite_session_store.py +++ b/navi/core/sqlite_session_store.py @@ -30,6 +30,14 @@ ) +def _parse_dt(value: str) -> datetime: + """Parse ISO datetime string, always returning a timezone-aware datetime.""" + dt = datetime.fromisoformat(value) + if dt.tzinfo is None: + dt = dt.replace(tzinfo=timezone.utc) + return dt + + def _deserialize(raw: str) -> list[Message]: if not raw: return [] @@ -119,6 +127,6 @@ messages=messages, context=context, pinned=bool(pinned), - created_at=datetime.fromisoformat(created_at), - last_active=datetime.fromisoformat(last_active), + created_at=_parse_dt(created_at), + last_active=_parse_dt(last_active), )