67 lines
2.7 KiB
Markdown
67 lines
2.7 KiB
Markdown
# TASK-071-public-scoreboard-provider-adapter
|
|
|
|
## Goal
|
|
Adaptar la fuente actual public-scoreboard al nuevo contrato de proveedor para que siga siendo la fuente estándar en desarrollo sin romper el comportamiento existente.
|
|
|
|
## Context
|
|
Una vez exista la abstracción de fuente, hay que mover la lógica actual a un proveedor explícito de tipo public-scoreboard. Eso permitirá mantener dev estable mientras se prepara RCON para producción.
|
|
|
|
## Steps
|
|
1. Revisar la lógica actual que usa scoreboard/CRCON público.
|
|
2. Encapsularla dentro del proveedor public-scoreboard compatible con la nueva abstracción.
|
|
3. Asegurar que desarrollo sigue funcionando con la misma semántica actual.
|
|
4. Mantener el mismo resultado en:
|
|
- ingestión histórica
|
|
- snapshots
|
|
- estado actual de servidores
|
|
5. Reducir duplicaciones y dejar clara la responsabilidad del proveedor.
|
|
6. Actualizar documentación mínima.
|
|
7. No implementar todavía lógica RCON en esta task.
|
|
8. Al completar la implementación:
|
|
- dejar el repositorio consistente
|
|
- hacer commit
|
|
- hacer push al remoto si el entorno lo permite
|
|
|
|
## Files to Read First
|
|
- AGENTS.md
|
|
- backend/README.md
|
|
- backend/app/config.py
|
|
- backend/app/historical_ingestion.py
|
|
- backend/app/payloads.py
|
|
- backend/app/routes.py
|
|
- backend/app/source_provider.py
|
|
- docs/historical-crcon-source-discovery.md
|
|
|
|
## Expected Files to Modify
|
|
- backend/app/historical_ingestion.py
|
|
- backend/app/payloads.py
|
|
- backend/app/routes.py
|
|
- opcionalmente nuevos módulos, por ejemplo:
|
|
- backend/app/providers/public_scoreboard_provider.py
|
|
- backend/README.md
|
|
|
|
## Constraints
|
|
- No romper el comportamiento actual en dev.
|
|
- No hacer cambios destructivos.
|
|
- Mantener el trabajo centrado en encapsular correctamente la fuente actual.
|
|
|
|
## Validation
|
|
- El proveedor public-scoreboard funciona bajo la nueva abstracción.
|
|
- El modo desarrollo sigue comportándose como antes.
|
|
- Los cambios quedan committeados y se hace push si el entorno lo permite.
|
|
|
|
## Change Budget
|
|
- Preferir menos de 5 archivos modificados o creados.
|
|
- Preferir menos de 220 líneas cambiadas.
|
|
|
|
## Outcome
|
|
- Se extrajo la logica del proveedor historico actual a `backend/app/providers/public_scoreboard_provider.py`.
|
|
- `backend/app/data_sources.py` quedo reducido a contratos y seleccion de proveedor por entorno.
|
|
- El comportamiento de desarrollo se mantuvo estable con `public-scoreboard` como proveedor historico por defecto.
|
|
- No se introdujo logica RCON en esta task.
|
|
|
|
## Validation Notes
|
|
- `python -m compileall backend/app` completo sin errores tras el refactor.
|
|
- La diff quedo limitada al selector de proveedores, el adapter publico y la documentacion minima.
|
|
- `backend/app/source_provider.py` no existia; se reutilizo `backend/app/data_sources.py` como punto de seleccion ya introducido en la task anterior.
|