github xberg-io/xberg v1.0.5

4 hours ago

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 auto acceleration 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 a ProcessingWarning (recovered-on-CPU, or lost entirely) instead of empty processing_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) with cp -R instead of failing on Linux musl installs.

Changed

  • Raw println!/eprintln!/print!/eprint!/dbg! are now denied in production code across the whole workspace (clippy print_stdout/print_stderr/dbg_macro); tracing is 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 through tracing.

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-visible ProcessingWarning whether 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 ProcessingWarning when 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.ts rather than raw napi build output that referenced undefined Js* types.
  • #1353: The install script copies nested runtime library directories with cp -R instead of failing with cp: -r not specified; omitting directory on Linux musl installs.
  • xberg-libwpd Windows build: the WordPerfect extractor compiles and links on x86_64-pc-windows-msvc — zlib is built from source via libz-sys on Windows, and a narrowing make_shared<WP6SubDocument> call is cast to (unsigned) for the newest MSVC toolchain.

Don't miss a new xberg release

NewReleases is sending notifications on new releases.