Files
inq-roi-simulador-web/OBSERVATIONS.md
Marcos Benítez a65bec45c3 feat(sprint-5/etapa-3): heatmap gradiente 4 stops + modo percentil + localStorage + fix zoom
- 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>
2026-06-19 18:28:10 -03:00

2.8 KiB
Raw Blame History

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.1x4x), 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