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 -120, April 21, 2026

THE AI TOOLCHAIN NO. -120
Tail
THE DAILY RELEASE FIREHOSE
PUBLISHED APRIL 21, 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   # 8 tools matched
AI & LLM Tooling
◆  AI Coding Agents

Charm Crush

Sources Release notes → v0.61.1 NOTES

Glamourous agentic coding for all

Crush v0.61.1 adds iTerm2 progress bar support with a progress toggle in crush.json.

└──▷ GET THIS VERSION
$ git clone --branch v0.61.1 https://github.com/charmbracelet/crush.git
# already have the repo? check out this version:
$ git checkout v0.61.1
└──▷ USE IT
Disable the agent progress bar in iTerm2 (or any supported terminal) when you find it distracting during long-running tasks.
json
{
  "options": {
    "progress": false
  }
}
  • Adds options.progress key to crush.json (set to false to disable) to control the agent progress bar display.
  • Extends progress bar support to iTerm2, joining Ghostty and Rio as supported terminals.
Was this useful?

SST OpenCode

Sources Release notes → v1.14.20 NOTES

The open source coding agent.

OpenCode v1.14.20 adds GET /config to the experimental HTTP API and a desktop session progress bar toggle.

└──▷ GET THIS VERSION
$ git clone --branch v1.14.20 https://github.com/sst/opencode.git
# already have the repo? check out this version:
$ git checkout v1.14.20
  • Adds GET /config endpoint to the experimental HTTP API.
  • Adds a desktop setting to hide the session progress bar while the agent is working.
Was this useful?
◆  AI Agent Frameworks

Stanford NLP DSPy

Sources Release notes → 3.2.0 NOTES

DSPy 3.2.0 chains optimizers in BetterTogether, decouples from LiteLLM, and adds type-mismatch warnings and safe cache deserialization.

└──▷ GET THIS VERSION
$ git clone --branch 3.2.0 https://github.com/stanfordnlp/dspy.git
# already have the repo? check out this version:
$ git checkout 3.2.0
└──▷ USE IT
Chain prompt and weight optimization steps in sequence, falling back to the best result at each stage.
python
import dspy
from dspy.teleprompt import BetterTogether, GEPA, BootstrapFinetune

optimizer = BetterTogether(
    metric=my_metric,
    p=GEPA(metric=my_metric),
    w=BootstrapFinetune(metric=my_metric),
    strategy="p -> w -> p"
)
best_program = optimizer.compile(my_program, trainset=trainset, valset=valset)
Enable safe cache deserialization to prevent arbitrary code execution from corrupted or malicious disk-cache files.
python
import dspy

dspy.configure_cache(restrict_pickle=True)
Silence type-mismatch warnings when you intentionally pass loosely-typed values to DSPy signatures.
python
import dspy

dspy.configure(warn_on_type_mismatch=False)
  • Adds dspy.configure(warn_on_type_mismatch=False) to control new type-validation warnings that fire when a value passed to a signature field doesn't match its declared type (powered by typeguard); extra fields not in the signature also warn.
  • Adds dspy.configure_cache(restrict_pickle=True) to swap pickle.load with a restricted unpickler that only allows litellm/openai types, numpy reconstruction helpers, and user-registered safe_types, preventing arbitrary code execution from malicious cache files.
  • Adds verify parameter to Image for SSL bypass.
  • Adds EmbeddingsWithScores retriever for direct access to similarity scores alongside retrieval results.
  • Adds XMLAdapter to DSPy.
+4 moreshow less
  • Adds file output support to inspect_history.
  • BetterTogether now accepts arbitrary optimizers as keyword arguments and chains them via strategy strings (e.g., BetterTogether(metric=m, p=GEPA(...), w=BootstrapFinetune(...)) with strategy='p -> w -> p'), evaluating each step on a valset and returning the best program.
  • BaseLM now exposes capability properties (supports_function_calling, supports_reasoning, supports_response_schema, supported_params) so custom backends integrate with DSPy's retry/truncation logic without any litellm dependency; dspy.ContextWindowExceededError replaces the litellm error throughout.
  • optuna is now an optional dependency installable via pip install dspy[optuna]; only MIPROv2 and BootstrapFewShotWithOptuna require it.
└──▷ BREAKING ON UPGRADE
  • !optuna is no longer installed by default; workflows using MIPROv2 or BootstrapFewShotWithOptuna must now run pip install dspy[optuna] to restore the dependency.
Was this useful?

OpenAI Agents SDK

Sources Release notes → v0.14.4 NOTES

OpenAI Agents SDK v0.14.4 adds BoxMount support for sandbox environments.

└──▷ GET THIS VERSION
$ git clone --branch v0.14.4 https://github.com/openai/openai-agents-python.git
# already have the repo? check out this version:
$ git checkout v0.14.4
  • Adds BoxMount support for mounting box-based storage into sandbox environments.
Was this useful?

OpenClaw

Sources Release notes → v2026.4.20 NOTES

Your own personal AI assistant. Any OS.

OpenClaw v2026.4.20 adds Mattermost live-draft streaming, QA CLI failure gates, cron state splitting, group-aware BlueBubbles prompts, and Kimi K2.6 defaults.

└──▷ GET THIS VERSION
$ git clone --branch v2026.4.20 https://github.com/openclaw/openclaw.git
# already have the repo? check out this version:
$ git checkout v2026.4.20
└──▷ TRY IT
Fail a CI pipeline immediately when QA scenarios fail, without needing extra flags — use --allow-failures only for artifact collection runs.
$ openclaw qa suite --allow-failures
  • Adds Mattermost live-draft preview: streams thinking, tool activity, and partial reply text into a single draft post that finalizes in place.
  • Adds openclaw qa suite and openclaw qa telegram failure-by-default mode with --allow-failures flag for artifact-only CI runs.
  • Splits cron runtime state into jobs-state.json so jobs.json remains stable for git-tracked job definitions.
  • Forwards per-group systemPrompt config into GroupSystemPrompt context for BlueBubbles, with "*" wildcard fallback, so group-specific behavioral instructions are injected on every turn.
  • Adds opt-in start and completion notices during agent context compaction.
+7 moreshow less
  • Defaults bundled Moonshot surfaces (setup, web search, media understanding) to kimi-k2.6, with kimi-k2.5 remaining available for compatibility.
  • Allows thinking.keep = "all" on moonshot/kimi-k2.6, stripping it for other Moonshot models or when pinned tool_choice disables thinking.
  • Adds tiered model pricing support from cached catalogs and configured models, including bundled Moonshot Kimi K2.6/K2.5 cost estimates for token-usage reports.
  • Adds detached runtime registration contract so plugin executors can own detached task lifecycle and cancellation independently of core task internals.
  • Strengthens default system prompt and OpenAI GPT-5 overlay with clearer completion bias, live-state checks, weak-result recovery, and verification-before-final guidance.
  • Adds configurable channels.telegram.pollingStallThresholdMs (also per-account) to tune the polling watchdog threshold.
  • Adds configurable channels.bluebubbles.sendTimeoutMs (also per-account) with a raised default outbound send timeout of 30s.
└──▷ BREAKING ON UPGRADE
  • !Session entry cap and age pruning are now enforced by default; existing deployments with large accumulated session stores will have those stores pruned at load time on upgrade.
Was this useful?

PydanticAI

Sources Release notes → v1.85.0 NOTES

PydanticAI v1.85.0 adds online evaluation surfaced through OpenTelemetry events.

└──▷ GET THIS VERSION
$ git clone --branch v1.85.0 https://github.com/pydantic/pydantic-ai.git
# already have the repo? check out this version:
$ git checkout v1.85.0
  • Adds online evaluation via OpenTelemetry events, enabling real-time assessment of agent runs as telemetry data.
Was this useful?
◆  Local LLM Runtimes

llama.cpp

Sources Release notes → b8875 2 RELEASES · 2026-04-21 NOTES STABLE

llama.cpp b8875 adds Reka Edge 2603 multimodal support with Yasa2 (ConvNeXtV2) vision encoder and reka-edge chat template.

└──▷ GET THIS VERSION
$ git clone --branch b8875 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b8875
  • Adds PROJECTOR_TYPE_YASA2 (ConvNeXtV2-based) vision encoder support for Reka Edge, wired into clip.cpp and mtmd.cpp init_vision, using mtmd_image_preprocessor_fixed_size with image_resize_algo = RESIZE_ALGO_BICUBIC and image_resize_pad = false.
  • Adds chat-reka.cpp/chat-reka.h implementing a PEG-based parser for the reka-edge chat format, including tool-use and thinking support, with a new Reka-Edge.jinja chat template detected automatically via try_specialized_template().
1 more release in this issue · 2026-04-21
b8874 NOTES STABLE

llama.cpp b8874 adds the --spec-default CLI argument for speculative decoding configuration.

└──▷ GET THIS VERSION
$ git clone --branch b8874 https://github.com/ggml-org/llama.cpp.git
# already have the repo? check out this version:
$ git checkout b8874
  • Adds --spec-default CLI argument to configure default speculative decoding behavior.
Was this useful?
Other / Uncategorized
◆  AI OBSERVABILITY

Arize Phoenix

Sources Release notes → arize-phoenix-v14.10.0 NOTES

Arize Phoenix v14.10.0 adds token count display for agent chat sessions.

└──▷ GET THIS VERSION
$ git clone --branch arize-phoenix-v14.10.0 https://github.com/Arize-ai/phoenix.git
# already have the repo? check out this version:
$ git checkout arize-phoenix-v14.10.0
  • Displays token count for agent chat sessions in the UI.
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 →