diff --git a/cowork/InQ ROI - Simulador de procesos/sprints/sprint-5/ETAPA_4F_PROMPT.md b/cowork/InQ ROI - Simulador de procesos/sprints/sprint-5/ETAPA_4F_PROMPT.md new file mode 100644 index 0000000..56f3eab --- /dev/null +++ b/cowork/InQ ROI - Simulador de procesos/sprints/sprint-5/ETAPA_4F_PROMPT.md @@ -0,0 +1,224 @@ +# Sprint 5 — Etapa 4F: Fix definitivo save de perfil + ETAPA_4E_PROMPT pendiente + +## Contexto + +InQ ROI — React 18 + Vite + TypeScript + TanStack Router + Zustand + shadcn/ui + Supabase v2.106.2. + +Esta etapa resuelve DOS issues simultáneos: + +1. **Save de perfil produce "sin llamadas de red + sin mensajes en consola"** al hacer click en Guardar +2. **Los Cambios 1-4 del ETAPA_4E_PROMPT.md nunca fueron aplicados al código** — solo se commitió el archivo del prompt + +--- + +## Estado actual del código (ya verificado — no requiere re-lectura inicial) + +- `src/components/ProfileSheet.tsx`: ya usa `fetch()` nativo con token de localStorage. ✅ NO tocar este archivo salvo el Cambio 3 de abajo. +- `src/lib/supabase.ts`: `getSessionSafe()` sigue presente, `lockAcquireTimeout` NO configurado. ❌ +- `src/store/library-store.ts`: sigue con `await getSessionSafe()`. ❌ +- `src/store/process-store.ts`: sigue con `await getSessionSafe()` (2 ocurrencias). ❌ +- `src/features/report/useReportData.ts`: sigue con `await getSessionSafe()`. ❌ + +--- + +## Causa raíz: botón deshabilitado por `name.trim() === ''` + +### Diagnóstico + +`ProfileSheet.tsx` tiene: + +```tsx +