title: "Addendum 19 — WebaScan & WebaDrive: Bug Fixes & Improvements" date: "2026-09-01" author: "GoWeBa Platform Team" tags: ["webascan", "webadrive", "extraction", "webaform", "pdf", "fixes"]
Addendum 19 — WebaScan & WebaDrive: Bug Fixes & Improvements
Overview
Following an in-depth audit of WebaScan and WebaDrive, 8 anomalies were identified and resolved across 8 Work Packages grouped into 5 releases. These fixes improve the reliability of batch extraction, role assignment in forms, folder statistics display, and consolidated data management.
WP-1 — Progressive Batch Extraction ⚡
Problem: Bulk document extraction was consistently failing due to HTTP timeouts (>60s for large projects).
Solution: "Fire-and-forget" architecture with asynchronous tracking:
- The POST
/api/storage/projects/aggregated-data/extractimmediately returns ajobId - The client periodically polls GET
/api/storage/projects/aggregated-data/extract-status?jobId=... - Real-time progress bar with percentage and file counter
- Final summary: files processed vs. errors
Files: extract/route.ts, extract-status/route.ts, extraction-jobs.ts, aggregated-data-export.tsx
WP-2 — Fill Assistant with Roles 👥
Problem: The "Fill a Form" dialog did not allow users to specify who plays which role (buyer, seller, notary, etc.), forcing them to manually correct each field.
Solution: Two-step dialog:
- Step 1 — Form template selection (private + public library)
- Step 2 — Role assignment (10 common roles: buyer, seller, notary, lender, guarantor, witnesses 1–2, fiduciario (trustee), beneficiary, representative)
- Trilingual labels (fr/en/es) with emoji icons
- The AI receives the role context and automatically places the right people in the right fields
- "Skip Roles" option for filling without party context
Files: fill-project-form-dialog.tsx, app/api/forms/fills/route.ts
WP-3 — Folder Counters 📊
Problem: The completion panel was displaying the number of checklist items instead of the actual number of files.
Solution: Two distinct displays:
- Files: actual number of files in the folder
- Subfolders: actual number of subfolders
- Differentiated visual icons (File vs. FolderOpen)
Files: folder-completion-panel.tsx, webadrive-client.tsx
WP-4 — Collapsible Consolidated Data 📋
Problem: The inline consolidated data table took up the entire screen, making navigation difficult.
Solution: Collapsible table with toggle:
- "Show/Hide Data" button with field counter
- Animated ChevronDown/ChevronUp
- Table hidden by default for a cleaner display
Files: aggregated-data-export.tsx
WP-5 — Improved Master PDF 📄
Problem: The master PDF displayed "(No consolidated field)" when a field had no value.
Solution: User-friendly message:
- Explanatory text in italics indicating that the value will be available after the next extraction
- Adapted to the project language (fr/en/es)
Files: pdf-master/route.ts
WP-6 — "Other / Custom" Kit 🧰
Problem: No generic kit was available for projects that do not match any of the specialized kits.
Solution: Addition of the custom-generic kit to the catalogue:
- Trilingual name: "Autre / Custom / Otro"
- "Universal" category with generic fields (parties, amount, dates, address, description, notes)
- Available to all organizations
Files: webaject-templates.ts
WP-7 — Individual Re-Analyze Button 🔄
Problem: It was impossible to re-run extraction on a single file that had failed (status "EXtrc ❌").
Solution:
- "Re-Extract" button displayed next to each file in error
- POST call to
/api/storage/projects/aggregated-data/extract-single - Loading spinner during processing
- Confirmation or error toast
Files: extract-single/route.ts, webadrive-client.tsx
WP-8 — Side-by-Side Conflict Resolution ⚖️
Problem: When multiple documents contained different values for the same field, no resolution mechanism was offered.
Complete solution:
- Summary banner at the top of the table: number of conflicts detected, or a "all resolved" confirmation
- ⚠ N variants badge on each conflicting field — click to expand
- Side-by-side panel (responsive 2–3 column grid) displaying each variant value with:
- The source document (name + number)
- The value itself
- A "Choose" or "Confirm" button (if it is the current value)
- Immediate save: the chosen value replaces the consensus value in
projectData.aggregatedData - ✓ Resolved badge with green icon after resolution
- User responsibility: the AI extracts and cross-references; the human decides in case of doubt
Endpoint: POST /api/storage/projects/aggregated-data/resolve-conflict
- Body:
{ folderId, fieldKey, chosenValue } - Validates that the chosen value is among the known variants
- Records
resolvedBy(userId) andresolvedAtfor traceability
Files: consolidated-data-viewer.tsx, resolve-conflict/route.ts
Technical Summary
| WP | Description | Status |
|---|---|---|
| WP-1 | Progressive batch extraction | ✅ |
| WP-2 | Fill Form Wizard + roles | ✅ |
| WP-3 | Folder counters | ✅ |
| WP-4 | Collapsible data | ✅ |
| WP-5 | Improved master PDF | ✅ |
| WP-6 | Generic Custom kit | ✅ |
| WP-7 | Individual Re-Analyze | ✅ |
| WP-8 | Side-by-side conflict resolution | ✅ |
Commits: d6b672d (WP-1/3/4/5/6/7), 28a21d0 (WP-2), c70412e (WP-8)