OpenClaw v2026.2.9 发布

发布日期: 2026-02-09

Added

  • Commands: add commands.allowFrom config for separate command authorization, allowing operators to restrict slash commands to specific users while keeping chat open to others. (#12430) Thanks @thewilloftheshadow.
  • Docker: add ClawDock shell helpers for Docker workflows. (#12817) Thanks @Olshansk.
  • Gateway: periodic channel health monitor auto-restarts stuck, crashed, or silently-stopped channels. Configurable via gateway.channelHealthCheckMinutes (default: 5, set to 0 to disable). (#7053, #4302)
  • iOS: alpha node app + setup-code onboarding. (#11756) Thanks @mbelinky.
  • Channels: comprehensive BlueBubbles and channel cleanup. (#11093) Thanks @tyler6204.
  • Channels: IRC first-class channel support. (#11482) Thanks @vignesh07.
  • Plugins: device pairing + phone control plugins (Telegram /pair, iOS/Android node controls). (#11755) Thanks @mbelinky.
  • Tools: add Grok (xAI) as a web_search provider. (#12419) Thanks @tmchow.
  • Gateway: add agent management RPC methods for the web UI (agents.create, agents.update, agents.delete). (#11045) Thanks @advaitpaliwal.
  • Gateway: stream thinking events to WS clients and broadcast tool events independent of verbose level. (#10568) Thanks @nk1tz.
  • Web UI: show a Compaction divider in chat history. (#11341) Thanks @Takhoffman.
  • Agents: include runtime shell in agent envelopes. (#1835) Thanks @Takhoffman.
  • Agents: auto-select zai/glm-4.6v for image understanding when ZAI is primary provider. (#10267) Thanks @liuy.
  • Paths: add OPENCLAW_HOME for overriding the home directory used by internal path resolution. (#12091) Thanks @sebslight.
  • Onboarding: add Custom Provider flow for OpenAI and Anthropic-compatible endpoints. (#11106) Thanks @MackDing.
  • Hooks: route webhook agent runs to specific agentIds, add hooks.allowedAgentIds controls, and fall back to default agent when unknown IDs are provided. (#13672) Thanks @BillChirico.

Fixes

  • Cron: prevent one-shot at jobs from re-firing on gateway restart when previously skipped or errored. (#13845)
  • Discord: add exec approval cleanup option to delete DMs after approval/denial/timeout. (#13205) Thanks @thewilloftheshadow.
  • Sessions: prune stale entries, cap session store size, rotate large stores, accept duration/size thresholds, default to warn-only maintenance, and prune cron run sessions after retention windows. (#13083) Thanks @skyfallsin, @gumadeiras.
  • CI: Implement pipeline and workflow order. Thanks @quotentiroler.
  • WhatsApp: preserve original filenames for inbound documents. (#12691) Thanks @akramcodez.
  • Telegram: harden quote parsing; preserve quote context; avoid QUOTE_TEXT_INVALID; avoid nested reply quote misclassification. (#12156) Thanks @rybnikov.
  • Security/Telegram: breaking default-behavior change — standalone canvas host + Telegram webhook listeners now bind loopback (127.0.0.1) instead of 0.0.0.0; set channels.telegram.webhookHost when external ingress is required. (#13184) Thanks @davidrudduck.
  • Telegram: recover proactive sends when stale topic thread IDs are used by retrying without message_thread_id. (#11620)
  • Discord: auto-create forum/media thread posts on send, with chunked follow-up replies and media handling for forum sends. (#12380) Thanks @magendary, @thewilloftheshadow.
  • Discord: cap gateway reconnect attempts to avoid infinite retry loops. (#12230) Thanks @Yida-Dev.
  • Telegram: render markdown spoilers with <tg-spoiler> HTML tags. (#11543) Thanks @ezhikkk.
  • Telegram: truncate command registration to 100 entries to avoid BOT_COMMANDS_TOO_MUCH failures on startup. (#12356) Thanks @arosstale.
  • Telegram: match DM allowFrom against sender user id (fallback to chat id) and clarify pairing logs. (#12779) Thanks @liuxiaopai-ai.
  • Pairing/Telegram: include the actual pairing code in approve commands, route Telegram pairing replies through the shared pairing message builder, and add regression checks to prevent <code> placeholder drift.
  • Onboarding: QuickStart now auto-installs shell completion (prompt only in Manual).
  • Onboarding/Providers: add LiteLLM provider onboarding and preserve custom LiteLLM proxy base URLs while enforcing API-key auth mode. (#12823) Thanks @ryan-crabbe.
  • Docker: make docker-setup.sh compatible with macOS Bash 3.2 and empty extra mounts. (#9441) Thanks @mateusz-michalik.
  • Auth: strip embedded line breaks from pasted API keys and tokens before storing/resolving credentials.
  • Agents: strip reasoning tags and downgraded tool markers from messaging tool and streaming output to prevent leakage. (#11053, #13453) Thanks @liebertar, @meaadore1221-afk, @gumadeiras.
  • Browser: prevent stuck act:evaluate from wedging the browser tool, and make cancellation stop waiting promptly. (#13498) Thanks @onutc.
  • Security/Gateway: default-deny missing connect scopes (no implicit operator.admin).
  • Web UI: make chat refresh smoothly scroll to the latest messages and suppress new-messages badge flash during manual refresh.
  • Web UI: coerce Form Editor values to schema types before config.set and config.apply, preventing numeric and boolean fields from being serialized as strings. (#13468) Thanks @mcaxtr.
  • Tools/web_search: include provider-specific settings in the web search cache key, and pass inlineCitations for Grok. (#12419) Thanks @tmchow.
  • Tools/web_search: fix Grok response parsing for xAI Responses API output blocks. (#13049) Thanks @ereid7.
  • Tools/web_search: normalize direct Perplexity model IDs while keeping OpenRouter model IDs unchanged. (#12795) Thanks @cdorsey.
  • Model failover: treat HTTP 400 errors as failover-eligible, enabling automatic model fallback. (#1879) Thanks @orenyomtov.
  • Errors: prevent false positive context overflow detection when conversation mentions "context overflow" topic. (#2078) Thanks @sbking.
  • Errors: avoid rewriting/swallowing normal assistant replies that mention error keywords by scoping sanitizeUserFacingText rewrites to error-context. (#12988) Thanks @Takhoffman.
  • Config: re-hydrate state-dir .env during runtime config loads so ${VAR} substitutions remain resolvable. (#12748) Thanks @rodrigouroz.
  • Gateway: no more post-compaction amnesia; injected transcript writes now preserve Pi session parentId chain so agents can remember again. (#12283) Thanks @Takhoffman.
  • Gateway: fix multi-agent sessions.usage discovery. (#11523) Thanks @Takhoffman.
  • Agents: recover from context overflow caused by oversized tool results (pre-emptive capping + fallback truncation). (#11579) Thanks @tyler6204.
  • Subagents/compaction: stabilize announce timing and preserve compaction metrics across retries. (#11664) Thanks @tyler6204.
  • Subagents: report timeout-aborted runs as timed out instead of completed successfully in parent-session announcements. (#13996) Thanks @dario-github.
  • Cron: share isolated announce flow and harden scheduling/delivery reliability. (#11641) Thanks @tyler6204.
  • Cron tool: recover flat params when LLM omits the job wrapper for add requests. (#12124) Thanks @tyler6204.
  • Gateway/CLI: when gateway.bind=lan, use a LAN IP for probe URLs and Control UI links. (#11448) Thanks @AnonO6.
  • CLI: make openclaw plugins list output scannable by hoisting source roots and shortening bundled/global/workspace plugin paths.
  • Hooks: fix bundled hooks broken since 2026.2.2 (tsdown migration). (#9295) Thanks @patrickshao.
  • Security/Plugins: install plugin and hook dependencies with --ignore-scripts to prevent lifecycle script execution.
  • Routing: refresh bindings per message by loading config at route resolution so binding changes apply without restart. (#11372) Thanks @juanpablodlc.
  • Exec approvals: render forwarded commands in monospace for safer approval scanning. (#11937) Thanks @sebslight.
  • Config: clamp maxTokens to contextWindow to prevent invalid model configs. (#5516) Thanks @lailoo.
  • Thinking: allow xhigh for github-copilot/gpt-5.2-codex and github-copilot/gpt-5.2. (#11646) Thanks @LatencyTDH.
  • Thinking: honor /think off for reasoning-capable models. (#9564) Thanks @liuy.
  • Discord: support forum/media thread-create starter messages, wire message thread create --message, and harden routing. (#10062) Thanks @jarvis89757.
  • Discord: download attachments from forwarded messages. (#17049) Thanks @pip-nomel, @thewilloftheshadow.
  • Paths: structurally resolve OPENCLAW_HOME-derived home paths and fix Windows drive-letter handling in tool meta shortening. (#12125) Thanks @mcaxtr.
  • Memory: set Voyage embeddings input_type for improved retrieval. (#10818) Thanks @mcinteerj.
  • Memory: disable async batch embeddings by default for memory indexing (opt-in via agents.defaults.memorySearch.remote.batch.enabled). (#13069) Thanks @mcinteerj.
  • Memory/QMD: reuse default model cache across agents instead of re-downloading per agent. (#12114) Thanks @tyler6204.
  • Memory/QMD: run boot refresh in background by default, add configurable QMD maintenance timeouts, retry QMD after fallback failures, and scope QMD queries to OpenClaw-managed collections. (#9690, #9705, #10042) Thanks @vignesh07.
  • Memory/QMD: initialize QMD backend on gateway startup so background update timers restart after process reloads. (#10797) Thanks @vignesh07.
  • Config/Memory: auto-migrate legacy top-level memorySearch settings into agents.defaults.memorySearch. (#11278, #9143) Thanks @vignesh07.
  • Memory/QMD: treat plain-text No results found output from QMD as an empty result instead of throwing invalid JSON errors. (#9824)
  • Memory/QMD: add memory.qmd.searchMode to choose query, search, or vsearch recall mode. (#9967, #10084)
  • Media understanding: recognize .caf audio attachments for transcription. (#10982) Thanks @succ985.
  • State dir: honor OPENCLAW_STATE_DIR for default device identity and canvas storage paths. (#4824) Thanks @kossoy.
  • Doctor/State dir: suppress repeated legacy migration warnings only for valid symlink mirrors, while keeping warnings for empty or invalid legacy trees. (#11709) Thanks @gumadeiras.
  • Tests: harden flaky hotspots by removing timer sleeps, consolidating onboarding provider-auth coverage, and improving memory test realism. (#11598) Thanks @gumadeiras.
  • macOS: honor Nix-managed defaults suite (ai.openclaw.mac) for nixMode to prevent onboarding from reappearing after bundle-id churn. (#12205) Thanks @joshp123.
  • Matrix: add multi-account support via channels.matrix.accounts; use per-account config for dm policy, allowFrom, groups, and other settings; serialize account startup to avoid race condition. (#7286, #3165, #3085) Thanks @emonty.