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 -161, March 10, 2026

THE AI TOOLCHAIN NO. -161
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED MARCH 10, 2026 · 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   # 12 tools matched
AI & LLM Tooling
◆  AI Agent Frameworks

Agno (formerly Phidata)

Sources Release notes → v2.5.9 NOTES

Agno v2.5.9 adds built-in followup suggestions, datetime_format, message history in tool hooks, and extended GoogleCalendarTools.

└──▷ GET THIS VERSION
$ git clone --branch v2.5.9 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:
$ git checkout v2.5.9
└──▷ USE IT
Use ISO-8601 datetime formatting in an agent so its system prompt always receives a consistently formatted timestamp.
python
agent = Agent(
    model=...,
    datetime_format="%Y-%m-%dT%H:%M:%S"
)
Inspect or log the full message history inside a tool hook to audit what the agent has seen before a tool call fires.
python
def my_pre_hook(run_context, tool_call):
    history = run_context.messages
    for msg in history:
        print(msg)

agent = Agent(
    model=...,
    tool_hooks=[my_pre_hook]
)
  • Adds datetime_format parameter to Agent and Team for custom strftime formatting of datetime context (e.g., ISO-8601, date-only, localized).
  • Exposes the current run's message history to tool pre/post hooks and agent-level tool_hooks via run_context.messages, with mutation safety.
  • Adds built-in followup suggestion support to Agent and Team.
  • Extends GoogleCalendarTools with new tools and service account authentication support.
Was this useful?

LangChain

Sources Release notes → langchain==1.2.11 NOTES

LangChain 1.2.11 adds OpenRouter provider package and OpenAI server-side compaction support.

└──▷ GET THIS VERSION
$ git clone --branch langchain==1.2.11 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:
$ git checkout langchain==1.2.11
  • Adds langchain-openrouter provider package for integrating OpenRouter as a model provider.
  • Supports automatic server-side compaction for OpenAI chat models.
Was this useful?

LangChain LangGraph

Sources Release notes → 1.1.0 2 RELEASES · 2026-03-10 NOTES STABLE

Build resilient agents.

LangGraph 1.1 adds opt-in version="v2" for type-safe streaming and invoke with Pydantic/dataclass output coercion.

└──▷ GET THIS VERSION
$ git clone --branch 1.1.0 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:
$ git checkout 1.1.0
└──▷ USE IT
Get a typed return value and cleanly inspect interrupts after invoking a graph — no more fishing through result["__interrupt__"] in a plain dict.
python
result = graph.invoke({"input": "hello"}, version="v2")
result.value       # your output state
result.interrupts  # tuple[Interrupt, ...], empty if none
Stream graph events with full type narrowing — branch on part["type"] and let your type checker know exactly what part["data"] contains for each mode.
python
from langgraph.types import ValuesStreamPart, UpdatesStreamPart

for part in graph.stream({"input": "hello"}, version="v2"):
    if part["type"] == "values":
        state = part["data"]        # OutputT — full typed state
        interrupts = part["interrupts"]
    elif part["type"] == "updates":
        delta = part["data"]        # dict[str, Any]
When your state is a Pydantic model, confirm the output is already coerced to the right type — no manual MyState(**result) call needed.
python
from pydantic import BaseModel
from langgraph.graph import StateGraph

class MyState(BaseModel):
    answer: str
    count: int

compiled = StateGraph(MyState).compile()  # ... add nodes/edges first
result = compiled.invoke({"answer": "", "count": 0}, version="v2")
assert isinstance(result.value, MyState)
  • Adds version="v2" opt-in to invoke(), ainvoke(), stream(), and astream() for fully type-safe outputs.
  • New GraphOutput return type from invoke(..., version="v2") exposes .value and .interrupts attributes, cleanly separating state from interrupt signals.
  • New strongly-typed StreamPart discriminated union (and per-mode TypedDicts: ValuesStreamPart, UpdatesStreamPart, MessagesStreamPart, CustomStreamPart, CheckpointStreamPart, TasksStreamPart, DebugStreamPart) enables full type narrowing in editors and type checkers.
  • Automatic output coercion to Pydantic models or dataclasses when the graph's state schema is declared as one — no manual parsing needed.
  • Non-"values" stream modes with version="v2" return list[StreamPart] from invoke() instead of list[tuple].
1 more release in this issue · 2026-03-10
cli==0.4.15 NOTES STABLE

LangGraph CLI gains a langgraph deploy command for direct deployment from the CLI.

└──▷ GET THIS VERSION
$ git clone --branch cli==0.4.15 https://github.com/langchain-ai/langgraph.git
# already have the repo? check out this version:
$ git checkout cli==0.4.15
└──▷ TRY IT
Deploy a LangGraph application to LangGraph Cloud without leaving the terminal.
$ langgraph deploy
  • Adds langgraph deploy command to deploy LangGraph applications directly from the CLI.
Was this useful?

LlamaIndex

Sources Release notes → v0.14.16 NOTES

LlamaIndex v0.14.16 adds token-bucket and sliding-window rate limiters, a multimodal reranker, GPT-5 and reasoning_content support, a ModelsLab LLM integration, and richer OpenTelemetry tracing.

└──▷ GET THIS VERSION
$ git clone --branch v0.14.16 https://github.com/run-llama/llama_index.git
# already have the repo? check out this version:
$ git checkout v0.14.16
└──▷ USE IT
Use a custom embedding model inside the semantic double-merging splitter instead of the global default.
python
from llama_index.core.node_parser import SemanticDoubleMergingSplitterNodeParser
from llama_index.embeddings.openai import OpenAIEmbedding

parser = SemanticDoubleMergingSplitterNodeParser(
    embed_model=OpenAIEmbedding(model="text-embedding-3-small")
)
Introspect the schema of a large Neo4j database by sampling with APOC rather than scanning all nodes.
python
from llama_index.graph_stores.neo4j import Neo4jGraphStore

graph_store = Neo4jGraphStore(
    username="neo4j",
    password="<password>",
    url="bolt://localhost:7687",
    apoc_sample=0.1,
)
  • Adds SlidingWindowRateLimiter to llama-index-core for strict per-minute API call caps on LLM and embedding requests.
  • Adds token-bucket rate limiter to llama-index-core for LLM and embedding API calls.
  • Adds optional embed_model parameter to SemanticDoubleMergingSplitterNodeParser so callers can supply a custom embedding model for semantic chunking.
  • Adds apoc_sample parameter to llama-index-graph-stores-neo4j for sampling-based schema introspection on large Neo4j databases.
  • Adds extra span processors via llama-index-observability-otel, enabling registration of additional processors within the OTel tracer.
+7 moreshow less
  • Supports passing a custom tracer provider in llama-index-observability-otel.
  • Adds inheritance for external OTel context in llama-index-observability-otel.
  • New MultimodalLLMReranker in llama-index-core enables reranking with multimodal LLMs.
  • Extends vector store metadata filters in llama-index-core.
  • New llama-index-llms-modelslab integration adds ModelsLab as an LLM provider.
  • Adds GPT-5 chat model support (gpt-5) in llama-index-llms-openai.
  • Supports reasoning_content field in OpenAI Chat Completions responses via llama-index-llms-openai.
Was this useful?
◆  AI Coding Agents

Anthropic Claude Code

Sources Release notes → v2.1.72 NOTES

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

Claude Code v2.1.72 adds file-write in /copy, /plan descriptions, ExitWorktree tool, cron control, and a VS Code URI handler.

└──▷ GET THIS VERSION
$ git clone --branch v2.1.72 https://github.com/anthropics/claude-code.git
# already have the repo? check out this version:
$ git checkout v2.1.72
└──▷ TRY IT
Write a focused selection to a file over SSH without relying on clipboard access.
$ # In an active Claude Code session, open the copy picker with /copy, highlight the desired block, then press `w` to write it directly to a file.
Jump straight into plan mode with context so Claude starts immediately rather than waiting for a follow-up prompt.
$ claude> /plan fix the auth bug
Stop all scheduled cron jobs mid-session without restarting Claude Code.
$ CLAUDE_CODE_DISABLE_CRON=1 claude
Open a new Claude Code tab in VS Code programmatically with a pre-filled prompt from an external script or tool.
$ open 'vscode://anthropic.claude-code/open?prompt=explain+this+file&session=abc123'
  • Adds w key in /copy to write the focused selection directly to a file, bypassing the clipboard — useful over SSH.
  • Adds optional description argument to /plan (e.g., /plan fix the auth bug) to enter plan mode and immediately start working.
  • Adds ExitWorktree tool to cleanly leave an EnterWorktree session.
  • Adds CLAUDE_CODE_DISABLE_CRON environment variable to immediately stop scheduled cron jobs mid-session.
  • Adds lsof, pgrep, tput, ss, fd, and fdfind to the bash auto-approval allowlist, reducing permission prompts for common read-only operations.
+9 moreshow less
  • Adds support for marketplace git URLs without a .git suffix (Azure DevOps, AWS CodeCommit).
  • Adds claude plugins as an alias for claude plugin.
  • Simplifies effort levels to low/medium/high (removed max) with new symbols (○ ◐ ●); adds /effort auto to reset to default.
  • Improves /config keyboard UX — Escape cancels changes, Enter saves and closes, Space toggles settings.
  • Improves up-arrow history to show the current session's messages first when running multiple concurrent sessions.
  • Improves voice input transcription accuracy for repo names and common dev terms (regex, OAuth, JSON).
  • Hides CLAUDE.md HTML comments (<!-- ... -->) from Claude when auto-injected; comments remain visible when read with the Read tool.
  • VSCode: Adds vscode://anthropic.claude-code/open URI handler to open a new Claude Code tab programmatically, with optional prompt and session query parameters.
  • VSCode: Adds effort level indicator on the input border.
└──▷ BREAKING ON UPGRADE
  • !The CLAUDE_CODE_PROXY_SUPPORTS_TOOL_REFERENCE environment variable has been removed; the tool search proxy bypass is now controlled by a different environment variable.
  • !Effort level max has been removed; valid levels are now low, medium, and high only.
Was this useful?

OpenAI Codex CLI

Sources Release notes → rust-v0.113.0 NOTES

Lightweight coding agent that runs in your terminal

Codex CLI gains runtime permission requests, a plugin marketplace, full web search config, and split sandbox policies.

└──▷ GET THIS VERSION
$ git clone --branch rust-v0.113.0 https://github.com/openai/codex.git
# already have the repo? check out this version:
$ git checkout rust-v0.113.0
  • Adds built-in request_permissions tool so a running turn can request additional permissions at runtime, with new TUI rendering for those approval prompts.
  • Introduces a curated plugin marketplace with plugin/list metadata discovery, install-time auth checks, and a plugin/uninstall endpoint.
  • Upgrades app-server command execution with streaming stdin/stdout/stderr and TTY/PTY support; wires exec to the new in-process app-server path.
  • Expands web search tool configuration beyond on/off to support full options such as filters and location.
  • Adds a new permission-profile config language and splits filesystem/network sandbox policies for more precise per-policy control.
+1 moreshow less
  • Image generation now saves output files into the current working directory automatically.
Was this useful?
◆  AI Model & Data Infrastructure

Ollama

Sources Release notes → v0.17.8-rc4 NOTES

Get up and running with Kimi-K2.6, GLM-5.2, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.

Ollama v0.17.8-rc4 adds MLX int4 groupsize 64 support and updates ROCm on Linux to v7.2.

└──▷ GET THIS VERSION
$ git clone --branch v0.17.8-rc4 https://github.com/ollama/ollama.git
# already have the repo? check out this version:
$ git checkout v0.17.8-rc4
  • Updates ROCm support on Linux to v7.2.
  • Adds MLX int4 groupsize 64 quantization support for Apple Silicon inference.
  • MLX runner now reads model parameters directly from the Modelfile during model creation.
  • Removes requirement to pull stubs for cloud models, streamlining cloud model usage.
Was this useful?
◆  Local LLM Runtimes

llama.cpp

Sources Release notes → b8262 2 RELEASES · 2026-03-10 NOTES STABLE

llama.cpp server CORS proxy now correctly parses port numbers from MCP server URLs, enabling non-standard port and SSL routing.

└──▷ GET THIS VERSION
$ git clone --branch b8262 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b8262
  • The server CORS proxy now parses port numbers from MCP server URLs and passes the scheme to the HTTP proxy to determine whether to use SSL, fixing routing for non-standard ports.
1 more release in this issue · 2026-03-10
b8261 NOTES STABLE

llama.cpp b8261 extends Metal mul_mv_ext small-batch kernels to BF16, Q2_K, and Q3_K quantization types.

└──▷ GET THIS VERSION
$ git clone --branch b8261 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b8261
  • Extends Metal mul_mv_ext small-batch kernels (batch sizes 2–8) to BF16, Q2_K, and Q3_K quantization types, which previously fell through to the slower single-row mul_mv path — enabling faster Apple Silicon inference for models using these formats.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Arize Phoenix

Sources Release notes → arize-phoenix-v13.13.0 NOTES

Phoenix 13.13.0 adds provider filtering env vars, a DELETE session API, and dataset column drag-and-drop

└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v13.13.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:
$ git checkout arize-phoenix-v13.13.0
└──▷ TRY IT
Restrict the playground and UI to only show specific model providers, e.g. to enforce org-approved vendors.
$ export PHOENIX_ALLOWED_PROVIDERS=openai,anthropic
Hide one or more model providers from the UI without a strict allowlist, e.g. to suppress internal or deprecated providers.
$ export PHOENIX_HIDDEN_PROVIDERS=azure,cohere
  • Adds PHOENIX_ALLOWED_PROVIDERS environment variable to restrict which model providers appear in the UI.
  • Adds PHOENIX_HIDDEN_PROVIDERS environment variable to hide specific model providers from the UI.
  • Adds a DELETE session API endpoint on the server.
  • Splits the side-nav API reference into separate REST API and GraphQL sections in the UI.
  • Adds drag-and-drop column reordering for datasets in the UI.
└──▷ BREAKING ON UPGRADE
  • !The client.annotations module has been removed from the Python client (was previously deprecated).
Was this useful?

Langfuse

Sources Release notes → v3.157.0 NOTES

Langfuse v3.157.0 adds GPT-5.4 model support, LLM-as-a-judge environment hiding, and saved-views slide-in panel.

└──▷ GET THIS VERSION
$ git clone --branch v3.157.0 https://github.com/langfuse/langfuse.git
# already have the repo? check out this version:
$ git checkout v3.157.0
  • Adds gpt-5.4 to the supported models list for cost tracking and evaluation.
  • LLM-as-a-judge environment variables are now hidden by default in the filters UI to reduce noise.
  • Saved views panel now slides in from the left for improved navigation.
  • Trace-level scores are now surfaced in the observation-level score table in the events view.
  • Users can now filter directly from the trace detail view.
+2 moreshow less
  • Events table gains a public/private visibility toggle per event.
  • Type filter is now included by default in the expanded events table.
Was this useful?

Weights & Biases Weave

Sources Release notes → v0.52.31 2 RELEASES · 2026-03-10 NOTES STABLE

Weave v0.52.31 adds Claude agents integration, Fireworks provider support, trace server backend for tags and aliases, and timestamps/TTFT for realtime tracing.

└──▷ GET THIS VERSION
$ git clone --branch v0.52.31 https://github.com/wandb/weave.git
# already have the repo? check out this version:
$ git checkout v0.52.31
  • Adds Claude agents integration for tracing Anthropic agent workflows.
  • Adds Fireworks as a supported LLM provider.
  • Adds trace server backend support for tags and aliases on traced objects.
  • Adds timestamps and time-to-first-token (TTFT) tracking for realtime tracing.
  • Supports merged scorers in monitors.
1 more release in this issue · 2026-03-10
v0.52.30 NOTES STABLE

Weave v0.52.30 adds a score-backfill endpoint, Gemini tracking in the TS SDK, and sharded distributed calls for better query performance.

└──▷ GET THIS VERSION
$ git clone --branch v0.52.30 https://github.com/wandb/weave.git
# already have the repo? check out this version:
$ git checkout v0.52.30
  • Adds an endpoint to backfill scores for existing evaluation records.
  • Adds Gemini model tracking support to the TypeScript SDK.
  • Shards the distributed calls table by trace_id or project_id for improved query performance at scale.
  • Eliminates CTE usage for calls_complete queries, reducing query overhead.
Was this useful?
◆  VECTOR DB RAG

Chroma

Sources Release notes → 1.5.5 NOTES

Chroma 1.5.5 adds a GoogleGemini embedding function alias and API key warnings for JS embedding functions.

└──▷ GET THIS VERSION
$ git clone --branch 1.5.5 https://github.com/chroma-core/chroma.git
# already have the repo? check out this version:
$ git checkout 1.5.5
  • Adds a GoogleGemini name alias for the Google Gemini embedding function in JavaScript.
  • Warns at runtime when no API key is set on JavaScript embedding functions.
  • Improves lazy fragment fetch concurrency using buffer_unordered, enabling higher-throughput data retrieval.
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 →