Files
comunidadhll/ai/tasks/done/TASK-090-rcon-historical-provider-minimal-read-model.md
devRaGonSa c70073dbe1 RCON model
2026-03-25 11:46:28 +01:00

66 lines
2.8 KiB
Markdown

# TASK-090-rcon-historical-provider-minimal-read-model
## Goal
Construir una primera capa de lectura historica minima sobre la persistencia prospectiva RCON, sin intentar aun paridad completa con todos los rankings competitivos del historico actual.
## Context
Esta task depende de la task anterior.
Una vez exista captura prospectiva RCON, hace falta una primera capa de lectura util que permita comprobar cobertura real y exponer algo operativo sin mentir sobre la profundidad disponible.
La prioridad aqui no es clonar toda la salida de `public-scoreboard`, sino exponer:
- cobertura
- actividad reciente
- estado del historico RCON disponible
- una base compatible para evolucion posterior
## Steps
1. Implementar una primera version funcional de `RconHistoricalDataSource` basada en datos persistidos, no en consultas RCON on-demand dentro del request path.
2. Definir un read model minimo util para:
- resumen/cobertura por servidor
- actividad o sesiones recientes
- metadata de disponibilidad y frescura
3. Exponer un camino de seleccion seguro por `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon` sin romper el modo `public-scoreboard`.
4. Mantener la degradacion controlada cuando falten metricas:
- devolver payload coherente
- documentar que contratos quedan soportados y cuales no todavia
5. Actualizar README y runbook para aclarar:
- que endpoints funcionan con la lectura RCON minima
- que endpoints siguen dependiendo de `public-scoreboard`
6. No intentar aun:
- weekly/monthly leaderboards completos
- MVP V1/V2 completos
- equivalencia total con `historico.html`
## Files to Read First
- `docs/rcon-historical-ingestion-design.md`
- `backend/README.md`
- `backend/app/data_sources.py`
- `backend/app/payloads.py`
- `backend/app/routes.py`
- los archivos creados en la task anterior para captura prospectiva RCON
## Expected Files to Modify
- `backend/app/data_sources.py`
- `backend/app/payloads.py`
- `backend/app/routes.py`
- uno o varios archivos nuevos bajo `backend/app/` para read model RCON historico
- `backend/README.md`
## Constraints
- No sustituir aun el historico actual completo.
- No tocar frontend.
- No exponer contratos falsos o semicompletos como si fueran paridad total.
- La lectura HTTP debe seguir siendo fast-path de solo lectura sobre persistencia local.
- Si un endpoint no queda soportado por la capa minima, debe quedar documentado y degradar de forma clara.
## Validation
- `HLL_BACKEND_HISTORICAL_DATA_SOURCE=rcon` deja una lectura historica minima operativa y documentada.
- El backend no rompe el modo `public-scoreboard`.
- La documentacion deja claro el alcance real de esta primera capa de lectura.
- El repositorio queda consistente.
## Change Budget
- Preferir menos de 7 archivos modificados o creados.
- Preferir menos de 320 lineas cambiadas.