Some checks are pending
/ Deploy to Cloudflare Pages (push) Waiting to run
- Crea RequireRole component (Approach B — router sin auth context)
- AdminLayout: elimina useEffect + spinner + null check, usa <RequireRole roles={['platform_admin']}>
- ImportPage: elimina useEffect guard + return null client_viewer, usa <RequireRole roles={['platform_admin','member','client_editor']}>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6.8 KiB
6.8 KiB
Changelog
All notable changes to InQ ROI will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
Added
RequireRolecomponente wrapper para guards de rol declarativos (Approach B — sin router context) (Sprint 8)- Edge Function
delete-user: hard delete permanente de usuario en auth.users + public.users (Sprint 8) - Edge Function
list-users: lista usuarios con email desde auth.users vía service_role (Sprint 8) - UsersPage: columna "Email" entre Nombre y Rol (via Edge Function list-users) (Sprint 8)
- Migración 018: policy INSERT en
processesextendida paraclient_editoren su org (Sprint 8) - ImportPage:
client_editorpuede importar BPMN; proceso se crea conorgIdde su cuenta (Sprint 8) - LibraryPage: botón "Importar BPMN" visible para
client_editor; empty state con call-to-action de importar (Sprint 8)
Changed
- AdminLayout: guard useEffect + spinner → RequireRole wrapper (sin flash de contenido protegido) (Sprint 8)
- ImportPage: guard useEffect → RequireRole wrapper (Sprint 8)
- UsersPage: "Eliminar" (soft delete / revoke-user) → "Eliminar permanentemente" (hard delete / delete-user) (Sprint 8)
Fixed
- ImportPage: texto de marca corregido — "Process Cost Platform · MVP Fase 0" → "InQ ROI" (Sprint 8)
- ImportPage: párrafo "Sin backend · Sin registro · Datos guardados localmente" eliminado (obsoleto desde Sprint 4) (Sprint 8)
- OrganizationsPage: InQuality visible en lista con badge naranja — quitar filtro is_provider (Sprint 8)
- WorkspacePage: back button pasa ?org=orgId para scroll contextual al volver a biblioteca (Sprint 8)
- LibraryPage: scroll automático a sección de org al recibir ?org param desde workspace (Sprint 8)
- router.tsx: redirect de settingsRoute pasa search: { org: undefined } para compatibilidad con validateSearch (Sprint 8)
Added (Etapas 1-4)
- GlobalSettingsPanel: selector de área reemplaza campo libre "Cliente" (Sprint 8)
- WorkspacePage topbar: display de
areaNamede solo lectura reemplaza edición inline de cliente (Sprint 8) - OrganizationDetailPage: tercer tab "Áreas" con CRUD completo — crear, renombrar, eliminar con confirmación (Sprint 8)
- LibraryPage: agrupación org → área con headers colapsables para admin (Sprint 8)
- Settings ⚙ oculto para roles cliente + guard beforeLoad en /settings (Sprint 8)
- Interface
Areaen domain/types.ts (Sprint 8) - Campos
areaId/areaNameenProcess(Sprint 8) - Repositorio
supabaseAreaRepocon CRUD completo para tablaareas(Sprint 8) fromRow/toRow/updateEditable/getByIden process-repo extendidos conarea_id(Sprint 8)
[0.8.0] - 2026-07-07
Added
- CHANGELOG.md con historial de versiones
- AppFooter con versión visible en todas las páginas
- Conventional Commits adoptados como estándar de commits
[0.7.0] - 2026-07-07
Added
- Multi-tenancy: tabla
organizations, 4 roles de plataforma (platform_admin, member, client_editor, client_viewer) - Edge Functions
invite-useryrevoke-userpara gestión de acceso - Panel de administración
/admincon gestión de Organizations y Users - Login email/password y página
/reset-passwordpara flujo de invitación - Back button contextual en workspace (muestra nombre del cliente via JOIN en getById)
- Política RLS
simulations_updatepara que client_editor pueda guardar simulaciones
Fixed
- Race condition en AuthContext:
isProfileLoadedcomo guard antes de renderizar contenido rol-dependiente syncProfileFromDBahora leeplatform_roleyorg_iddesde DB (no inferido por dominio de email)normalizeGroupLabel(): limpia artículos iniciales de labels de grupos con datos corruptos
[0.6.0] - 2026-06-24
Added
- Logo InQuality en header de PDFs (isotipo, páginas 2+, fallback a texto)
- Panel de análisis de sensibilidad en tab ROI: sliders de volumen e inversión, recálculo en tiempo real
- Doble línea en CumulativeSavingsChart (base gris dashed + ajustada naranja con área sombreada)
whitespace-nowrapen MetricCell de columna Eficiencia
Fixed
ProfileSheet.getAccessToken()leía clave inexistente ('supabase.auth.token'); el guardado de perfil nunca llegaba a Supabase desde Sprint 4. Fix: calcularsb-${projectRef}-auth-token
[0.5.0] - 2026-06-23
Added
- Fix crítico: workspace loading — race condition auth/processId resuelto con
isProfileLoaded - Controles de zoom BPMN: fit-viewport con centering correcto, botones zoom-in/zoom-out/fit
- Heatmap con gradiente continuo de 4 stops + toggle percentile/min-max persistido
- "Ver procesos por recurso" en catálogo de recursos
- Campo "empresa" en perfil de usuario
- Columna "Eficiencia de automatización" en ComparisonTable (+ columna "Ahorro esperado")
Fixed
- Flakiness en botón "Guardar cambios": debounce + Web Locks en process-store
- Specs E2E migradas de Dexie a Supabase
[0.4.0] - 2026-06-18
Added
- Autenticación Google Workspace OAuth + Supabase
- Migración completa IndexedDB (Dexie) → PostgreSQL (Supabase)
- Row Level Security con
is_platform_admin()y políticas granulares - Catálogo global de recursos (sin processId)
- Identidad en UI: avatar/dropdown AppHeader, "Actualizado por" en proceso
- ResourceCatalogPage + ResourceFormSheet
- Fix Web Locks API deadlock (processLock)
- Fix
.maybeSingle()en simulation-repo - Fix
formatCostPerHour()precisión dinámica - Fix Google OAuth
prompt: 'select_account' - Catálogo con contexto de proceso (banner + query param fromProcess)
[0.3.0] - 2026-05-27
Added
- Biblioteca de procesos con grupos/tags/búsqueda (Dexie v4)
- Indicador de simulación desactualizada ("Hay cambios sin simular")
- Zoom BPMN fit-viewport
- Recursos TO-BE en escenario automatizado (motor + UI + reporte + PDF)
- Branding InQ ROI en todas las páginas (AppHeader + favicon + logos)
- Kit de socialización del equipo: guía de usuario, guía de pre-venta, presentación PPTX
[0.2.0] - 2026-05-20
Added
- Modelo de recursos
utilizationMinutes + units(migración Dexie v3) - ActivityPanel con cálculo de costo en tiempo real
- Reporte web con filas expandibles de desglose de recursos
- Edición inline de proceso/cliente
- Tabla de recursos en PDF (página condicional)
[0.1.5] - 2026-05-18
Added
- Identidad visual completa: paleta naranja InQ #F59845, gradiente → magenta #ED3E8F
- PDFs de clase profesional: 3 documentos (Actual, Automatizado, ROI)
- Badge ⚡ en canvas BPMN para actividades automatizables
- ROI con 5 KPIs
- Sistema de componentes establecido
[0.1.0] - 2026-05-01
Added
- MVP: importar BPMN 2.0, parametrizar actividades, simular costos, exportar PDF
- Motor de simulación AS-IS / TO-BE (Modelo A)
- Heatmap de costos en canvas BPMN
- Reporte web básico con tabla de actividades y gráfico de barras