GoWeBaKnowledge Center

title: "Addendum 19 — WebaScan & WebaDrive: Correcciones y Mejoras" date: "2026-09-01" author: "Équipe Plateforme GoWeBa" tags: ["webascan", "webadrive", "extraction", "webaform", "pdf", "correctifs"]

Addendum 19 — WebaScan & WebaDrive: Correcciones y Mejoras

Descripción general

Tras una auditoría exhaustiva de WebaScan y WebaDrive, se identificaron y corrigieron 8 anomalías a través de 8 Work Packages agrupados en 5 entregas. Estas correcciones mejoran la confiabilidad de la extracción por lote, la asignación de roles en los formularios, la visualización de estadísticas de carpetas y la gestión de datos consolidados.


WP-1 — Extracción por Lote Progresiva ⚡

Problema: La extracción de documentos en lote fallaba sistemáticamente por timeout HTTP (>60s en proyectos de gran volumen).

Solución: Arquitectura "fire-and-forget" con seguimiento asíncrono:

  • El POST /api/storage/projects/aggregated-data/extract devuelve inmediatamente un jobId
  • El cliente consulta periódicamente GET /api/storage/projects/aggregated-data/extract-status?jobId=...
  • Barra de progreso en tiempo real con % y contador de archivos
  • Resumen final: archivos procesados vs. errores

Archivos: extract/route.ts, extract-status/route.ts, extraction-jobs.ts, aggregated-data-export.tsx


WP-2 — Asistente de Llenado con Roles 👥

Problema: El diálogo "Llenar un formulario" no permitía indicar quién desempeña cada rol (comprador, vendedor, notario, etc.), lo que obligaba al usuario a corregir manualmente cada campo.

Solución: Diálogo en 2 pasos:

  1. Paso 1 — Selección de la plantilla de formulario (biblioteca privada + pública)
  2. Paso 2 — Asignación de roles (10 roles comunes: comprador, vendedor, notario, prestamista, fiador, testigos 1-2, fiduciario (fideicomisario), beneficiario, representante)
  • Etiquetas trilingües (fr/en/es) con íconos emoji
  • La IA recibe el contexto de los roles y coloca automáticamente a las personas correctas en los campos correspondientes
  • Opción "Ignorar roles" para un llenado sin contexto de partes

Archivos: fill-project-form-dialog.tsx, app/api/forms/fills/route.ts


WP-3 — Contadores de Carpetas 📊

Problema: El panel de completitud mostraba el número de elementos en la checklist en lugar del número real de archivos.

Solución: Doble visualización diferenciada:

  • Archivos: número real de archivos en la carpeta
  • Subcarpetas: número real de subcarpetas
  • Íconos visuales diferenciados (File vs FolderOpen)

Archivos: folder-completion-panel.tsx, webadrive-client.tsx


WP-4 — Datos Consolidados Plegables 📋

Problema: La tabla en línea de datos consolidados ocupaba toda la pantalla, dificultando la navegación.

Solución: Tabla plegable con toggle:

  • Botón "Mostrar/Ocultar datos" con contador de campos
  • ChevronDown/ChevronUp animado
  • Tabla oculta por defecto para una visualización más limpia

Archivos: aggregated-data-export.tsx


WP-5 — PDF Maestro Mejorado 📄

Problema: El PDF maestro mostraba "(No consolidated field)" cuando un campo no tenía valor.

Solución: Mensaje amigable para el usuario:

  • Texto explicativo en cursiva indicando que el valor estará disponible tras la próxima extracción
  • Adaptado al idioma del proyecto (fr/en/es)

Archivos: pdf-master/route.ts


WP-6 — Kit "Otro / Custom" 🧰

Problema: No había ningún kit genérico disponible para los proyectos que no corresponden a los kits especializados.

Solución: Incorporación del kit custom-generic al catálogo:

  • Nombre trilingüe: "Autre / Custom / Otro"
  • Categoría "Universal" con campos genéricos (partes, monto, fechas, dirección, descripción, notas)
  • Disponible para todas las organizaciones

Archivos: webaject-templates.ts


WP-7 — Botón Re-Analyze Unitario 🔄

Problema: Era imposible relanzar la extracción de un solo archivo que hubiera fallado (estatus "EXtrc ❌").

Solución:

  • Botón "Re-Extract" mostrado junto a cada archivo con error
  • Llamada POST /api/storage/projects/aggregated-data/extract-single
  • Spinner de carga durante el procesamiento
  • Toast de confirmación o de error

Archivos: extract-single/route.ts, webadrive-client.tsx


WP-8 — Resolución de Conflictos en Paralelo ⚖️

Problema: Cuando varios documentos contenían valores distintos para el mismo campo, no se ofrecía ningún mecanismo de resolución.

Solución completa:

  • Banner de síntesis en la parte superior de la tabla: número de conflictos detectados o confirmación "todos resueltos"
  • Badge ⚠ N variantes en cada campo en conflicto — clic para desplegar
  • Panel en paralelo (cuadrícula responsive de 2-3 columnas) que muestra cada valor variante con:
    • El documento fuente (nombre + número)
    • El valor en sí
    • Un botón "Elegir" o "Confirmar" (si es el valor actual)
  • Guardado inmediato: el valor elegido reemplaza el valor consenso en projectData.aggregatedData
  • Badge ✓ Resuelto con ícono verde tras la resolución
  • Responsabilidad del usuario: la IA extrae y cruza la información, el humano decide en caso de duda

Endpoint: POST /api/storage/projects/aggregated-data/resolve-conflict

  • Body: { folderId, fieldKey, chosenValue }
  • Valida que el valor elegido forme parte de las variantes conocidas
  • Registra resolvedBy (userId) y resolvedAt para trazabilidad

Archivos: consolidated-data-viewer.tsx, resolve-conflict/route.ts


Resumen técnico

WPDescripciónEstatus
WP-1Extracción por lote progresiva✅
WP-2Wizard Fill Form + roles✅
WP-3Contadores de carpetas✅
WP-4Datos plegables✅
WP-5PDF maestro mejorado✅
WP-6Kit Custom genérico✅
WP-7Re-Analyze unitario✅
WP-8Resolución de conflictos en paralelo✅

Commits: d6b672d (WP-1/3/4/5/6/7), 28a21d0 (WP-2), c70412e (WP-8)

© 2024–2026 GOWEBA INC. — Make it Simple, Make it Possible, Make it Real.