#Release

1 articles with this tag

REDDIT
reddit

OpenClaw 4.20 and 4.21: Kimi K2.6, Image 2 and the usual bug dance that breaks setups

OpenClaw dropped 4.20 and, a mere six hours later, 4.21. Textbook release cadence for @steipete’s project: push, discover the damage, patch. Let’s break it down.

What’s new in 4.20

4.20 is a substantial release, mostly cleanup and consolidation, with a few notable features:

  • Kimi K2.6 as default - Moonshot/Kimi now defaults to kimi-k2.6, with kimi-k2.5 still available for compatibility. Also supports thinking.keep = "all" on K2.6, stripped for other Moonshot models when tool_choice is pinned.
  • Tiered model pricing - Support for tiered pricing from cached catalogs, with bundled Kimi K2.6/K2.5 cost estimates in token-usage reports.
  • BlueBubbles: per-group system prompts - Group behavioral instructions (tapback, threaded-reply conventions) are now injected every turn via GroupSystemPrompt. Supports * wildcard fallback. Closes #60665.
  • Hardened GPT-5 prompt - System overlay for GPT-5/Codex now has stronger completion bias, weak-result recovery, and verify-before-final guidance.
  • Cron: separate runtime state - jobs-state.json splits from jobs.json, so git-tracked job definitions stay stable while execution state mutates.
  • Aggressive session maintenance - Entry cap and age prune are enforced by default, and oversized stores are pruned at load time to prevent gateway OOM.
  • Compaction notices - Opt-in start and completion notices during context compaction.
  • Mattermost: draft streaming - Thinking, tool activity, and partial replies stream into a single draft post that finalizes in-place.
  • Improved onboarding - Single warning banner, headings, checklists, spinner during model catalog load, “API key” placeholder in prompts.

Plus: sanitizeForLog() optimization (single regex vs iterative loop), plugin loader reuse for leaner tests, Docker E2E for channel dependencies, and QA suite that fails by default on failed scenarios.