Skip to content

feat(front): panel «Mejora general» en el Resumen - #12

Merged
manuamest merged 2 commits into
mainfrom
dev
Sep 20, 2026
Merged

manuamest merged 2 commits into
mainfrom
dev

Conversation

@manuamest

Copy link
Copy Markdown
Contributor

Encima de la lista de niveles, la mirada de lejos de la tarea en la que se trabaja ahora: cuatro cifras de conjunto, la curva de avance y en qué acabaron los episodios. Las tarjetas por nivel siguen contando el detalle.

Decisiones que no se ven en el diff

  • Las cifras son sumas sobre el total (éxitos/episodios), no el promedio de las tasas de cada ejecución: una prueba de 3 episodios no puede pesar lo mismo que un benchmark de 40.
  • No hay ninguna mediana global. La mediana de las medianas de cada ejecución no es la mediana, y la de verdad se calcula sobre episodios: pide una vista SQL que no está.
  • La curva mide cada ejecución contra la primera de SU nivel. Con la tasa cruda, entrar en un nivel más difícil hunde la línea y leería «va a peor» justo cuando el sistema ha avanzado. Así no se compara nunca un nivel con otro.
  • El anillo separa el derrumbe del resto de fallos: es EL fallo de apilar, el que dice si el planificador entiende el centro de gravedad. Cuenta solo los episodios acabados, y lo dice en el centro.
  • Solo la primera tarea, que es la de ahora. Una mirada de lejos con varias tareas apiladas deja de serlo.

Trend ahora puede ser grande

No bastaba con subirle el alto: con el viewBox de 400 de ancho, preserveAspectRatio centraba el dibujo en vez de llenar la caja, así que la curva nunca había ocupado su ancho. Al pasar height el viewBox se dibuja a 8:1 y llena; sin pasarlo, el alto fijo de siempre.

Las 43 curvas de las tarjetas por nivel siguen a 64 px con su viewBox de 400×64, sin un píxel de diferencia, porque MetricTrend no pasa height.

Hallazgo en los datos, no en el código

El anillo dice 26 y la cifra de arriba 50 porque 24 de los 54 episodios están en running: nunca se cerraron (23 success, 7 failure, 24 running). Por eso el centro dice «acabados». Si deberían haber terminado, el que no los cierra es el SDK.

Comprobado

npm run lint (eslint + colores + contraste) y npm run build en verde, sin errores de consola, a 1440 / 880 / 400 px y en los dos temas. Sin dependencias nuevas, sin consultas nuevas, sin colores literales.

manuamest and others added 2 commits September 20, 2026 02:48
* chore: forzar despliegue

* feat(vocabulario): la tarea es la fuente del nivel

La simulación subía los nueve niveles como "palletizing", así que la
plataforma no podía comparar mesa, cinta y camión entre sí — que es
justo la comparación que justifica tener tres fuentes. Ahora la tarea es
de dónde se coge el paquete: table | conveyor | truck, el mismo
identificador que ya viaja en runs.config.source.

Los tres sitios de siempre, y en ese orden: el CHECK de 001_schema.sql,
TASKS en schema.py y TASK_TEXT en ui.ts. induction, palletizing y
paletizado-guionizado se quedan en el CHECK: dice qué se puede almacenar
—y hay episodios subidos con ellos—, no qué se produce hoy.

test_vocabulario.py pasa: los tres vocabularios cuadran.

---------

Co-authored-by: manuamest <[email protected]>
Encima de la lista de niveles, la mirada de lejos de la tarea en la que se
trabaja ahora: cuatro cifras de conjunto, la curva de avance y en qué acabaron
los episodios. Las tarjetas por nivel siguen contando el detalle.

- Las cifras son sumas sobre el total (éxitos/episodios), no el promedio de las
  tasas de cada ejecución: una prueba de 3 episodios no pesa lo mismo que un
  benchmark de 40. No se enseña ninguna mediana global porque la mediana de las
  medianas de cada ejecución no es la mediana, y eso pide una vista nueva.
- La curva mide cada ejecución contra la primera DE SU NIVEL. Con la tasa cruda,
  entrar en un nivel más difícil hunde la línea y leería «va a peor» justo
  cuando el sistema ha avanzado.
- El anillo separa el derrumbe del resto de fallos: es EL fallo de apilar, el
  que dice si el planificador entiende el centro de gravedad. Cuenta solo los
  episodios acabados, y lo dice, porque los que siguen en marcha no acabaron en
  nada.
- Solo la primera tarea, que es la de ahora. Una mirada de lejos con varias
  tareas apiladas deja de serlo.

Donut nuevo como átomo, igual que Trend y Sparkline: SVG con stroke-dasharray,
sin dependencias y con los colores por token.

Trend acepta un alto opcional. No bastaba con subirlo: con el viewBox de 400 de
ancho, preserveAspectRatio centraba el dibujo en vez de llenar la caja, así que
la curva nunca había ocupado su ancho. Al pasar `height` el viewBox se dibuja a
8:1 y llena; sin pasarlo, el alto fijo de siempre. Las 43 curvas de las tarjetas
por nivel se quedan a 64 px, sin un píxel de diferencia.
@vercel

vercel Bot commented Sep 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
platform Ready Ready Preview Sep 20, 2026 2:39am UTC

@manuamest
manuamest merged commit 86a2ccb into main Sep 20, 2026
6 checks passed

This branch was successfully deployed

1 active deployment
Preview – platform — e2a529f4 Deployed Sep 20, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant