refactor: timestamp compatible with Firestore #30

Merged
A8065384 merged 3 commits from refactor/timestamp-to-date into main 2026-03-10 23:47:49 +00:00
Member

PR para: #27

Resumen

Se estandariza el manejo de timestamps de Firestore usando datetime en UTC para que los cálculos de sesiones sean consistentes y auditables.

Cambios principales

🧭 Se crea _timestamp_to_float para normalizar valores numéricos o Timestamp al mismo tipo base.
🕘 last_update_time se guarda como datetime.now(UTC) y se serializa a epoch solo al exponer la sesión.
📦 Los eventos ahora escriben last_update_time como datetime UTC, evitando drift cuando Firestore hace conversiones.
🔍 Logs de conversión capturan excepciones específicas (TypeError/ValueError/OSError/OverflowError) con contexto.

Detalles técnicos

  • FirestoreSessionService ya no depende de time.time; usa datetime + UTC y datetime.fromtimestamp.
  • _timestamp_to_float garantiza defaults seguros y oculta formatos inesperados sin romper la sesión.
  • No hay cambios en contratos externos: los consumidores siguen recibiendo last_update_time como float.

Checks

  • uv run ruff check
  • uv run ty check
> PR para: #27 ## Resumen Se estandariza el manejo de timestamps de Firestore usando `datetime` en UTC para que los cálculos de sesiones sean consistentes y auditables. ## Cambios principales 🧭 Se crea `_timestamp_to_float` para normalizar valores numéricos o `Timestamp` al mismo tipo base. 🕘 `last_update_time` se guarda como `datetime.now(UTC)` y se serializa a epoch solo al exponer la sesión. 📦 Los eventos ahora escriben `last_update_time` como datetime UTC, evitando drift cuando Firestore hace conversiones. 🔍 Logs de conversión capturan excepciones específicas (TypeError/ValueError/OSError/OverflowError) con contexto. ## Detalles técnicos - FirestoreSessionService ya no depende de `time.time`; usa `datetime` + `UTC` y `datetime.fromtimestamp`. - `_timestamp_to_float` garantiza defaults seguros y oculta formatos inesperados sin romper la sesión. - No hay cambios en contratos externos: los consumidores siguen recibiendo `last_update_time` como float. ## Checks - [x] `uv run ruff check` - [x] `uv run ty check`
A8080816 added 2 commits 2026-03-10 21:30:52 +00:00
A8065384 added 1 commit 2026-03-10 22:56:58 +00:00
Merge branch 'main' into refactor/timestamp-to-date
All checks were successful
CI / ci (pull_request) Successful in 20s
70a3f618bd
A8065384 merged commit a264276a5d into main 2026-03-10 23:47:49 +00:00
A8065384 deleted branch refactor/timestamp-to-date 2026-03-10 23:47:49 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: va/agent#30