Implement rcon-first historical ingestion path
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
# TASK-100-rcon-historical-writer-path-implementation
|
||||
|
||||
## Goal
|
||||
Implementar un writer path histórico real por RCON para que la ingesta histórica intente RCON primero y use scoreboard/public-scoreboard solo como fallback.
|
||||
|
||||
## Context
|
||||
La repo ya tiene:
|
||||
- live RCON-first
|
||||
- captura prospectiva RCON
|
||||
- read model histórico RCON parcial
|
||||
- ingesta histórica clásica por scoreboard
|
||||
Pero todavía no existe un writer path histórico real por RCON integrado en `historical_ingestion`.
|
||||
|
||||
## Steps
|
||||
1. Auditar:
|
||||
- `backend/app/data_sources.py`
|
||||
- `backend/app/historical_ingestion.py`
|
||||
- `backend/app/rcon_historical_worker.py`
|
||||
- `backend/app/rcon_historical_storage.py`
|
||||
- `backend/app/rcon_historical_read_model.py`
|
||||
- cualquier capa necesaria de modelos/storage
|
||||
2. Definir qué significa “writer path histórico RCON” con la telemetría real actual:
|
||||
- qué puede alimentar
|
||||
- qué estructura persistida necesita
|
||||
- cómo se integra con el ingestion flow existente
|
||||
3. Implementar una vía writer-oriented RCON que permita a `historical_ingestion` intentar primero RCON.
|
||||
4. Si RCON falla o no cubre la operación concreta, hacer fallback controlado a scoreboard/public-scoreboard.
|
||||
5. Mantener trazabilidad explícita:
|
||||
- primary_source
|
||||
- selected_source
|
||||
- fallback_used
|
||||
- fallback_reason
|
||||
- source_attempts
|
||||
6. No romper la compatibilidad con snapshots ni con rebuilds posteriores.
|
||||
7. Actualizar README/runbook explicando el nuevo writer path real.
|
||||
|
||||
## Constraints
|
||||
- No fingir cobertura histórica RCON que no exista.
|
||||
- No eliminar scoreboard como fallback.
|
||||
- No romper live RCON-first.
|
||||
- No romper el locking compartido.
|
||||
|
||||
## Validation
|
||||
- `historical_ingestion` intenta RCON primero.
|
||||
- Cuando RCON falla o no soporta la operación, hace fallback explícito a scoreboard.
|
||||
- La salida del comando deja claro qué fuente se usó realmente.
|
||||
- El repositorio queda consistente.
|
||||
|
||||
## Expected Files
|
||||
- `backend/app/data_sources.py`
|
||||
- `backend/app/historical_ingestion.py`
|
||||
- archivos backend necesarios para writer path RCON
|
||||
- `backend/README.md`
|
||||
@@ -0,0 +1,38 @@
|
||||
# TASK-101-remove-false-rcon-first-claims-and-fix-operational-visibility
|
||||
|
||||
## Goal
|
||||
Alinear documentación, outputs operativos y visibilidad de progreso con el comportamiento real del sistema, evitando afirmaciones engañosas sobre histórico RCON-first y mejorando la operativa del refresh manual.
|
||||
|
||||
## Context
|
||||
Actualmente el operador puede pensar que la ingesta histórica ya va por RCON cuando en realidad el writer path sigue cayendo a scoreboard.
|
||||
Además, el comando de refresh es demasiado opaco: tarda mucho y no ofrece progreso útil.
|
||||
|
||||
## Steps
|
||||
1. Auditar:
|
||||
- `backend/README.md`
|
||||
- `backend/app/historical_ingestion.py`
|
||||
- outputs/logs relevantes
|
||||
2. Corregir cualquier copy/documentación que sugiera que la ingesta histórica completa ya está en RCON si no es cierto.
|
||||
3. Añadir progreso operativo útil al refresh manual:
|
||||
- servidor actual
|
||||
- página actual
|
||||
- número de match ids a detallar
|
||||
- fuente realmente seleccionada
|
||||
4. Hacer que, cuando haya fallback a scoreboard, eso quede visible para el operador en tiempo real o en el payload final.
|
||||
5. Mantener la salida usable, sin inundar de logs innecesarios.
|
||||
6. Actualizar runbook con recomendaciones reales para pasadas manuales y límites razonables.
|
||||
|
||||
## Constraints
|
||||
- No convertir el comando en un spam de logs.
|
||||
- No ocultar fallbacks reales.
|
||||
- No mezclar esta task con grandes cambios de UI frontend.
|
||||
|
||||
## Validation
|
||||
- El operador puede ver progreso útil durante un refresh.
|
||||
- La fuente usada de verdad queda visible.
|
||||
- La documentación ya no induce a error.
|
||||
- El repositorio queda consistente.
|
||||
|
||||
## Expected Files
|
||||
- `backend/app/historical_ingestion.py`
|
||||
- `backend/README.md`
|
||||
Reference in New Issue
Block a user