Releases: kreuzberg-dev/kreuzberg
Releases · kreuzberg-dev/kreuzberg
v4.0.0-rc.5
Release Candidate 5 - macOS Binary Fix
Bug Fixes
Build System:
- Fixed macOS CLI binary missing libpdfium.dylib (dyld error at runtime)
- Build script now correctly copies libpdfium.dylib to target-specific directory when using --target flag
- Resolves:
dyld: Library not loaded: @rpath/libpdfium.dylib - Impact: macOS CLI binary now functional in releases
Note: rc.4 workflow fixes for Python, Node, Ruby, and Maven were committed after rc.4 tag, causing those packages not to publish. All fixes are now present for rc.5.
v4.0.0-rc.3
Release Candidate 3 - ONNX Runtime Bundling & Test Fixes
Breaking Changes
None - this is a patch release over rc.2
Bug Fixes
ONNX Runtime Distribution
- Switched from
ort-load-dynamictoort-download-binariesfeature - ONNX Runtime binaries are now bundled at build time
- Fixes embeddings feature across ALL release variants (npm, PyPI, RubyGems, Maven, crates.io)
- Users no longer need to install onnxruntime as a system dependency
Node.js Bindings
- Fixed TypeScript build configuration (tsconfig.json rootDir)
- Fixed all test imports from src/ to dist/ (461 tests now passing)
- Fixed flaky
forceOcr: truetest (OCR backend isolation issue) - Fixed test cleanup to prevent mutex errors
Documentation
- Added CONTRIBUTING.md symlink to fix broken GitHub link
Known Issues
- A cosmetic mutex error may appear at the very end of Node.js test runs during C++ static destruction
- This occurs after all Rust code completes and can be safely ignored
- Will be resolved when fastembed upgrades to ort >= 2.0.0
Test Results
- Rust: All tests passing
- Node.js: 461/461 tests passing (100%)
- Python, Ruby, Java, Go: TBD via CI
What Changed Since rc.2
- ONNX Runtime is now properly bundled
- Node.js package fully functional and tested
- All test isolation issues resolved
v4.0.0-rc.4
Release Candidate 4 - Critical CI/CD and Build Fixes
Bug Fixes
CI/CD Workflow Fixes:
- Fixed RubyGems action version (v2 doesn't exist, now using v1.0.0)
- Fixed pnpm workspace configuration (replaced invalid
--cwdflag with-C) - Fixed Docker environment variables (undefined
$LD_LIBRARY_PATHin Dockerfiles) - Fixed Maven credentials timing (env vars now available when setup-java generates settings.xml)
- Fixed Maven GPG configuration (modernized arguments to
--pinentry-mode=loopbackformat) - Removed release notes update job from publish workflow (not needed)
Core Library Fixes:
- Fixed Tesseract OCR test failure (corrected API call ordering: set_image before set_source_resolution)
- Fixed Go Windows CGO linking (build Rust FFI with x86_64-pc-windows-gnu target for MinGW compatibility)
Testing:
- All 24 Tesseract tests now pass (was 23/24 in rc.3)
- Go bindings now build successfully on Windows
v4.0.0-rc.2
Release Candidate 2 - C# Support & Infrastructure Improvements
Breaking Changes
TypeScript/Node.js Package Restructuring:
- NPM package renamed from
kreuzbergto@kreuzberg/node(scoped package) - Platform-specific packages now use
@kreuzberg/{platform}naming scheme - TypeScript source consolidated into
crates/kreuzberg-node(merged with native bindings) - Migration: Replace
import { ... } from 'kreuzberg'withimport { ... } from '@kreuzberg/node' - See Migration Guide for details
New Features
C#/.NET Bindings:
- Complete C# bindings using .NET 9+ Foreign Function & Memory API
- Native FFI bridge via
kreuzberg-ffiC library - Supports .NET 9+ on Linux, macOS, and Windows
- Package:
Kreuzbergon NuGet - Full feature parity with other language bindings
Documentation Improvements:
- New v3 documentation site with MkDocs
- Comprehensive multi-language code examples for all 7 supported languages
- API reference documentation for all bindings
- Migration guides and tutorials
Bug Fixes
CI/CD Fixes:
- Fixed all CI workflow failures (ONNX Runtime, Maven dependencies, path triggers)
- Fixed benchmark harness configuration validation (single-file mode)
- Added ONNX Runtime installation to all relevant CI workflows
- Updated Maven plugins to latest compatible versions with enforcer plugin
Core Library Fixes:
- Added lock poisoning recovery to embeddings model cache
- Improved Tesseract tessdata path detection for Linux systems
- Fixed Python async test configuration (pytest-asyncio)
- Resolved Rust formatting issues with edition 2024 let-chain syntax
Benchmark Harness Improvements:
- Added comprehensive adapter registration diagnostics
- Fixed Tesseract benchmark path resolution
- Improved Python async benchmark output with performance metrics
- Added missing `--max-concurrent` parameter validation
Code Quality:
- Fixed Python linting issues (ruff complexity, mypy type parameters)
- Resolved all clippy warnings
- Fixed C# generated file formatting
- Improved error handling across all bindings
Developer Experience
Build System:
- Go FFI library and Ruby native extension build fixes
- Improved build reproducibility
- Better error messages during compilation
Testing:
- 268+ Rust tests passing
- 13/13 Java tests passing
- 32/32 benchmark harness tests passing
- Fixed 27 Python async test failures
- Unblocked 250+ tests across all language bindings