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.
Framework for orchestrating role-playing, autonomous AI agents. By fostering collaborative intelligence, CrewAI empowers agents to work together seamlessly, tackling complex tasks.
CrewAI 1.0.0 adds enhanced knowledge/guardrail event handling and tool repository credential injection for the run command.
└──▷ GET THIS VERSION
$ git clone --branch 1.0.0 https://github.com/crewAIInc/crewAI.git
# already have the repo? check out this version:$ git checkout 1.0.0
›Enhances knowledge and guardrail event handling in the Agent class for more robust agent lifecycle control.
›Injects tool repository credentials automatically in the crewai run command, enabling authenticated tool source access.
Haystack v2.19.0 adds FallbackChatGenerator, sparse embedders, RegexTextExtractor, and mixed Tool/Toolset support for agents.
└──▷ GET THIS VERSION
$ git clone --branch v2.19.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:$ git checkout v2.19.0
└──▷ USE IT
Build a resilient chat pipeline that automatically falls back through Anthropic, Google, and OpenAI when earlier providers fail.
python
from haystack.components.generators.chat.fallback import FallbackChatGenerator
from haystack.components.generators.chat.openai import OpenAIChatGenerator
from haystack_integrations.components.generators.anthropic import AnthropicChatGenerator
from haystack.dataclasses import ChatMessage
chat_generator = FallbackChatGenerator(chat_generators=[
AnthropicChatGenerator(model="claude-sonnet-4-5", timeout=5),
OpenAIChatGenerator(model="gpt-4o-mini"),
])
response = chat_generator.run(messages=[ChatMessage.from_user("Summarize the OWASP Top 10.")])
print(response["meta"]["successful_chat_generator_class"])
print(response["replies"][0].text)
Embed documents as sparse vectors for efficient inverted-index retrieval with QdrantDocumentStore.
python
from haystack.components.embedders import SentenceTransformersSparseTextEmbedder
embedder = SentenceTransformersSparseTextEmbedder()
embedder.warm_up()
result = embedder.run("Detect lateral movement via SMB.")
print(result["sparse_embedding"]) # SparseEmbedding(indices=[...], values=[...])
Mix standalone tools and toolsets in a single Agent, and override the tool subset at runtime for a specific invocation.
python
from haystack.components.agents import Agent
from haystack.tools import Tool, Toolset
agent = Agent(
chat_generator=generator,
tools=[math_toolset, weather_toolset, calendar_tool],
)
# At runtime, restrict to only the tools needed for this task
response = agent.run(
messages=[ChatMessage.from_user("What is 42 * 7?")],
tools=["multiply"],
)
›Adds FallbackChatGenerator in haystack.components.generators.chat.fallback that tries a list of chat generators sequentially and returns the first successful response, with meta['successful_chat_generator_class'] identifying which provider succeeded — handles timeouts, rate limits, and server errors transparently.
›Adds conversion_mode='row' parameter to CSVToDocument, with optional content_column; each CSV row becomes a separate Document with remaining columns stored in meta (default 'file' mode preserved).
›Adds pipeline_snapshot and pipeline_snapshot_file_path parameters to BreakpointException, and pipeline_snapshot_file_path to PipelineRuntimeError, for easier location and inspection of stored pipeline snapshots.
›Introduces SentenceTransformersSparseTextEmbedder and SentenceTransformersSparseDocumentEmbedder components in haystack.components.embedders for sparse embedding models compatible with Sentence Transformers; output SparseEmbedding objects are compatible with QdrantDocumentStore.
›Adds warm_up() method to the Tool dataclass and Toolset, automatically called by Agent and ToolInvoker during their warmup phase to support pre-execution initialization such as database connections or model loading.
+6 moreshow less
›Adds a new RegexTextExtractor component that extracts text from chat messages or string inputs based on a custom regex pattern.
›Adds tools as a runtime parameter to Agent.run(), allowing callers to supply a subset of tool names or an entirely new set of Tool objects or a Toolset per invocation.
›Extends the tools parameter on Agent, ToolInvoker, OpenAIChatGenerator, AzureOpenAIChatGenerator, HuggingFaceAPIChatGenerator, and HuggingFaceLocalChatGenerator to accept a mixed list of Tool and Toolset objects in the same list.
›Enables resuming an Agent from an AgentSnapshot while simultaneously specifying a new breakpoint in the same run call, supporting stepwise debugging with precise control over chat generator and tool inputs.
›Updates PipelineSnapshot serialization and deserialization to support Python Enum classes.
›Adds raise_on_failure option to _save_pipeline_snapshot to control whether save failures raise an exception or are only logged.
└──▷ BREAKING ON UPGRADE
!Requires openai>=1.99.2 due to use of ChatCompletionMessageCustomToolCall; installations with older OpenAI client versions will break.
$ git clone --branch checkpointpostgres==3.0.0 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpointpostgres==3.0.0
›Adds cursory Python 3.14 support, enabling use of the Postgres checkpointer on the latest Python release.
└──▷ BREAKING ON UPGRADE
!Python 3.9 is no longer supported; setups running langgraph-checkpoint-postgres on Python 3.9 will break on upgrade.
LangGraph checkpointsqlite 3.0 adds Python 3.14 support and drops Python 3.9.
└──▷ GET THIS VERSION
$ git clone --branch checkpointsqlite==3.0.0 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpointsqlite==3.0.0
›Adds cursory Python 3.14 support, keeping the library compatible with the upcoming CPython release.
›Drops Python 3.9 support; minimum supported Python version is now 3.10 or higher.
└──▷ BREAKING ON UPGRADE
!Python 3.9 is no longer supported; running checkpointsqlite on Python 3.9 will break after upgrading to 3.0.0.
$ git clone --branch checkpoint==3.0.0 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:$ git checkout checkpoint==3.0.0
›Adds cursory Python 3.14 support to the checkpointers library.
›Restricts 'json' type deserialization for tighter serialization safety.
└──▷ BREAKING ON UPGRADE
!Python 3.9 is no longer supported; upgrade to Python 3.10 or later before upgrading to checkpoint 3.0.0.
An open-source AI agent that brings the power of Gemini directly into your terminal.
gemini-cli v0.11.0-nightly adds model routing, stream-JSON headless output, markdown toggle, todo list tab, and more UI capabilities.
└──▷ GET THIS VERSION
$ git clone --branch v0.11.0-nightly.20251020.a96f0659 https://github.com/google-gemini/gemini-cli.git
# already have the repo? check out this version:$ git checkout v0.11.0-nightly.20251020.a96f0659
└──▷ TRY IT
Stream structured JSON output line-by-line from a headless gemini-cli invocation for pipeline integration.
$ gemini --output-format stream-json -p "Summarize the CVEs in this advisory: $(cat advisory.txt)"
Inspect MCP servers registered via extensions, now showing the extension name alongside each server.
$ gemini mcp list
Toggle between rendered Markdown and raw model output while reviewing a response in the terminal.
$ # While a response is displayed in gemini-cli, press: Alt+m
›Enables Model Routing to automatically direct prompts to the best-fit model.
›Adds --output-format stream-json flag for streaming JSON output in headless/non-interactive mode.
›Adds alt+m keyboard shortcut to toggle between rendered Markdown and raw text in the terminal.
›Introduces a dedicated Todo List Tab (TodoTray) in the UI for tracking task lists generated during sessions.
›Includes the extension name in gemini mcp list command output for clearer MCP server identification.
+5 moreshow less
›Surfaces ASK_USER policy decision prompts in the UI message bus, enabling interactive permission flows.
›Allows editing queued messages using the up-arrow key before they are sent.
›Displays educative tips blended with witty phrases during loading times.
›Adds 'Esc to close' visual hint across dialogs (Settings, and other closeable dialogs).