4.6 KiB
4.6 KiB
id, title, status, type, team, supporting_teams, roadmap_item, priority
| id | title | status | type | team | supporting_teams | roadmap_item | priority | |||
|---|---|---|---|---|---|---|---|---|---|---|
| TASK-179 | Fix Stats Review Follow-ups | done | documentation | Analista |
|
foundation | medium |
TASK-179 - Fix Stats Review Follow-ups
Goal
Resolver los hallazgos no bloqueantes detectados en TASK-178 sobre el bloque Stats después del hardening.
Context
Tras la revisión de TASK-178 quedaron pendientes 3 correcciones de consistencia y resiliencia:
- documentación desincronizada en
timeframe, - fallo total de perfil al fallar en paralelo una ventana semanal/mensual,
- validación de regresión demasiado dependiente de texto literal en UI.
El objetivo es cerrar estos puntos sin ampliar el alcance funcional del bloque Stats ni de ranking.
Files to Read First
AGENTS.mdai/repo-context.mdai/architecture-index.mdai/tasks/done/TASK-178-review-stats-implementation-after-hardening.mddocs/stats-section-functional-plan.mdfrontend/stats.htmlfrontend/assets/js/stats.jsscripts/run-stats-validation.ps1scripts/run-integration-tests.ps1backend/app/routes.py
Steps
- Leer los archivos listados arriba.
- Corregir únicamente los cambios de alcance identificados:
- actualizar documentación para reflejar
timeframe=weekly|monthly, - tolerar fallo parcial entre
weeklyymonthlyen el frontend, - endurecer el script de validación para no depender de textos literales cuando no sea necesario.
- actualizar documentación para reflejar
- Ejecutar validaciones:
node --check frontend/assets/js/stats.jspowershell -ExecutionPolicy Bypass -File scripts/run-stats-validation.ps1powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1- Servidor HTTP local para validar HTTP 200 de
stats.htmlyassets/js/stats.js.
- Documentar resultado en el apartado Outcome y cerrar la task.
Expected Files to Modify
docs/stats-section-functional-plan.mdfrontend/assets/js/stats.jsscripts/run-stats-validation.ps1ai/tasks/done/TASK-179-fix-stats-review-followups.md
Constraints
- Corregir sin agregar nuevas funcionalidades.
- No cambiar la lógica de ranking.
- No introducir o reactivar Elo/MMR.
- No reintroducir
Comunidad Hispana #03. - No crear migraciones.
- No modificar backend salvo bug menor estrictamente necesario.
- Mantener estilos y comportamiento existente salvo el mensaje mínimo necesario para fallo parcial.
- No ampliar la sección Stats con nuevas funcionalidades.
Validation
node --check frontend/assets/js/stats.jspowershell -ExecutionPolicy Bypass -File scripts/run-stats-validation.ps1powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1- Servir frontend y confirmar HTTP 200 para
stats.htmlyassets/js/stats.js. git diff --name-onlyy verificación de scope.
Outcome
- Cambios aplicados:
docs/stats-section-functional-plan.md:- Se actualizó la especificación de
timeframeen/api/stats/players/{player_id}aweekly|monthly. - Se explicitó que
timeframe=allno está soportado en el contrato actual.
- Se actualizó la especificación de
frontend/assets/js/stats.js:- Se reemplazó
Promise.allporPromise.allSettledpara carga semanal/mensual. - Se añadio render parcial para escenarios de éxito parcial por ventana.
- Se mantiene fallback de error total si ambas ventanas fallan.
- Se reemplazó
scripts/run-stats-validation.ps1:- Se reforzaron validaciones de IDs, endpoints y shape de payload.
- Se quitaron chequeos frágiles dependientes de texto visible de UI.
- Se añadieron verificaciones para
requested_limit,effective_limit,snapshot_limityitem_count.
- Modo de fallo parcial semanal/mensual:
- Si una ventana responde y la otra falla:
- se muestran sus datos y estado disponible.
- la otra muestra aviso de bloque no disponible y se evita degradar todo el panel.
- se agrega aviso global de carga parcial.
- Si ambas fallan:
- se conserva el estado de error completo y backend-inusable para ese perfil.
- Si una ventana responde y la otra falla:
- Validaciones endurecidas:
- Validación de contrato en JS y HTML basada en funciones/rutas/IDs.
- Validación de forma de payload y metadatos de snapshot en bloque anual.
- Validaciones ejecutadas:
node --check frontend/assets/js/stats.jspowershell -ExecutionPolicy Bypass -File scripts/run-stats-validation.ps1powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1python -m http.server(servido desdefrontend/) conHTTP 200para:stats.htmlassets/js/stats.js
- Limitaciones o follow-ups:
- No se identificaron follow-ups de producto inmediatos dentro del alcance de TASK-179.