WU / DOCSUNIVERSAL MICROFRONTENDS
ES

WU Framework 4.0 y CLI 1.2: actualizar y migrar

Novedades, cambios incompatibles, validación y soporte para migrar a Framework 4.0.0 y CLI 1.2.0.

Esta guía cubre WU Framework 4.0.0 y WU CLI 1.2.0. Framework 4 es una versión mayor porque ahora rechaza operaciones que antes aceptaba. Actualizar la CLI no migra por sí solo el código de tus aplicaciones.

Qué cambia

  • Framework: hooks con identidad y permisos de la app, SSR con datos privados por petición, cancelación y límites de concurrencia; sincronización de rutas anidadas; supervisión y replay cooperativo. Consulta fiabilidad del runtime y adapters.

  • Seguridad: origen remoto explícito, autenticación mutua del relay MCP, propiedad de contratos, validación de paquetes .wuapp, permisos de workflows IA y nonces CSP por respuesta. Consulta seguridad.

  • CLI: dependencias y catálogos, resolución por aplicación, compilación paralela y caché invalidada por configuración; servidor de desarrollo restringido a hosts autorizados; builds con hashes y publicación consistente de assets. Consulta dependencias, desarrollo y build.

CLI 1.2 alinea WU_D003 con la versión de Framework del catálogo. El diagnóstico distingue dependencias incompatibles de un proyecto válido con Framework 4. También corrige la ejecución de comandos de build con rutas entre comillas en Windows.

1. Preparar una actualización reversible

Guarda el código, los manifests y los lockfiles en un commit y conserva el artefacto de producción anterior. Actualiza primero en una rama y un entorno de prueba. Instala las versiones exactas y comprueba qué ejecutable estás usando.

npm view wu-framework@4.0.0 version
npm view @wu-framework/cli@1.2.0 version
npm install --global @wu-framework/cli@1.2.0 --include=optional
wu --version

En un workspace existente, revisa wu upgrade --help, ejecuta wu upgrade y revisa el diff. La herramienta actualiza dependencias y archivos de integración; no reescribe tus grants, hooks ni contratos de negocio. Después ejecuta wu install. En proyectos sin CLI, actualiza wu-framework a 4.0.0 en los paquetes que lo declaren y usa su gestor de dependencias.

2. Corregir los cambios incompatibles

Hooks y store. Los hooks dentro de una microapp ya no heredan autoridad del host. Declara permisos en manifest.wu.permissions y concédelos en grants del shell. Solo su intersección es efectiva. Un emit denegado devuelve false; suscripciones o acceso al store pueden lanzar WU_EVENT_SUBSCRIBE_DENIED o WU_CAPABILITY_DENIED. No lo soluciones con permisos globales indiscriminados: concede los canales y rutas que la app usa.

const permissions = [
  "store.read:cart.*", "store.write:cart.*",
  "events.emit:cart:changed", "events.subscribe:cart:changed",
];
await wu.registerApp({
  name: "cart", url: "/apps/cart/", sandbox: "module",
  manifest: { name: "cart", entry: "index.js", wu: { permissions } },
  grants: permissions,
});

Apps remotas. connect y waitForPort requieren hostOrigin. Usa el origen exacto del shell; "*" acepta cualquier origen deliberadamente. La entrada debe tener el origen de la URL registrada (WU_REMOTE_ORIGIN_MISMATCH). Una app remota del mismo origen necesita iframe.allowSameOrigin: true; wu.detach() rechaza apps remotas con WU_WINDOW_REMOTE_UNSUPPORTED. Consulta apps remotas.

MCP y CSP. Actualiza el relay junto con el runtime: el bridge 4.0 usa autenticación mutua HMAC v2 y necesita un token. No admite ws:// fuera de loopback. El modo inseguro es explícito y solo local. En middleware SSR sustituye un nonce fijo por nonce: () => createNonce() para generar uno por respuesta. Consulta MCP y streaming y seguridad.

Contratos y paquetes. No reemplaces una capability de otro propietario (WU_CAPABILITY_OWNED); revócala o desmonta al proveedor antes del relevo. Instalar un .wuapp sobre una app registrada por el host requiere { replace: true }. restore() valida las entradas guardadas. Maneja errores por error.code, no por el texto del mensaje. Espera los lifecycles asíncronos con await.

CLI y despliegue. Añade los hosts de tus túneles a dev.allowedHosts; solo VITE_* y WU_* de .env se exponen al cliente. Esos prefijos no son adecuados para secretos. Revisa shared si varias apps necesitan una sola instancia. Publica el dist/ completo; conserva los assets con hash de la versión anterior mientras queden páginas abiertas y revalida HTML/manifests. Consulta configuración y despliegue.

3. Validar y volver atrás si es necesario

wu doctor --json
wu contracts check
wu test
wu build
wu serve 4100 --mode static

Comprueba montaje, actualización y desmontaje, permisos denegados, recarga directa, SSR/hidratación, CSP, RPC y reconexión remota según las funciones que uses. Si usas wu build --native, pruébalo por separado. Revisa también una pestaña abierta antes del despliegue. Ante un fallo, restaura el commit, lockfile y artefacto anteriores juntos; no mezcles un runtime nuevo con un relay o assets incompatibles.

¿Se rompió algo? Te ayudamos

El equipo de WU ofrece apoyo para diagnosticar problemas de actualización. Solicita ayuda de migración o abre un issue en el repositorio del producto. Incluye versión anterior y nueva, wu --version, npm ls wu-framework, sistema/navegador, código de error y una reproducción mínima sin secretos. Explica qué funcionaba antes y qué esperabas. El soporte comunitario no implica un plazo garantizado de respuesta.

WU SE CONSTRUYE CONTIGO

¿Encontraste un bug? ¿Tienes una idea?

Tu experiencia mejora WU. Cuéntanos qué falla o ayuda a sostener su desarrollo.