116 Commits

Author SHA1 Message Date
bogdankostic e84738b9a2 fix: harden deserialization by blocking internal interfaces to prevent RCE (#12378)
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-17 21:40:57 +02:00
bogdankostic efcf6b895f fix: prevent RCE by hardening deserialization and Jinja sandbox (#12312) 2026-08-11 18:22:28 +02:00
Singaraj B 50eebe097b fix: serialize and deserialize typing.Literal (#12286) 2026-08-10 14:08:29 +02:00
Sebastian Husch Lee 49f8d2d549 fix: make strict datetime filter comparison opt-in (#12257) 2026-08-07 09:03:19 +02:00
Aarkin Karnik 3ec9d08ace fix: normalize ISO date equality filters (#11963)
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-04 11:11:10 +02:00
David Pavlovschii fcc13465c5 fix: round-trip serialization of mixed-type lists in schema-based serialization (#12202)
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
2026-08-04 09:56:38 +02:00
vidigoat 1f460e6207 fix: round-trip serialization of Callable types with an explicit parameter list (#12122)
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2026-07-30 12:47:47 +02:00
Sebastian Husch Lee 36793a99ae fix: fix serialization of State and PipelineSnapshot (#12113) 2026-07-22 17:36:38 +02:00
Madan kumar 04fe770243 fix: round-trip serialization of Ellipsis in variadic tuple and Callable types (#12062) 2026-07-21 07:44:42 +00:00
eeshsaxena 9638ff1458 fix: honor custom timeout on every attempt in request_with_retry (#11998)
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
2026-07-20 07:57:19 +02:00
Sebastian Husch Lee fb84d454d9 feat: re-add updates to serde of GeneratedAnswer and ExtractedAnswer (#11983) 2026-07-13 15:06:05 +02:00
Otis Cui 3cfbaa23c9 fix: reconcile tz-aware and naive datetimes in ordering filters (#11943) 2026-07-10 10:28:34 +02:00
David S. Batista d4d1872fc2 chore!: removing deadcode (#11905) 2026-07-08 13:46:42 +00:00
Sebastian Husch Lee d7260db122 Merge branch 'v3' of github.com:deepset-ai/haystack into merge-v3-into-main 2026-07-08 14:29:43 +02:00
Sebastian Husch Lee 8d037f2ceb Revert "fix: updating generated answer and extracted answers serialisation (#11805)" (#11895) 2026-07-07 10:10:13 +02:00
David S. Batista da17b3e151 fix: raise DeserializationError for unimportable classes (#11890)
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:35:20 +02:00
Sebastian Husch Lee c78cc3fc2a Merge branch 'main' of github.com:deepset-ai/haystack into merge-main-into-v3 2026-07-07 08:16:13 +02:00
Aarkin Karnik 15636144ff fix: redact token from TokenSecret repr to prevent API key leaks (#11810) 2026-07-01 14:47:27 +02:00
Mustafa Amir Khokhar 7fdd1a85f1 test: type-check test/utils and add it to mypy config (#11728) 2026-07-01 10:30:42 +02:00
David S. Batista e40103fc2a fix: updating generated answer and extracted answers serialisation (#11805)
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 18:00:52 +02:00
Sebastian Husch Lee 4a5af169f8 fix: fix async tool deserialization (#11811) 2026-06-29 15:34:22 +02:00
Muhammad Furqan 1a68ffaefc fix: raise FilterError on unknown metadata filter operators (#11795)
Co-authored-by: David S. Batista <dsbatista@gmail.com>
2026-06-29 11:25:07 +02:00
Sebastian Husch Lee be19e12867 Merge branch 'main' of github.com:deepset-ai/haystack into merge-main-into-v3 2026-06-29 11:04:40 +02:00
milljer 7fc8151ca4 fix: FilterError when comparing string metadata dates with datetime objects (#11700)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
2026-06-26 10:53:51 +02:00
Stefano Fiorucci 6958876449 fix: better Jinja2 Chat extension security (#11718) 2026-06-24 10:05:41 +02:00
Sebastian Husch Lee f962e67347 chore: Merge main into v3 (#11715)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Anubhav Anand <76263415+i-anubhav-anand@users.noreply.github.com>
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Srivatsa Kamballa <skamb10@uic.edu>
Co-authored-by: David S. Batista <dsbatista@gmail.com>
Co-authored-by: gyx09212214-prog <gyx09212214@gmail.com>
Co-authored-by: gyx09212214-prog <243787584+gyx09212214-prog@users.noreply.github.com>
Co-authored-by: Haystack Bot <73523382+HaystackBot@users.noreply.github.com>
Co-authored-by: anakin87 <44616784+anakin87@users.noreply.github.com>
Co-authored-by: milljer <milljer@users.noreply.github.com>
Co-authored-by: bogdankostic <48713846+bogdankostic@users.noreply.github.com>
Co-authored-by: julian-risch <4181769+julian-risch@users.noreply.github.com>
Co-authored-by: davidsbatista <7937824+davidsbatista@users.noreply.github.com>
Co-authored-by: AxelRay <raynaldo.axel@gmail.com>
Co-authored-by: Ayush <158567328+Ayushhgit@users.noreply.github.com>
Co-authored-by: bogdankostic <bogdankostic@web.de>
Co-authored-by: Ashith Fernandes <fernandesashith24@gmail.com>
Co-authored-by: Kunal <kkunal_be23@thapar.edu>
Co-authored-by: Aditya Raut <rautaditya2606@gmail.com>
2026-06-22 18:04:43 +02:00
Stefano Fiorucci dd4bab522c chore: rename utility function (#11666) 2026-06-17 16:24:31 +02:00
Anubhav Anand 6f786afc07 fix: handle non-dict intermediate value in nested metadata filters (#11649) 2026-06-16 14:28:44 +02:00
Sebastian Husch Lee c4db41825a Merge branch 'main' of github.com:deepset-ai/haystack into merge-main-into-v3 2026-06-16 12:35:30 +02:00
IRONBEEM 2574517f74 fix: keep NoneType argument when serializing typing generics (#11368)
Co-authored-by: ATOM00blue <219721791+ATOM00blue@users.noreply.github.com>
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
2026-06-15 11:37:59 +02:00
Julian Risch 8a48fca96b Merge main into v3 2026-06-12 12:31:31 +02:00
Ayush 2b4450c0fa fix: make >= and < filters compare parsed datetimes, not raw strings (#11584)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 10:57:59 +02:00
bogdankostic 3464f29ec9 feat!: Gate pipeline deserialization through a module allowlist (#11432)
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
2026-06-12 10:25:23 +02:00
Stefano Fiorucci ea78fab82d chore!: remove transformers components (#11572) 2026-06-10 13:21:46 +00:00
Sebastian Husch Lee a193e1476a refactor: Add new _run_component_async utility method (#11524) 2026-06-05 08:54:03 +00:00
Sebastian Husch Lee aac56ef8b6 chore: Merge main into v3 (#11495)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Pragnyan Ramtha <pragnyanramtha@gmail.com>
Co-authored-by: Julian Risch <julian.risch@deepset.ai>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Aarkin Karnik <56022539+Aarkin7@users.noreply.github.com>
Co-authored-by: Haystack Bot <73523382+HaystackBot@users.noreply.github.com>
Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: davidsbatista <7937824+davidsbatista@users.noreply.github.com>
Co-authored-by: bogdankostic <48713846+bogdankostic@users.noreply.github.com>
Co-authored-by: bogdankostic <bogdankostic@web.de>
Co-authored-by: Sachin Yadav <118251564+sachinn854@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: anakin87 <44616784+anakin87@users.noreply.github.com>
Co-authored-by: Abdulhamid Onawole <93547612+HamidOna@users.noreply.github.com>
Co-authored-by: David S. Batista <dsbatista@gmail.com>
Co-authored-by: Aditya Raut <rautaditya2606@gmail.com>
Co-authored-by: Nhat Huy Vu <150295143+MechaCritter@users.noreply.github.com>
Co-authored-by: julian-risch <4181769+julian-risch@users.noreply.github.com>
Co-authored-by: kota <lakotawilsonproton@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
Co-authored-by: devteamaegis <devteam.aegis@gmail.com>
Co-authored-by: Ritwij Aryan Parmar <88580521+RitwijParmar@users.noreply.github.com>
Co-authored-by: Srivatsa Kamballa <skamb10@uic.edu>
2026-06-03 11:43:55 +00:00
Sebastian Husch Lee 3b1558fabd feat: Extend ChatPromptBuilder with messages tag (#11486) 2026-06-03 12:02:20 +02:00
Julian Risch 41c272279c test: use 'is None' instead of '== None' (CodeQL py/test-equals-none) (#11483)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-02 13:34:50 +02:00
David S. Batista 1661601112 fix: pagination error too many values to unpack (#11475)
Co-authored-by: devteamaegis <devteam.aegis@gmail.com>
Co-authored-by: Sebastian Husch Lee <10526848+sjrl@users.noreply.github.com>
2026-06-02 09:42:23 +00:00
Sebastian Husch Lee 744198ce52 feat: Add reciprocal rank fusion to MultiRetriever (#11220) 2026-04-30 13:33:05 +02:00
Sebastian Husch Lee 2a4f104edf feat: Add new components TextEmbeddingRetriever and MultiRetriever (#10872) 2026-04-29 09:29:01 +02:00
Stefano Fiorucci f92ae143b7 build: always use httpx instead of requests; improve HTTP errors (#11047)
* use httpx

* more clean up

* relnote

* add upgrade note
2026-04-07 13:08:46 +00:00
Stefano Fiorucci 4caa742d83 fix: improve Jinja2 Chat extension security (#10875)
* draft

* relnote + dep

* simplify

* refinements
2026-03-19 12:05:31 +01:00
Sebastian Husch Lee b970a64b77 feat: Updates to make Haystack compatible with python 3.14 (#10634)
* start adding python 3.14 support in tests

* start updating tests

* Add reno

* Updates

* Collect tests that should be skipped in python 3.14+

* run tests using python 3.14

* Revert back to 3.10 for testing

* Fix flaky tests

* Skip only spacy tests if python 3.14+

* switch to get_running_loop
2026-03-16 09:22:14 +00:00
David S. Batista c570f8a8d5 feat: adding _normalize_metadata_field_name to haystack.utils (#10798)
* initial import

* adding tests
2026-03-12 14:59:31 +01:00
Stefano Fiorucci 819ed7244b chore: drop pylint (#10640)
* draft

* progress

* more fixes

* improvs

* strict

* rm pylint

* rm pylint comments

* fix and simplify

* standardize

* more

* alpha order

* final touch

* remove template

* rm ellipsis comments
2026-02-24 07:46:20 +00:00
Amanpreet Singh d133829af6 refactor: JSON parsing utility function (#10597)
* Standardize JSON parsing in QueryExpander, LLMEvaluator, and LLMMetadataExtractor

- Introduce haystack.utils.json_utils with extract_json_from_text and parse_json_from_text.
- Expose these utilities in haystack.utils for cleaner imports.
- Refactor QueryExpander, LLMEvaluator, and LLMMetadataExtractor to use parse_json_from_text.
- Standardize error handling and logging for JSON parsing failures.
- Update unit tests to reflect these changes.

* Address CodeRabbit feedback: Handle generic code blocks and remove unused logger

* Fix corrupted test file and add priority test case for json extraction

* formatted files for removing formatting issues

* Fix import sorting in json_utils.py and test_json_utils.py

* Add release note for JSON parsing standardization

* Fix release note formatting: use double backticks for inline code

* Address code review: rename parse_json_from_text to internal _parse_json_from_text, simplify error handling

* removed releasenotes

* Address Code Review Feedback: merged extract to parse_json_to_test

* Address Code Review Feedback: remove markdown support from internal json utility

* Address Code Review Feedback: add raise_on_failure to json utility

* Address CodeRabbit Feedback: add tests for raise_on_failure=False

* Address Formatting Issues: add missing license header

* Address Formatting Issues: use haystack logger and mock in tests

* Address Formatting Issues: fix logging format to use kwargs

* refinements

* fix type

* fixes

* more fixes

---------

Co-authored-by: anakin87 <stefanofiorucci@gmail.com>
2026-02-18 10:52:53 +01:00
Stefano Fiorucci a6602441bb feat: add FileContent support for ChatMessage + OpenAIChatGenerator implementation (#10548)
* FileContent first draft

* progress + tests

* reduce to_openai_dict complexity

* more tests

* schema tests + relnote

* better err msg

* refinement

* remove openai id handling - it is only for uploaded files
2026-02-10 16:07:29 +01:00
bogdankostic 8538744466 feat!: Deduplicate Documents in Rankers (#10508)
* Deduplicate Documents in Rankers

* Add unit tests

* Deduplicate Documents in run_async in HuggingFaceTEIRanker

* Add release note

* Use only one loop in  _deduplicate_documents

* Avoid changing input variable in place

* Deduplicate Documents in MetafieldRanker when weight is set to 0

* Adapt doc strings

* Adapt release note

* Apply suggestion from @julian-risch

Co-authored-by: Julian Risch <julian.risch@deepset.ai>

---------

Co-authored-by: Julian Risch <julian.risch@deepset.ai>
2026-02-05 16:24:10 +01:00
Amanpreet Singh d1253c48fe chore!: remove deprecated deserialize_document_store_in_init_params_in… (#10454)
* chore: remove deprecated deserialize_document_store_in_init_params_inplace

This function was deprecated in 2.23.0 and is no longer used internally.
Removed the function, its exports, its tests, and the deprecation release note.

* Restore deserialize_document_store_in_init_params_in_init_params_inplace

* chore: add release note and fix formatting

* fix: resolve lint errors and formatting
2026-01-28 17:04:58 +01:00