🔧 Fixes
Python bindings
- CRITICAL: Fixed PDFium bundling in wheels by correcting feature flag in conditional compilation
- Root cause: Code was checking for legacy
pdf-bundledfeature in#[cfg()]but feature was renamed tobundled-pdfium - Feature aliases don't apply to Rust conditional compilation - only to dependency resolution
- Result: Bundled PDFium module was never compiled when
bundled-pdfiumwas enabled - Fixed all
#[cfg(feature = "pdf-bundled")]to#[cfg(feature = "bundled-pdfium")]in pdf module - Verified: Python wheels now successfully extract and initialize PDFium at runtime
- Root cause: Code was checking for legacy
C# bindings
- Fixed MSBuild target to prevent overwriting CI-downloaded native assets
- Added conditional logic to detect if runtimes directory already populated with cross-platform files
- Prevents build step from creating empty platform directories that overwrite CI artifacts
- Supports all platforms: Windows (x64/arm64), macOS (arm64/x64), Linux (x64/arm64)
Rust 2024 compliance
- Added
unsafekeyword to extern blocks in Ruby bindings- Required by Rust 2024 edition for
extern "C"declarations
- Required by Rust 2024 edition for
WASM
- Fixed unused import warning in pdf extractor
- Added
#[cfg(feature = "tokio-runtime")]to conditional import ofstd::path::Path
- Added
Docker
- Fixed ONNX Runtime package installation
- Corrected Debian Trixie package name from
libonnxruntimetolibonnxruntime1.21 - Applied to both Dockerfile.core and Dockerfile.full
- Verified: Both Docker images build successfully and PDF extraction works with bundled PDFium
- Corrected Debian Trixie package name from
Homebrew CLI
- Added bundled-pdfium feature to kreuzberg-cli dependency
- Ensures CLI binary includes embedded PDFium without requiring system installation
Python CI
- Fixed path traversal calculation in test script
- Changed from 2 levels (
/../..) to 3 levels (/../../..)
- Changed from 2 levels (
LibreOffice tests
- Disabled on Windows CI to prevent hanging
- soffice binary lookup hangs on Windows runners
- Added
#[cfg(not(target_os = "windows"))]to 12 LibreOffice test cases