WookcomDocsIr a Wookcom ↗

Verificación del MCP autenticado

Fecha:21/10/2026. Rama de implementación aislada. Estado: verificación local y revisión independiente completadas; cinco hallazgos Critical/Important corregidos en una pasada. No se ha desplegado ni anunciado un endpoint productivo operativo.

Evidencia ejecutada

Comprobación Resultado
npm test 137 pruebas del editor aprobadas.
npm run test:mcp 44 pruebas Node aprobadas, incluido build con descubrimiento OAuth real como archivos.
npm run test:rules 24 pruebas aprobadas contra Firestore Emulator.
npm run test:mcp:integration 2 pruebas aprobadas con Auth/Firestore Emulator y repositorio cliente real.
npm run test:mcp:ui 16 superficies en320/375/768/1440px; cero infracciones axe AA, desbordamientos o errores de página.
npm run test:mcp:e2e 7 comprobaciones integrales con SDK oficial, autenticación real de emulador y documentos persistidos.
TypeScript, build y presupuesto inicial Aprobados;1186.82kB de JS inicial,342.84kB gzip; seis paneles diferidos.

Las superficies UI usan respuestas de red controladas para probar estados y accesibilidad; no acreditan persistencia. El E2E separado no simula herramientas ni Firestore: inicia el runtime real de Vite, crea una cuenta únicamente en Auth Emulator y ejecuta OAuth/PKCE mediante el navegador y HTTP. Los resultados están en tests/browser/mcp/ui-results.json y e2e-results.json.

El navegador utilizado aquí fue Chromium153.0.8010.0 con Playwright1.64.1. El CDN de Playwright devolvió un documento HTML en lugar del ZIP; se utilizó un Chromium compatible suministrado explícitamente mediante PLAYWRIGHT_CHROMIUM_EXECUTABLE. CI instala el Chromium fijado por Playwright. Los screenshots se generan de nuevo y se publican como artifacts de CI, sin guardarlos como binarios del repositorio.

Flujo integral comprobado

  1. Descubrimiento OAuth real, registro del cliente y PKCE S256. Inicio de sesión Firebase y consentimiento separado del editor, sin escritura de proyectos ni guardado local antes de crear el sitio. Publicación inicialmente desmarcada.
  2. Creación de un borrador de tres páginas, encabezado compartido, componente UIverse original, formulario sin destino inventado e imagen con alt. Lectura de documentos persistidos e idempotencia: sigue existiendo un solo proyecto.
  3. Apertura del enlace autenticado al proyecto y actualización por MCP visible en el lienzo. Espera superior al debounce para comprobar que la suscripción no escribe de vuelta ni publica.
  4. Edición local real desde controles del constructor. Se retrasa una lectura cliente antes de llegar al emulador, manteniendo reales el servidor y el stream remoto. Se provoca conflicto y se conserva la versión local; la revisión remota sigue presente en el historial.
  5. Publicación explícita de la revisión exacta y reintento sin duplicar publicaciones. Apertura del enlace permanente sin controles de edición ni escrituras de proyecto en localStorage; navegación compartida a Servicios.
  6. Listado real de conexiones, revocación y rechazo inmediato de llamadas privadas con el token revocado.

Regresiones detectadas y corregidas

  • Zoom prohibido en el viewport raíz; axe fallaba antes y pasa después de permitir zoom.
  • Configuración CLI con scroll sin foco de teclado; el bloque ahora admite foco visible.
  • Controles de texto inaccesibles cerca del inicio de sección y doble clic nativo bloqueado por la capa de arrastre. El E2E usa ahora ambos controles reales y campos con nombre accesible.
  • Conservar una edición local con un save anterior en vuelo reutilizaba su revisión antigua. La prueba esperaba3 y recibía2; la sustitución de la entrada y lectura del acuse actual conservan la revisión correcta sin bloquear la UI hasta confirmar la nube.
  • Acuses antiguos después de elegir la versión remota, cambios de cuenta/proyecto y updaters anteriores al render: regresiones incluidas en las pruebas de sincronización.
  • Lista opcional vacía de orígenes, geometría omitida de componentes del catálogo y restauración de revisión0 de proyectos anteriores: fallos reproducidos y corregidos.
  • Hash de creación calculado tras normalizar políticas: ahora compara los argumentos originales validados y materializa el catálogo solo después de resolver el recibo. Cambiar argumentos con una clave existente se rechaza, y un reintento confirmado no depende de expandir de nuevo el catálogo actual.

La revisión completa, las regresiones de recuperación, compatibilidad y cuotas, el Minor corregido en la continuación y todas las decisiones están en review.md. La suite del editor tuvo un timeout de 5 segundos en la prueba existente de biblioteca mientras se ejecutaba simultáneamente un build de verificación; repetida sin ese build concurrente, completó las 137 pruebas. No se amplió el timeout ni se cambió esa prueba.

Límites de esta evidencia

No hay despliegue Vercel ni reglas productivas ejecutados en esta tarea. No se han configurado cuentas reales de ChatGPT, Gemini web, Claude o Gemini CLI; las guías se contrastaron con sus fuentes oficiales y sus pruebas reales quedan para después de un despliegue autorizado. El SDK estándar sí ha ejercitado el protocolo real.

No se han creado servicios de envío de formularios, cobros, pedidos, DNS o transportadoras. Insertar esas interfaces no crea una integración comercial. Las credenciales Admin deben gestionarse en el alojamiento antes de activar el servidor; nunca se solicitan en el chat.

Continuación aprobada: conflicto ya resuelto

Se reprodujo y corrigió el aviso adicional al escribir durante la lectura de «conservar local». Dos regresiones cubren acuses inmediatos y retrasados. Verificación nueva: npm test -- --maxWorkers=2 (137/137), TypeScript, build, presupuesto de bundle y E2E real (7/7) aprobados. La ejecución inicial simultánea con build tuvo un timeout de biblioteca y de carga diferida; no se aumentaron límites ni se modificaron esas pruebas. Se limitó la concurrencia del runner para ejecutar de nuevo la suite completa.

La conexión Vercel disponible no encuentra editor-web, ni en el ámbito inicial ni en el equipo accesible. No se creó un proyecto alternativo, no se copiaron credenciales y no se cambió producción. La activación requiere conectar la cuenta/equipo del alojamiento existente.