v1.22.0
This release adds Haystack v3 support while keeping compatibility with Haystack v2. A single Hayhooks version can now run against both Haystack major versions, including the async pipeline changes introduced in Haystack v3.
🚀 Haystack v3 Support
- Hayhooks now supports both Haystack v2 and Haystack v3.
haystack-aiis no longer constrained to Haystack v2.- Added compatibility exports from
hayhooks:PipelineAsyncPipeline
- On Haystack v2, these resolve to Haystack's
AsyncPipeline. - On Haystack v3, they resolve to Haystack's unified
Pipeline, which supportsrun_async()natively.
For async-compatible wrappers, you can now use:
from hayhooks import Pipeline
self.pipeline = Pipeline.loads(pipeline_yaml)🌊 Streaming Compatibility
- Updated streaming helpers to work across Haystack v2 and v3.
- Preserved support for sync-only components through hybrid streaming mode.
- Improved examples for async and hybrid streaming pipelines.
📄 YAML Pipeline Deployment
- YAML-deployed pipelines now use the correct pipeline implementation for the installed Haystack version.
- Added documentation for Haystack v3's
HAYSTACK_DESERIALIZATION_ALLOWLIST. - Hayhooks keeps Haystack's secure default behavior and does not override the allowlist automatically.
🔭 Tracing
- Updated tracing support for Haystack v3.
OpenTelemetryTraceris resolved from the correct package depending on the installed Haystack version.- The tracing extra now includes
opentelemetry-haystack.
🧪 Tests and CI
- Added CI coverage for Haystack v3.
- Kept Haystack v2 test coverage in place.
- Updated tests, docs, and examples for the dual-version compatibility layer.
What's Changed
Full Changelog: v1.21.0...v1.22.0