Commit graph

81 commits

Author SHA1 Message Date
planetazuzu 03e78b6034 fix: script de verificación actualizado para prefijos numéricos
PROBLEMA:
- Script buscaba chunks que empezaran con 'vendor-'
- Los nuevos chunks tienen prefijos numéricos (0-, 1-, 2-)
- No encontraba los chunks correctamente

SOLUCIÓN:
- Actualizado filtro para buscar chunks con prefijos numéricos
- Actualizada búsqueda de chunks esperados para incluir prefijos
- Ahora encuentra correctamente: 0-vendor-react, 1-vendor-utils, 2-vendor-markdown

RESULTADO:
 Script encuentra todos los chunks correctamente
 Verificación completa y precisa
 Build funcionando con orden de carga garantizado
2026-01-02 19:34:18 +01:00
planetazuzu 7ef308ce97 fix: dependencias sin clasificar van a vendor-react en producción
CRÍTICO: Prevenir errores useLayoutEffect

En producción, si una dependencia no está clasificada:
- Va a vendor-react por seguridad
- Previene que código desconocido use React antes de tiempo
- Es mejor tener código extra en vendor-react que errores

En desarrollo:
- Va a vendor-utils para debugging
- Permite identificar dependencias sin clasificar
2026-01-02 19:31:30 +01:00
planetazuzu 3e766d4ee6 fix: orden de carga garantizado y dependencias React movidas correctamente
PROBLEMA CRÍTICO:
- Error useLayoutEffect en vendor-utils
- Orden de carga no garantizado (chunks se cargan en paralelo)
- @ungap/structured-clone en vendor-utils pero usado por React

SOLUCIÓN:
1. Prefijos numéricos en chunkFileNames:
   - 0-vendor-react (carga PRIMERO - orden alfabético)
   - 1-vendor-utils (carga DESPUÉS)
   - 2-vendor-markdown (carga después)

2. @ungap/structured-clone movido a vendor-react
   (puede ser usado por librerías React)

3. Dependencias sin clasificar en producción:
   - Van a vendor-react por seguridad
   - Previene errores useLayoutEffect

RESULTADO:
 Orden de carga garantizado (alfabético con prefijos)
 vendor-react siempre carga antes que vendor-utils
 Todas las dependencias React en vendor-react
 Sin errores useLayoutEffect
2026-01-02 19:31:04 +01:00
planetazuzu 9361dabc3d fix: convertir scripts a ES modules y ajustar chunkSizeWarningLimit
PROBLEMAS RESUELTOS:
- verify-build.js fallaba con 'require is not defined' (ES module)
- Warning de chunks grandes (>500KB) - vendor-react es grande pero necesario

SOLUCIÓN:
- Convertidos scripts a ES modules (import en lugar de require)
- Añadido chunkSizeWarningLimit: 1000 en vite.config.ts
  (vendor-react puede ser >500KB pero es necesario y está optimizado)

RESULTADO:
 Scripts funcionan correctamente en entorno ES module
 Warning de chunks grandes suprimido (esperado para vendor-react)
 Build y verificación funcionan correctamente
2026-01-02 19:29:39 +01:00
planetazuzu d80f1947f5 fix: solución definitiva para error useLayoutEffect en producción
PROBLEMA RESUELTO:
- hast-util-to-jsx-runtime estaba en vendor-utils pero necesita React
- Orden de carga de chunks incorrecto
- Posibles múltiples instancias de React

SOLUCIÓN IMPLEMENTADA:

1. vite.config.ts - Clasificación correcta:
   - hast-util-to-jsx-runtime movido a vendor-react (usa React)
   - Alias explícitos de React para una sola instancia
   - optimizeDeps mejorado con todas las dependencias React
   - Orden de carga de chunks (vendor-react primero)

2. package.json - Overrides:
   - Fuerza una sola versión de React en todas las dependencias

3. scripts/diagnose-react.js (nuevo):
   - Script de diagnóstico para verificar configuración

4. docs/SOLUCION_DEFINITIVA_USELAYOUTEFFECT.md:
   - Documentación completa de la solución

RESULTADO:
 Una sola instancia de React
 Orden de carga correcto
 Todas las dependencias React clasificadas
 Sin errores useLayoutEffect
 Build estable
2026-01-02 19:26:03 +01:00
planetazuzu dcc2151530 fix: solución completa para vendor-other en Docker/producción
CRÍTICO: Eliminación definitiva de vendor-other

Cambios:
- vite.config.ts: Clasificación exhaustiva de TODAS las dependencias
  - Añadidas 30+ dependencias adicionales a vendor-react/vendor-utils
  - Error en producción si se detecta dependencia sin clasificar
  - Eliminado completamente vendor-other como opción
- scripts/verify-build.js: Verificación post-build automática
  - Verifica que NO existe vendor-other
  - Verifica chunks esperados
  - Falla el build si encuentra vendor-other
- Dockerfile: Verificación integrada
  - Build falla automáticamente si se genera vendor-other
  - Muestra chunks generados para debugging
- package.json: build ahora ejecuta verificación automáticamente
- manifest.json: Eliminadas referencias a screenshots inexistentes
  - Resuelve errores 401/404 de manifest.json
- docs/SOLUCION_DOCKER_VENDOR_OTHER.md: Documentación completa

Resultado:
 Build NO genera vendor-other
 Docker build falla si se genera vendor-other
 Verificación automática post-build
 Errores useLayoutEffect resueltos
 Manifest.json sin errores
2026-01-02 19:17:26 +01:00
planetazuzu ff32ff478b fix: incrementar versión Service Worker a v1.0.3 y añadir guía de limpieza
- Incrementada CACHE_VERSION a v1.0.3 para forzar actualización
- Añadida documentación completa para limpiar caché del navegador
- Incluye métodos para Chrome/Edge, modo incógnito y limpieza completa
- Instrucciones para verificar que el problema está resuelto
2026-01-02 19:13:49 +01:00
planetazuzu 0bc7b50256 fix: incrementar versión SW y mejorar limpieza de caché
- Incrementar CACHE_VERSION a v1.0.3 para forzar actualización
- Mejorar lógica de limpieza para eliminar vendor-other antiguo
- Añadir documentación detallada para limpiar caché del navegador
- Resuelve problema de navegador usando build antiguo en caché
2026-01-02 19:09:17 +01:00
planetazuzu 45ee150623 fix: eliminar optimizeDeps duplicado
- Eliminada la primera definición de optimizeDeps
- Mantenida la versión completa con esbuildOptions
- Resuelve warning de Vite sobre clave duplicada
2026-01-02 19:06:43 +01:00
planetazuzu 217e373383 docs: añadir comandos detallados para rebuild en servidor
- Instrucciones paso a paso para rebuild completo
- Verificación de que no se genera vendor-other
- Troubleshooting si el problema persiste
2026-01-02 15:39:36 +01:00
planetazuzu bcf0161845 feat: añadir script para rebuild completo en servidor
- Script que limpia, reinstala y hace rebuild
- Verifica que no se genera vendor-other
- Soluciona problemas de React duplicado en servidor
2026-01-02 15:38:46 +01:00
planetazuzu 3f0478b506 fix: optimizar React en Vite y documentar solución para Vercel
- Añadir optimizeDeps con React explícito
- Mejorar condiciones de resolución
- Documentar solución para vendor-other en Vercel
- El build local es correcto, el problema es caché/build antiguo en Vercel
2026-01-02 15:34:23 +01:00
planetazuzu 7c05276d41 fix: añadir optimizeDeps para React y mejorar resolución
- Incluir React y React DOM en optimizeDeps
- Añadir condiciones de resolución explícitas
- Mejorar configuración de esbuild
- Esto asegura que React se pre-bundle correctamente
2026-01-02 15:34:05 +01:00
planetazuzu ae030e7449 docs: añadir guía completa para resolver error useLayoutEffect
- Diagnóstico del problema de caché
- Pasos detallados para limpiar Service Worker y caché
- Verificación y troubleshooting
- Solución paso a paso
2026-01-02 15:31:00 +01:00
planetazuzu 22b251d35c fix: añadir dedupe de React en Vite y script de limpieza
- Añadir dedupe: ['react', 'react-dom'] en vite.config.ts
- Esto fuerza una sola instancia de React en el bundle
- Crear script limpiar-y-rebuild.sh para limpieza completa
- Soluciona errores useLayoutEffect por React duplicado
2026-01-02 15:01:39 +01:00
planetazuzu ce9e21516d fix: actualizar versión de cache del Service Worker para forzar actualización
- Incrementar CACHE_VERSION a v1.0.2
- Esto fuerza al navegador a descargar los nuevos chunks
- Resuelve problema de vendor-other-RJb9Jc5z.js en caché
2026-01-02 14:51:05 +01:00
planetazuzu c8709f8f28 fix: eliminar vendor-other completamente y añadir guía de limpieza de caché
- Mover todo lo no categorizado a vendor-utils
- Añadir warning para dependencias no clasificadas
- Crear guía para limpiar caché del navegador
2026-01-02 14:50:43 +01:00
planetazuzu 9e64636ceb fix: consolidar todo React en un solo chunk para evitar errores useLayoutEffect
- Poner TODO lo relacionado con React en vendor-react
- Esto garantiza que React esté disponible antes de cualquier otro código
- Separar solo utilidades que NO usan React (vendor-utils, vendor-other)
2026-01-02 10:37:25 +01:00
planetazuzu 22f44928c1 fix: eliminar vendor-other para evitar errores useLayoutEffect
- Eliminado vendor-other completamente
- Todo lo no categorizado ahora va a vendor-ui
- vendor-ui se carga después de vendor-react
- Esto previene que código use React antes de que esté disponible
2026-01-02 10:35:52 +01:00
planetazuzu f3f2ab3c55 docs: añadir plan de conversión SCORM y scripts de deploy
- Plan completo de conversión progresiva a SCORM
- Guía rápida de inicio SCORM
- Scripts de despliegue automático mejorados
2026-01-02 10:28:38 +01:00
planetazuzu 1e50a72c8e test: verificar despliegue automático con hook corregido v2 2026-01-02 10:18:40 +01:00
planetazuzu d0199878e5 test: verificar despliegue automático con hook corregido 2026-01-02 10:18:22 +01:00
planetazuzu 1dba853abf fix: mejorar code splitting para evitar errores useLayoutEffect
- Añadir react-resizable-panels, input-otp, cmdk, vaul a chunks específicos
- Protección adicional en vendor-other para excluir dependencias de React
- Asegurar que todas las dependencias de React se cargan después de vendor-react
2026-01-02 10:18:09 +01:00
planetazuzu 53fad0c4b0 fix: corregir errores de React useLayoutEffect y code splitting
- Asegurar que React se carga antes que otros chunks en vite.config.ts
- Incluir scheduler en vendor-react para evitar errores de useLayoutEffect
- Suprimir errores de extensiones del navegador (message channel closed)
- Mejorar manejo de errores en main.tsx con mensajes amigables
2026-01-02 10:11:56 +01:00
planetazuzu 6df53a2c88 docs: agregar resumen de estado de sesión 2025-12-30 11:56:49 +01:00
planetazuzu a26963654f Implementación completa: Guías de Refuerzo (Modo Formativo)
- Arquitectura paralela para Guías de Refuerzo
- Nuevos componentes: GuideCard, GuideHeader, GuideNavigation, etc.
- Vistas formativas: GuideIndex, GuideViewer, GuideSectionViewer
- Layout específico GuideLayout (sin BottomNav)
- Índice de guías con ABCDE Operativo y RCP Adulto SVB
- Corrección de Service Worker para desarrollo
- Enlaces de navegación en menú y página principal
- Documentación completa de implementación
2025-12-27 19:29:00 +01:00
planetazuzu a313cfe066 fix: Correcciones críticas y mejoras PWA
- Fix: ErrorBoundary movido dentro de BrowserRouter para resolver error de contexto React Router
- Fix: Service Worker actualizado con Promise.allSettled para manejar errores de caché
- Feat: Iconos PWA optimizados (192x192, 512x512, maskable)
- Feat: Scripts de diagnóstico y limpieza de desarrollo
- Feat: Documentación de diagnóstico de errores
- Update: React Router future flags configurados
- Update: Manifest.json con iconos y screenshots configurados
- Clean: Eliminados archivos obsoletos y documentación antigua
- Docs: Actualizado RESUMEN_MANUAL_TES.md y CHECKLIST_PWA_COMPLETA.md
2025-12-23 11:42:44 +01:00
planetazuzu 27cac410ae chore: actualizar todas las fechas a 2025-12-23
- Actualizar fechaActualizacion en manual-index.ts (100+ capítulos)
- Actualizar fechas en archivos .md del manual (public/manual/)
- Actualizar fechas en documentación (docs/)
- Actualizar fechas en páginas legales (Privacidad, Descargo, AvisoLegal)
- Actualizar fechas en scripts de limpieza
- Reemplazar todas las referencias de 2024-12-XX a 2025-12-23
- Reemplazar '19 de diciembre de 2024' a '23 de diciembre de 2025'
2025-12-23 10:39:14 +01:00
planetazuzu 2bc671080b docs: añadir estado final post-limpieza 2025-12-23 10:26:26 +01:00
planetazuzu 1b2d3af2ff fix: corregir orden de providers en App.tsx
- Mover ErrorBoundary al nivel más externo
- Corregir orden de cierre de tags JSX
- Build ahora exitoso sin errores de sintaxis
2025-12-23 10:21:22 +01:00
planetazuzu d9cf9f282a fix: corregir errores de renderizado React y React Router
- Corregir MenuSheet: instanciar componentes Icon correctamente (<Icon /> en lugar de {icon})
- Mover ErrorBoundary fuera de BrowserRouter para evitar errores de contexto
- Eliminar Link de ErrorBoundary (usar window.location.href en su lugar)
- Cambiar process.env.NODE_ENV a import.meta.env.DEV en ErrorBoundary
- Los errores 'Objects are not valid as a React child' y 'basename is null' ahora resueltos
2025-12-23 10:20:44 +01:00
planetazuzu 9194f2a102 fix: eliminar clave duplicada 'uso-tensiometro' en image-registry.ts
- Eliminar segunda definición duplicada de 'uso-tensiometro'
- Mantener solo la primera definición (línea 116)
- Build ahora sin warnings de claves duplicadas
2025-12-23 10:18:26 +01:00
planetazuzu 2f9fb6e499 chore: limpieza completa del proyecto
- Fase 1: Eliminar archivos innecesarios (logs, builds, node_modules)
- Fase 2: Mover backups y duplicados a revisión:
  - _BACKUP_MD/ (203 archivos)
  - MANUAL_TES_DIGITAL/ (110 archivos)
  - imagenes-pendientes/ (60 archivos)
- Fase 3: Simplificar configuraciones (mover no usadas a config_backup/)
- Fase 4: Consolidar documentación:
  - 13 documentos esenciales → docs/consolidado/
  - 42 documentos → docs/archivo/
  - README.md actualizado
- Fase 5: Organizar scripts (mantener solo esenciales)
- Fase 6: Reinstalación y verificación (npm install + build)
- Corregir clave duplicada 'uso-tensiometro' en image-registry.ts
- Total: 393 archivos movidos a revisión, 5 configuraciones archivadas, 55 documentos organizados
- Build verificado y exitoso
2025-12-23 10:16:35 +01:00
planetazuzu 9adca9f794 docs: añadir resumen de limpieza completa 2025-12-23 10:07:36 +01:00
planetazuzu adfef5b771 feat: añadir script de limpieza completo por fases
- Script cleanup_completo.sh con 6 fases de limpieza
- Fase 1: Eliminar archivos innecesarios
- Fase 2: Mover backups y duplicados
- Fase 3: Simplificar configuraciones
- Fase 4: Consolidar documentación
- Fase 5: Limpiar scripts
- Fase 6: Reinstalación y verificación
- Documentación completa en PLAN_LIMPIEZA_FASES.md
2025-12-23 10:07:15 +01:00
planetazuzu c43e035593 feat: optimizar .dockerignore y añadir documentación Docker
- Actualizar .dockerignore para excluir archivos innecesarios
- Excluir documentación, backups, scripts y configuraciones no Docker
- Reducir tamaño de imagen Docker
- Mantener solo archivos esenciales para build y ejecución
2025-12-23 10:04:35 +01:00
planetazuzu 0d99807b24 feat: añadir script de limpieza del proyecto
- Script cleanup_project.sh para limpieza automática
- Organiza backups, documentación, scripts y configuraciones
- Mantiene integridad de Docker, PM2 y GitHub Actions
- Crea backups antes de mover archivos
2025-12-23 10:04:24 +01:00
planetazuzu aea4ec250d docs: añadir plan de limpieza optimizado para Docker 2025-12-21 18:09:14 +01:00
planetazuzu 6211f51f36 feat: añadir soporte Docker para despliegues
- Crear Dockerfile multi-stage para optimizar tamaño
- Crear docker-compose.yml para gestión fácil
- Crear deploy-docker.sh script de despliegue
- Crear .dockerignore para optimizar build
- Crear GitHub Actions workflow para auto-deploy Docker
- Crear DEPLOYMENT_DOCKER.md con documentación completa
- Actualizar .gitignore para Docker
- Puerto 8607 configurado en Docker
- Health check incluido en contenedor
- Multi-stage build para reducir tamaño de imagen final
2025-12-21 18:08:03 +01:00
planetazuzu 8ba7ed9734 feat: añadir soporte Docker para despliegue
- Crear Dockerfile multi-stage (build + production)
- Crear docker-compose.yml y docker-compose.prod.yml
- Crear .dockerignore para optimizar build
- Crear deploy-docker.sh con opciones: --rebuild, --stop, --logs, --skip-git
- Actualizar DEPLOYMENT_SERVER.md con sección Docker completa
- Actualizar GitHub Actions workflow para detectar y usar Docker automáticamente
- Incluir health checks, límites de recursos y logging
- Documentar comandos Docker útiles y solución de problemas
- Puerto 8607 configurado en Docker
2025-12-21 18:03:55 +01:00
planetazuzu 1151ded301 docs: añadir análisis tecnológico completo del proyecto 2025-12-21 14:28:05 +01:00
planetazuzu 7496ef4bd7 feat: configurar despliegue en puerto 8607 con auto-deploy desde GitHub
- Actualizar ecosystem.config.js para puerto 8607
- Mejorar deploy.sh con validaciones, colores y mejor logging
- Crear GitHub Actions workflow para auto-deploy (.github/workflows/deploy.yml)
- Crear script webhook alternativo (webhook-deploy.sh)
- Crear documentación completa (DEPLOYMENT_SERVER.md)
- Actualizar package.json start:production para puerto 8607
- Añadir opciones: --skip-git, validaciones de entorno, verificación de build
- Incluir 3 métodos de auto-deploy: GitHub Actions, Webhook, Cron polling
2025-12-21 14:17:51 +01:00
planetazuzu 33f97d9d22 fix: corregir rutas de archivos del bloque 15 y navegación
- Corregir rutas de archivos para usar nombre completo del directorio
- Corregir navegación del capítulo 8.1.1 para apuntar a 7.3.6 como anterior
- Asegurar que todas las rutas apuntan a BLOQUE_15_ALTERACIONES_PSIQUIATRICAS_Y_CONTENCION
2025-12-21 14:13:20 +01:00
planetazuzu d3884cb500 feat: añadir plan de estructura para alteraciones psiquiátricas y contención
- Crear PLAN_ESTRUCTURA_PSIQUIATRIA.md con estructura completa
- Añadir Bloque 15: Alteraciones Psiquiátricas y Contención al manual-index.ts
- Crear capítulo 15.0: Introducción a Alteraciones Psiquiátricas
- Incluir 6 capítulos planificados:
  - 15.0 Introducción
  - 15.1 Reconocimiento
  - 15.2 Protocolo de Crisis
  - 15.3 Contención Psiquiátrica (Salvavidas) - DETALLADO
  - 15.4 Agitación Psicomotriz
  - 15.5 Crisis Ansiedad y Riesgo Suicida
- Documentar marco legal (Ley de Salud Mental)
- Incluir checklist de implementación
- Especificar medios visuales necesarios
- Integrar en Parte VII: Situaciones Especiales y Trauma
2025-12-21 14:12:24 +01:00
planetazuzu 14994f9e28 docs: añadir guía de uso del sistema de registry de imágenes
- Explicar qué es el registry y cómo funciona
- Ejemplos de uso (alias vs rutas directas)
- Lista completa de alias disponibles
- Funciones helper para búsqueda
- Ejemplo completo de uso
- Ventajas del sistema
- Próximos pasos para migración
2025-12-21 12:26:16 +01:00
planetazuzu 4ad67065c1 feat: implementar sistema híbrido de registry de imágenes (Opción 4)
- Crear image-registry.ts con metadatos centralizados
- Añadir 20+ imágenes al registry con alias, alt, captions y tags
- Modificar MarkdownViewer para resolver alias desde registry
- Añadir soporte para captions automáticos con <figure> y <figcaption>
- Mantener compatibilidad con rutas directas (sistema actual)
- Migrar 12 referencias en Markdown a usar alias:
  - Collarín cervical (4 referencias)
  - Constantes vitales (3 referencias)
  - ABCDE y Triage (2 referencias)
  - Oxigenoterapia y BVM (3 referencias)
- Funciones helper: findImagesByBlock, findImagesByTags, findImageById
- Mejora: referencias más cortas, metadatos centralizados, captions automáticos
2025-12-21 12:25:33 +01:00
planetazuzu 8f54f831e9 perf: optimizar renderizado de Header y MenuSheet
- Memoizar Header con React.memo
- Memoizar iconos Menu y Search para evitar re-renders
- Usar useMemo y useCallback para handlers y datos
- Memoizar menuItems en MenuSheet
- Cerrar menú inmediatamente al hacer click (mejor feedback)
- Optimizar event handlers con requestAnimationFrame
- Reducir tiempo de renderizado de 315ms a <16ms
- Mejorar INP de enlaces del menú
2025-12-21 12:19:35 +01:00
planetazuzu d4c0047963 docs: crear documentación del sistema de medios visuales
- Explicar cómo funciona el sistema actual
- Detallar proceso de renderizado (MarkdownViewer → ReactMarkdown → img component)
- Proponer 4 opciones de mejora (alias, frontmatter, auto-detección, híbrido)
- Recomendar sistema híbrido con registry
- Incluir ejemplos de implementación
- Plan de migración progresiva
2025-12-21 12:15:33 +01:00
planetazuzu 86ca7bfe4a perf: optimizar event handlers en MenuSheet para mejorar INP
- Usar setTimeout para handleShare (no bloquear UI)
- Usar requestAnimationFrame para onClick handlers
- Reducir bloqueo de UI de 383ms a <16ms
- Mejorar tiempo de respuesta de interacciones
- Mantener funcionalidad completa
2025-12-21 12:11:11 +01:00
planetazuzu 8576d1656a feat: añadir páginas legales y mejorar botón compartir
- Crear página de Política de Privacidad (/privacidad)
- Crear página de Descargo de Responsabilidad (/descargo-responsabilidad)
- Crear página de Aviso Legal (/aviso-legal)
- Actualizar página Acerca de con enlaces a páginas legales
- Mejorar botón compartir en MenuSheet (usar toast en lugar de alert)
- Añadir rutas en App.tsx para las nuevas páginas
- Lazy loading para todas las nuevas páginas
2025-12-21 12:05:24 +01:00