2.0 KiB
2.0 KiB
TASK-103-rcon-first-historical-aggregates-and-fallback-boundary
Goal
Mover los agregados históricos de producto a una frontera RCON-first real, dejando scoreboard solo para las piezas que todavía no puedan calcularse desde el modelo histórico competitivo RCON-backed.
Context
Una vez exista el modelo primario histórico competitivo RCON-backed, hace falta conectar realmente los endpoints y payloads de producto para que usen esa capa como primaria.
Steps
- Auditar:
backend/app/payloads.pybackend/app/routes.pybackend/app/historical_snapshots.pybackend/app/historical_snapshot_storage.pybackend/app/elo_mmr_engine.py
- Reorientar como RCON-first real, al menos donde la nueva capa ya lo permita:
- historical server summary
- recent matches
- Elo/MMR mensual
- y cualquier agregado competitivo mínimo ya soportado
- Mantener fallback a public-scoreboard solo cuando:
- la capability sea partial/unavailable
- la cobertura RCON no alcance
- el cálculo falle
- Hacer visible la frontera exacta de fallback:
- qué endpoints ya son realmente RCON-first
- cuáles siguen cayendo a scoreboard
- por qué
- Ajustar snapshots/materializaciones si hace falta para no depender del request path directo.
- Alinear README/runbook con esta nueva frontera funcional.
Constraints
- No afirmar que MVP V1/V2 completos ya sean 100% RCON-backed si no lo son.
- No romper endpoints existentes.
- No ocultar el fallback real.
- Mantener latencia razonable.
Validation
- Los endpoints históricos soportados ya usan RCON-backed como primario real.
- El fallback a scoreboard queda reducido y explícito.
- Elo/MMR mensual consume primariamente el modelo RCON-backed donde ya sea posible.
- La repo queda consistente.
Expected Files
backend/app/payloads.pybackend/app/routes.pybackend/app/historical_snapshots.pybackend/app/historical_snapshot_storage.pybackend/app/elo_mmr_engine.pybackend/README.md- otros archivos backend si hace falta