OpenClaw v2026.2.25: Android Gets Serious, Heartbeat Gets a Switch

This release is a classic “make it feel real” update: Android chat stops being fragile, delivery logic becomes more deterministic, and the project keeps tightening the edges where automation can accidentally do the wrong thing — or do the right thing twice.

If v2026.2.24 was about “emergency brakes + trust boundaries,” v2026.2.25 is about execution quality: streaming, routing, retries, and the stuff users experience as stability. oai_citation:0‡GitHub

Android Chat: Better Streaming, Better Markdown

The top-line change is Android-side polish that matters: improved streaming delivery handling and higher-quality markdown rendering in the native Android chat UI, including better GitHub-flavored markdown behavior. oai_citation:1‡GitHub

Translation: less “why did that render weird / arrive weird,” more “this is an actual chat client.”

Android Startup: Perf Work You Can Measure

Android also gets startup-performance improvements (defer foreground-service startup, move WebView debugging init out of the critical path) — but the real flex is the addition of startup macrobenchmarking and low-noise perf CLI scripts for deterministic cold-start tracking. oai_citation:2‡GitHub

This is the project moving from “it feels faster” to “we can prove it.”

UI Chat Compose: Small Screens, Less Pain

Chat compose gets a mobile stacked layout for action buttons on small screens, improving send/session controls usability. oai_citation:3‡GitHub

Not headline-y, but exactly the kind of detail that reduces friction for daily use.

Heartbeat Delivery: Explicit Policy, Clear Semantics

Heartbeat configuration changes shape:

  • The old heartbeat DM toggle is replaced by agents.defaults.heartbeat.directPolicy with allow | block, also supported per-agent. oai_citation:4‡GitHub
  • Breaking: the default for direct/DM delivery is now allow again. If you want the v2026.2.24 “DM-blocked” behavior, set agents.defaults.heartbeat.directPolicy: "block" (or override per agent). oai_citation:5‡GitHub

This is good engineering: “defaults” can change, but policy becomes explicit and understandable.

Delivery Reliability: Subagents, Cron, Telegram, Slack

Most of the “real” work is in the fixes — all orbiting delivery correctness:

  • Subagent completion announce dispatch is refactored into an explicit queue/direct/fallback state machine; plugin-registry cold/stale states are handled more robustly; Telegram sends without message_id are treated as failures (not false-success). oai_citation:6‡GitHub
  • Telegram webhook processing is hardened (pre-init bots, callback-mode JSON handling, preserve near-limit payload reads to avoid hangs/dropped updates). oai_citation:7‡GitHub
  • Slack thread sessions get protection against “silent bricking” from oversized parent-session inheritance, plus session.parentForkMaxTokens (default 100000, 0 disables). oai_citation:8‡GitHub
  • Cron multi-account routing now honors explicit delivery.accountId, and if message.send omits accountId, it falls back to the sending agent’s bound channel account instead of defaulting globally. oai_citation:9‡GitHub
  • Duplicate-guarding for cron summaries is improved so uncertain-ack paths don’t lead to “already sent… sent again.” oai_citation:10‡GitHub

Net effect: fewer ghost drops, fewer wrong-thread sends, fewer duplicates — and more predictable automation.

Branding & Docs: The ai.openclaw Sweep

A broad cleanup replaces remaining bot.molt identifiers (launchd label, bundle-id, logging subsystem, examples) with ai.openclaw across docs, iOS surfaces, helper scripts, and fixtures. oai_citation:11‡GitHub

It’s branding, but it’s also operational: consistent identifiers reduce “why doesn’t this script match my install” confusion.

The Signal

v2026.2.25 is OpenClaw acting like a platform that expects scale:

  • Android is no longer “just supported,” it’s being tuned.
  • Delivery logic is treated as a state machine, not a best-effort.
  • Automation gets explicit policy knobs that are hard to misread.

Full release notes on GitHub. oai_citation:12‡GitHub