Heads up This site is currently under heavy development.
Subscribe Get it delivered — the daily firehose, filtered to the tools you run, plus the documentation changes vendors never announce. Compare plans →

The AI Toolchain — issue -252, December 8, 2025

THE AI TOOLCHAIN NO. -252
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED DECEMBER 8, 2025 · EVERY WEEKDAY
EDITIONS tail grep head diff uniq

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.

VIEW
ISSUE VIEW full issue
Do you prefer this view?
$ tct list   # 5 tools matched
AI & LLM Tooling
◆  AI Coding Agents

Charm Crush

Sources Release notes → v0.22.0 NOTES

Glamourous agentic coding for all

Crush v0.22.0 adds DuckDuckGo web search and image-returning tool/MCP support via agentic fetch.

└──▷ GET THIS VERSION
$ git clone --branch v0.22.0 https://github.com/charmbracelet/crush.git
# already have the repo? check out this version:
$ git checkout v0.22.0
  • Adds DuckDuckGo-powered web search: tell Crush what you're looking for and it uses agentic fetch to search and retrieve results while keeping search context out of the main session.
  • Supports image results returned by tools and MCPs (e.g., Playwright), enabling visual web agentic workflows.
Was this useful?
◆  AI Agent Frameworks

deepset Haystack

Sources Release notes → v2.21.0 NOTES

Haystack v2.21.0 adds Multi-Query RAG components and async support for FilterRetriever and AutoMergingRetriever.

└──▷ GET THIS VERSION
$ git clone --branch v2.21.0 https://github.com/deepset-ai/haystack.git
# already have the repo? check out this version:
$ git checkout v2.21.0
└──▷ USE IT
Expand an ambiguous or short query into multiple variations and retrieve a broader set of relevant documents using BM25.
python
from haystack.components.query import QueryExpander
from haystack.components.retrievers import InMemoryBM25Retriever, MultiQueryTextRetriever
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack.components.writers import DocumentWriter
from haystack import Document
from haystack.document_stores.types import DuplicatePolicy

store = InMemoryDocumentStore()
writer = DocumentWriter(document_store=store, policy=DuplicatePolicy.SKIP)
writer.run(documents=[Document(content="Renewable energy comes from wind and sunlight.")])

expander = QueryExpander()
retriever = InMemoryBM25Retriever(document_store=store, top_k=3)
multi_retriever = MultiQueryTextRetriever(retriever=retriever)

expanded = expander.run(query="renewable energy")
results = multi_retriever.run(queries=expanded["queries"])
for doc in results["documents"]:
    print(doc.content)
  • Adds QueryExpander component (importable from haystack.components.query) to generate semantically similar query variations for broader search coverage.
  • Adds MultiQueryTextRetriever (importable from haystack.components.retrievers) to run multiple queries in parallel against a text-based retriever (e.g., BM25) and merge results by score.
  • Adds MultiQueryEmbeddingRetriever (importable from haystack.components.retrievers) to perform multi-query retrieval using embeddings for richer semantic recall.
  • Adds return_empty_on_no_match parameter to RegexTextExtractor.__init__() (default True); set to False to return {'captured_text': ''} instead of {} when no regex match is found, ensuring consistent output structure for pipeline integration.
  • FilterRetriever and AutoMergingRetriever components now support asynchronous execution.
└──▷ BREAKING ON UPGRADE
  • !The default model for AzureOpenAIGenerator and AzureOpenAIChatGenerator changed from gpt-4o-mini to gpt-4.1-mini, and the default API version changed from 2023-05-15 to 2024-12-01-preview.
  • !The default model for OpenAIChatGenerator and OpenAIGenerator changed from gpt-4o-mini to gpt-5-mini; explicitly pass model='gpt-4o-mini' at initialization to retain the previous behavior.
Was this useful?

LangChain

Sources Release notes → langchain==1.1.3 2 RELEASES · 2025-12-08 NOTES STABLE

LangChain 1.1.3 adds agent name to AIMessage, Anthropic effort support, and Upstage Solar in init_chat_model.

└──▷ GET THIS VERSION
$ git clone --branch langchain==1.1.3 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:
$ git checkout langchain==1.1.3
  • Adds effort parameter support for Anthropic models.
  • Adds Upstage (Solar) as a supported provider in init_chat_model.
  • Adds agent name to AIMessage objects.
1 more release in this issue · 2025-12-08
langchain-core==1.1.2 NOTES STABLE

LangChain Core 1.1.2 adds Google Maps grounding support in the GenAI block translator.

└──▷ GET THIS VERSION
$ git clone --branch langchain-core==1.1.2 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:
$ git checkout langchain-core==1.1.2
  • Adds Google Maps grounding support to the GenAI block translator.
Was this useful?
◆  Local LLM Runtimes

llama.cpp

Sources Release notes → b7318 NOTES

llama.cpp b7318 lets you configure cache_reuse per request on the server.

└──▷ GET THIS VERSION
$ git clone --branch b7318 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b7318
  • Adds cache_reuse as a per-request configurable field on the llama.cpp server, allowing fine-grained control over KV-cache reuse on a request-by-request basis.
└──▷ BREAKING ON UPGRADE
  • !Linux releases will move from .zip archives to .tar.gz archives; deployment scripts that fetch or unpack Linux builds must be updated.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Langfuse

Sources Release notes → v3.138.0 NOTES

Langfuse v3.138.0 adds a DELETE API for prompts, SSO provider visibility in org tables, and improved OpenTelemetry/Pydantic tracing support.

└──▷ GET THIS VERSION
$ git clone --branch v3.138.0 https://github.com/langfuse/langfuse.git
# already have the repo? check out this version:
$ git checkout v3.138.0
└──▷ TRY IT
Delete a specific prompt version programmatically to keep your prompt library clean.
$ curl -X DELETE https://<your-langfuse-host>/api/public/prompts/<prompt-name> \
  -H 'Authorization: Basic <base64-encoded-credentials>'
  • Adds DELETE endpoint for prompts, enabling programmatic deletion of prompt versions via the API.
  • Adds SSO provider column to the organization members table in the UI, surfacing which SSO provider each member uses.
  • Maps OpenTelemetry observation types for gen_ai (e.g. Pydantic AI) spans, improving OTEL ingestion compatibility.
  • Renders Pydantic tool calls in a structured, human-readable format in the trace view.
  • Adds trace_name column to the event table definition, expanding queryable fields on events.
Was this useful?
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →