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 -269, November 21, 2025

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

Agno (formerly Phidata)

Sources Release notes → v2.3.1 2 RELEASES · 2025-11-21 NOTES STABLE

Agno v2.3.1 adds NanoBananaTools image generation, Claude structured output support, and MCPTools subclass registration in AgentOS.

└──▷ GET THIS VERSION
$ git clone --branch v2.3.1 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:
$ git checkout v2.3.1
└──▷ USE IT
Generate images with Google's Nano Banana model using the new toolkit.
python
from agno.tools.nano_banana import NanoBananaTools

agent = Agent(tools=[NanoBananaTools()], ...)
  • Adds NanoBananaTools toolkit for generating images with Google's Nano Banana model.
  • Adds support for Anthropic's structured output functionality in Claude models, ensuring responses always conform to a given schema.
  • Enables custom toolkits that extend MCPTools or MultiMCPTools to be registered and used inside AgentOS.
1 more release in this issue · 2025-11-21
v2.3.0 NOTES STABLE

Agno v2.3.0 adds MigrationManager, sound-effect generation, RedisCluster support, and overhauled session message/history APIs.

└──▷ GET THIS VERSION
$ git clone --branch v2.3.0 https://github.com/agno-agi/agno.git
# already have the repo? check out this version:
$ git checkout v2.3.0
└──▷ USE IT
Print a multi-agent Team response while showing each member's individual output, for debugging delegation chains.
python
team.print_response("Summarise the threat landscape", show_member_responses=True)
  • Introduces MigrationManager class to apply schema migrations for sessions and memories tables across PostgreSQL, SQLite, MySQL, and SingleStore backends.
  • Adds get_messages and get_chat_history methods to AgentSession, TeamSession, and WorkflowSession session classes, with full filtering capabilities.
  • Adds get_session_messages and get_chat_history methods to Agent, Team, and Workflow classes; adds get_chat_history to the WorkflowStep class.
  • Adds show_member_responses parameter to Team.print_response and Team.aprint_response to surface member-level outputs during streaming.
  • Adds RedisCluster support when configuring a RedisDb instance for agent database storage.
+3 moreshow less
  • Adds sound-effect generation support to ModelLabsTools via ModelsLab SFX.
  • All model instances now share a global httpx client singleton with http2 multiplexing enabled, improving resource use and instantiation speed.
  • Stateless knowledge-base filters now work correctly with AgentOS; using knowledge(...) filters requires setting contents_db.
└──▷ BREAKING ON UPGRADE
  • !delegate_task_to_all_members parameter on Team is renamed to delegate_to_all_members; existing code using the old name will break.
  • !GoogleSearchTools toolkit has been removed entirely; callers must switch to DuckDuckGoTools.
  • !stream_events parameter has been removed from print_response, aprint_response, and CLI methods on Agent, Team, and Workflow.
  • !get_messages_for_session has been removed from Agent and Team.
  • !get_messages_from_last_n_runs has been removed from Session, Agent, and Team.
  • !Using knowledge(...) with knowledge_filters now requires contents_db to be set; omitting it will break filtering.
  • !The deprecated AgentOS parameters os_id, fastapi_app, enable_mcp, and replace_routes have been removed; use id, base_app, enable_mcp_server, and on_route_conflict respectively.
  • !The default Nebius model endpoint changed from the AI Studio URL to api.tokenfactory.nebius.com; users targeting Nebius AI Studio must now explicitly pass that URL as base_url.
  • !PostgreSQL sessions and memories tables require migration: created_at and feedback columns added to memories, and all JSON columns in PostgresDb converted to JSONB.
Was this useful?

PydanticAI

Sources Release notes → v1.21.0 NOTES

PydanticAI v1.21.0 adds MCP client resource support, server instructions exposure, and a BinaryContent path loader.

└──▷ GET THIS VERSION
$ git clone --branch v1.21.0 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:
$ git checkout v1.21.0
└──▷ USE IT
Load a local image or binary file into an agent message without manually reading bytes.
python
from pydantic_ai.messages import BinaryContent

content = BinaryContent.from_path('screenshot.png')
Inspect the instructions a connected MCP server advertises, useful for debugging server configuration.
python
from pydantic_ai.mcp import MCPServerSSE

server = MCPServerSSE(url='http://localhost:8080/sse')
print(server.instructions)
  • Adds BinaryContent.from_path convenience method for loading binary content directly from a file path.
  • Exposes MCP server instructions via the MCPServer.instructions property.
  • Adds MCP client Resources support, enabling agents to read resources from MCP servers.
  • Enforces that message history always starts with a user message.
  • Always strips Markdown fences from structured output, improving reliability of parsed responses.
└──▷ BREAKING ON UPGRADE
  • !Message history that does not start with a user message is now rejected — any existing code passing histories beginning with a non-user message will break.
Was this useful?
◆  AI Coding Agents

OpenAI Codex CLI

Sources Release notes → rust-v0.63.0 NOTES

Lightweight coding agent that runs in your terminal

Codex CLI adds a Declined status for command execution approvals in the app server.

└──▷ GET THIS VERSION
$ git clone --branch rust-v0.63.0 https://github.com/openai/codex.git
# already have the repo? check out this version:
$ git checkout rust-v0.63.0
  • Adds a Declined status for command execution, allowing the app server to explicitly signal when a command has been rejected.
Was this useful?

SST OpenCode

Sources Release notes → v1.0.86 2 RELEASES · 2025-11-21 NOTES STABLE

The open source coding agent.

OpenCode v1.0.86 adds provider whitelist/blacklist config to control which AI providers are available.

└──▷ GET THIS VERSION
$ git clone --branch v1.0.86 https://github.com/sst/opencode.git
# already have the repo? check out this version:
$ git checkout v1.0.86
  • Adds provider whitelist and blacklist configuration options to restrict or allow specific AI providers.
1 more release in this issue · 2025-11-21
v1.0.84 NOTES STABLE

OpenCode v1.0.84 adds a TUI onboarding flow, animated progress bar, and user-only message field.

└──▷ GET THIS VERSION
$ git clone --branch v1.0.84 https://github.com/sst/opencode.git
# already have the repo? check out this version:
$ git checkout v1.0.84
  • New animated progress bar replaces text shimmer during model processing in the TUI.
  • New TUI onboarding flow guides users through initial setup.
  • Adds a field to allow user-only messages.
Was this useful?

Google gemini-cli

Sources Release notes → v0.19.0-nightly.20251121.5982abeff NOTES

An open-source AI agent that brings the power of Gemini directly into your terminal.

gemini-cli v0.19.0-nightly adds Gemini 3 thinking-level support, live preview-feature toggling, and user email in the about box.

└──▷ GET THIS VERSION
$ git clone --branch v0.19.0-nightly.20251121.5982abeff https://github.com/google-gemini/gemini-cli.git
# already have the repo? check out this version:
$ git checkout v0.19.0-nightly.20251121.5982abeff
  • Adds thinking-level control for Gemini 3 models, wired into the model config hierarchy.
  • Enables switching preview features on and off without restarting the CLI.
  • Displays the authenticated user's email in the about box.
  • Wires up chat code path to honour per-model config settings.
  • Applies default model routing for the Zed integration.
└──▷ BREAKING ON UPGRADE
  • !The default compress threshold for API key users is changed to 0.5 (from its previous value), which may trigger context compression sooner than before on existing setups.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Langfuse

Sources Release notes → v3.133.0 NOTES

Langfuse v3.133.0 adds MCP server support, public API v2, JumpCloud IdP, and GET /scores filtering by traceId/datasetRunId.

└──▷ GET THIS VERSION
$ git clone --branch v3.133.0 https://github.com/langfuse/langfuse.git
# already have the repo? check out this version:
$ git checkout v3.133.0
└──▷ TRY IT
Filter scores by a specific trace to pull all scores associated with one LLM call chain.
$ curl -X GET 'https://<your-langfuse-host>/api/public/scores?traceId=<traceId>' \
  -H 'Authorization: Basic <base64-encoded-credentials>'
Route requests to a model-specific endpoint by templating {model} into the base URL of a custom LLM connection.
yaml
baseUrl: https://my-gateway.example.com/v1/{model}/invoke
  • Adds GET /scores filtering by traceId and datasetRunId query parameters in the public API.
  • Introduces public API v2 basic functionality.
  • Allows {model} template variable in baseUrl for the OpenAI adapter in LLM connections.
  • Implements a Model Context Protocol (MCP) server.
  • Adds JumpCloud as a custom IdP option for SSO authentication.
+2 moreshow less
  • Adds gemini-3-pro-preview support in the playground and evaluations.
  • Adds GPT-5.1 model pricing.
Was this useful?
◆  VECTOR DB RAG

Milvus

Sources Release notes → v2.6.6 NOTES

Milvus 2.6.6 adds Geometry and TIMESTAMPTZ data types, a Boost Ranker for rescoring, and JSONL/NDJSON bulk-insert support.

└──▷ GET THIS VERSION
$ git clone --branch v2.6.6 https://github.com/milvus-io/milvus.git
# already have the repo? check out this version:
$ git checkout v2.6.6
└──▷ TRY IT
Store and query geospatial points in a Milvus collection to power location-based search.
$ from pymilvus import MilvusClient, DataType

client = MilvusClient(uri='http://localhost:19530')
schema = client.create_schema()
schema.add_field('id', DataType.INT64, is_primary=True)
schema.add_field('location', DataType.GEOMETRY)

client.create_collection('places', schema=schema)

# Insert a point
client.insert('places', [{'id': 1, 'location': 'POINT(13.405 52.52)'}])

# Filter by spatial relationship
results = client.query('places', filter="st_dwithin(location, 'POINT(13.4 52.5)', 5000)")
Query TIMESTAMPTZ-typed events and convert timestamps to a user-local timezone on retrieval.
$ from pymilvus import MilvusClient

client = MilvusClient(uri='http://localhost:19530')
results = client.query(
    collection_name='events',
    filter="event_time >= '2025-01-01T00:00:00Z' and event_time < '2025-02-01T00:00:00Z'",
    output_fields=['event_time', 'description'],
    params={'timezone': 'America/New_York'}
)
  • New Geometry data type stores OGC-compliant geometric objects (POINT, LINESTRING, POLYGON) with spatial relationship operators (st_contains, st_intersects, st_within, st_dwithin) and an RTREE spatial index for LBS and mapping workloads.
  • New TIMESTAMPTZ data type brings timezone-aware temporal storage; supports a timezone property on Databases and Collections for a default time context, expression-based filtering for time range queries, and a timezone parameter on query/search for on-the-fly timestamp conversion.
  • New Boost Ranker lets searches apply an optional filtering condition and a specified weight to promote or demote matched candidates in final results, independent of raw vector distance scores.
  • STL_SORT index now supports VARCHAR and TIMESTAMPTZ datatypes.
  • Dynamic field can now be enabled on an existing collection via ALTER COLLECTION without recreating it.
+9 moreshow less
  • Supports JSONL/NDJSON files for bulk-insert (bulkinsert) operations.
  • geometrycache is now an optional configuration, allowing operators to tune memory usage for spatial workloads.
  • Adds max_connection config for remote storage connections.
  • Removes the maximum vector field number limit per collection.
  • Adds new config keys with dynamic update support.
  • Knowhere thread pool config is now refreshable at runtime.
  • RBAC support added for updateReplicateConfiguration.
  • Import job listings now show create time.
  • nullable support added for Geometry and TIMESTAMPTZ field types.
Was this useful?

Weaviate

Sources Release notes → v1.31.20 NOTES

Weaviate v1.31.20 adds Geo HNSW index configuration, replication scaling, VoyageAI v3.5 models, Cohere dimensions, and Google batch API support.

└──▷ GET THIS VERSION
$ git clone --branch v1.31.20 https://github.com/weaviate/weaviate.git
# already have the repo? check out this version:
$ git checkout v1.31.20
  • Adds configurable HNSW index settings for Geo indexes, enabling tuning of the Geo HNSW index via collection configuration.
  • Introduces a replication scaling plan with a dedicated scale URL that includes collection and replication factor parameters, enabling dynamic replication factor changes.
  • Adds support for the dimensions setting in Cohere embedding modules, allowing control over output vector dimensionality.
  • Introduces VoyageAI's v3.5 models as supported embedding options in the VoyageAI module.
  • Adds batch API support in the text2vec-google module, enabling bulk vectorization requests to the Google embedding API.
+1 moreshow less
  • Adds support for the newest Anthropic models in the generative-anthropic module.
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 →