Spaces:
Sleeping
Sleeping
Commit History
-
Integrate PaddleOCR and redesign UI with Xerox Star aestheticβ
ClaudeUnverified signatureImage-to-XML pipeline: - New /ocr endpoint: upload image -> PaddleOCR -> ALTO/PAGE XML - No more manual JSON payload needed for the main workflow - src/app/ocr/ module wraps PaddleOCR with lazy loading - Auto-detects image dimensions via Pillow - 20 MB upload limit with format validation UI redesign (Xerox Star / early Mac inspired): - Desktop icons for navigation (Scan Document, Documents, Advanced) - Window chrome with titlebars, close boxes, and striped decorations - Drag-and-drop zone for image upload - Retro button styles, dithered background, monospace fonts - Status bar at bottom of each window - "Advanced" mode preserves the old raw payload workflow Infrastructure: - Add paddlepaddle + paddleocr to dependencies - Add libgl1, libglib2.0-0 to Dockerfile for OpenCV (PaddleOCR dep) - Pre-download OCR models at Docker build time - Increase healthcheck start-period to 30s (model loading) 508 tests pass. 0 ruff warnings. https://claude.ai/code/session_01AdT5qvpceqqRs1AGJNgD1Y862cbed
-
Sprint 11: minimal web frontend β upload, jobs, providers, exportsβ
ClaudeUnverified signatureSingle-page HTML/JS frontend served via FastAPI StaticFiles: Pages: - Upload: select payload JSON, configure provider family/ID/dimensions, run pipeline, see result (status, duration, export links, event log) - Jobs: history table with status badges, export availability, download links for ALTO/PAGE XML - Providers: register new providers (ID, name, family, runtime, model), list registered providers, delete Features: - Dark theme UI - Status badges (succeeded/failed/partial_success/running/queued) - Direct download links for ALTO XML, PAGE XML, canonical JSON - Pipeline event log display with step names and durations - Provider CRUD Served at / with static assets at /static. Dockerfile updated to include frontend directory. No build step needed β vanilla HTML/JS. 497 tests still passing. https://claude.ai/code/session_01Cuzvc9Pjfo5u46eT3ta2Cg2ba385f