3.8 KiB
3.8 KiB
id, title, status, type, team, supporting_teams, roadmap_item, priority
| id | title | status | type | team | supporting_teams | roadmap_item | priority | ||
|---|---|---|---|---|---|---|---|---|---|
| TASK-161 | Current match full player summary and feed badges | done | backend | Backend Senior |
|
foundation | medium |
TASK-161 - Current match full player summary and feed badges
Goal
Ampliar el resumen de jugadores de /api/current-match/players para incluir a todos los participantes detectados de la partida actual y ajustar el feed de combate para mostrar nombre + facción en una sola línea sin cambiar su lógica funcional.
Context
frontend/partida-actual.html ya expone feed de combate y tabla de estadísticas en vivo. El payload actual de jugadores depende solo de eventos kill, por lo que deja fuera jugadores conectados o vistos en la ventana de partida actual sin bajas registradas.
Steps
- Revisar parser, storage y payloads actuales de
current match. - Ampliar la agregación backend usando eventos AdminLog y muestra live cuando exista.
- Ajustar el render del feed para reutilizar el patrón visual de cápsulas de facción.
- Validar el alcance con tests y checks pedidos.
Files to Read First
AGENTS.mdai/architecture-index.mdai/repo-context.mdbackend/app/rcon_admin_log_storage.pybackend/app/payloads.pyfrontend/assets/js/partida-actual.js
Expected Files to Modify
backend/app/rcon_admin_log_storage.pybackend/app/payloads.pybackend/tests/test_current_match_payload.pybackend/tests/test_rcon_admin_log_storage.pyfrontend/assets/js/partida-actual.jsfrontend/assets/css/historico.css
Constraints
- No tocar histórico, rankings, retención, mantenimiento BDD ni export Gitea.
- No cambiar endpoints ni contratos incompatibles del frontend.
- No cambiar la lógica funcional del feed de combate.
- Mantener la derivación principal de estadísticas desde AdminLog y ampliarla.
Validation
python -m compileall backend/app$env:PYTHONPATH = "backend"python -m unittest backend.tests.test_current_match_payloadpython -m unittest discover -s backend/tests -p "*current*"python -m unittest discover -s backend/tests -p "*rcon*"node --check frontend/assets/js/partida-actual.jsgit diff --check
Outcome
backend/app/rcon_admin_log_storage.pyahora construye el resumen vivo de participantes de la ventana actual combinando eventoskill,connected,disconnected,team_switch,chatymessage, manteniendo las estadísticas de bajas derivadas desdekill.frontend/assets/js/partida-actual.jsyfrontend/assets/css/historico.cssajustan solo el render visual del feed para mostrar nombre + cápsula en la misma línea reutilizando el badge de equipo de la tabla.- Validación ejecutada:
python -m compileall backend/appnode --check frontend/assets/js/partida-actual.jsgit diff --check- Arnes Python local que ejecuta directamente las funciones
test_*debackend/tests/test_current_match_payload.pyybackend/tests/test_rcon_admin_log_storage.py
- Observaciones de validación:
python -m unittest backend.tests.test_current_match_payloadypython -m unittest discover -s backend/tests -p "*current*"no detectan tests porque esos módulos usan estilopytest.python -m unittest discover -s backend/tests -p "*rcon*"falla por un problema ajeno y preexistente entest_rcon_materialization_pipeline.
- Limitación conocida: el helper live actual del repositorio expone conteos y marcador (
GetServerInformation), pero no un roster nominal de jugadores; por tanto el resumen usa todas las señales nominales ya persistidas en AdminLog y no puede inventar jugadores silenciosos si nunca fueron vistos por ningún evento.
Change Budget
- Preferir menos de 5 archivos si es viable; si no, mantener el cambio concentrado en current match.
- Preferir cambios pequeños y verificables por tests.