xberg v1.0.5
Patch release: closes the remaining open bug reports in the PDF/OCR/layout pipeline and install path, hardens layout hardware-acceleration fallback, and denies raw stdout/stderr prints across the workspace. No breaking API changes.
Highlights
- #1344 — Layout inference no longer silently degrades to no-layout output when a hardware execution provider fails. macOS
autoacceleration resolves RT-DETR to CPU up front (its current export cannot execute under CoreML); when an explicit accelerated provider fails at inference, both the markdown and OCR paths retry once on CPU and recover the layout — either way surfacing aProcessingWarning(recovered-on-CPU, or lost entirely) instead of emptyprocessing_warnings. - #1350 — The Markdown hierarchy no longer merges a distant header and footer into one block.
- #1353 — The install script copies nested runtime library directories (e.g.
lib/libheif) withcp -Rinstead of failing on Linux musl installs.
Changed
- Raw
println!/eprintln!/print!/eprint!/dbg!are now denied in production code across the whole workspace (clippyprint_stdout/print_stderr/dbg_macro);tracingis the sole diagnostic surface. The CLI's machine-readable stdout output opts back in per call site, and the regenerated bindings route FFI-bridge diagnostics throughtracing.
Fixed
- #1344: Unified layout acceleration fallback across the markdown and OCR paths — proactive
auto→CPU for RT-DETR on macOS, retry-on-CPU for explicit accelerated failures, and a caller-visibleProcessingWarningwhether the layout was recovered on CPU or lost. - #1345: Sparse native two-column PDFs preserve column-block reading order instead of interleaving text lines across the gutter.
- #1346: PaddleOCR emits a
ProcessingWarningwhen requested languages are not covered by the selected recognition model, and OCR metadata reports the recognition model actually used. - #1349: Successful TATR table reconstruction no longer writes source cell content and coordinates to stderr.
- #1350: Paragraph continuation rejects merges across a large vertical baseline gap and recomputes the merged block's bounding box, so distant header/footer blocks are no longer merged.
- #1351: The published Node package ships the alef-generated
index.d.tsrather than rawnapi buildoutput that referenced undefinedJs*types. - #1353: The install script copies nested runtime library directories with
cp -Rinstead of failing withcp: -r not specified; omitting directoryon Linux musl installs. xberg-libwpdWindows build: the WordPerfect extractor compiles and links onx86_64-pc-windows-msvc— zlib is built from source vialibz-syson Windows, and a narrowingmake_shared<WP6SubDocument>call is cast to(unsigned)for the newest MSVC toolchain.