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 -327, September 23, 2025

THE AI TOOLCHAIN NO. -327
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED SEPTEMBER 23, 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   # 7 tools matched
AI & LLM Tooling
◆  AI Agent Frameworks

LangChain

Sources Release notes → langchain==1.0.0a7 NOTES

LangChain 1.0.0a7 debuts dynamic system prompt middleware, improved HITL patterns, and PEP 604 union support in tool node error handlers.

└──▷ GET THIS VERSION
$ git clone --branch langchain==1.0.0a7 https://github.com/langchain-ai/langchain.git
# already have the repo? check out this version:
$ git checkout langchain==1.0.0a7
└──▷ USE IT
Use middleware with create_agent to inject a dynamic system prompt at runtime based on request context.
python
from langchain.agents import create_agent

agent = create_agent(
    model=llm,
    tools=[search_tool],
    middleware=[dynamic_system_prompt_middleware],
)
Type a tool node error handler using PEP 604 union syntax instead of Union[] for cleaner, modern Python.
python
from langchain.agents import create_agent
from langchain_core.messages import ToolMessage

def handle_errors(e: ValueError | KeyError) -> ToolMessage:
    return ToolMessage(content=str(e), tool_call_id="")

agent = create_agent(model=llm, tools=[my_tool], tool_node_error_handler=handle_errors)
  • Adds create_agent (formerly create_react_agent) with middleware support via the middleware parameter, enabling pre/post processing around agent execution.
  • Adds dynamic system prompt middleware, allowing system prompts to be resolved at runtime within the create_agent graph.
  • Supports PEP 604 (| union) syntax in tool node error handlers, so handlers can be typed as ExcTypeA | ExcTypeB instead of Union[ExcTypeA, ExcTypeB].
  • Introduces improved Human-in-the-Loop (HITL) interrupt patterns for agentic workflows.
  • Adds stuff and map-reduce document chains back to the v1 package.
+1 moreshow less
  • Drops Python 3.9 support; minimum supported version is now Python 3.10.
└──▷ BREAKING ON UPGRADE
  • !create_react_agent has been renamed to create_agent; any code importing or calling create_react_agent from langchain will break.
  • !Python 3.9 is no longer supported; upgrading requires Python 3.10 or higher.
Was this useful?

OpenAI Agents SDK

Sources Release notes → v0.3.2 NOTES

OpenAI Agents SDK v0.3.2 adds tool-call arguments to ToolContext, Annotated-type schema support, and full header overrides.

└──▷ GET THIS VERSION
$ git clone --branch v0.3.2 https://github.com/openai/openai-agents-python.git
# already have the repo? check out this version:
$ git checkout v0.3.2
└──▷ USE IT
Inspect tool call arguments inside a RunHook to log or gate on what arguments were passed to a tool at runtime.
python
class MyHooks(RunHooks):
    async def on_tool_start(self, context: ToolContext, agent: Agent, tool: Tool) -> None:
        print(f"Tool '{tool.name}' called with args: {context.tool_call_arguments}")
Use Annotated to attach descriptions and constraints to function tool parameters so the model receives richer schema information.
python
from typing import Annotated
from agents import function_tool

@function_tool
def search(query: Annotated[str, "The search query, max 200 chars"]) -> str:
    ...
  • Adds tool call arguments to ToolContext in RunHooks, giving hook implementations direct access to the arguments passed to each tool invocation.
  • Supports Annotated types in function tool schemas, enabling richer metadata and constraints on tool parameters.
  • Allows full HTTP header overrides on the client (previously limited to the user-agent header only).
Was this useful?
◆  AI Coding Agents

OpenAI Codex CLI

Sources Release notes → rust-v0.40.0 NOTES

Lightweight coding agent that runs in your terminal

Codex CLI gains /review commands, usage limits in /status, MCP timeouts, and defaults to gpt-5-codex with auto-compaction.

└──▷ GET THIS VERSION
$ git clone --branch rust-v0.40.0 https://github.com/openai/codex.git
# already have the repo? check out this version:
$ git checkout rust-v0.40.0
└──▷ USE IT
Prevent slow MCP servers from hanging a session by setting a per-server timeout in your config.
ini
[mcp_servers.my_server]
tool_timeout_sec = 120
  • Switches default model to gpt-5-codex.
  • Adds automatic context compaction for gpt-5-codex when the session hits 220k tokens.
  • Adds usage limits display to the /status command.
  • Adds /review command with options to review a specific commit, diff against a base branch, or apply custom review instructions.
  • Adds configurable MCP tool call timeout: defaults to 60s, overridable per-server via tool_timeout_sec in config.toml.
└──▷ BREAKING ON UPGRADE
  • !The /limits command has been removed; usage limit information has moved to /status.
Was this useful?

SST OpenCode

Sources Release notes → v0.11.2 NOTES

The open source coding agent.

OpenCode v0.11.2 adds Java LSP server support for in-editor language intelligence.

└──▷ GET THIS VERSION
$ git clone --branch v0.11.2 https://github.com/sst/opencode.git
# already have the repo? check out this version:
$ git checkout v0.11.2
  • Adds Java LSP server support, enabling language server protocol features (completions, diagnostics, etc.) for Java projects.
Was this useful?

Alibaba Qwen Code

Sources Release notes → v0.0.13-nightly.3 2 RELEASES · 2025-09-23 NOTES STABLE

Qwen Code v0.0.13-nightly.3 adds OpenAI and Qwen OAuth authentication to the Zed ACP integration.

└──▷ GET THIS VERSION
$ git clone --branch v0.0.13-nightly.3 https://github.com/QwenLM/qwen-code.git
# already have the repo? check out this version:
$ git checkout v0.0.13-nightly.3
  • Adds OpenAI and Qwen OAuth authentication support to the Zed ACP integration.
1 more release in this issue · 2025-09-23
v0.0.13-nightly.2 NOTES STABLE

Qwen Code v0.0.13-nightly.2 adds OpenAI and Qwen OAuth authentication to the Zed ACP integration.

└──▷ GET THIS VERSION
$ git clone --branch v0.0.13-nightly.2 https://github.com/QwenLM/qwen-code.git
# already have the repo? check out this version:
$ git checkout v0.0.13-nightly.2
  • Adds OpenAI and Qwen OAuth authentication support to the Zed ACP integration.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Arize Phoenix

Sources Release notes → arize-phoenix-v11.36.0 NOTES

Phoenix v11.36.0 adds per-repetition breakdown in the experiments compare slideover.

└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v11.36.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:
$ git checkout arize-phoenix-v11.36.0
  • Breaks out individual repetitions in the experiments compare slideover, making it easier to inspect variance across repeated experiment runs.
  • Ports notifications to react-aria toasts for improved accessibility in the Phoenix UI.
Was this useful?
◆  VECTOR DB RAG

LanceDB

Sources Release notes → python-v0.25.1 2 RELEASES · 2025-09-23 NOTES STABLE

LanceDB python-v0.25.1 adds mTLS, per-request headers, shallow clone, MRR reranker, and a new target_partition_size index param.

└──▷ GET THIS VERSION
$ git clone --branch python-v0.25.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:
$ git checkout python-v0.25.1
  • Adds target_partition_size parameter for index creation, giving callers direct control over partition sizing.
  • Supports mTLS (mutual TLS) for remote database connections, enabling certificate-based client authentication.
  • Supports per-request header overrides for remote connections, allowing request-scoped credential or routing headers.
  • Adds shallow clone support for tables, enabling lightweight copy operations without full data duplication.
  • Adds a Mean Reciprocal Rank (MRR) reranker for hybrid search result fusion.
+1 moreshow less
  • Upgrades Lance to v0.37.0, pulling in the latest storage-layer capabilities.
1 more release in this issue · 2025-09-23
v0.22.1 NOTES STABLE

LanceDB v0.22.1 adds mTLS, per-request header overrides, shallow clone, MRR reranker, and a new target_partition_size index param.

└──▷ GET THIS VERSION
$ git clone --branch v0.22.1 https://github.com/lancedb/lancedb.git
# already have the repo? check out this version:
$ git checkout v0.22.1
  • Adds target_partition_size parameter for index configuration to control partition sizing during index builds.
  • Supports mTLS for remote database connections, enabling mutual TLS authentication.
  • Supports per-request header overrides for remote database clients, allowing dynamic header injection on individual requests.
  • Adds shallow clone support for tables, enabling faster cloning without copying full data history.
  • Adds a Mean Reciprocal Rank (MRR) reranker for hybrid search result reranking.
+1 moreshow less
  • Upgrades Lance to v0.37.0.
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 →