The daily firehose — everything the toolchain shipped today, already filtered.
// HOW THIS ISSUE IS MADE
We read every release from the 174 tools on our watchlist at the source — GitHub and GitLab release notes, vendor release pages and changelogs, project blogs and feeds, vendor press releases, and the source code behind the tag. Bug-fix-only releases and non-product newsroom noise are dropped; what's left is summarized down to the new capability, how to try it, and any screenshots or videos the release itself published. Every entry links to the sources it was built from.
›Adds MultiRetriever component (importable from haystack.components.retrievers) that runs multiple text retrievers in parallel, merges results via reciprocal rank fusion by default, and accepts active_retrievers and top_k parameters at runtime to selectively enable/disable individual retrievers.
›Adds join_mode parameter to MultiRetriever, supporting 'reciprocal_rank_fusion' (default) and 'concatenate' merge strategies.
›Adds TextEmbeddingRetriever component (importable from haystack.components.retrievers) that wraps an embedding retriever with a text embedder into a single TextRetriever-protocol-compatible component, enabling use inside MultiRetriever.
›Adds run_async method to CacheChecker, enabling non-blocking use in AsyncPipeline.
›Adds two usage modes to the LLM component: template-variable mode (provide user_prompt with Jinja2 variables such as {{ query }} to expose them as pipeline inputs) and pass-through mode (omit user_prompt to make messages a required input accepting a fully-constructed ChatMessage list).
+1 moreshow less
›Extracts reciprocal rank fusion logic into shared utility _reciprocal_rank_fusion in haystack.utils.misc, now used by both MultiRetriever and DocumentJoiner.
└──▷ BREAKING ON UPGRADE
!LLM.run and LLM.run_async no longer accept messages and streaming_callback as positional arguments — they must now be passed as keyword arguments (e.g. llm.run(messages=[message], streaming_callback=my_callback)).
LangChain 1.3.0 adds v3 event streaming support for agents via stream_events and astream_events.
└──▷ GET THIS VERSION
$ git clone --branch langchain==1.3.0 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:$ git checkout langchain==1.3.0
└──▷ USE IT
Stream agent execution events using the new v3 protocol to get structured, real-time output from an agent run.
python
async for event in agent.astream_events(input, version="v3"):
print(event)
›Adds version="v3" support to stream_events and astream_events for LangChain agents, enabling the latest event streaming protocol.
LangGraph checkpoint 4.1.0 forces delta channel snapshots after max supersteps to ensure durability.
└──▷ GET THIS VERSION
$ git clone --branch checkpoint==4.1.0 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==4.1.0
›Adds forced delta channel snapshot after a configurable maximum number of supersteps since the last snapshot, preventing unbounded checkpoint gaps.
PydanticAI v1.94.0 adds openai_chat_supports_multiple_system_messages profile flag for OpenAI chat configuration.
└──▷ GET THIS VERSION
$ git clone --branch v1.94.0 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:$ git checkout v1.94.0
›Adds openai_chat_supports_multiple_system_messages profile flag to control whether multiple system messages are supported in OpenAI chat requests.
└──▷ BREAKING ON UPGRADE
!The mistralai package is no longer installed as a dependency of pydantic-ai; installations that relied on it being pulled in transitively must now declare it explicitly.