# BiomecLab v4.0.5 — App.js Modularization Foundation ## Objetivo Reducir la deuda técnica del monolito `assets/js/app.js` sin hacer un refactor riesgoso ni cambiar el comportamiento visible de la app. Esta versión **no agrega features biomecánicas** y **no toca** el motor de pose, MediaPipe, storage local, API PHP, reportes, exports ni datos existentes. ## Cambios seguros aplicados - Se creó `assets/js/workspace-registry.js`. - `WORKSPACES` salió de `app.js` y ahora vive como contrato importable. - `QA_BROWSER_SECTIONS` salió de `app.js` y queda separado del arranque/handlers. - Se agregó `WORKSPACE_CONTROLLER_PLAN` como mapa explícito de futuros controladores. - Se agregó `APP_JS_MODULARIZATION_VERSION` para health/smoke testing. - El Test Runner valida registry, plan de controladores, documento activo y versión. - `app.js` conserva boot, estado, handlers y renderers principales para evitar regresiones. ## Plan de controladores futuros La división final debe avanzar por etapas pequeñas: 1. `workspace-dashboard.js`: Dashboard, mapa operativo y workflow panel. 2. `workspace-screening.js`: setup, video, Capture Wizard, análisis y guardado. 3. `workspace-athletes.js`: perfiles, historial, passport y sesiones. 4. `workspace-reports.js`: reportes, exports y brief por audiencia. 5. `workspace-qa.js`: demo, QA browser pack, test runner y paneles internos. 6. `workspace-settings.js`: datos, privacidad, cache, cloud opcional y mantenimiento. ## Criterios de salida v4.0.5 - La app carga igual que v4.0.4. - `node --check` pasa en todos los JS. - `workspace-registry.js` importa correctamente. - No hay IDs duplicados. - Service Worker incluye el nuevo módulo en el app shell. - `/api/` sigue excluido del cache. - Health check reporta `app_js_modularization_foundation`. - Test Runner muestra `App.js Modularization Foundation válido`. ## Qué NO hacer todavía - No extraer `handleAnalyzeVideo` todavía. - No mover `state` global todavía. - No dividir event handlers masivamente en una sola versión. - No cambiar claves de localStorage. - No cambiar contratos de reportes ni exports. - No tocar MediaPipe timestamp recovery. ## Siguiente paso recomendado Después de validar v4.0.5 en Hostinger, hacer una versión pequeña de refactor real: **v4.0.6 — Workspace QA Controller Extraction** Primer candidato: extraer solo lógica de Demo / QA, porque es menos crítica que análisis de video y permite probar el patrón de controladores sin poner en riesgo el flujo core.