Release and CI

v2026.6.11

OpenClaw v2026.6.11 Release Notes (2026-06-30)

We heard the feedback. v2026.6.11 focuses on the rough edges that make OpenClaw feel less dependable, with fixes for misplaced replies, stuck sends, reconnects, model setup failures, and safer admin defaults.

Highlights

Channel delivery reliability

Across Telegram, WhatsApp, Matrix, Google Chat, iMessage, Feishu, and Mattermost, replies, commands, queued messages, and attachments are less likely to be dropped, duplicated, misrouted, or attached to the wrong conversation.

Sources and contributors
  • Fixes newer Google Chat direct messages sometimes being treated like group conversations, so they reach the correct one-to-one chat while Space and group-chat messages keep their existing routing. #58993 Thanks @starhappysh, @vincentkoc.
  • Feishu voice replies from OpenClaw now show their duration in the chat bubble, so recipients can see how long the audio is before playing it. #89172 Related #53798. Thanks @areslp, @fxz26284407, @kinrocw.
  • Discord and Telegram replies and mirrored chat history stay tied to the intended conversation more consistently, including across repeated Telegram replies and session changes. #89911 Thanks @jalehman.
  • Background image, video, and music results now return to the chat that requested them when the task starts without a full conversation target, instead of appearing to fail after creation or being sent to the wrong peer as the session moves. #89949 Related #86034. Thanks @tianxiaochannel-oss88, @wangwllu.
  • Telegram answers now stay attached to the user's current question when they quote an earlier bot message, while quotes of other people's messages still reply to the selected quote. #90475 Thanks @moeedahmed.
  • QQBot group admins can choose how broadly slash commands are available, and private-only commands now direct users to a private chat instead of being exposed or silently ignored in groups. #92154 Thanks @sliverp.
  • Heartbeat checks using reasoning-capable models now show the assistant's intended reply instead of exposing internal reasoning in Telegram, WhatsApp, and other channels, while opt-in Thinking messages still work. #92356 Related #92260. Thanks @jmpei, @tangtaizong666, @vincentkoc.
  • Telegram progress-mode chats now clear an old progress bubble before newer tool output or artifacts appear, keeping the conversation in a clean, readable order. #93002 Related #90753. Thanks @shadow-enthusiast, @zhangguiping-xydt.
  • iMessage command-and-link messages now stay together as one OpenClaw turn when delayed link previews arrive, while unrelated quick messages remain separate for users who enabled same-sender DM coalescing. #93143 Thanks @omarshahine.
  • Successful Discord replies sent through the message tool no longer trigger a misleading failure warning in affected message_tool_only source-channel turns. #94072 Related #93875. Thanks @chenyangjun-xy, @hoyanhan, @vincentkoc.
  • WhatsApp group conversations now preserve the right message and group context more reliably during retries, reconnects, and group changes. #94338 Related #7433. Thanks @mcaxtr, @octopuslabs-fl, @xialonglee.
  • Fixes OpenClaw sometimes replying to its own delayed iMessage echoes when stray leading characters keep the sent message from being recognized. #94442 Thanks @ly-wang19.
  • Telegram webhook users can keep receiving DMs and group messages through brief channel restarts, configuration reloads, and recovery cycles without temporary message blackouts. #94506 Related #90254. Thanks @obviyus, @travellingsoldier85, @xialonglee.
  • Matrix E2EE gateways can stay online during long-running use instead of gradually consuming memory until a crash takes channels and in-flight work down. #94942 Related #90455. Thanks @xzh-icenter, @yar-sh.
  • Telegram users now see the intended native reaction instead of leaked instructions or a dropped reaction-only reply, with success recorded only after Telegram accepts it. #94977 Related #71140. Thanks @cuttingwater, @hugenshen.
  • Telegram progress updates for commands, searches, updates, and API activity now stay readable instead of exposing noisy HTML or code-style rows, with plain-text fallback when Telegram cannot parse the formatting. #95007 Related #95002.
  • Telegram conversations continued in WebChat now show one assistant reply per turn and keep later replies with the active conversation instead of duplicating answers or sending them back to Telegram. #95069 Related #94930. Thanks @heichaowo.
  • Google Chat now hides misleading internal failure banners when a tool result is harmless, leaving users with the completed answer while normal assistant text remains unchanged. #95084 Related #90684. Thanks @jailbirt, @studentzhou-svg.
  • Bound multi-agent channel conversations now load the workspace files for the configured agent instead of the default agent, though previously misfiled conversations may start fresh in the corrected agent store. #95118 Related #92903. Thanks @849261680, @axjing.
  • People sharing an OpenClaw gateway can now assign different models to individual direct-message contacts across supported chat channels, while existing group and wildcard model choices keep working as before. #95120 Related #53638. Thanks @gandalf-at-lerian, @thomaszta, @xydigit-zt.
  • Telegram now shows that OpenClaw is still working during short initial previews or progress-mode replies instead of leaving the chat silent until the final message arrives. #95183 Related #95004. Thanks @obviyus.
  • Matrix users and operators now get a clear failure when a homeserver sends an oversized or stalled response, instead of OpenClaw continuing to buffer it and risking unbounded memory use. #95240 Thanks @alix-007.
  • Fixes delayed or missing Telegram and other queued channel replies in Kubernetes-style deployments with many injected environment variables, where opening the queue database could stall the gateway. #95278 Related #94571. Thanks @kaka-srp.
  • Telegram chats recover after one stuck message times out, allowing later messages in the same chat or topic to reach the agent without restarting the gateway. #95299 Related #95248. Thanks @kriegerbangerz-ship-it, @mikasa0818, @obviyus.
  • When people switch between Telegram and another OpenClaw client in a shared direct conversation, short Telegram replies now follow the latest conversation instead of responding to an older, unrelated Telegram proposal. #95390 Related #95378. Thanks @maiduy708, @mikasa0818, @obviyus.
  • Fixes completed assistant messages appearing twice in Telegram, Discord, Slack, and other streamed chats after a multi-message reply. #95432 Thanks @vincentkoc, @yetval.
  • WhatsApp replies now stay attached to the direct or group message being answered instead of appearing as a separate message that loses the conversation context. #95483 Thanks @mcaxtr.
  • Telegram rich-message replies now keep paragraphs, bullets, and status lines separated instead of collapsing multi-line content into one run-on block, with no configuration change required. #95532 Related #95409. Thanks @amknight.
  • Mattermost operators who enable native slash commands can now use /oc_queue directly in Mattermost to tune active-run queuing, including its mode, debounce timing, cap, and drop handling. #95546 Thanks @amknight.
  • Previously allowed messages keep reaching named accounts after legacy multi-account channel upgrades, with inherited DM and group access rules preserved across Mattermost, Discord, Slack, Telegram, Signal, WhatsApp, iMessage, and IRC. #95550 Thanks @amknight.
  • Mattermost users can keep talking in a thread without mentioning the bot again after it replies, and that participation survives gateway restarts until the thread has been idle for seven days. #95552 Thanks @amknight.
  • Inbound Telegram messages now reach the configured OpenClaw session promptly instead of sitting unanswered until the next polling interval, a gateway restart, or manual intervention. #95577 Related #86957. Thanks @freidrich-goldenflow, @liuwqgit.
  • QQBot users now receive complete markdown tables when valid separators use one or two dashes per column, instead of losing the header and all but the final row. #95637 Thanks @ly-wang19.
  • Synology Chat users can now receive agent replies that take more than 120 seconds when the configured core timeout allows it, instead of having the channel reject them early. #95707 Thanks @sahibzada-allahyar, @vincentkoc.
  • Telegram forum-topic cron jobs now keep separately configured failure alerts going to their intended destination, even when the main announcement uses a topic in the same chat. #95794 Thanks @vincentkoc.
  • Fixes WhatsApp group replies that could quote an older OpenClaw message instead of the user's triggering message, so final answers stay attached to the intended message when a reply target is available and avoid pointing back to stale bot context when it is not. #95914 Thanks @mcaxtr.
  • WhatsApp users can approve or deny prompts by reaction without the prompt staying stuck when WhatsApp identifies the same direct chat differently, while group approvals remain tied to the correct group and person. #95935 Thanks @mcaxtr.
  • Final reply processing now uses less CPU when OpenClaw checks whether block text was already sent, without changing which reply reaches the chat or how duplicate text is suppressed. #96087 Thanks @vincentkoc.
  • Exec approval results from external channel plugins now return to the channel or DM where the command started instead of falling back to WebChat or seeming to disappear after approval. #96140 Related #96103. Thanks @lansenger-pm, @vincentkoc, @yetval.
  • WhatsApp's final answer now stays quoted to the follow-up message a user just sent when replying to an older OpenClaw message, instead of arriving unquoted or pointing back to the older bot reply. #96220 Thanks @mcaxtr.
  • Nextcloud Talk bots now ignore ordinary file-share and lifecycle events without logging them as bot errors or risking disabled delivery, while malformed chat payloads still return an error. #96243 Related #81566. Thanks @arkyu2077, @rafaelmgbh, @vincentkoc.
  • Replies and message-tool delivery in Mattermost channels now use channel and thread guidance because the agent identifies those conversations as channels rather than group chats, while existing group-chat behavior remains unchanged. #96244 Related #95645. Thanks @arkyu2077, @iloveleon19, @vincentkoc.
  • MCP channel integrations now keep conversation lists, message reads, event polls, and waits within predictable bounds even when a client requests excessive limits or timeouts. a39e548 Thanks @vincentkoc.
  • Long-running streamed auto-replies are less likely to stop early or abort inconsistently when an unusually large timeout is configured. 6c85b90 Thanks @vincentkoc.
  • Channel progress now shows a repeated status when work genuinely returns to it after another update, instead of hiding useful context as a duplicate. 8a75c4d
  • Completed channel replies no longer gain late progress notices, preventing stale status text from appearing after the answer is finished. a594d2c Thanks @vincentkoc.
  • During streaming channel replies, progress messages now keep showing the latest state instead of getting stuck on an older update. e114001 Thanks @vincentkoc.
  • Matrix forced resets now handle unavailable secret storage without a runtime error, treating recovery access as unavailable so the reset path can continue safely. 5c5a8a4 Thanks @vincentkoc.
  • Configured channels now remain visible in openclaw channels status --json, while scheduled announcements reject stale entries that have no active plugin to deliver them. a641c0d
  • Discord voice conversations now keep back-to-back assistant responses moving, so a queued reply plays after the previous audio stream closes instead of remaining stuck. 88b64e4 Thanks @vincentkoc.
  • Discord progress previews are less likely to stop before the final edits when an agent response has already started arriving. 86ea382
  • Chats no longer show stray NO_REPLY text when the assistant means to stay silent, while legitimate media responses still arrive without the placeholder. 96c6f80
  • Telegram streaming replies now show each progress heading once, keeping tool and search updates easier to scan. 013e33c Thanks @vincentkoc.
  • Telegram messages that get stuck after a long-running task, crash, or gateway restart now resume processing automatically, so later messages no longer wait silently or require operators to repair the queue by hand. #97543 Thanks @romneyda, @vincentkoc.

Provider and model recovery

Model selection and setup recover more clearly when catalogs, credentials, streams, timeouts, compaction, or fallbacks go wrong. Affected OpenAI, OpenRouter, and OpenCode Go configurations now report or recover from failures more consistently instead of leaving users with a stale choice or a stalled request.

Follow-up fixes for fast mode improve its behavior in affected provider and fallback paths; automatic fast mode itself is not new in this release.

Sources and contributors
  • MiniMax text-to-speech and voice notes are less likely to fail because OpenClaw now explicitly requests the audio format it can decode instead of relying on provider defaults. #73079 Thanks @efe-arv.
  • Gateway operators can again see provider, model, request status, and timing details in normal logs, making model-routing and transport problems easier to diagnose without enabling extra debug logging. #89648 Related #89300. Thanks @enominera, @xiaobao-k8s.
  • Models reached through Google, Mistral, OpenAI Responses, Azure OpenAI Responses, and ChatGPT/Codex Responses now receive clean system instructions without OpenClaw's internal cache-boundary marker leaking into the prompt. #89716 Thanks @enominera, @masatohoshino.
  • Cron tool calls using Gemini models through OpenAI-compatible providers now run without nullable fields triggering provider schema rejections. #91559 Related #91542. Thanks @pick-cat, @qiukui666.
  • Provider-qualified model IDs now honor their configured agent runtime policies and CLI aliases instead of unexpectedly falling back to OpenClaw's default runtime. #91724 Thanks @vincentkoc, @yu-xin-c.
  • The chat /models list and other plugin-aware model or provider selection paths now respond quickly instead of stalling for seconds and consuming a CPU core through repeated setup scans, while plugin changes still refresh normally. #93356 Thanks @obuchowski.
  • Hosted Ollama Cloud users can keep only the models they explicitly configured after a restart, without the full shared catalog being added back, while automatic discovery continues for local and self-hosted Ollama servers. #93956 Thanks @jason-allen-oneal.
  • Cron jobs can now retry or switch to a configured fallback model when a local provider returns the generic LLM request failed. error, instead of failing with the fallback unused. #94062 Related #93931. Thanks @hugenshen.
  • Expired provider tokens no longer bury useful operator logs under repeated fallback warnings, while the first warning and later duplicate summaries remain available for diagnosis. #94233 Related #56979. Thanks @goutamadwant, @yanan1991.
  • Google Gemini 3.5 Flash can now be selected with its full 1,048,576-token context window, avoiding missing-model errors and needless prompt-size rejections. #94726 Related #94723. Thanks @ajwan8998, @anguslogan01, @kevinat.
  • Dashboard child sessions now handle allowed provider-qualified model choices consistently and give accurate recovery guidance when saved model state is stale. #94752 Related #94713. Thanks @gr4via.
  • Claude CLI users no longer get promises of completion updates that may never arrive, because OpenClaw now blocks unsupported native background work before it can strand progress. #95008 Thanks @anagnorisis2peripeteia.
  • OpenClaw now rejects oversized provider catalog or JSON responses with a clear error before buffering the entire response in memory. #95218 Thanks @alix-007.
  • OpenRouter users can now select and run the advertised short DeepSeek V4 model IDs without requests failing with model_not_found because OpenClaw sent a duplicated provider prefix. #95268 Related #95198. Thanks @daniel-alejandro-t, @darren2030.
  • With /reasoning on, DeepSeek-style OpenAI-compatible models now show the final answer separately from their reasoning instead of folding it into the reasoning block, with no configuration change required. #95283 Related #95280. Thanks @marvinthebored, @vincentkoc, @zengwen-dt.
  • When a Codex subscription reaches its usage limit, OpenClaw now moves to configured fallback models instead of stopping on the failed result, and it does not retry runs that already produced visible output. #95400 Thanks @jason-allen-oneal, @sallyom.
  • LM Studio users can now run quantized or multi-variant local models without false assistant-turn failures or phantom suffixed model entries caused by mismatched model keys. #95401 Thanks @monkeyleet.
  • Google-backed embedded-agent runs now stop reading oversized or never-ending prompt-cache responses before they can exhaust memory or leave the run stalled. #95417 Thanks @alix-007.
  • OpenRouter model scans fail safely on oversized or malformed catalogs instead of risking excessive memory use that can destabilize OpenClaw. #95418 Thanks @alix-007.
  • OpenRouter setups now reject oversized model catalogs before they can exhaust OpenClaw's memory, without caching or immediately refetching the failed response. #95420 Thanks @alix-007, @sallyom.
  • Configured fallback models can now answer when Claude CLI runs out of credits or hits a generic runner failure, instead of leaving users with the failure message as the final response. #95508 Related #95489. Thanks @mikasa0818, @riazrahaman, @sallyom.
  • Gemini-backed web searches using freshness: "day" or pd now complete instead of failing with a provider 400 error, while broader freshness choices and explicit date ranges retain stricter filtering. #95682 Thanks @sunjae-k, @vincentkoc.
  • Follow-up answers from xAI reasoning models such as Grok Composer now preserve earlier reasoning context more reliably, even when configurable reasoning effort is unsupported. #95686 Thanks @fuller-stack-dev, @geraint0923.
  • Vercel AI Gateway users can now run models chosen from the live catalog, including live-only model IDs that are absent from OpenClaw's bundled list. #95710 Thanks @vincentkoc.
  • Fixes manifest-defined providers turning valid model IDs into broken ones when stripPrefixes entries have stray spaces or different casing, so operators and plugin authors get the intended provider model. #95744 Related #95743. Thanks @parveshsaini.
  • First-run setup now opens the credential prompt for a newly installed external provider instead of appearing to loop and leaving OpenAI selected. #95792 Related #95765.
  • Oversized or stalled provider catalogs now fail quickly with a clear error instead of hanging OpenClaw or consuming unbounded memory, while normal catalogs continue to load. #95827 Thanks @alix-007.
  • Xiaomi Token Plan users can now use up to 128K output tokens with mimo-v2.5 and mimo-v2.5-pro instead of being stopped at the outdated 32,000-token limit. #95934 Thanks @idootop.
  • Tool-heavy model responses can stream with less overhead while repeated tool-call IDs and encrypted reasoning details stay matched to the correct call across Google and OpenAI-compatible providers. #95957 Thanks @vincentkoc.
  • Token-usage accounting is more reliable for bundled ACPX users because OpenClaw now includes ACPX 0.11.2's persistence fix by default, without a separate package override or manual client update. #96124 Thanks @vincentkoc.
  • Ollama Cloud users can now find and select glm-5.2:cloud with its 1,000,000-token context window, reasoning, and tool support even when it is absent from the public model list. 11484f8
  • MiniMax image-understanding requests no longer fail before reaching the provider when a timeout is zero, negative, or extremely large; invalid values now use a normal or safe maximum wait. 4b6182e Thanks @vincentkoc.
  • Codex runs now follow the current fast-mode choice instead of carrying over an old speed tier, and the status line clearly shows when fast mode is automatic. 77012f9 Thanks @vincentkoc.
  • Codex-backed conversations now return to normal routing after automatic fast mode is cleared, preventing later turns or model changes from reusing a stale priority tier. 8afc1f7
  • Fallback agent runs now honor each model's configured automatic fast-mode cutoff even when fast mode is overridden for the run, keeping fallback behavior aligned with the selected model policy. efd3172
  • Live model-switch retries now preserve the original fast-mode cutoff for long-running sessions, while explicit fast mode avoids misleading automatic-cutoff progress messages. d990115 Thanks @vincentkoc.
  • Embedded agent runs now keep automatic fast mode working consistently through retries and progress updates without confusing it with a manually selected fast-mode setting. cf1b6fe Thanks @vincentkoc.
  • Fast-mode runs now keep their speed setting through model fallback retries and show the configured automatic threshold in status, avoiding inconsistent retry behavior and an unhelpful generic label. aa3797c Thanks @vincentkoc.
  • Agent replies and scheduled cron runs now handle fast-mode fallback retries more reliably, keeping the state needed for the final attempt to finish or report progress correctly. 14e448e Thanks @vincentkoc.
  • Users no longer see a fast-mode reset notice while model fallback attempts are still running; it appears only when the run reaches its final fallback attempt. 6eb72a8
  • Users and operators now get clearer handling when a configured live model becomes unavailable because OpenClaw recognizes the provider's "selected model was not found" response as a model-not-found failure instead of a generic error. 2405d02 Thanks @vincentkoc.
  • Qwen and vLLM now preserve existing chat-template settings consistently when thinking is switched on or off, and provider plugins can use the same tested helper. 2ba9d6e Thanks @vincentkoc.
  • OpenAI-compatible proxy providers can handle thinking levels and legacy reasoning_effort fields more consistently, with plugin developers and provider maintainers using one documented normalization helper across OpenRouter, Kilocode, and the SDK. 35bafea
  • Browser and Vite builds can now load the OpenAI ChatGPT Responses provider without a server-only dependency breaking the bundle, while WebSocket failures still appear normally. 8c8eb86 Thanks @vincentkoc.
  • OpenRouter model scans now accept the same larger valid catalogs as runtime discovery while still rejecting oversized responses before they can consume unbounded memory. ad3b2f4 Thanks @vincentkoc.
  • OpenAI Responses users, including affected Bedrock Mantle GPT-5.x reasoning setups, now get one clean final answer with aligned saved transcripts and replay context instead of dozens of repeated cumulative copies. #92399 Related #91959. Thanks @amersheeny, @daimingnj, @phoenixyy, @pigfoot.
  • Scheduled jobs and isolated sessions using opencode-go models now move stalled requests into configured timeout or fallback handling instead of hanging for minutes before ending with a generic LLM request failed error. #93965 Related #93610. Thanks @forceconstant, @zhangguiping-xydt.
  • After changing the default model, starting a fresh channel session with /new or /reset now uses the new default instead of silently reusing the previous cached model, while explicit /model overrides remain unchanged. #77339 Related #77322. Thanks @mjamiv, @zaynl.
  • Behind HTTP or HTTPS proxies, Codex/OpenAI usage and quota checks in openclaw status --usage --json and the Control UI now retrieve usage windows instead of failing when chatgpt.com is unreachable directly. #93943 Related #78714. Thanks @tnzgit, @turbotheturtle.
  • /status now keeps the active model and how to clear a pinned choice on one compact line, so Discord and other chat users can scan model status without a multi-line explanation. #95797 Thanks @solvely-colin.
  • Anthropic streaming responses now keep interleaved text, thinking, and tool-call updates attached to the correct response block instead of mixing them when several blocks are active at once. #96013 Thanks @vincentkoc.

Session, memory, and trust continuity

Sessions, compaction, memory, and QMD-backed memory preserve the intended conversation and useful context more consistently through long-running work, reconnects, upgrades, and transcript repair. Tool search also behaves more reliably when agents need to recover the right context or capability.

Encrypted Matrix recovery stops safely when required key state cannot be verified. Tool policies, approvals, and secret handling stay attached to the intended runtime state, with higher-risk actions remaining disabled unless explicitly enabled.

Sources and contributors
  • Affected agent conversations using OpenAI Responses can now recover and keep replying after a visible channel response leaves their saved history incomplete, instead of every later turn failing before a reply appears. #84708 Thanks @anyech.
  • When a Codex-backed agent produces unusually large tool output, saved and replayed conversations now keep its text within the usual size limit while leaving non-text content unchanged. #87912 Thanks @adrianip0204.
  • Control UI conversations now stay visible and continue in the same session after a sleep, network drop, or Gateway reconnect instead of disappearing when the next message is sent. #89017 Related #87700. Thanks @zhangguiping-xydt, @asicoe.
  • Bundled Codex and Copilot integrations now keep mirrored chat history and transcript updates tied to the correct OpenClaw session as storage evolves, while existing file-backed active transcripts continue working during the migration. #89518 Thanks @jalehman.
  • WebChat's current-session status now matches the conversation you are actually using, so the session identity, thinking level, token context, and cost details no longer come from the fallback main session. #89800 Related #89773. Thanks @killo3967, @sweetcornna.
  • Your conversation is less likely to lose its context after you press stop during automatic compaction because the compaction request is now cancelled too. #89886 Related #89868. Thanks @lykeion-dev, @openperf, @vincentkoc.
  • When cross-agent session access is blocked, OpenClaw now lists all required visibility, agent-to-agent, and allow-list settings, helping operators correct policy configuration instead of chasing a nonexistent agent failure. #90489 Related #90443. Thanks @ramitrkar-hash, @sahibzada-allahyar, @vincentkoc.
  • openclaw memory status now shows an active light or REM dreaming phase instead of incorrectly reporting Dreaming: off, so operators can see that valid memory configurations are enabled. #93113 Related #67868. Thanks @agentarclab, @mrossit.
  • Timed-out QMD memory searches now stop their background work when the agent moves on, preventing abandoned processes from continuing to consume CPU and memory. #93394 Thanks @alix-007.
  • Repeated instructions sent after compaction now remain in the conversation, preventing lost turns, orphaned replies, and malformed history that some providers reject. #94328 Thanks @vincentkoc, @yetval.
  • Memory Wiki's Stale Pages report now leaves durable concept and synthesis pages out of freshness warnings, keeping attention on source and entity pages that may actually need review. #94369 Thanks @sunnyshu0925, @vincentkoc.
  • Long embedded runs with recent progress are now less likely to be interrupted by stale-session recovery, while genuinely stalled runs can still be cleared so queued work continues. #94701 Thanks @imadal1n, @mrclawfield.
  • Ollama memory search now respects a configured smaller embedding dimension and keeps indexes for different dimensions separate, avoiding incompatible vectors being mixed together. #94811 Thanks @mushuiyu886.
  • Memory searches and targeted refreshes now stay connected to the correct OpenClaw session even when transcript filenames change or QMD exports use a different name. #95087 Thanks @jalehman.
  • Long-running conversations with screenshots or other images now keep their continuity more consistently when OpenClaw makes room for new messages, instead of repeatedly filling up without moving the retained conversation forward. #95128 Thanks @yetval.
  • Windows users can now run QMD-backed memory indexing and search through configured absolute memory.qmd.command paths, including drive-letter and UNC locations, without OpenClaw stripping the path separators before launch. #95274 Related #92302. Thanks @ardooken, @ly85206559.
  • Usage footers selected with /usage full or /usage tokens now remain visible after daily or idle session rollover, so users do not have to turn them on again. #95322 Thanks @litang9.
  • Follow-up replies, reactions, threaded messages, and status checks stay with the chat they belong to after webchat or system activity, while real channel switches still clear outdated routing details. #95467 Thanks @yetval.
  • Long-running main conversations now keep their prior context when users return after an overnight or delayed follow-up, rather than silently starting over after an otherwise normal completion. #95472 Thanks @xydt-tanshanshan.
  • People with large session histories can list, preview, and find sessions without multi-second freezes, while older mixed-case session keys are still migrated at startup. #95699 Thanks @jalehman, @jzakirov.
  • Fixes delivered replies sometimes being saved to the wrong conversation history, or omitted from it, when operators use a custom or per-agent session.store, improving continuity and auditability for the intended session. #95782 Related #95781. Thanks @youngting520.
  • Saved session-memory summaries now leave out raw model tokens, tool-call blocks, media placeholders, role tags, and stale NO_REPLY markers so future conversations keep useful context. #95791 Thanks @sweetsophia, @vincentkoc, @yb0y.
  • Long-running OpenAI sessions using Codex/ChatGPT OAuth can now compact without a separate API key, whether /compact is run manually or triggered automatically. #95831 Related #95693. Thanks @sallyom, @yui-tien.
  • Long, tool-heavy sessions now compact oversized conversations instead of getting stuck when a large tool result appears at the end. #95860 Related #78478. Thanks @jw8957, @wzhgba, @yetval.
  • When memory_search is unavailable because the Node runtime lacks node:sqlite, OpenClaw now points users to a compatible runtime instead of sending them through unrelated embedding-provider troubleshooting. #95916 Thanks @rrrrrredy, @vincentkoc.
  • Developers and operators inspecting a compacted Copilot session now get its summary, before-and-after token counts, and session details instead of an incomplete result. #96049 Thanks @vincentkoc.
  • The /stop and abort commands now keep stopping active runs, clearing queued followups, and ending related subagents promptly even when session keys need canonicalizing or abort metadata cannot be saved. #96201 Thanks @jalehman.
  • Voice Wake upgrades now keep existing trigger phrases and routing rules working as OpenClaw moves them from retired settings files into the shared state database. bdf81a8
  • Upgrades from older OpenClaw state layouts now preserve update notifications, check throttling, available-version records, and automatic-update attempt history as that state moves into SQLite. eb00d49 Thanks @vincentkoc.
  • Plugin-channel conversations keep their intended session more reliably through startup, doctor checks, and state repairs, with older binding records migrated into OpenClaw's shared database. 9f888d9
  • Windows memory-backed session syncing now keeps using the intended transcript file even when path formatting differs. b3b5b08 Thanks @vincentkoc.
  • Embedded agent runs with a missing or blank session key now stay attached to the intended session instead of being sent through inconsistent session routing. 911f853 Thanks @vincentkoc.
  • When a model guesses the wrong tool name, Tool Search and Code Mode now show how to find and retry the correct tool, reducing the risk that long-running sessions get stuck or lose durable memory during compaction. #93374 Related #92273. Thanks @mushuiyu886, @poison, @vincentkoc.
  • Fixes assistant replies disappearing from webchat, Control UI, Feishu, and other embedded conversations after compaction, keeping refreshed chats readable and follow-up requests separate. #95484 Related #76729. Thanks @maweibin, @njuboy11, @vincentkoc.
  • OpenClaw memory features now keep active, reset, and deleted transcript coverage aligned with configured session stores and agent ownership, making dreaming, QMD exports, indexing, and sync less likely to miss or misattribute conversation history. #96162 Thanks @jalehman.
  • Gateway TLS setup now rejects blank certificate or key paths clearly or uses OpenClaw's defaults, avoiding confusing startup and certificate-generation failures while preserving valid paths. #94054 Thanks @miorbnli.
  • Configured plugin policies keep blocking or rewriting sensitive tool calls after Gateway registry changes, reloads, or later hook initialization instead of being silently skipped. #94545 Thanks @jesse-merhi.
  • Mobile operators with operator.approvals can now see and resolve chat-triggered exec approvals on the iOS device that started the request, including while the app is open, without relying only on push notifications. #95175 Thanks @joshavant.
  • Control UI users now get the patched DOMPurify release, reducing exposure to the GHSA-cmwh-pvxp-8882 sanitizer vulnerability without changing how the interface behaves. #95691 Thanks @vincentkoc.
  • "Always allow" approvals for plugin conversation bindings now carry over from the old settings file and are less likely to be lost or overwritten when multiple OpenClaw processes are running. ae41b00 Thanks @vincentkoc.
  • Matrix users now see that the active recovery key is required before a forced cross-signing reset can proceed, preventing a second reset from leaving encryption recovery and room-key backups unusable. #95720 Related #78396. Thanks @jteddy, @vincentkoc, @xialonglee.
  • Memory-wiki status cards and bridge-backed source sync are less likely to fail during simultaneous page rewrites because OpenClaw now retries the transient path mismatch while still stopping unsafe or persistent filesystem writes. #94443 Related #92134. Thanks @cknzraposo, @zengwen-dt.
  • Fixes recent-session resume opening a fresh conversation for users with long workspace paths instead of returning to their existing transcript. #94578 Related #94577. Thanks @rohitjavvadi, @vincentkoc.
  • Memory Wiki now keeps user-written notes intact when an existing source page is re-ingested or synced, while still refreshing its generated content. #95614 Thanks @yetval.
  • Fixes Memory Wiki repeatedly copying its own generated source pages back into itself when its vault is stored inside the workspace memory folder, avoiding duplicate files, repeated cleanup, and unnecessary memory index growth. #95666 Related #95657. Thanks @johannes0402, @turbotheturtle, @vincentkoc.
  • For operators using Active Memory with memory-core dreaming, nightly dreaming jobs no longer start unnecessary recall work and hit 45-second timeouts, while regular web chats continue to receive memory recall. #95721 Related #78500. Thanks @vincentkoc, @vishutdhar, @xialonglee.
  • Agent sessions with many tool calls repair out-of-order results with less repeated work while keeping each result paired with the right tool call. #96014 Thanks @vincentkoc.
  • Windows qmd-backed memory work now stops all related processes after availability probes and command timeouts, preventing qmd children from continuing to run in the background. 830691b
  • Trusted OpenClaw package sources now reject lookalike sibling paths, so trusting /artifactory/openclaw no longer also admits paths such as /artifactory/openclaw-malicious. 12c34fc Thanks @vincentkoc.

Slack router relay mode

Slack router relay mode lets managed or multi-gateway deployments centralize incoming Slack traffic while the correct OpenClaw gateway still handles mentions, thread affinity, and replies.

Sources and contributors
  • Managed Slack deployments can now use a central router to send mentions and ongoing threads to the right OpenClaw gateway while replies still appear through Slack. #94707 Thanks @pash-openai, @sjf-oa.

Raft External Agent wake bridge

The Raft channel and Raft plugin now support a local CLI wake bridge, so External Agents can wake OpenClaw for pending workspace work and operators can check setup and status through the supported path.

Sources and contributors
  • Raft External Agent operators can now wake an OpenClaw agent when a workspace has pending work through the supported local CLI bridge, with named profiles and checks for missing CLI prerequisites. #95497 Thanks @vincentkoc.

Official plugin installation and repair

Plugin management now handles more official integrations through normal external package installation and repair flows. The plugin inventory and related setup checks give users clearer results when a package is missing, incompatible, or needs to be reinstalled.

Sources and contributors
  • When plugins.allow uses a channel or package name instead of the real plugin id, startup guidance now identifies the unmatched entry and shows the discovered plugin ids needed to correct the configuration. #68389 Related #68352. Thanks @aym9999, @jirboy, @lyfuci, @pahuchi-joe, @zmxccxy.
  • Plugin trust warnings for first-time or fresh installs now include a ready-to-copy plugins.allow example and commands to list or inspect plugin ids, so users can resolve the warning before trusting or reinstalling plugin code. #78105 Related #68780. Thanks @jirboy, @pahuchi-joe.
  • Codex migrations now work with standard global plugin installs because openclaw migrate can find the installed provider instead of failing with Unknown migration provider. #89612 Related #89609. Thanks @mugabuga, @zerone0x.
  • Plugin installs and updates recover from stale OpenClaw-managed dependency pins instead of failing with npm EOVERRIDE, without later synchronization downgrading or removing packages users installed explicitly. #91786 Related #91772. Thanks @amknight, @mkdelta221.
  • Channel plugin developers can now carry native sender and conversation identifiers through hooks and selected exec workflows, giving integrations more precise routing without breaking existing sender and chat fields. #91903 Thanks @lanzhi-lee, @vincentkoc.
  • Plugin discovery now repeats fewer blocking filesystem checks during startup, reducing avoidable cold-start work for bundled plugin trees, especially on slower Windows filesystems, without changing bundle discovery behavior. #93919 Related #76209. Thanks @ml12580, @shenhonglong456-ai.
  • Plugin Gateway methods now work through openclaw gateway call after registration, so plugin authors can use them from scripts and cron jobs instead of hitting an unknown method error. #94154 Related #94127. Thanks @brycemurray, @pick-cat, @vincentkoc.
  • ClawHub skill discovery and install checks are less likely to stall or crash OpenClaw because oversized or stalled marketplace responses are now stopped before they can exhaust memory. #95226 Thanks @alix-007.
  • Pinned official plugins no longer stay on an old release when operators follow the repair advice from openclaw doctor or deep gateway status after an upgrade. #95541 Thanks @ooiuuii, @vincentkoc.
  • Managed npm plugin updates are less likely to break work on a running gateway with missing-module errors, because the older plugin files remain available until a later gateway start cleans them up. #95589 Thanks @ooiuuii, @vincentkoc.
  • Official plugin cards for supported brands now show recognizable icons in ClawHub and other catalogs, and plugin authors can provide marketplace artwork through the documented manifest field. #95845 Thanks @patrick-erichsen.
  • Official plugin icons in ClawHub and other catalogs are no longer forced into the same hard-coded color, allowing Simple Icons to use its default artwork instead. #95987 Thanks @patrick-erichsen.
  • Docker users now have an official openclaw/openclaw Docker Hub mirror alongside GHCR, with versioned beta releases kept from moving the stable latest and main aliases. #97122 Thanks @vincentkoc.
  • Git-based OpenClaw installs now use the repository's pinned pnpm version even when another global pnpm or surrounding project package manager is present, so setup commands no longer run against the wrong package-manager environment. bd74a62 Thanks @vincentkoc.
  • ClawHub skill-card and update requests now complete or time out predictably even when they receive an unusually large timeout value. 8cd0c11 Thanks @vincentkoc.
  • Windows users can complete source installs without a llama.cpp setup step blocking or slowing them, and the installer restores their existing shell setting afterward. ea9065b Thanks @vincentkoc.
  • More official channel, provider, and web-search plugins can now be installed or repaired through normal external package catalogs while still being recognized from their existing credentials. #95683 Thanks @vincentkoc.
  • People installing or updating the official Yuanbao channel plugin through OpenClaw's trusted catalog now get version 2.15.0, with the expected integrity check and missing-plugin guidance aligned to that release. #94470 Thanks @jase-283.
  • First-run onboarding can now install the bundled gog skill through Homebrew without failing on the removed third-party tap formula. #95019 Related #95017. Thanks @sedrak-hovhannisyan, @vincentkoc, @zengwen-dt.
  • Canvas, Discord, Slack, Voice Call, and WhatsApp users keep the same skill guidance with each installed or bundled plugin, while references to the former root skills/... paths need to move into the relevant plugin directory. #95664 Thanks @vincentkoc.
  • ClawHub skill verification now accepts the same @owner/<slug> reference used for installs and updates, so users can check the intended publisher without switching to an ambiguous bare slug. #95992 Thanks @patrick-erichsen.
  • OpenClaw's install-time package-manager warning now identifies npm, Yarn, Yarn Berry, and Corepack-style launchers correctly, avoiding misleading guidance when those tools run through alternate executable names. 11a2e03 Thanks @vincentkoc.
  • Package URL installs now handle oversized download timeouts without failing before available package data can be resolved. c310f8c
  • Plugin and CLI developers now see a clearer supported command-formatting API, while device pairing, node registration, and doctor guidance keep producing the same shell-safe commands. 23b4f33
  • Windows ARM64 users now get matching ARM64 Node and MinGit downloads when running the PowerShell installer through an x64-emulated shell. fac091b Thanks @vincentkoc.
  • Default OpenClaw installs no longer spend time building optional llama.cpp support, avoiding native-build failures for users who did not enable it. cc1b3a8 Thanks @vincentkoc.

Channels and Messaging

Additional channel fixes

Additional Telegram and channel configuration fixes cover narrower delivery and setup problems.

Sources and contributors
  • Telegram reply chains keep cached replies attached after context changes instead of failing when those cached replies are reused. #82909 Thanks @lidge-jun.
  • Fixes Discord dropping an entire long reply with fenced code blocks when a closing code fence lands near the 2,000-character message limit. #95661 Thanks @ly-wang19.
  • Slack operators can now store tokens and signing secrets as supported SecretRef inputs, while reads, writes, allowlist and target lookups, and setup checks use the resolved credentials instead of rejecting or misreading the references. 7da955f Thanks @vincentkoc.
  • Channel capability checks now return a clear timeout when an integration stops responding, keeping troubleshooting from hanging in a terminal or automation run. 8ecdb97 Thanks @vincentkoc.

Gateway, Security, and Trust

Restart and readiness recovery

Gateway health and troubleshooting signals now line up more consistently with whether OpenClaw is actually ready, restarting, or unable to continue. Agent runs started through the CLI recover more cleanly from disconnects, shutdowns, routing changes, and failed startup conditions.

Sources and contributors
  • When a configured or explicit remote gateway is slow but reachable, openclaw gateway probe --timeout ... now waits for the requested timeout instead of reporting it unreachable after a shorter internal cutoff. #89859 Related #65355. Thanks @hellocli, @mushuiyu886.
  • Long or parallel internal subagent runs now avoid unnecessary live-preview processing, while visible subagent sessions still show live updates and final responses. #91906 Thanks @lanzhi-lee, @vincentkoc.
  • ACP conversations, especially Kiro-backed threads, now continue past the first reply by starting a fresh session when the backend can no longer resume the old one. #93547 Related #87830. Thanks @amersheeny, @chouzz.
  • When Linux memory pressure kills a child command or session, systemd-managed OpenClaw gateways now stay running and keep channel connections alive while reporting the child failure. #93585 Thanks @snowzlm.
  • Canceling an OpenClaw run during tool work now ends it promptly instead of starting another model turn or leaving the session locked. #94412 Thanks @szsip239, @vincentkoc.
  • Scheduled OpenClaw jobs using cloud models now recover from silent, stuck model calls by default, helping prevent later cron work from backing up while local or self-hosted providers keep their existing timeout behavior. #94445 Thanks @bek91.
  • Gateway readiness checks now turn unhealthy during a restart drain, preventing traffic managers from sending new work to a Gateway that is temporarily rejecting requests. #94915 Related #78136. Thanks @markoub, @maxschachere, @vincentkoc.
  • Mac users can keep LaunchAgent-managed gateways running through OpenClaw upgrades instead of seeing repeated crash-and-restart loops when older text-transform runtime code is still cached. #95081 Related #95057. Thanks @849261680, @yveslarose.
  • Codex-powered conversations in TUI, WebChat, and compatible streaming APIs now show replies as they are written, while replacing provisional text cleanly so the final answer does not include stale drafts. #95404 Related #95422. Thanks @agonza1, @vincentkoc.
  • After a gateway restart, users no longer see a misleading retry notice when OpenClaw is already resuming the interrupted reply or reporting the actual recovery failure, reducing unnecessary duplicate attempts. #95431 Thanks @moeedahmed, @vincentkoc.
  • Long, tool-heavy agent sessions now retain prompt-cache savings as results accumulate, reducing avoidable delays and cost from resending rewritten history between turns. #95624 Thanks @vincentkoc.
  • Gateway restarts no longer leave configured Codex, Copilot, or trusted plugin-based agents temporarily unavailable, and untrusted workspace plugins remain blocked from activating themselves. #95652 Thanks @vincentkoc.
  • Long responses, busy tool streams, image-heavy requests, and memory recall now incur less CPU and filesystem overhead without requiring settings or workflow changes. #95697 Thanks @vincentkoc.
  • Operators can again add or update scheduled announcements for known channels in no-config setups, while configured environments still reject disabled, stale, ownerless, or unknown destinations before delivery. #95754 Thanks @vincentkoc.
  • macOS users are less likely to see a false port-conflict failure when stopping or updating a managed gateway, because OpenClaw briefly waits for normal shutdown to release the port while still reporting conflicts that persist. #95886 Thanks @fuller-stack-dev.
  • Copilot-backed agents can now ask users a question and accept the answer through OpenClaw's normal chat reply flow, while compact tool-search and code-mode controls avoid loading the full tool catalog into the session. #96005 Thanks @vincentkoc.
  • Gateway restarts on systemd or container setups no longer leave old Codex or Claude adapter processes behind, helping new ACPX sessions start without minutes-long cleanup stalls after repeated restarts. #96032 Thanks @t2wei, @vincentkoc.
  • Copilot-backed sessions now show plan updates as work unfolds, and their native child tasks stay visible through completion or failure instead of disappearing from OpenClaw's task view. #96062 Thanks @vincentkoc.
  • Connected agents such as OpenCode now start through OpenClaw even when their harness cannot select a requested model, while genuinely unsupported model choices still return the original error. #96068 Related #95869. Thanks @sabatech-dev, @vincentkoc.
  • Plugins using heartbeat_prompt_contribution now deliver their heartbeat-specific context to models when agents run through harness runtimes such as the Codex app-server, without affecting ordinary user turns or plugins that do not use the hook. #96233 Thanks @azogheb, @vincentkoc.
  • Windows gateway cleanup and listener checks now handle UTF-16 WMIC command-line data consistently, reducing failed or conflicting identification of the running gateway process. 15c880a Thanks @vincentkoc.
  • Long-context, tool-heavy agent sessions now keep prompt-cache reuse steadier across repeated turns without losing per-result size limits, while advanced operators can configure larger tool-result caps for large-context models without configuration rejection. a60947f Thanks @vincentkoc.
  • Long, tool-heavy agent sessions are less likely to bloat model requests as tool output accumulates, while repeated turns keep stable prompt-cache reuse. 2f33999 Thanks @vincentkoc.
  • Gateway restarts now use OpenClaw's durable state database for the handoff, while stale, malformed, wrong-process, or superseded requests are discarded before they can affect the restart. 0ad48da
  • Gateway status, doctor, and restart diagnostics now retain recent restart details in OpenClaw's shared state database, while expired or malformed records are still discarded. a39a3b7 Thanks @vincentkoc.
  • Gateway restarts and managed-service updates now keep the correct continuation message, avoid reusing stale handoff state, and mark failed update handoffs consistently. 514b336 Thanks @vincentkoc.
  • Gateway-launched agents no longer lose owner-only OpenClaw tools during tasks such as live cron checks, so authorized operations can use the intended tools with the correct request context. c2ee9b0 Thanks @vincentkoc.
  • Malformed gateway restart requests now fail clearly without scheduling a restart, preventing bad or accidental integration calls from unexpectedly restarting the gateway. 108d6d7 Thanks @vincentkoc.
  • Stale node requests queued by the gateway now expire automatically, so old work is less likely to linger and affect later activity. f6d432e
  • Plugin workflows are less likely to stall or overload the gateway when an integration requests too much subagent session history, because each read is now capped at a safe limit. b66b450 Thanks @vincentkoc.
  • Image descriptions now handle extremely large timeout settings consistently by capping them to a safe runtime limit instead of risking timer overflow. 88b21fc
  • Embedded agent sessions now wait reliably for another session to release its file lock, even with an extremely large timeout, instead of risking timer overflow. 4c736df Thanks @vincentkoc.
  • Queued commands with extremely large task timeout settings now time out reliably because OpenClaw caps the wait at the runtime's safe maximum. 1f6ae32 Thanks @vincentkoc.
  • Fixes normalization-core exposing the wrong string-coercion entry point and ACP sessions showing an outdated fast-mode value, so integrations receive the intended API and users see the mode actually in effect. 93ad397 Thanks @vincentkoc.
  • Fast auto runs now deliver final replies more consistently, with progress-reset handling limited to automatic mode so it does not interfere with responses or forwarded callbacks. 9e8ab08 Thanks @vincentkoc.
  • Agent sessions using OpenAI Responses now resume tool-based work without failing or losing progress when replayed history contains mismatched tool requests and results. b4bc1f2 Thanks @vincentkoc.
  • Completed plugin subagent and QA runs are no longer misreported as failures when gateways return alternate completion envelope shapes, making successful handoffs more reliable for plugin authors and operators. d1b268f Thanks @vincentkoc.
  • Fixes completed subagent tasks sometimes ending without an update, so users receive the result or the parent agent's next step. 68a1e00 Thanks @vincentkoc.

Remote result and media delivery

Remote image results and completed subagent work now return through the active gateway conversation more reliably instead of appearing to fail or disappear.

Sources and contributors
  • Generated images from a remote Codex app-server now arrive as attachments instead of showing Media failed or returning only text after successful generation. #96212 Thanks @sjf-oa.
  • When a subagent finishes, its result now reaches the active parent run more reliably instead of appearing silent. 7fc4bbc Thanks @vincentkoc.

Clients and Interfaces

Client sends and reconnects

WebChat and the Control UI keep active conversations and failure states visible more consistently after reconnects, while mobile clients and the terminal UI recover completed, rejected, or interrupted sends without leaving them looking stuck.

Sources and contributors
  • When a WebChat message fails before the agent starts, WebChat and Control UI now show the session as failed instead of leaving it looking like it is still running. #84352 Thanks @jesse-merhi.
  • Fixes the Control UI session picker getting stuck behind hidden subagent sessions, so Load More reaches the next usable chat without showing a misleading total. #89323 Related #89249. Thanks @giodl73-repo, @originsecured-do.
  • When users reopen a Control UI conversation from History, their prompts now appear with the assistant's replies, preserving the question-and-answer context without blank gaps in long transcripts. #93841 Related #90241. Thanks @mushuiyu886, @pronzcw.
  • Control UI deployments behind a path prefix now keep manifest, favicon, and service-worker requests under that prefix, avoiding confusing root-level 403 errors after login. #94204 Related #94157. Thanks @hugenshen, @xrow.
  • Android users can now open Health log and Skill rows in Settings for readable details, making it easier to troubleshoot gateway activity, check skill setup and status, and understand how to pair with an existing setup code. #95148 Thanks @tosko4.
  • Sent prompts no longer reappear in the Control UI composer after a send, so users can switch sessions or start their next message without risking a duplicate send or overwriting a new draft, while intentional re-entry still works. #95503 Related #89466. Thanks @vincentkoc, @zhangguiping-xydt, @zhong18804784882.
  • Android users now get a cleaner Overview where connection status, the configured agent, node health, approvals, recent sessions, and Chat and Talk actions are visible at a glance. #95557 Thanks @joshavant, @solvely-colin.
  • Android users can now refresh and resolve gateway command approvals from the in-app Approvals screen, choosing Allow Once, Always, or Deny while connected. #95593 Thanks @solvely-colin.
  • iOS users now avoid surprise notification prompts and get clear guidance when approval alerts are unavailable, with permission managed from one predictable Settings screen. #95640 Thanks @joshavant.
  • Local TUI shutdowns now stay within safe timer limits even when OPENCLAW_TUI_LOCAL_RUN_SHUTDOWN_GRACE_MS is set extremely high. c21dcfc
  • Canvas A2UI now serves only the current app assets after each build, so outdated compatibility images and leftover files are less likely to appear. a89e65c Thanks @vincentkoc.
  • iOS push relay setup failures are easier to pinpoint because registration diagnostics show where setup stopped while keeping sensitive push credentials out of logs. f2b8668 Thanks @joshavant.
  • iOS devices are now enrolled for push notifications only after users accept the hosted relay disclosure and allow notifications, preventing registration data from being published before consent. 8efed50 Thanks @joshavant.
  • Fixes chat, voice, TUI, and forwarded sends sometimes appearing stuck or disappearing after the gateway had already finished or rejected them, so affected clients now clear the pending state, restore retryable input, refresh history, or show a useful failure. #91049 Related #91048. Thanks @nxmxbbd.

Interface, settings, and onboarding fixes

Additional Control UI, mobile, and desktop fixes improve display accuracy, accessibility, onboarding, and app behavior.

Sources and contributors
  • Restores the OpenAI/Codex usage quota in the expanded Control UI chat sidebar, so users can check their limits without leaving the conversation. #94219 Related #93041. Thanks @jazzroutine, @pick-cat.
  • iOS screens now use consistent OpenClaw accent and status colors across onboarding, settings, chat, approval prompts, voice permissions, widgets, and shared chat views. #94627 Thanks @zats.
  • The Control UI can now create Early Morning jobs with the Silent preset in the main session and without notifications, instead of leaving the dialog open with no visible result. #95459 Related #95073. Thanks @vincentkoc, @vporton, @zoowh.
  • At the million-token boundary, Control UI badges and usage readouts now show "1M" instead of the confusing "1000k", while the underlying token counts remain unchanged. #95485 Thanks @narahariraghava, @vincentkoc.
  • The Control UI Overview now counts and flags only enabled cron jobs that still need attention, while disabled jobs retain their past failure details without appearing as current problems. #95723 Related #95716. Thanks @voytas75, @zengwen-dt.
  • Control UI users now see shorter System, Light, and Dark theme tooltips, while screen readers announce less repetitive labels without losing the surrounding Color mode context. #95837 Thanks @hannesrudolph, @sannidhyasah.
  • Raw configuration no longer appears missing in Settings after switching from the form view, because the JSON is brought back into view instead of retaining the previous scroll position. #96145 Related #94202. Thanks @sunlit-deng, @vporton.
  • New iOS users now reach OpenClaw's welcome and onboarding before iOS asks for local-network access, while existing users still get the request when opening gateway setup or otherwise needing LAN gateway discovery. #96181 Thanks @joshavant.

Docs and Admin Tools

Setup and command reliability

Common CLI commands now handle configuration, paths, output, and failure cases more consistently. Shell completion, doctor, config commands, and gateway configuration provide clearer guidance and safer recovery when an installation or setting needs attention.

Sources and contributors
  • OpenClaw's zsh tab-completion menu now displays option descriptions containing $ variables or backtick-wrapped examples literally instead of evaluating them as shell input and corrupting the menu. #64490 Thanks @edenkangdw.
  • After upgrading from older sandbox storage, operators now get a clear openclaw doctor warning about leftover registry files and can use openclaw doctor --fix to migrate or clean them up. #84326 Thanks @giodl73-repo.
  • Operators can now use doctor --lint to spot stale legacy Gateway services and preview cleanup, while intentional extra services remain informational and do not fail the default check. #84340 Thanks @giodl73-repo.
  • macOS gateway operators now get a warning before reinstall, repair, or restart overwrites custom LaunchAgent wrapper behavior, while openclaw status distinguishes CLI-only missing-secret checks from the installed service. #90537 Related #90518. Thanks @turbotheturtle, @vincentkoc.
  • Long, multiline, or code-heavy prompts can now be sent to openclaw agent with --message-file, avoiding fragile shell quoting and reporting invalid files before dispatch. #93351 Thanks @ooiuuii.
  • Fixes scheduled doctor --fix --non-interactive repairs restarting an already-running gateway after a temporary health-check failure, so unattended maintenance no longer interrupts the live service. #94148 Related #78217. Thanks @esqandil, @zhangguiping-xydt.
  • openclaw configure and bare openclaw config now stop with clear subcommand guidance when run from scripts or pipes, instead of opening a partial interactive wizard and exiting unclearly. #94238 Related #93953. Thanks @nianjiuzst, @ruomuxydt.
  • Multi-agent operators can now use openclaw gateway usage-cost to view costs for one configured agent or all agents while the existing default-agent command remains unchanged. #94483 Thanks @ly-wang19.
  • Archived Workboard cards no longer clutter the default openclaw workboard list output, while --include-archived and JSON output still provide access when needed. #94562 Related #94555. Thanks @ecican, @vincentkoc, @zengwen-dt.
  • OpenClaw Doctor now gives accurate guidance for working isolated shell-prompt cron jobs instead of repeatedly suggesting a --fix command that cannot clear the warning. #94784 Related #94655. Thanks @altaywtf, @geekoagent, @zengwen-dt.
  • Fixes openclaw doctor showing a fix-required warning for healthy local GGUF memory setups after an intentionally skipped readiness check, while preserving the warning when the configured local model is actually missing. #95393 Related #92582. Thanks @mikasa0818, @neekolascmd, @vincentkoc.
  • On Windows, installer-created gateway tasks now run in the background without a console window that users could accidentally close and stop the gateway. #95480 Related #89231. Thanks @cameronweller, @mikasa0818, @vincentkoc.
  • Agent channel bindings now reject malformed account specs such as matrix:work:extra with a clear error instead of silently routing the agent to a different account. #95572 Thanks @ly-wang19.
  • ClawHub skill updates now honor your configured install safety policy, and openclaw skills update --all updates only tracked ClawHub skills instead of unexpectedly installing other configured skills. #95684 Thanks @vincentkoc.
  • Windows restart and gateway startup workflows are more reliable because OpenClaw now hands commands to the trusted system cmd.exe path instead of depending on process lookup. 7dd01d1 Thanks @vincentkoc.
  • Windows gateway cleanup and listener checks are more reliable when PATH lookup is incomplete, so operators can identify the gateway process and free an occupied port without installed system tools being missed. e9b694e Thanks @vincentkoc.
  • On Windows, OpenClaw startup and TUI Codex handoff now find bun, codex, and other runtime binaries through the trusted system locator even when another where command appears earlier on PATH. 72b9bc7 Thanks @vincentkoc.
  • Windows port diagnostics now use the intended system tools even when PATH entries are missing or shadowed, so gateway and service port conflicts are less likely to be obscured by command-resolution failures. c4facb2 Thanks @vincentkoc.
  • Windows daemon recovery is less likely to miss process detection or cleanup when PATH is incomplete, unusual, or shadowed because scheduled-task fallback now finds PowerShell and taskkill in trusted system locations. 2a140e6 Thanks @vincentkoc.
  • OpenClaw now keeps config recovery markers, last-known-good snapshots, and suspicious-read history in its shared state through migration, without leaving a separate config-health log file behind. 6daabd2 Thanks @vincentkoc.
  • On Windows, Crabbox commands launched through Node package shims now receive provider flags, shell commands, and special shell characters as entered instead of losing or reinterpreting them. 54d24cd Thanks @vincentkoc.
  • Windows-targeted Crabbox workflows are less likely to fail or fall back to slower shell handling when launching Node tools through .cmd and .bat shims. d48dcc6 Thanks @vincentkoc.
  • Windows users can run crabbox, git, and other Node-backed tools through npm-installed command shims without Crabbox stopping before the tool opens. 77f4e45 Thanks @vincentkoc.
  • openclaw doctor now checks profiles that omit tool policy settings without treating the valid omission as an error. 03ba09b
  • openclaw doctor no longer shows misleading tool-section warnings when it cannot evaluate a custom preview profile. 420a0e6 Thanks @vincentkoc.
  • openclaw doctor now limits preview warnings to tool profiles it can evaluate, avoiding misleading configured-grant warnings for unknown profiles. 541f7ff Thanks @vincentkoc.
  • Windows users can install OpenClaw from source without dependency setup being blocked by the installer forcing npm or pnpm scripts through cmd.exe. 1252378 Thanks @vincentkoc.
  • Larger OpenClaw configurations can initialize and generate UI hints more efficiently, while sensitive fields continue to be marked the same way. #55018 Thanks @huangyandi-red, @vincentkoc, @xdhuangyandi.
  • Config changes that still need a manual gateway restart now show a clear restart-required notice with the original note preserved, instead of looking finished with a misleading config-patch ok message. #83041 Related #46797. Thanks @stache73, @xuruiray.
  • Help for doctor, gateway, models, plugins, sessions, and tasks now appears in tens of milliseconds, while commands such as sessions --help and tasks --help previously took about 1.6 to 1.8 seconds to begin responding. #89628 Thanks @yyzquwu.
  • OpenTelemetry trace backends such as Langfuse now show the actual provider/model name instead of "unknown" for slash-qualified model IDs. #89981 Thanks @mycarrysun, @vincentkoc.
  • Malformed or older device-pairing records no longer stop openclaw devices list from showing pending approval requests, while valid roles still appear normally. #93504 Thanks @ly-wang19.
  • OpenClaw now rejects SSH targets with stray leading or trailing colons before they can produce invalid SSH configuration or tunnel startup failures for SSH-backed sandboxes and gateways. #93887 Thanks @miorbnli.
  • Users whose non-interactive setup fails its local gateway health check now get runnable openclaw onboard --install-daemon or openclaw onboard --skip-health recovery commands instead of unsupported setup flags. #93994 Related #93947. Thanks @bk-z1, @nianjiuzst.
  • Gateway health and probe checks now accept the same custom --port used to start a local gateway, reject invalid ports early, and show the selected loopback target in JSON output. #94687 Related #79100. Thanks @bryantegomoh, @ozthedivine.
  • gateway --force now detects IPv4-only processes occupying the gateway port and still attempts cleanup when a port check is inconclusive, instead of mistakenly treating the port as free. #94949 Related #94426. Thanks @sunlit-deng, @vincentkoc, @wangwllu.
  • openclaw config validate now accepts command-based MCP server setups that explicitly use transport: "stdio", avoiding false validation errors while still rejecting invalid remote-style stdio configurations. #95102 Related #95082. Thanks @ken-jo, @lzyyzznl.
  • CLI image edits can now return multiple variants in one command with --count <n>, instead of being limited to the provider's default single result. #95300 Thanks @ly-wang19.
  • openclaw sessions export-trajectory now finds sessions that other session commands can already see when custom, ~-based, or {agentId}-templated stores are configured, without requiring the store path again. #95570 Related #95568. Thanks @youngting520.
  • Fixes infer inspect --name <id> --json showing flags that the matching CLI commands did not accept, so developers and operators can reliably discover supported model, auth, and transcription options. #95719 Thanks @ly-wang19, @vincentkoc.
  • People inspecting very large or out-of-order sessions can open usage details and still get the latest timestamped log entries without OpenClaw retaining the entire parsed log history in memory. #96019 Thanks @vincentkoc.
  • Operators can now set up the auth monitor, systemd timer, and Termux widgets for their own OpenClaw host without first replacing maintainer-specific hostnames and filesystem paths. af3e509 Thanks @vincentkoc.
  • Native Windows crabbox hydration now selects the required Windows daemon job automatically, avoiding failed or misrouted runs while leaving WSL2 and explicit job overrides unchanged. d5d9a82 Thanks @vincentkoc.
  • People setting a local agent avatar can avoid missing images by keeping workspace-relative files under 2 MB, while HTTP(S) and data URI avatars are not subject to that limit. #78884 Related #65312. Thanks @wangjieweb3-design, @nyx-nocturna.
  • OpenClaw's default agent instructions now ask agents to check for suitable free or open-source solutions before proposing a custom build, while still allowing custom work when it is the better fit. #86608 Thanks @cablackmon.
  • Plugin authors can now use the documented targetSessionKey on subagent_ended events to match them with the corresponding spawn, instead of relying on agentId or childSessionKey fields that are not emitted. #95191 Related #95186. Thanks @ken-jo, @mahaohao-ch.
  • ClawHub skill links in OpenClaw docs and showcase cards now open the canonical owner-qualified pages, and install examples use copy-ready openclaw skills install @owner/<slug> references instead of older bare-slug routes. #95972 Thanks @patrick-erichsen.

Tools and scheduled work

Scheduled jobs and built-in tools now finish, retry, report failures, and preserve their intended inputs more consistently. Improvements to the plugin SDK runtime also make tool-backed extensions more reliable when loading, returning results, or running scheduled work.

Sources and contributors
  • Isolated cron jobs using deleteAfterRun now remove their temporary session and transcript after finishing, including runs with delivery disabled, reducing stale files, accumulated context, and manual cleanup. #84794 Related #84707. Thanks @bottenbenny, @turbotheturtle.
  • Individual scheduled jobs can now use their own fallback models, run with fallbacks disabled, or return to normal fallback inheritance through the CLI instead of requiring operators to edit lower-level payload data. #93369 Related #90302. Thanks @849261680, @walliiee.
  • Cron history now reliably finds entries whose job IDs include extra surrounding spaces, and rejects nested or blank IDs before they can create log records that cannot be read back safely. #93567 Thanks @alix-007, @vincentkoc.
  • Adding or removing a cron job no longer causes another recurring job that is already due to lose its pending run. #94323 Thanks @yetval.
  • Word, PowerPoint, and Excel document reads and writes now use the intended .docx, .pptx, or .xlsx path instead of failing against a made-up extension. #95805 Related #93326. Thanks @bhnan, @lzyyzznl, @vincentkoc, @xzh-icenter.
  • Browser automation users keep the same reference-rich snapshots, including useful branches in compact results, with less avoidable processing during snapshot generation. #96072 Thanks @vincentkoc.
  • Fixes timed-out commands and interrupted core updates on Windows sometimes leaving child processes running, so OpenClaw can stop the full process tree more reliably after cancellations, timeouts, or update cleanup. a192b2e Thanks @vincentkoc.
  • Windows users are less likely to see agent-managed tool installs fail while unpacking ZIP downloads such as ripgrep, because OpenClaw now uses the built-in Windows extraction programs instead of relying on PATH lookup. a5fde91
  • Windows setup and runtime checks now find required tools more reliably by using the trusted System32 resolver instead of depending on an unexpected PATH entry. d3b4444 Thanks @vincentkoc.
  • SDK runs created with timeoutMs: 0 now keep the requested zero timeout without an unwanted client-side watchdog. 2bdcc83 Thanks @vincentkoc.
  • Stalled OpenClaw commands now stop reliably even when callers supply extremely large execution or idle-output timeouts. 1425bb3 Thanks @vincentkoc.
  • Commands given extremely large timeout settings now use a safe maximum instead of failing because the runtime cannot schedule the requested wait. 66b94ba
  • Provider-specific tool allow/deny settings now align more consistently with OpenClaw's doctor warnings, including configurations with provider aliases, model-specific keys, OpenRouter-style model IDs, or malformed policy entries. 8f2882f
  • SDK applications now receive tool.call.failed when terminal tools fail or are blocked, instead of a misleading completion event, so existing failure handling can react correctly. #95383 Thanks @ly-wang19.
  • Fixes cron add and update requests being rejected when recognized job fields arrive with harmless trailing spaces, so schedules can be saved without relaxing checks for ambiguous or unsafe input. #95674 Related #95407. Thanks @nassiel, @zw-xysk.
  • Codex subagent monitoring handles large sets of child agents and transcript files with less unnecessary scanning, while older transcript filename formats continue to resolve as before. #96085 Thanks @vincentkoc.
  • Fixes native Windows crabbox hydration getting stuck or missing handoffs when the runner and daemon use different home directories, so both can find the same job state and stop files. f354889 Thanks @vincentkoc.
Additional contributions
  • Improves repository CI scheduling, runner use, and failure handling. #95308 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95465 Thanks @wangmiao0668000666.
  • Improves repository CI scheduling, runner use, and failure handling. #95625 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95649 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95681 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95857 Thanks @romneyda.
  • Improves repository CI scheduling, runner use, and failure handling. #95870 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95872 Thanks @romneyda.
  • Improves repository CI scheduling, runner use, and failure handling. #95879 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95890 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95909 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95922 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95946 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95967 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #95983 Thanks @vincentkoc.
  • Improves repository CI scheduling, runner use, and failure handling. #96258 Thanks @vincentkoc.
  • Improves release-check automation and required evidence handling. #95094 Thanks @romneyda.
  • Improves release-check automation and required evidence handling. #95466 Thanks @jason-allen-oneal.
  • Improves release-check automation and required evidence handling. #95876 Thanks @romneyda.
  • Improves release-check automation and required evidence handling. #95880 Thanks @romneyda.
  • Improves release-check automation and required evidence handling. #95919 Thanks @romneyda.
  • Improves release-check automation and required evidence handling. #95928 Thanks @vincentkoc.
  • Improves release-check automation and required evidence handling. #95991 Thanks @vincentkoc.
  • Improves release-check automation and required evidence handling. #96235 Thanks @vincentkoc.
  • Improves release packaging, publishing, and validation tools. #94272 Thanks @romneyda.
  • Improves release packaging, publishing, and validation tools. #94622 Thanks @tayoun.
  • Improves release packaging, publishing, and validation tools. #95898 Thanks @romneyda.
  • Improves release packaging, publishing, and validation tools. #95901 Thanks @romneyda.
  • Improves release packaging, publishing, and validation tools. #95999 Thanks @vincentkoc.
  • Improves release packaging, publishing, and validation tools. #96055 Thanks @vincentkoc.
  • Improves release packaging, publishing, and validation tools. #96226 Thanks @vincentkoc.
  • Improves release packaging, publishing, and validation tools. #96271 Thanks @vincentkoc.
  • Improves release packaging, publishing, and validation tools. #97909 Thanks @patrick-erichsen.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #91502 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #91506 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #94700 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95406 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95858 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95933 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95944 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95947 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95952 Thanks @vincentkoc.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95961 Thanks @vincentkoc.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95971 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #95975 Thanks @vincentkoc.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #96003 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #96017 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #96030 Thanks @romneyda.
  • Improves QA Lab coverage, evidence capture, and release-readiness checks. #96246 Thanks @vincentkoc.
  • Adds or repairs focused regression coverage for maintainer workflows. #87121 Thanks @davinci282828, @lizuju.
  • Adds or repairs focused regression coverage for maintainer workflows. #90223 Thanks @aniruddhaadak80.
  • Adds or repairs focused regression coverage for maintainer workflows. #93378 Thanks @mmyzwl, @yachiyo1680.
  • Adds or repairs focused regression coverage for maintainer workflows. #95475 Thanks @kklouzal.
  • Adds or repairs focused regression coverage for maintainer workflows. #95499 Thanks @romneyda.
  • Adds or repairs focused regression coverage for maintainer workflows. #95602 Thanks @vincentkoc, @zats.
  • Adds or repairs focused regression coverage for maintainer workflows. #95653 Thanks @vincentkoc.
  • Improves repository maintenance and contributor intake workflows. #76668 Thanks @wadydx.
  • Improves repository maintenance and contributor intake workflows. #87861 Thanks @coder999999999, @shuofengzhang, @vincentkoc.
  • Improves repository maintenance and contributor intake workflows. #95243 Thanks @hugenshen, @vincentkoc.
  • Improves internal documentation structure and release-reference upkeep. #78715 Thanks @mehrazmorshed.
  • Improves internal documentation structure and release-reference upkeep. #93502 Thanks @harjothkhara.
  • Improves internal documentation structure and release-reference upkeep. #96044 Thanks @romneyda.
  • Improves internal documentation structure and release-reference upkeep. #96057 Thanks @vincentkoc.
  • Improves internal documentation structure and release-reference upkeep. #96061 Thanks @vincentkoc.
  • Strengthens internal behavior boundaries without changing the public product workflow. #91193 Thanks @davinci282828, @whiteyzy.
  • Strengthens internal behavior boundaries without changing the public product workflow. #95706 Thanks @rushindrasinha, @vincentkoc.
  • Strengthens internal behavior boundaries without changing the public product workflow. #96179 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #89912 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #90439 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96182 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96191 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96193 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96195 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96204 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96206 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96213 Thanks @jalehman.
  • Moves session and runtime internals behind shared maintenance boundaries. #96218 Thanks @jalehman.
  • Improves iOS push sandbox and release-validation coverage. #95893 Thanks @joshavant.
  • Updates Copilot harness validation documentation and live-test setup. #95930 Thanks @vincentkoc.
Was this useful?
On this page

On this page