Skip to content

v0.0.15

Latest

Choose a tag to compare

@Yurzi Yurzi released this 11 Sep 11:11

This release adds automatic local PDF.js rendering when Poppler is unavailable, while keeping the existing read_pdf(view: "page") interface, source verification, bounded execution and native image delivery. Reader cursor v3, index v2 and parsed caches remain unchanged.

Added

  • Added a PDF.js 6.3.289 + @napi-rs/canvas 1.0.9 subprocess fallback, with package-local fonts, CMaps, ICC profiles and WASM resources. Normal installation does not require system Poppler on supported native platforms. (25df849)
  • Added renderer: "poppler" | "pdfjs" to original-page results, strict output schemas and Native presentation, with matching physical page-count provenance. (25df849)
  • Added backend-selection, real subprocess and PDF fixture regressions, plus offline full-tool and installed-package smoke validation from an unrelated working directory. (25df849)

Fixed

  • Preserve cancellation and the shared deadline even when temporary cleanup finishes late; cleanup errors cannot mask an already established primary failure. (25df849)
  • Distinguish Poppler output I/O errors and signal termination from invalid PDFs without retrying another backend. (25df849)
  • Validate complete bounded PNG containers, including chunks, checksums and end markers, before attachment delivery. (25df849)

Changed

  • Prefer Poppler and fall back only for missing or explicitly non-executable dependencies. PDF failures, hash/identity mismatches, out-of-range pages, cancellation, timeouts and resource limits never trigger a backend retry. (25df849)
  • Share one checked snapshot, concurrency slot and total deadline across both renderers. Ship the fixed unbundled Node entry explicitly and keep heavy/native runtime dependencies outside the host/client bundles. (25df849)
  • Document supported native platforms, installation requirements and rendering limits. Canvas still requires a platform binary; application/V8 limits are not an OS sandbox or a total process-memory cap, and the two renderers are not pixel-equivalent. (25df849)

Full Changelog: v0.0.14...v0.0.15