sistema A2S
This commit is contained in:
73
ai/tasks/done/TASK-021-snapshot-persistence-bootstrap.md
Normal file
73
ai/tasks/done/TASK-021-snapshot-persistence-bootstrap.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# TASK-021-snapshot-persistence-bootstrap
|
||||
|
||||
## Goal
|
||||
Preparar una persistencia local minima para snapshots de servidores en el backend Python, de forma que los datos recogidos durante las pruebas con HLL actual puedan guardarse y reutilizarse para consultas historicas posteriores.
|
||||
|
||||
## Context
|
||||
El proyecto ya dispone de plan de ingesta, modelo logico de almacenamiento y bootstrap de colector. El siguiente paso es dejar de depender exclusivamente de estructuras temporales o payloads controlados y empezar a guardar snapshots de forma persistente para validar el circuito real de estadisticas.
|
||||
|
||||
## Steps
|
||||
1. Revisar la documentacion actual de ingesta, esquema logico y colector.
|
||||
2. Definir una estrategia de persistencia local minima adecuada para esta fase de pruebas.
|
||||
3. Implementar una capa pequena de persistencia alineada con las entidades ya definidas logicamente:
|
||||
- game_sources
|
||||
- servers
|
||||
- server_snapshots
|
||||
4. Mantener la implementacion simple, reutilizable y desacoplada de una base de datos de produccion futura.
|
||||
5. Hacer que el colector pueda guardar snapshots reales o controlados en esa persistencia local.
|
||||
6. Documentar como inicializar y usar esta persistencia en desarrollo.
|
||||
7. No introducir todavia consultas historicas complejas ni visualizacion en frontend.
|
||||
8. Mantener el alcance centrado en almacenamiento basico funcional.
|
||||
|
||||
## Files to Read First
|
||||
- AGENTS.md
|
||||
- ai/repo-context.md
|
||||
- ai/architecture-index.md
|
||||
- docs/current-hll-data-ingestion-plan.md
|
||||
- docs/stats-database-schema-foundation.md
|
||||
- backend/README.md
|
||||
- backend/app/__init__.py
|
||||
- backend/app/config.py
|
||||
- backend/app/collector.py
|
||||
- backend/app/normalizers.py
|
||||
- backend/app/snapshots.py
|
||||
|
||||
## Expected Files to Modify
|
||||
- backend/README.md
|
||||
- backend/app/__init__.py
|
||||
- backend/app/config.py
|
||||
- backend/app/collector.py
|
||||
- backend/app/snapshots.py
|
||||
- opcionalmente archivos nuevos dentro de backend/app/ si mejoran la separacion de persistencia, por ejemplo:
|
||||
- backend/app/storage.py
|
||||
- backend/app/repository.py
|
||||
|
||||
## Constraints
|
||||
- No implementar todavia integraciones reales complejas de terceros.
|
||||
- No tocar frontend.
|
||||
- No anadir una infraestructura de produccion sobredimensionada.
|
||||
- No hacer cambios destructivos.
|
||||
- Mantener la persistencia simple y util para desarrollo local.
|
||||
|
||||
## Validation
|
||||
- El backend puede guardar snapshots de servidores en una persistencia local real.
|
||||
- La persistencia sigue el modelo logico documentado.
|
||||
- La documentacion explica como usar esta base minima en local.
|
||||
- El resultado prepara el terreno para consultas historicas inmediatas.
|
||||
|
||||
## Change Budget
|
||||
- Preferir menos de 7 archivos modificados o creados.
|
||||
- Preferir menos de 260 lineas cambiadas.
|
||||
|
||||
## Outcome
|
||||
- Se anadio `backend/app/storage.py` con una persistencia SQLite minima basada en libreria estandar.
|
||||
- El colector puede persistir snapshots controlados en `game_sources`, `servers` y `server_snapshots`.
|
||||
- La configuracion local expone `HLL_BACKEND_STORAGE_PATH` para cambiar la ruta del archivo SQLite sin fijar una decision de produccion.
|
||||
- `backend/README.md` documenta la inicializacion y uso de la persistencia local.
|
||||
|
||||
## Validation Result
|
||||
- Ejecutado: `python -m app.collector`
|
||||
- Resultado: lote de 3 snapshots persistido correctamente en SQLite local de desarrollo.
|
||||
|
||||
## Decision Notes
|
||||
- Se eligio SQLite porque cubre persistencia local real con dependencias cero y mantiene abierta la migracion futura a otra tecnologia de almacenamiento.
|
||||
Reference in New Issue
Block a user