Smoke-Revision Batch — 2026-07-10 (all done + deployed)
TL;DR: all 8 revision items closed, and the demo at x056.ahu-demo.ocr.val.id is redeployed with the full overnight PT work + these fixes (image 5e6fac38). Three of your findings ("belum didukung" ×3, the peleburan misidentification) were stale-deployment artifacts — the demo you smoked predated the overnight run entirely. Backend 2462 pass / 0 fail · frontend 965 pass / 0 fail.
What each item turned out to be
| Item | Root cause | Fix |
|---|---|---|
| Per-file time ≠ actual (36s vs 1m30s) | The file card kept ticking through submission-level phases (company lookup, matching, validation) because currentDocumentId lingers on the last-extracted doc — then visibly dropped to the backend's true 36s span at DONE. The 36s was the correct per-file number. |
A DONE/ERROR doc never ticks; the live counter now stops where the real extraction span ends. |
| Step-3-confirmed → still lands on step 3 | Two gaps: the Dashboard's stale type map sent every non-perubahan flow down /pendirian paths, and perbaikan had no status page at all (post-submit bounced back to /review). | Dashboard defers to destinationFor for every PT type; new /perbaikan/:id/status step-4 tracking page; COMPLETED/IN_VERIFICATION always enters at step 4. |
| Bukti Setor shows pemegang-saham rows / only those confirmable | The projector emitted per-entry rows from the setor extraction (PS names/shares) alongside the doc rows. | Per-entry rows removed — doc-level rows only, no confirm affordance (legacy parity). Full section rebuild is on the roadmap per your note — worth deciding what it should verify (setor totals × modal cross-ref UI?). |
| Viewer cut off with many file tabs | Sticky column had no height cap. | Capped to the visible viewport below the header + scrolls itself (all 9 V2 pages). |
| Centered "aturan validasi gagal" rows | <button> UA default is text-align: center. |
Right-aligned to match the hint block (all 4 PT pages). |
| Perubahan review still legacy | Deliberate D7 caution (new-route-only). You've now called the flip. | /perubahan, /akuisisi, /perbaikan reviews are the V2 ReviewData pages (verified live — screenshot of your f7fdefaf submission renders the new design). Penggabungan got its projector and rides the same page. Known deltas vs legacy on the perubahan page: in-review jenis-selection editing (lives in the step-2 wizard now), notaris-pengganti override UI, and the koran/pengumuman card did not carry over — flag during smoke if you need any of them back. |
| "Belum didukung" ×3 (Pembubaran/Penggabungan/Berakhirnya) | Stale demo — the deployed build predated D1–D10 (labels?type=pembubaran returned the pendirian set). |
Redeployed from 5e6fac38; migrations auto-applied; all three flows answer correctly now. |
| Akta Peleburan wrongly identified | Also stale-deploy: the current classifier handles all three samples correctly (verified against the live 35B + real PaddleOCR text): BPR-RAY & BPR-KBU → peleburan (genuine konsolidasi, recital tier), DANA-MASTER-LOTARA → pendirian (its only "peleburan" mentions are the anggaran-dasar boilerplate pasal — "rencana", not the "rancangan" trigger). | Regression fixtures pin both directions so this can't drift. |
Deploy record
x056.ahu-demo.ocr.val.id → ahu-ai-ocr-web @192.168.83.20:3520, image ahu-ai-ocr:5e6fac38 (tar-stream build on Server 2, prisma migrate deploy applied the two new enum migrations on start). Health + pembubaran/penggabungan/berakhirnya endpoints verified; perubahan review page screenshot-verified rendering the V2 design.