- colors.ts: gradiente continuo verde→amarillo→naranja→rojo (interpolación N-stops genérica) - Renombra modos: relative→percentile (rank-based), absolute→minmax - Hook useHeatmapMode(): persiste selección en localStorage con clave inq-roi:heatmap-mode - HeatmapLegend: barra de 4 stops, labels P0/P50/P100 en modo percentil - HeatmapModeToggle: etiquetas "Percentil" / "Min-max" - pdf-sections.ts: leyenda PDF con 4 stops interpolados - BpmnCanvas: controles de zoom movidos a esquina inferior izquierda (evita logo bpmn.io) - Tests: 528 unitarios pasan; E2E recalibrados con vecino más cercano (distancia euclidiana) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
65 lines
2.8 KiB
Markdown
65 lines
2.8 KiB
Markdown
# OBSERVATIONS — Sprint 5
|
||
|
||
> Hallazgos descubiertos durante el sprint actual.
|
||
> Este archivo se vacía al cerrar el sprint: los hallazgos se promocionan a TECH_DEBT.md o BACKLOG.md, o quedan resueltos.
|
||
>
|
||
> **Sprint 4 cerrado el 2026-06-18.** Observaciones archivadas — ítems migrados a BACKLOG.md y TECH_DEBT.md.
|
||
|
||
---
|
||
|
||
## Convención de etiquetas
|
||
|
||
- `[CURRENT-SPRINT]` — Se resuelve en este sprint
|
||
- `[DEFERRED-TECH-DEBT]` — Se va a TECH_DEBT.md al cerrar el sprint
|
||
- `[DEFERRED-BACKLOG]` — Se va a BACKLOG.md al cerrar el sprint
|
||
- `[RESOLVED]` — Resuelto durante el sprint, archivar al cierre
|
||
|
||
---
|
||
|
||
## Hallazgos activos
|
||
|
||
### [RESOLVED] Etapa 1 — Workspace loading fix + carry-over skeleton
|
||
|
||
**Estado:** OK formal del director — 2026-06-19.
|
||
**Fix principal:** `process-store.ts` y `useReportData.ts` usaban `getSession()` sin timeout; reemplazados por `getSessionSafe()`. Error Boundary + estado `error` inline con retry button agregados.
|
||
**Carry-over a Etapa 2:** `WorkspaceSkeleton.tsx` fue creado pero el spinner del router-level guard (TanStack Router) intercepta antes de que el componente monte. El skeleton no aparece en la práctica. Corregir en Etapa 2 como Fix 0 (bajo esfuerzo).
|
||
**SupabaseAuthService.ts:** su `getSession()` directo documentado como excepción intencional (necesita el objeto sesión real, no es barrera descartable). Sin callers activos. Migrar a `getSessionSafe()` cuando tenga callers — pendiente registrar en TECH_DEBT.
|
||
|
||
---
|
||
|
||
## Hallazgos resueltos durante el sprint
|
||
|
||
### [RESOLVED] Etapa 2 — Zoom BPMN fix + controles + skeleton
|
||
|
||
**Estado:** OK formal del director — 2026-06-19.
|
||
**Fixes:** fit-viewport `'auto'` agregado (una línea), zoom-in/zoom-out en esquina inferior derecha (Lucide icons, 1.2x factor, límites 0.1x–4x), skeleton wired correctamente en WorkspacePage (guard `isLoading` simple sin `!currentProcess`).
|
||
**Carry-over a Etapa 3:** controles de zoom solapan el logo bpmn.io (esquina inferior derecha). Fix: mover a esquina inferior izquierda (`left: 12` en lugar de `right: 12`). Una línea CSS.
|
||
|
||
---
|
||
|
||
## Hallazgos diferidos (promocionar al cerrar sprint)
|
||
|
||
*(vacío)*
|
||
|
||
---
|
||
|
||
## Notas operativas
|
||
|
||
- Los hallazgos resueltos quedan acá hasta el cierre del sprint. Al cerrar, se archiva o purga.
|
||
- Los hallazgos sin resolver se promocionan a `TECH_DEBT.md` o `BACKLOG.md` según corresponda.
|
||
- Este archivo NO contiene roadmap futuro ni deuda histórica — solo hallazgos del sprint en curso.
|
||
|
||
---
|
||
|
||
## Cierre del sprint (checklist)
|
||
|
||
Cuando el sprint cierre, ejecutar:
|
||
|
||
```
|
||
[ ] Verificar que todos los items [CURRENT-SPRINT] están RESOLVED
|
||
[ ] Mover items [DEFERRED-TECH-DEBT] a TECH_DEBT.md (si no están ya)
|
||
[ ] Mover items [DEFERRED-BACKLOG] a BACKLOG.md (si no están ya)
|
||
[ ] Archivar o purgar este archivo
|
||
[ ] Crear OBSERVATIONS.md vacío para el sprint siguiente
|
||
```
|