← Back to Resources
OpenClaw releases

OpenClaw Changelog & Feature Tracker

A working reference for the Enterprise Crew. Scan what shipped by version, open the upstream release notes, and follow each listed item back to its source when a PR or issue is available.

18release sections
3929listed changes
1126fix entries
Latest weekly DX deck

Three releases, one quiet win: the channel that used to die silently now stays alive

This was a plumbing week. Not a feature parade. OpenClaw shipped 2026.6.5, 2026.6.6, and the 2026.6.8 pre-release with the through-line of recovery: safer approvals, reproducible installs, and the session lock leak fixed at the root.

Open 2026-06-14 deck ↗
Release

2026.7.1

2026.7.1

1714 changes Open upstream ↗
01 New Control UI chats now receive concise sidebar titles from their first me... New Control UI chats now receive concise sidebar titles from their first message, and operators can route dashboard, Telegram topic, and Discord thread title generation through a smaller `utilityModel`. [#87643](https://github.com/openclaw/openclaw/pull/87643) Thanks @juliangsm, @zhangguiping-xydt. 02 Paired administrators can now create a mobile setup QR or copyable code fro... Paired administrators can now create a mobile setup QR or copyable code from Control UI Nodes and use it to connect an official iOS or Android app. [#94672](https://github.com/openclaw/openclaw/pull/94672) Thanks @bkudiess, @douhualili. 03 Control UI now makes conversations easier to create, find, and switch from... Control UI now makes conversations easier to create, find, and switch from a populated session sidebar, while keeping context pressure and provider quota information close at hand. [#99289](https://github.com/openclaw/openclaw/pull/99289) Related [#99288](https://github.com/openclaw/openclaw/issues/99288). 04 The Control UI sidebar now focuses on sessions and a few default destinatio... The Control UI sidebar now focuses on sessions and a few default destinations while letting users pin their preferred pages and keep those choices across reloads. [#100296](https://github.com/openclaw/openclaw/pull/100296) 05 The redesigned Control UI composer keeps attachments, provider and model se... The redesigned Control UI composer keeps attachments, provider and model selection, voice, run state, and message actions clearer and more stable across mobile and desktop layouts. [#100461](https://github.com/openclaw/openclaw/pull/100461) Thanks @fuller-stack-dev. 06 Control UI Talk users can choose and refresh a microphone on narrow screens... Control UI Talk users can choose and refresh a microphone on narrow screens and read clear permission guidance when browser access is blocked. [#101377](https://github.com/openclaw/openclaw/pull/101377) Thanks @fuller-stack-dev. 07 Control UI chat can now show multiple resizable sessions side by side or st... Control UI chat can now show multiple resizable sessions side by side or stacked, preserve the pane layout across reloads, and keep the active pane usable on narrow screens. [#100754](https://github.com/openclaw/openclaw/pull/100754) 08 The Control UI now has a live Tasks page where operators can inspect active... The Control UI now has a live Tasks page where operators can inspect active and recent background work, open its session, refresh details, and cancel queued or running tasks when authorized. [#100789](https://github.com/openclaw/openclaw/pull/100789) 09 Session lists across web and mobile now support pinned and custom groups, s... Session lists across web and mobile now support pinned and custom groups, shared read and unread status, background-output indicators, transcript forking, and in-place rename, archive, move, and delete actions. [#100814](https://github.com/openclaw/openclaw/pull/100814) 10 The Control UI Sessions page now fits more useful status and actions on a t... The Control UI Sessions page now fits more useful status and actions on a typical screen, with row details opening to reveal labels, tuning controls, and checkpoint history instead of forcing routine sideways scrolling. [#100943](https://github.com/openclaw/openclaw/pull/100943) 11 Control UI users can drag a session directly into the current pane or onto... Control UI users can drag a session directly into the current pane or onto any side to create a split, with a preview showing where it will land. [#101191](https://github.com/openclaw/openclaw/pull/101191) 12 Operators can configure token or full per-reply usage footers once with `me... Operators can configure token or full per-reply usage footers once with `messages.responseUsage`, while users can turn them off or reset a session to the inherited default. [#89762](https://github.com/openclaw/openclaw/pull/89762) Thanks @marvinthebored, @obviyus, @peetiegonzalez. 13 The Control UI Usage page now makes recent estimated costs, daily values, a... The Control UI Usage page now makes recent estimated costs, daily values, and each provider, model, agent, or channel's share easier to compare without repeated reloads or hovering. [#100432](https://github.com/openclaw/openclaw/pull/100432) 14 The Usage page now shows provider-reported plans, quotas, reset times, bala... The Usage page now shows provider-reported plans, quotas, reset times, balances, spending, and budgets alongside OpenClaw session analysis, including OpenRouter and Venice coverage. [#100520](https://github.com/openclaw/openclaw/pull/100520) 15 Control UI Usage can now show Anthropic and OpenAI daily spend, tokens, req... Control UI Usage can now show Anthropic and OpenAI daily spend, tokens, requests, top models, and billing categories for today, seven days, and thirty days when admin credentials are configured. [#100672](https://github.com/openclaw/openclaw/pull/100672) 16 Daily token and cost charts now include zero-activity days across bounded d... Daily token and cost charts now include zero-activity days across bounded date ranges, so 7-day, 30-day, and 90-day views show the full calendar period instead of shrinking around active days. [#81467](https://github.com/openclaw/openclaw/pull/81467) Thanks @adapepper. 17 All-agent cost reports on large installations now limit concurrent Gateway... All-agent cost reports on large installations now limit concurrent Gateway work so the dashboard is less likely to slow down, time out, or add memory pressure. [#101589](https://github.com/openclaw/openclaw/pull/101589) Thanks @vincentkoc, @zw-xysk. 18 Hovering or keyboard-focusing a public GitHub issue or pull request in Cont... Hovering or keyboard-focusing a public GitHub issue or pull request in Control UI chat now previews its status, title, author, activity, comments, and change size without leaving the conversation. [#100434](https://github.com/openclaw/openclaw/pull/100434) 19 File paths in Control UI chats are now clickable, opening a searchable synt... File paths in Control UI chats are now clickable, opening a searchable syntax-highlighted preview at the cited line with options to reveal, copy, or open the file in a supported editor. [#100679](https://github.com/openclaw/openclaw/pull/100679) 20 Control UI connection failures now show actionable messages such as "Pairin... Control UI connection failures now show actionable messages such as "Pairing required" instead of replacing them with a generic gateway disconnect. [#54758](https://github.com/openclaw/openclaw/pull/54758) Thanks @ruanrrn. 21 Control UI sessions using full verbose output now open tool inputs and resu... Control UI sessions using full verbose output now open tool inputs and results by default, reducing repeated clicks during debugging and review. [#74398](https://github.com/openclaw/openclaw/pull/74398) Thanks @samrusani. 22 The Control UI context indicator now remains visible with an approximate ca... The Control UI context indicator now remains visible with an approximate cached total while a response is active, without using stale data for urgent warnings or the Compact action. [#89772](https://github.com/openclaw/openclaw/pull/89772) Thanks @bladin. 23 Control UI and WebChat no longer let a non-terminal internal tool failure d... Control UI and WebChat no longer let a non-terminal internal tool failure dominate the transcript with a red error banner after the assistant has already produced a normal final answer. [#90122](https://github.com/openclaw/openclaw/pull/90122) Thanks @harjothkhara. 24 A default agent selected in the Control UI now remains selected after refre... A default agent selected in the Control UI now remains selected after refresh without saving unrelated unfinished settings. [#91457](https://github.com/openclaw/openclaw/pull/91457) Thanks @zengwen-dt. 25 Segmented streaming replies in Control UI WebChat now stay under one assist... Segmented streaming replies in Control UI WebChat now stay under one assistant avatar and footer instead of appearing as several separate responses. [#92063](https://github.com/openclaw/openclaw/pull/92063) Related [#63956](https://github.com/openclaw/openclaw/issues/63956). Thanks @contentfree, @harjothkhara. 26 Dashboard WebChat users can right-click a completed message and reply with... Dashboard WebChat users can right-click a completed message and reply with visible quote context instead of manually copying and formatting it. [#92654](https://github.com/openclaw/openclaw/pull/92654) Thanks @programmingwtf, @vincentkoc. 27 After an update installs, the Control UI now says when a Gateway restart is... After an update installs, the Control UI now says when a Gateway restart is already in progress instead of making the Update button appear unresponsive. [#93082](https://github.com/openclaw/openclaw/pull/93082) Thanks @goutamadwant. 28 Live tool-using replies in Control UI WebChat now keep the assistant's intr... Live tool-using replies in Control UI WebChat now keep the assistant's introduction ahead of the tool card, even when browser and Gateway clocks differ. [#93184](https://github.com/openclaw/openclaw/pull/93184) Thanks @pick-cat. 29 Control UI Quick Create now lets users choose a model for an agent-turn cro... Control UI Quick Create now lets users choose a model for an agent-turn cron job and shows whether existing jobs use that model or the default. [#95341](https://github.com/openclaw/openclaw/pull/95341) Thanks @ly85206559. 30 Control UI WebChat can now show Codex preamble and commentary while tools a... Control UI WebChat can now show Codex preamble and commentary while tools are running, with a choice to hide or retain that progress after the final answer. [#95708](https://github.com/openclaw/openclaw/pull/95708) Thanks @obviyus, @ragesaq. 31 Long reply IDs containing emoji or other supplementary characters now remai... Long reply IDs containing emoji or other supplementary characters now remain valid when shortened for WebChat and Gateway reply directives instead of being cut into malformed text. [#96938](https://github.com/openclaw/openclaw/pull/96938) Thanks @ly-wang19. 32 Long tool activity details now remain readable when shortened for chat, UI,... Long tool activity details now remain readable when shortened for chat, UI, or logs, even when an emoji or other supplementary character falls at the cutoff. [#96958](https://github.com/openclaw/openclaw/pull/96958) Thanks @bartok9, @ly-wang19, @vincentkoc. 33 WebChat now shows long provider and model names together with the selected... WebChat now shows long provider and model names together with the selected reasoning level in the composer, while narrow screens retain a sensible overflow limit. [#96990](https://github.com/openclaw/openclaw/pull/96990) Thanks @maweibin, @xiayingren123. 34 Agents can use targetless `message Agents can use targetless `message.send` for progress or intermediate updates in the current WebChat without an explicit destination. [#97167](https://github.com/openclaw/openclaw/pull/97167) Related [#96840](https://github.com/openclaw/openclaw/issues/96840). Thanks @mantiscartography, @zhangguiping-xydt. 35 New Control UI chats now use the selected model's current context window in... New Control UI chats now use the selected model's current context window instead of inheriting an outdated, smaller limit from a parent session. [#97332](https://github.com/openclaw/openclaw/pull/97332) Thanks @galiniliev. 36 WebChat stays on the newest reply when assistant audio or video finishes lo... WebChat stays on the newest reply when assistant audio or video finishes loading, while respecting readers who intentionally scrolled upward. [#97575](https://github.com/openclaw/openclaw/pull/97575) Thanks @turbotheturtle. 37 Control UI pages for multiple Gateways on one domain now stay connected to... Control UI pages for multiple Gateways on one domain now stay connected to the Gateway named by their path instead of reusing a sibling page's saved destination. [#97665](https://github.com/openclaw/openclaw/pull/97665) Thanks @alix-007. 38 `/pair qr` now delivers a scannable code in Telegram and Control UI or a re... `/pair qr` now delivers a scannable code in Telegram and Control UI or a readable code in the TUI without storing the one-time setup secret in chat history. [#97933](https://github.com/openclaw/openclaw/pull/97933) Thanks @joshavant. 39 Expired `/pair qr` cards in Control UI now clearly say the code is unusable... Expired `/pair qr` cards in Control UI now clearly say the code is unusable and direct users to generate a fresh one. [#98049](https://github.com/openclaw/openclaw/pull/98049) Related [#98039](https://github.com/openclaw/openclaw/issues/98039). Thanks @ooiuuii. 40 Expired mobile-pairing codes now explain how to run `/pair qr` again in the... Expired mobile-pairing codes now explain how to run `/pair qr` again in the selected language. Sources: [bb4afe4](https://github.com/openclaw/openclaw/commit/bb4afe40ae6dbd1c711d22cdaee0b36cf404e5f8), [da9308d](https://github.com/openclaw/openclaw/commit/da9308ddb73113b54c860eafe8d8c2a81b860e41), [dfaec18](https://github.com/openclaw/openclaw/commit/dfaec1888d7ab3f5464ddd5a4a0b6f9fa9cfdb68), [6b7986e](https://github.com/openclaw/openclaw/commit/6b7986e14e00978e4a0b30faf324b3a21f35c717), [21af6e7](https://github.com/openclaw/openclaw/commit/21af6e7b19bfcea5da47316bac973eeb2d211ce8), [4e62124](https://github.com/openclaw/openclaw/commit/4e621240e8da1783657b87ea0c53a750274ea377), [6cd0106](https://github.com/openclaw/openclaw/commit/6cd0106bbc20b9d42a3d714f09e3ced3607fb208), [a72a641](https://github.com/openclaw/openclaw/commit/a72a64136ea047a05a0558f41760b57480ae5e5e), [a143ae4](https://github.com/openclaw/openclaw/commit/a143ae4e7dfea84b209948cd26044b8d8aec77e3), [cd30b1c](https://github.com/openclaw/openclaw/commit/cd30b1c3eeef9eb1b20b858aebb805698cded6f2), [f69e27a](https://github.com/openclaw/openclaw/commit/f69e27afa2b4fb99e169c51a49f39c3fb7e09c21), [ccddbee](https://github.com/openclaw/openclaw/commit/ccddbeea6a104fdf292a9d6ba2e8cca60dd21631), [9ed03df](https://github.com/openclaw/openclaw/commit/9ed03df44d812ccb14b2e69897be7e3209b65770), [f84243f](https://github.com/openclaw/openclaw/commit/f84243fe3fb4d83adb97e88baf607329ab9e9aa2), [3d06ee9](https://github.com/openclaw/openclaw/commit/3d06ee9ed78e946cc02d5b7af9e974c331e60e96), [9bd071e](https://github.com/openclaw/openclaw/commit/9bd071ead3d14e533e619acac075dba2c40bc9ec), [405b7a5](https://github.com/openclaw/openclaw/commit/405b7a52c159f996fc9a7dfc3bc899e2f3411ba0), [1a160ce](https://github.com/openclaw/openclaw/commit/1a160cec093e48141912e8b2f92a5c5ea007e6b5). 41 Control UI now shows channel-triggered agent runs as in progress, so users... Control UI now shows channel-triggered agent runs as in progress, so users can tell that messages from channels such as Weixin are actively being handled. [#98257](https://github.com/openclaw/openclaw/pull/98257) Thanks @scotthuang. 42 The Control UI workspace rail now gives long Project files lists their own... The Control UI workspace rail now gives long Project files lists their own scrollbar so files remain browsable without spilling off screen. [#98646](https://github.com/openclaw/openclaw/pull/98646) Related [#98566](https://github.com/openclaw/openclaw/issues/98566). Thanks @645648406-max, @wuqxuan. 43 Session Workspace file paths can now be copied from Chat even when the Cont... Session Workspace file paths can now be copied from Chat even when the Control UI runs over plain HTTP or another context without the standard Clipboard API. [#98764](https://github.com/openclaw/openclaw/pull/98764) Related [#98759](https://github.com/openclaw/openclaw/issues/98759). Thanks @adinballew, @zengwen-dt. 44 Tool-heavy Control UI chats now use compact expandable activity rows, so co... Tool-heavy Control UI chats now use compact expandable activity rows, so commands and results take less space while full details stay one click away. [#99763](https://github.com/openclaw/openclaw/pull/99763) 45 The Control UI now stays fixed during trackpad overscroll on Mac and deskto... The Control UI now stays fixed during trackpad overscroll on Mac and desktop browsers while chat threads and lists continue scrolling normally. [#99830](https://github.com/openclaw/openclaw/pull/99830) 46 Control UI chat is easier to scan with quieter composer controls, a Faster-... Control UI chat is easier to scan with quieter composer controls, a Faster-to-Smarter reasoning slider, and connection status that no longer competes with persistent version text. [#99838](https://github.com/openclaw/openclaw/pull/99838) Related [#99837](https://github.com/openclaw/openclaw/issues/99837). 47 Mounted deep links, Set Default, authenticated avatars, cron alerts, and Wo... Mounted deep links, Set Default, authenticated avatars, cron alerts, and Workboard scrolling now behave correctly again across the Control UI. [#100106](https://github.com/openclaw/openclaw/pull/100106) 48 Administrators can now open mobile pairing from any Control UI page or Quic... Administrators can now open mobile pairing from any Control UI page or Quick Settings, while non-admin operators continue to see the action disabled with an access explanation. [#100157](https://github.com/openclaw/openclaw/pull/100157) 49 The Control UI now shows a ready mobile-pairing QR code immediately even wh... The Control UI now shows a ready mobile-pairing QR code immediately even when the pending-device list is slow, then adds approval requests when they arrive. [#100179](https://github.com/openclaw/openclaw/pull/100179) 50 Control UI users can select and copy tool activity without toggling its row... Control UI users can select and copy tool activity without toggling its row, and failed tools no longer repeat redundant error indicators. [#100199](https://github.com/openclaw/openclaw/pull/100199) Thanks @steipete-oai. 51 The Gateway Dashboard login now fits and behaves better on phones and short... The Gateway Dashboard login now fits and behaves better on phones and short windows, with larger touch targets, easier URL entry, and reachable recovery help. [#100208](https://github.com/openclaw/openclaw/pull/100208) 52 Control UI users can organize large session lists by custom group, channel,... Control UI users can organize large session lists by custom group, channel, kind, agent, or date, with persistent assignments and drag-and-drop management. [#100262](https://github.com/openclaw/openclaw/pull/100262) 53 Users can open the Control UI context ring to inspect exact context use, th... Users can open the Control UI context ring to inspect exact context use, the latest input and output token counts, and the active model without leaving chat. [#100264](https://github.com/openclaw/openclaw/pull/100264) 54 Images returned by tools such as `read` now appear directly in the Control... Images returned by tools such as `read` now appear directly in the Control UI conversation instead of only being mentioned in text. [#100295](https://github.com/openclaw/openclaw/pull/100295) Thanks @lzyyzznl, @pandah97, @rquinones84. 55 Control UI tool activity now combines matching calls and results into one c... Control UI tool activity now combines matching calls and results into one consistent row, removes repeated labels and categories, and keeps inputs, outputs, previews, and real errors accessible. [#100318](https://github.com/openclaw/openclaw/pull/100318) 56 The Control UI context panel now shows the latest run's estimated total cos... The Control UI context panel now shows the latest run's estimated total cost and available input, output, cache-read, and cache-write breakdowns beside the provider and model. [#100379](https://github.com/openclaw/openclaw/pull/100379) 57 The Control UI sidebar now keeps all pinned chats visible alongside nine or... The Control UI sidebar now keeps all pinned chats visible alongside nine ordinary recent chats in a more compact, conversation-focused desktop and tablet layout. [#100386](https://github.com/openclaw/openclaw/pull/100386) 58 The Control UI composer now shows reasoning level clearly, keeps Talk and i... The Control UI composer now shows reasoning level clearly, keeps Talk and its settings together, and preserves usable model controls on phone and landscape layouts. [#100445](https://github.com/openclaw/openclaw/pull/100445) 59 Control UI Talk now starts from a simpler composer while administrators can... Control UI Talk now starts from a simpler composer while administrators can set durable provider, transport, timing, and reasoning defaults in Settings. [#100453](https://github.com/openclaw/openclaw/pull/100453) 60 Temporary Gateway disconnects no longer replace an authenticated Control UI... Temporary Gateway disconnects no longer replace an authenticated Control UI page with the login screen, preserving dashboard context while automatic reconnection continues. [#100479](https://github.com/openclaw/openclaw/pull/100479) 61 The Control UI Cron Jobs page now uses compact summaries, clear status cues... The Control UI Cron Jobs page now uses compact summaries, clear status cues, expandable details, and an overflow menu so large job lists are faster to review. [#100646](https://github.com/openclaw/openclaw/pull/100646) 62 The Control UI sidebar now keeps recent chats in place while switching, com... The Control UI sidebar now keeps recent chats in place while switching, combines search entry points, supports touch session actions, and reduces unnecessary chrome. [#100648](https://github.com/openclaw/openclaw/pull/100648) 63 Images received through Telegram, iMessage, and other channels now reappear... Images received through Telegram, iMessage, and other channels now reappear inline when users revisit Control UI chat history after a reload. [#100725](https://github.com/openclaw/openclaw/pull/100725) Thanks @sweetcornna, @vergissberlin. 64 The Control UI goal pill now supports pause, resume, clear, inspection, and... The Control UI goal pill now supports pause, resume, clear, inspection, and edit preparation with live timing and token details, while command and TUI users can reword a goal without resetting its budget. [#100736](https://github.com/openclaw/openclaw/pull/100736) 65 The Control UI keeps Overview, Workboard, Agents, and More visible while al... The Control UI keeps Overview, Workboard, Agents, and More visible while allowing the session list to use available height and scroll independently. [#100742](https://github.com/openclaw/openclaw/pull/100742) 66 Assistant documents downloaded from the Control UI now keep recognizable or... Assistant documents downloaded from the Control UI now keep recognizable original filenames instead of exposing UUID-suffixed staging names. [#100743](https://github.com/openclaw/openclaw/pull/100743) 67 Copying code from a long Control UI reply now keeps the chat at the same re... Copying code from a long Control UI reply now keeps the chat at the same reading position instead of jumping upward. [#100807](https://github.com/openclaw/openclaw/pull/100807) Thanks @jvlegod. 68 Desktop Control UI users can choose whether Enter sends or inserts a new li... Desktop Control UI users can choose whether Enter sends or inserts a new line, with Command+Enter or Ctrl+Enter available as the send shortcut and the choice retained for that Gateway. [#100810](https://github.com/openclaw/openclaw/pull/100810) Thanks @moomx, @vincentkoc. 69 Switching Control UI chats no longer unexpectedly moves the selected sessio... Switching Control UI chats no longer unexpectedly moves the selected session to the top, and users can choose stable creation order or recently updated order for the sidebar. [#100927](https://github.com/openclaw/openclaw/pull/100927) Thanks @shakkernerd, @vyctorbrzezowski. 70 Control UI Settings now use consistent `/settings/ Control UI Settings now use consistent `/settings/...` paths while old bookmarks continue to work, making reloads and links more reliable on hosted or reverse-proxied installations. [#100928](https://github.com/openclaw/openclaw/pull/100928) Thanks @vyctorbrzezowski. 71 Control UI navigation now places branding, search, and sidebar controls whe... Control UI navigation now places branding, search, and sidebar controls where desktop and mobile users expect them, with clearer active sessions, compact timestamps, and easier terminal access. [#101017](https://github.com/openclaw/openclaw/pull/101017) Thanks @shakkernerd, @vyctorbrzezowski. 72 The Control UI sidebar collapse control now sits in the sidebar it affects... The Control UI sidebar collapse control now sits in the sidebar it affects instead of looking like an unrelated topbar or terminal button. [#101038](https://github.com/openclaw/openclaw/pull/101038) 73 Control UI Talk users can choose the system default or any browser-visible... Control UI Talk users can choose the system default or any browser-visible microphone beside the Talk button and receive a clear message when a saved device is unavailable. [#101100](https://github.com/openclaw/openclaw/pull/101100) 74 Sidebar session groups can now be renamed, removed without deleting session... Sidebar session groups can now be renamed, removed without deleting sessions, created while empty, or disabled to restore one flat recent-session list. [#101117](https://github.com/openclaw/openclaw/pull/101117) 75 The Control UI now shows Workboard navigation only when Workboard is enable... The Control UI now shows Workboard navigation only when Workboard is enabled and presents a cleaner collapsed sidebar with clearer icons and status spacing. [#101123](https://github.com/openclaw/openclaw/pull/101123) 76 The Control UI now puts search, sidebar access, theme choice, and macOS bra... The Control UI now puts search, sidebar access, theme choice, and macOS branding in clearer, more predictable locations with accurate screen-reader labels. [#101497](https://github.com/openclaw/openclaw/pull/101497) 77 Temporary Gateway drops no longer push Control UI content down with a full-... Temporary Gateway drops no longer push Control UI content down with a full-width banner, so the dashboard stays in place while a compact Retry notice appears. [#101812](https://github.com/openclaw/openclaw/pull/101812) 78 Temporary Gateway disconnects now use a calmer, dashboard-native reconnect... Temporary Gateway disconnects now use a calmer, dashboard-native reconnect pill with the same Retry and accessibility behavior. [#101844](https://github.com/openclaw/openclaw/pull/101844) 79 Control UI commentary settings now use the selected language across the sup... Control UI commentary settings now use the selected language across the supported translations in this release. Sources: [34badde](https://github.com/openclaw/openclaw/commit/34badde1d983c247cd6b16ad8f5b4e1f9891c0f1), [a9cb866](https://github.com/openclaw/openclaw/commit/a9cb866f62fe9c2f7c8f9a8c3ef1a23cae556781), [ce9166d](https://github.com/openclaw/openclaw/commit/ce9166d1cd8404db51004bbdd5edc95d229788c8), [6b67ada](https://github.com/openclaw/openclaw/commit/6b67ada87ad934f6dd8afbda95830381b3767247), [006c2f7](https://github.com/openclaw/openclaw/commit/006c2f7a2b28433753521f2f9f729ba0032b51ff), [6bdffa5](https://github.com/openclaw/openclaw/commit/6bdffa501bcf8eb1b3b13122b6e2e76149693f07), [b4476ab](https://github.com/openclaw/openclaw/commit/b4476ab72f9d74a946ef0cc963e4d26dab280e45), [5b5c623](https://github.com/openclaw/openclaw/commit/5b5c6237c236b79a894c6d2c1dd4d3bd7e5188f3), [1520d09](https://github.com/openclaw/openclaw/commit/1520d0980741c85407c4e2037dfd5fb9d8f9d1c4), [6140326](https://github.com/openclaw/openclaw/commit/614032676d16bf2dd98030e7925f14ad52f5618e), [75bd44a](https://github.com/openclaw/openclaw/commit/75bd44a94bfb096010273ae14935b9cd90ccc2d3), [c1aeaf9](https://github.com/openclaw/openclaw/commit/c1aeaf9287ec25428ed1e673d869e193e930ba6b), [49edc0a](https://github.com/openclaw/openclaw/commit/49edc0a8af2f06cca21cd6df2abd81a7d99a574c), [cb69ce7](https://github.com/openclaw/openclaw/commit/cb69ce7ba84f7252acd3b87653a0a91b7442f41d), [bb0af61](https://github.com/openclaw/openclaw/commit/bb0af61d20277cf91205e6fe561dc7cccfc8e969), [0dcfbb0](https://github.com/openclaw/openclaw/commit/0dcfbb09d807800585219a4363eb67438b006f40), [db73ece](https://github.com/openclaw/openclaw/commit/db73ece2de77053433a767bcc587348d5a77fef1), [21e6fc9](https://github.com/openclaw/openclaw/commit/21e6fc948b1977b5702ab4c981dacf4d0b3b6de6). 80 The All Sessions sidebar label now uses the selected language across the su... The All Sessions sidebar label now uses the selected language across the supported Control UI translations in this release. Sources: [b2c3dc2](https://github.com/openclaw/openclaw/commit/b2c3dc2d55f8bef05f2c8107b9c9b867653aec20), [61347a5](https://github.com/openclaw/openclaw/commit/61347a5054e6c4fce8dee39509c104521b087c7e), [a2674b6](https://github.com/openclaw/openclaw/commit/a2674b6aa4333a6c37ddb3cf7a4c7f52924c37c6), [bbabad4](https://github.com/openclaw/openclaw/commit/bbabad4031c3cab4f0e685fb0fcab183520291ab), [8909289](https://github.com/openclaw/openclaw/commit/89092893fea34eefecca09076d643a5b08f62498), [22552d6](https://github.com/openclaw/openclaw/commit/22552d6e667fa8c35ff236f85d3d3e1aa66872fb), [96e3615](https://github.com/openclaw/openclaw/commit/96e361558e7367f452a2b400fc8120c3a4f6fc72), [452351c](https://github.com/openclaw/openclaw/commit/452351cc7152abdd765445a2109726e5278b153f), [5e9a62c](https://github.com/openclaw/openclaw/commit/5e9a62cc1945850b72d7944e937fef969c9f8ed1), [0a9648b](https://github.com/openclaw/openclaw/commit/0a9648ba4766e0c5da87866d6c7299bb07ede4fa), [a803589](https://github.com/openclaw/openclaw/commit/a8035892b1f04b20f1b8e687094e6e7a18dee45c), [7c30ff8](https://github.com/openclaw/openclaw/commit/7c30ff8a60896a290de07af45d0176d2e30069e5), [e3d2878](https://github.com/openclaw/openclaw/commit/e3d2878af44f7095436d6754f73431b9add676b1), [620f2e3](https://github.com/openclaw/openclaw/commit/620f2e3112016622c59350e4aaf71a0e448d0c1a), [aa0f36c](https://github.com/openclaw/openclaw/commit/aa0f36cb0632ae283493f9d01f3d9819548b5107), [c336256](https://github.com/openclaw/openclaw/commit/c336256309956b18ff4c211ab62481c6dcd59d8b), [64dd688](https://github.com/openclaw/openclaw/commit/64dd68899e6b9f8b15c9a3c533e470ba6e36d7a5), [e2ecbc8](https://github.com/openclaw/openclaw/commit/e2ecbc85b7fe30b3096f86ba9cb189fb43807850). 81 The Control UI mobile-pairing flow now appears in the selected language acr... The Control UI mobile-pairing flow now appears in the selected language across 18 supported locales instead of mixing localized screens with English setup text. [c78b0d5](https://github.com/openclaw/openclaw/commit/c78b0d59f5a2becf7e3e0f0bb5d470f72e8526ed) 82 A failed Control UI login or Gateway connection now immediately shows the e... A failed Control UI login or Gateway connection now immediately shows the error, recovery steps, and relevant documentation link instead of hiding them in a collapsed panel. [f9e194e](https://github.com/openclaw/openclaw/commit/f9e194e4a122f0c142c23f1bc9603466add7eb03) 83 The web sidebar now reliably fills pinned and overflow navigation routes, k... The web sidebar now reliably fills pinned and overflow navigation routes, keeping destinations such as Worktrees available. [55a0012](https://github.com/openclaw/openclaw/commit/55a0012c44b52af2f22982cc85568e6e5d0df5c7) Thanks @vincentkoc. 84 Non-English Control UI users now see translated cron overflow-menu and "run... Non-English Control UI users now see translated cron overflow-menu and "run if due" labels, including the assistive label for more actions. [2585d6b](https://github.com/openclaw/openclaw/commit/2585d6b2e8202149576f643259c932406a6f8294) 85 The Control UI microphone-access warning for realtime voice input now appea... The Control UI microphone-access warning for realtime voice input now appears in the user's selected language. [68c85ef](https://github.com/openclaw/openclaw/commit/68c85effcd1e0a1c65673397a206e53bf7d672ac) 86 The Control UI sidebar now builds cleanly with session grouping and drag-to... The Control UI sidebar now builds cleanly with session grouping and drag-to-split behavior intact after stray merge-conflict text was removed. [0e3ce24](https://github.com/openclaw/openclaw/commit/0e3ce24cc8cd16faa78d87b12b114fcf24a42d87) 87 Hindi and Russian users can now receive matching Control UI translations, a... Hindi and Russian users can now receive matching Control UI translations, and documentation operators can generate those language editions through the existing locale workflow. [689baa5](https://github.com/openclaw/openclaw/commit/689baa5c1e48be2aa31564fd5c3fd21bf4dfb754) Thanks @vincentkoc. 88 During device pairing, `/ pair qr` now follows the same authorized pairing... During device pairing, `/ pair qr` now follows the same authorized pairing flow as `/pair qr` without starting an agent turn or disrupting the existing Control UI route. [#98262](https://github.com/openclaw/openclaw/pull/98262) Thanks @brokemac79. 89 Opening or reconnecting the Control UI dashboard now uses much less tempora... Opening or reconnecting the Control UI dashboard now uses much less temporary Gateway memory, reducing false `rss_growth` warnings while preserving requested usage totals. [#100054](https://github.com/openclaw/openclaw/pull/100054) Thanks @nianjiuzst. 90 Control UI Settings now shows a remote Gateway's host identity, address, op... Control UI Settings now shows a remote Gateway's host identity, address, operating system, runtime, uptime, CPU load, memory, and free disk space without requiring SSH. [#100478](https://github.com/openclaw/openclaw/pull/100478) 91 The Control UI now shows execution approvals for supported desktop nodes an... The Control UI now shows execution approvals for supported desktop nodes and rejects pending, unsupported, or policy-blocked requests before they reach the node. [#100505](https://github.com/openclaw/openclaw/pull/100505) Thanks @vincentkoc. 92 A configured `ui A configured `ui.seamColor` now changes Control UI buttons, highlights, selections, and focus rings, while invalid values fall back cleanly. [#93699](https://github.com/openclaw/openclaw/pull/93699) Thanks @dennis-lynch, @goutamadwant. 93 QR codes and other half-block text art in the Control UI now preserve spaci... QR codes and other half-block text art in the Control UI now preserve spacing, scroll when needed, and copy with enough padding to remain usable. [#93869](https://github.com/openclaw/openclaw/pull/93869) Thanks @emg110, @vincentkoc. 94 Open Control UI tabs now switch to the active build after a service-worker... Open Control UI tabs now switch to the active build after a service-worker update, reducing stale JavaScript, CSS, and protocol mismatch errors after upgrades. [#96141](https://github.com/openclaw/openclaw/pull/96141) Thanks @andrewccctechlink, @brokemac79. 95 Chat clients can now match each pending user message to its exact Gateway-c... Chat clients can now match each pending user message to its exact Gateway-confirmed message, reducing duplicate or mismatched bubbles during interleaved turns. [#96273](https://github.com/openclaw/openclaw/pull/96273) Thanks @datus1982, @wyf027. 96 Clicking a cron job's History button now gives immediate feedback and scrol... Clicking a cron job's History button now gives immediate feedback and scrolls directly to that job's updated run history. [#96281](https://github.com/openclaw/openclaw/pull/96281) Thanks @wyf027, @yzhong52. 97 Control UI token totals near one million now display as `1 Control UI token totals near one million now display as `1.0M` instead of the confusing `1000k`. [#96298](https://github.com/openclaw/openclaw/pull/96298) Thanks @ly-wang19. 98 Usage Mosaic and usage summaries now show near-million token totals as `1 Usage Mosaic and usage summaries now show near-million token totals as `1.0M` instead of `1000.0K`. [#96450](https://github.com/openclaw/openclaw/pull/96450) Thanks @ly-wang19. 99 The Voice, Model, and Sensitivity controls in Control UI Talk settings now... The Voice, Model, and Sensitivity controls in Control UI Talk settings now align consistently in one row without duplicate selected-value text disturbing the layout. [#96925](https://github.com/openclaw/openclaw/pull/96925) Thanks @evan-ym. 100 Control UI approval prompts no longer inherit failures from older requests... Control UI approval prompts no longer inherit failures from older requests or re-enable controls while the current decision is still being processed. [#98394](https://github.com/openclaw/openclaw/pull/98394) Thanks @haruaiclone-droid. 101 Control UI now stops retrying after detecting an incompatible Gateway proto... Control UI now stops retrying after detecting an incompatible Gateway protocol and shows the update or reload guidance needed to reconnect. [#98414](https://github.com/openclaw/openclaw/pull/98414) Thanks @haruaiclone-droid. 102 On phones and other short landscape screens, the Control UI composer now sc... On phones and other short landscape screens, the Control UI composer now scrolls within a bounded area so chat history and all composing controls remain accessible. [#98683](https://github.com/openclaw/openclaw/pull/98683) Related [#98615](https://github.com/openclaw/openclaw/issues/98615). Thanks @jin-li, @qingminglong. 103 The Control UI now retries after a temporary failed load during a Gateway r... The Control UI now retries after a temporary failed load during a Gateway restart or stale-asset transition instead of remaining stuck until the page is refreshed manually. [#99111](https://github.com/openclaw/openclaw/pull/99111) Thanks @zengwen-dt. 104 Large pasted PNG screenshots can now be sent through Control UI webchat wit... Large pasted PNG screenshots can now be sent through Control UI webchat without failing during attachment processing. [#99213](https://github.com/openclaw/openclaw/pull/99213) Thanks @jincheng-xydt, @vincentkoc. 105 The Control UI mobile-pairing flow is now fully localized for Hindi and Rus... The Control UI mobile-pairing flow is now fully localized for Hindi and Russian users, from setup-code creation through pending-device management. [#100040](https://github.com/openclaw/openclaw/pull/100040) 106 The Control UI workspace rail now sits flush with the window and uses less... The Control UI workspace rail now sits flush with the window and uses less space when collapsed, removing the empty strip without overlapping chat. [#100088](https://github.com/openclaw/openclaw/pull/100088) 107 Control UI chat history now hides only exact duplicate final delivery mirro... Control UI chat history now hides only exact duplicate final delivery mirrors, leaving legitimate repeated sends, forwards, and distinct replies visible. [#100136](https://github.com/openclaw/openclaw/pull/100136) 108 Control UI chats now leave consistent space above the first message across... Control UI chats now leave consistent space above the first message across phones, standard desktops, and tall windows. [#100144](https://github.com/openclaw/openclaw/pull/100144) Thanks @steipete-oai. 109 Control UI Settings now offers a persistent Simple/Advanced switch, cleaner... Control UI Settings now offers a persistent Simple/Advanced switch, cleaner Appearance controls, and a Pending label only when a Context Profile change is actually staged. [#100147](https://github.com/openclaw/openclaw/pull/100147) 110 Control UI tool-call bubbles and error badges now share clean right-edge al... Control UI tool-call bubbles and error badges now share clean right-edge alignment, so failed activity is easier to scan on phone-sized and desktop chats. [#100163](https://github.com/openclaw/openclaw/pull/100163) Thanks @steipete-oai. 111 OpenAI users now see only the supported Standard and Fast choices in the Co... OpenAI users now see only the supported Standard and Fast choices in the Control UI speed picker, with inherited Fast mode shown correctly. [#100190](https://github.com/openclaw/openclaw/pull/100190) 112 Short drafts in the Control UI composer no longer show an unnecessary scrol... Short drafts in the Control UI composer no longer show an unnecessary scrollbar gutter, while long drafts still scroll when needed. [#100252](https://github.com/openclaw/openclaw/pull/100252) 113 Clearing a session label now removes the old name promptly from other subsc... Clearing a session label now removes the old name promptly from other subscribed Control UI clients without requiring a full refresh. [#100266](https://github.com/openclaw/openclaw/pull/100266) 114 Desktop Control UI users can hover a shortened recent-session name to revea... Desktop Control UI users can hover a shortened recent-session name to reveal its hidden tail and distinguish similar conversations without opening each one. [#100276](https://github.com/openclaw/openclaw/pull/100276) 115 The expanded Control UI sidebar no longer repeats provider quota informatio... The expanded Control UI sidebar no longer repeats provider quota information already available in chat, Overview, and Usage views. [#100356](https://github.com/openclaw/openclaw/pull/100356) Thanks @shakkernerd. 116 Completed Control UI messages now use the timestamp to open token, cache, c... Completed Control UI messages now use the timestamp to open token, cache, context, cost, and model details instead of adding a separate Context control to every footer. [#100391](https://github.com/openclaw/openclaw/pull/100391) Thanks @steipete-oai. 117 Autonomous session history now keeps an earlier failed cron or scheduled tu... Autonomous session history now keeps an earlier failed cron or scheduled turn marked as an error even after a later turn succeeds or the page reloads. [#100514](https://github.com/openclaw/openclaw/pull/100514) Thanks @qingminglong. 118 The Control UI Skills page now shows readable Agent and Search labels with... The Control UI Skills page now shows readable Agent and Search labels with aligned filters and correctly sized selection controls. [#100526](https://github.com/openclaw/openclaw/pull/100526) Thanks @evan-ym. 119 After a Control UI reply finishes, the composer now stays on Send despite d... After a Control UI reply finishes, the composer now stays on Send despite delayed completed-run state, while a real new run still switches it to Stop. [#100527](https://github.com/openclaw/openclaw/pull/100527) Thanks @tiffanychum. 120 Control UI and Skill Workshop file previews now show a single Escape shortc... Control UI and Skill Workshop file previews now show a single Escape shortcut hint while retaining Escape-to-close behavior. [#100528](https://github.com/openclaw/openclaw/pull/100528) Thanks @xianshishan. 121 Expanded Control UI tool activity no longer repeats the tool name and icon,... Expanded Control UI tool activity no longer repeats the tool name and icon, making completed and in-progress calls quicker to scan. [#100606](https://github.com/openclaw/openclaw/pull/100606) 122 Clearing a Control UI session model override now shows the selected agent's... Clearing a Control UI session model override now shows the selected agent's own default model rather than the unrelated global default. [#100719](https://github.com/openclaw/openclaw/pull/100719) Thanks @hyspacex. 123 Assistant-sent documents in WebChat now download with their original server... Assistant-sent documents in WebChat now download with their original server-provided filename, including Unicode names, instead of opening as an unnamed browser document. [#100728](https://github.com/openclaw/openclaw/pull/100728) Thanks @lptrichor. 124 The Control UI now accepts `/steer` guidance during an active run instead o... The Control UI now accepts `/steer` guidance during an active run instead of incorrectly replying `No active run`. [#100803](https://github.com/openclaw/openclaw/pull/100803) Thanks @hackerismydream. 125 New Control UI sessions now stay visible at the front of the sidebar after... New Control UI sessions now stay visible at the front of the sidebar after users switch to another chat, without requiring a page refresh. [#100981](https://github.com/openclaw/openclaw/pull/100981) Thanks @shakkernerd. 126 Worktrees management now lives under Control UI Settings instead of occupyi... Worktrees management now lives under Control UI Settings instead of occupying a top-level sidebar item, while existing deep links remain valid. [#100995](https://github.com/openclaw/openclaw/pull/100995) 127 Long `/btw` answers in the desktop Control UI now stay within the browser w... Long `/btw` answers in the desktop Control UI now stay within the browser window and scroll inside the result card, while mobile retains full-card scrolling. [#101169](https://github.com/openclaw/openclaw/pull/101169) Thanks @snoutfirst. 128 Finished chats no longer remain stuck with a busy spinner in the Control UI... Finished chats no longer remain stuck with a busy spinner in the Control UI sidebar, even when an older Gateway update arrives afterward. [#101293](https://github.com/openclaw/openclaw/pull/101293) Thanks @fuller-stack-dev. 129 Large Skill Workshop support files now scroll, switch, filter, wrap, and co... Large Skill Workshop support files now scroll, switch, filter, wrap, and copy without freezing or severely slowing the Control UI. [#101319](https://github.com/openclaw/openclaw/pull/101319) Thanks @shakkernerd, @xianshishan. 130 Users can stay signed in to multiple path- or query-routed Control UI gatew... Users can stay signed in to multiple path- or query-routed Control UI gateways on one HTTPS origin without one gateway overwriting another's device token. [#101352](https://github.com/openclaw/openclaw/pull/101352) Thanks @fuller-stack-dev. 131 Control UI users can type `/approve` to release a waiting exec prompt witho... Control UI users can type `/approve` to release a waiting exec prompt without the decision getting queued behind the blocked chat run. [#101532](https://github.com/openclaw/openclaw/pull/101532) Thanks @vincentkoc. 132 Control UI build errors now keep emoji and other supplementary characters i... Control UI build errors now keep emoji and other supplementary characters intact when command output is shortened for display. [#101591](https://github.com/openclaw/openclaw/pull/101591) Thanks @maweibin. 133 Workboard cards can now be edited, moved, archived, stopped, opened, or del... Workboard cards can now be edited, moved, archived, stopped, opened, or deleted directly from the detail drawer, while read-only viewers still see no mutation controls. [#101658](https://github.com/openclaw/openclaw/pull/101658) Thanks @momothemage, @princebansal. 134 The Control UI microphone button is now visually quieter while idle and mor... The Control UI microphone button is now visually quieter while idle and more distinct while recording, making the current voice state easier to recognize. [#101843](https://github.com/openclaw/openclaw/pull/101843) 135 Users with saved working dashboard credentials no longer see the login scre... Users with saved working dashboard credentials no longer see the login screen flash briefly while Control UI reconnects. [#101849](https://github.com/openclaw/openclaw/pull/101849) 136 Typing anywhere in the active Control UI chat now places the first characte... Typing anywhere in the active Control UI chat now places the first character in the message composer without stealing input from the command palette. [#102210](https://github.com/openclaw/openclaw/pull/102210) Thanks @shakkernerd. 137 `openclaw doctor` and updates now refuse to replace an unreadable `openclaw `openclaw doctor` and updates now refuse to replace an unreadable `openclaw.json`, preserving existing Gateway, agent, channel, and plugin settings instead of breaking the installation. [#96469](https://github.com/openclaw/openclaw/pull/96469) Thanks @obviyus, @yetval. 138 `openclaw doctor --fix` now preserves aliases, parameters, streaming choice... `openclaw doctor --fix` now preserves aliases, parameters, streaming choices, runtime settings, and other model tuning when several retired model names merge into one current model, and reports any merge conflicts accurately. [#96544](https://github.com/openclaw/openclaw/pull/96544) Thanks @vincentkoc, @yetval. 139 Owners and admins can now restore an expired Codex or OpenAI login from a b... Owners and admins can now restore an expired Codex or OpenAI login from a browser through private Telegram, Web UI, Discord, or Slack commands without SSH access. [#98006](https://github.com/openclaw/openclaw/pull/98006) Thanks @100yenadmin, @jalehman, @obviyus. 140 The CLI now guides fresh installs through setup, opens configured installs... The CLI now guides fresh installs through setup, opens configured installs directly in the TUI, preserves existing choices on reruns, and finishes onboarding in a usable terminal chat. [#98218](https://github.com/openclaw/openclaw/pull/98218) Thanks @fuller-stack-dev. 141 Package installs can now select and retain `openclaw update --channel exten... Package installs can now select and retain `openclaw update --channel extended-stable`, inspect its availability, and fail safely if its npm metadata is incomplete. [#99811](https://github.com/openclaw/openclaw/pull/99811) Thanks @kevinslin. 142 Fresh installs can now complete conversational Crestodian setup, approve th... Fresh installs can now complete conversational Crestodian setup, approve the proposed plan once, connect channels, and continue into the normal agent while classic and scripted onboarding remain available. [#99935](https://github.com/openclaw/openclaw/pull/99935) 143 First-time onboarding now preserves earlier choices after authentication or... First-time onboarding now preserves earlier choices after authentication or pairing trouble and gives users an actionable model-configuration next step instead of opening an unusable first chat. [#100632](https://github.com/openclaw/openclaw/pull/100632) 144 Container upgrades now finish required migrations and plugin repairs before... Container upgrades now finish required migrations and plugin repairs before reporting the Gateway ready, and failed repairs stop with actionable guidance instead of leaving a false-green service. [#101881](https://github.com/openclaw/openclaw/pull/101881) Thanks @sallyom. 145 Crestodian setup now guides users who lack a usable model provider through... Crestodian setup now guides users who lack a usable model provider through masked credential entry and model selection, while deterministic setup and repair commands remain available until inference is configured. [#101887](https://github.com/openclaw/openclaw/pull/101887) Thanks @fuller-stack-dev. 146 OpenClaw now blocks unsafe runtimes before they can open SQLite-backed stat... OpenClaw now blocks unsafe runtimes before they can open SQLite-backed state, guides legacy Bun services to Node, and selects a WAL-safe Node runtime during setup and repair. [#106065](https://github.com/openclaw/openclaw/pull/106065) Thanks @vincentkoc. 147 iOS and Android chats now preserve the reader's scroll position as new mess... iOS and Android chats now preserve the reader's scroll position as new messages and tool activity arrive, with a clear way to return to the latest reply. [#98258](https://github.com/openclaw/openclaw/pull/98258) Related [#98255](https://github.com/openclaw/openclaw/issues/98255). Thanks @christopheraaronhogg. 148 iPhone and iPad chat now opens with the last known conversation and lets us... iPhone and iPad chat now opens with the last known conversation and lets users browse recent cached sessions while the Gateway is unavailable. [#100219](https://github.com/openclaw/openclaw/pull/100219) 149 iOS users can queue chat messages while disconnected, keep them through app... iOS users can queue chat messages while disconnected, keep them through app restarts, and send them in order after reconnection with clear retry and delete controls. [#100331](https://github.com/openclaw/openclaw/pull/100331) 150 Android chat now shows the last known transcript immediately and keeps rece... Android chat now shows the last known transcript immediately and keeps recent cached conversations readable during a Gateway outage, then refreshes them after reconnection. [#100227](https://github.com/openclaw/openclaw/pull/100227) 151 Android users can queue text while the Gateway is offline, keep it through... Android users can queue text while the Gateway is offline, keep it through an app restart, and send it in order after reconnection with Retry and Delete controls for failures. [#100290](https://github.com/openclaw/openclaw/pull/100290) 152 Mac chat now restores recent sessions and transcripts immediately, remains... Mac chat now restores recent sessions and transcripts immediately, remains browsable while disconnected, and queues offline sends for the correct Gateway identity. [#100275](https://github.com/openclaw/openclaw/pull/100275) 153 The native macOS chat window now provides a full session sidebar, real new-... The native macOS chat window now provides a full session sidebar, real new-session creation, slash-command completion, context and cost visibility, message copying, transcript export, and compact or clear-history actions. [#101103](https://github.com/openclaw/openclaw/pull/101103) 154 GPT-5 GPT-5.6 users can now select supported Ultra modes consistently, keep model and thinking choices aligned across OpenClaw surfaces, and receive native Codex child-agent results as tracked tasks. [#98021](https://github.com/openclaw/openclaw/pull/98021) Thanks @anyech. 155 Organizations with GPT-5 Organizations with GPT-5.6 preview access can select Sol, Terra, or Luna across supported OpenAI and Codex paths with correct reasoning controls, context metadata, and cache-write accounting. [#98333](https://github.com/openclaw/openclaw/pull/98333) Related [#98296](https://github.com/openclaw/openclaw/issues/98296). Thanks @steipete-oai. 156 Legacy-state upgrades no longer stall repeatedly, while fresh OpenAI and Ch... Legacy-state upgrades no longer stall repeatedly, while fresh OpenAI and ChatGPT/Codex setups select the intended GPT-5.6 defaults and use supported temperature and tool-call behavior. [#104656](https://github.com/openclaw/openclaw/pull/104656) Thanks @bdjben, @obviyus, @sallyom. 157 Tencent Hunyuan Hy3 now has a complete supported OpenClaw setup path throug... Tencent Hunyuan Hy3 now has a complete supported OpenClaw setup path through TokenHub or TokenPlan, including first-class authentication, model discovery, configuration validation, CLI onboarding, and compatibility for existing `hy3-preview` setups. [#99076](https://github.com/openclaw/openclaw/pull/99076) Thanks @moncac. 158 OpenClaw now supports Meta Model API setup and the Muse Spark 1 OpenClaw now supports Meta Model API setup and the Muse Spark 1.1 model, including streaming, tool calling, image input, and supported reasoning controls. [#102873](https://github.com/openclaw/openclaw/pull/102873) Thanks @davemorin, @hamidshojanazeri, @jalehman, @solvely-colin. 159 Claude Sonnet 5 is now selectable across Anthropic, Claude CLI, supported V... Claude Sonnet 5 is now selectable across Anthropic, Claude CLI, supported Vertex regions, Bedrock inference profiles, and Bedrock Mantle with its documented context, output, image, thinking, and pricing behavior. [#98254](https://github.com/openclaw/openclaw/pull/98254) Thanks @vortexopenclaw. 160 Users with Claude Mythos 5 access can select it through Anthropic, Anthropi... Users with Claude Mythos 5 access can select it through Anthropic, Anthropic Vertex, Amazon Bedrock, or Bedrock Mantle with its required context, output, thinking, caching, and replay behavior. [#101238](https://github.com/openclaw/openclaw/pull/101238) Thanks @vincentkoc. 161 Copilot sessions can now use explicitly selected custom OpenAI, Azure OpenA... Copilot sessions can now use explicitly selected custom OpenAI, Azure OpenAI, Ollama-compatible, or Anthropic providers and restart cleanly when model, endpoint, credentials, headers, or token limits change. [#96345](https://github.com/openclaw/openclaw/pull/96345) Thanks @vincentkoc. 162 OpenClaw agents can now run short tasks on chat-capable Ollama models insta... OpenClaw agents can now run short tasks on chat-capable Ollama models installed on paired macOS, Linux, or Windows nodes, with a separate control for disabling node inference. [#99234](https://github.com/openclaw/openclaw/pull/99234) Related [#99228](https://github.com/openclaw/openclaw/issues/99228). 163 A single `CLAWROUTER_API_KEY` can now expose only its granted models across... A single `CLAWROUTER_API_KEY` can now expose only its granted models across supported transports and show managed requests, tokens, spend, and monthly budget in normal status views. [#99658](https://github.com/openclaw/openclaw/pull/99658) Related [#99657](https://github.com/openclaw/openclaw/issues/99657). 164 Users can discover active promotional models and claim them with `openclaw... Users can discover active promotional models and claim them with `openclaw promos claim <slug>` without rerunning onboarding or unexpectedly replacing existing defaults and credentials. [#100236](https://github.com/openclaw/openclaw/pull/100236) Thanks @fuller-stack-dev. 165 Hosted LongCat-2 Hosted LongCat-2.0 can now be installed through the official LongCat plugin, configured with `LONGCAT_API_KEY` during onboarding, and selected as `longcat/LongCat-2.0` for multi-turn tool use. [#100501](https://github.com/openclaw/openclaw/pull/100501) Thanks @vincentkoc. 166 Gemini latest aliases now continue tool-calling conversations across both s... Gemini latest aliases now continue tool-calling conversations across both supported Google transports instead of stopping with a missing-thought-signature HTTP 400. [#100605](https://github.com/openclaw/openclaw/pull/100605) Thanks @chenxiaoyu209, @guarismo. 167 External tools can now receive session-scoped Gateway access without proces... External tools can now receive session-scoped Gateway access without process-wide credentials or permission to impersonate another session, forming the secure base for `openclaw attach`. [#96351](https://github.com/openclaw/openclaw/pull/96351) Thanks @anagnorisis2peripeteia, @obviyus. 168 `openclaw attach` now launches Claude Code with temporary access to the mai... `openclaw attach` now launches Claude Code with temporary access to the main or selected Gateway session, keeps credentials out of arguments, and revokes the grant when the session ends. [#96454](https://github.com/openclaw/openclaw/pull/96454) Thanks @anagnorisis2peripeteia, @obviyus. 169 GPT-5 GPT-5.6 users can now select supported Ultra modes consistently, keep model and thinking choices aligned across OpenClaw surfaces, and receive native Codex child-agent results as tracked tasks. [#98021](https://github.com/openclaw/openclaw/pull/98021) Thanks @anyech. 170 Codex app-server agents can again list allowed agents, spawn OpenClaw or co... Codex app-server agents can again list allowed agents, spawn OpenClaw or connected subagents, and yield during delegated work without resumed heartbeats hitting incompatible tool definitions. [#99561](https://github.com/openclaw/openclaw/pull/99561) Related [#99464](https://github.com/openclaw/openclaw/issues/99464). Thanks @100yenadmin, @joshavant. 171 Codex-native delegation from OpenClaw threads now creates native task recor... Codex-native delegation from OpenClaw threads now creates native task records again, while unsupported custom Codex app-server versions fail startup with a clear minimum-version error. [#101221](https://github.com/openclaw/openclaw/pull/101221) 172 Copilot sessions can now use explicitly selected custom OpenAI, Azure OpenA... Copilot sessions can now use explicitly selected custom OpenAI, Azure OpenAI, Ollama-compatible, or Anthropic providers and restart cleanly when model, endpoint, credentials, headers, or token limits change. [#96345](https://github.com/openclaw/openclaw/pull/96345) Thanks @vincentkoc. 173 Sessions can now be pinned, archived without losing transcripts, restored,... Sessions can now be pinned, archived without losing transcripts, restored, renamed from chat surfaces, and monitored for active runs as durable conversation threads. [#98510](https://github.com/openclaw/openclaw/pull/98510) Thanks @maziyang2. 174 An active `/goal` now keeps guiding later turns and survives compaction, qu... An active `/goal` now keeps guiding later turns and survives compaction, queues, and interruptions until the goal is paused, completed, blocked, or limited. [#100468](https://github.com/openclaw/openclaw/pull/100468) 175 Telegram photo albums now give the model every successfully downloaded imag... Telegram photo albums now give the model every successfully downloaded image in order instead of only one photo and unusable file references, while failed items are omitted. [#97045](https://github.com/openclaw/openclaw/pull/97045) Thanks @nianjiuzst, @obviyus. 176 Telegram's live progress view now keeps reasoning, commentary, formatting,... Telegram's live progress view now keeps reasoning, commentary, formatting, and tool activity readable and stable, then leaves a concise completion summary instead of disappearing. [#98907](https://github.com/openclaw/openclaw/pull/98907) Thanks @marvinthebored, @peetiegonzalez. 177 Telegram users should see fewer failed final replies or bot delivery sends... Telegram users should see fewer failed final replies or bot delivery sends during flaky network handshakes, without increasing duplicate-message risk for failures that may have happened after a request was sent. [#101258](https://github.com/openclaw/openclaw/pull/101258) Thanks @lzw112. 178 Telegram PDFs and other documents now provide agents with a usable local pa... Telegram PDFs and other documents now provide agents with a usable local path so normal runner tools can open the attachment. [#97647](https://github.com/openclaw/openclaw/pull/97647) Thanks @gallup007, @joshavant. 179 Telegram timeout logs now hide bot tokens embedded in Bot API paths, includ... Telegram timeout logs now hide bot tokens embedded in Bot API paths, including custom and proxy roots, while retaining useful endpoint context. [#99428](https://github.com/openclaw/openclaw/pull/99428) Related [#96982](https://github.com/openclaw/openclaw/issues/96982). Thanks @liuhaiyang14, @xialonglee. 180 Telegram bot tokens now remain masked even when they cross internal boundar... Telegram bot tokens now remain masked even when they cross internal boundaries inside very large logs or tool-error messages. [#103861](https://github.com/openclaw/openclaw/pull/103861) Thanks @vincentkoc. 181 When a Telegram plugin approval cannot be routed, operators now receive pra... When a Telegram plugin approval cannot be routed, operators now receive practical Web UI, terminal UI, and configuration guidance instead of a generic failure or timeout. [#95973](https://github.com/openclaw/openclaw/pull/95973) Related [#95800](https://github.com/openclaw/openclaw/issues/95800). Thanks @chrisbot2026, @monkeyleet. 182 Scheduled deliveries to numeric threads such as Telegram forum topics now r... Scheduled deliveries to numeric threads such as Telegram forum topics now return to the configured thread after Gateway restarts instead of falling back to the general chat. [#98699](https://github.com/openclaw/openclaw/pull/98699) Thanks @yetval. 183 Slack replies stay attached to the root thread's session history instead of... Slack replies stay attached to the root thread's session history instead of accumulating separate, nearly empty child sessions. [#97168](https://github.com/openclaw/openclaw/pull/97168) Related [#96535](https://github.com/openclaw/openclaw/issues/96535). Thanks @gorkem2020, @liuwqgit. 184 When Slack accepts a reply but the confirmation is lost, OpenClaw can verif... When Slack accepts a reply but the confirmation is lost, OpenClaw can verify the existing post and avoid sending a duplicate. [#97480](https://github.com/openclaw/openclaw/pull/97480) Thanks @joeyfrasier. 185 Slack and similar channel turns with context-injecting plugins now send eac... Slack and similar channel turns with context-injecting plugins now send each inbound system label to the model once instead of duplicating it. [#95349](https://github.com/openclaw/openclaw/pull/95349) Thanks @gorkem2020, @openperf, @vincentkoc. 186 Slack rooms that require a mention no longer wake OpenClaw for ordinary mes... Slack rooms that require a mention no longer wake OpenClaw for ordinary messages when the bot identity is missing or untrusted, and setup warnings point operators to a Bot User OAuth Token when needed. [#91584](https://github.com/openclaw/openclaw/pull/91584) Thanks @hiragram. 187 Completed partial-stream Discord replies now arrive as fresh messages that... Completed partial-stream Discord replies now arrive as fresh messages that can trigger normal unread cues after a user leaves the channel. [#99711](https://github.com/openclaw/openclaw/pull/99711) Thanks @davelutztx. 188 Discord replies, cron reports, and other outbound messages are less likely... Discord replies, cron reports, and other outbound messages are less likely to disappear during a brief Gateway reconnect, without replaying chunks or media Discord already accepted. [#100896](https://github.com/openclaw/openclaw/pull/100896) Thanks @tiffanychum. 189 Discord bots can now recover in place after repeated session-resume rejecti... Discord bots can now recover in place after repeated session-resume rejection, reducing prolonged outages, lost replies, and full Gateway restarts. [#103596](https://github.com/openclaw/openclaw/pull/103596) 190 Discord Code Mode progress no longer fills with repetitive Wait rows from b... Discord Code Mode progress no longer fills with repetitive Wait rows from background polling, while ordinary custom and plugin tools remain visible. [#100164](https://github.com/openclaw/openclaw/pull/100164) 191 Long Discord approval previews now preserve complete emoji and flags when s... Long Discord approval previews now preserve complete emoji and flags when shortened, avoiding broken replacement characters. [#99539](https://github.com/openclaw/openclaw/pull/99539) Thanks @zhangguiping-xydt. 192 Discord read allowlists now block guild metadata, channel details, and thre... Discord read allowlists now block guild metadata, channel details, and thread listings before any provider request when those resources are outside the configured scope. [#98966](https://github.com/openclaw/openclaw/pull/98966) Thanks @pgondhi987. 193 Discord users can complete approved Codex Computer Use actions such as `get... Discord users can complete approved Codex Computer Use actions such as `get_app_state` and receive the native tool result instead of getting a false timeout while the tool is still running. [#96818](https://github.com/openclaw/openclaw/pull/96818) Thanks @pollybot13, @zhangguiping-xydt. 194 Photos bridged from a remote iMessage Mac to a separate Gateway host now ar... Photos bridged from a remote iMessage Mac to a separate Gateway host now arrive in Codex conversations through a readable local path rather than a Mac-only filename. [#91803](https://github.com/openclaw/openclaw/pull/91803) Thanks @turbotheturtle. 195 AppleScript-only and bot-user or SSH iMessage setups now deliver replies ev... AppleScript-only and bot-user or SSH iMessage setups now deliver replies even when threading is unavailable, and database changes no longer leave inbound messages hidden behind stale recovery state. [#100446](https://github.com/openclaw/openclaw/pull/100446) Thanks @omarshahine. 196 Direct iMessage chats using the `imsg` private API bridge now show typing a... Direct iMessage chats using the `imsg` private API bridge now show typing as soon as a slow turn is accepted, without waiting for a read receipt. [#95621](https://github.com/openclaw/openclaw/pull/95621) Thanks @omarshahine. 197 iMessage replies no longer lose ordinary sentence text that happens to end... iMessage replies no longer lose ordinary sentence text that happens to end with `user:`, `system:`, or `assistant:`. [#96392](https://github.com/openclaw/openclaw/pull/96392) Thanks @ly-wang19. 198 Hidden MiniMax reasoning no longer appears as a new iMessage or feeds back... Hidden MiniMax reasoning no longer appears as a new iMessage or feeds back into the conversation as an echo-triggering inbound message. [#93820](https://github.com/openclaw/openclaw/pull/93820) Thanks @alix-007. 199 Renaming iMessage groups, changing icons or membership, and leaving groups... Renaming iMessage groups, changing icons or membership, and leaving groups now require verified owner or administrator authority. [#97961](https://github.com/openclaw/openclaw/pull/97961) Thanks @eleqtrizit. 200 Mac users setting up iMessage can install or update `imsg` from the setup f... Mac users setting up iMessage can install or update `imsg` from the setup flow, receive clearer probe guidance, and recover sessions that still reference the old skill location. [#101407](https://github.com/openclaw/openclaw/pull/101407) Thanks @omarshahine. 201 A repeatedly crashing supervised Gateway now leaves a stable control proces... A repeatedly crashing supervised Gateway now leaves a stable control process available for inspection and repair instead of trapping operators in a restart loop. [a18708c](https://github.com/openclaw/openclaw/commit/a18708c5c12d93f14eb753b543a6747e8baa8c47) Thanks @obviyus. 202 A cron job can now watch a build, deploy, script, or other command and resu... A cron job can now watch a build, deploy, script, or other command and resume the originating workflow with its exit code and recent output when it finishes. [#92037](https://github.com/openclaw/openclaw/pull/92037) Thanks @anagnorisis2peripeteia. 203 Cron declarations can now be safely reapplied without duplicate jobs or los... Cron declarations can now be safely reapplied without duplicate jobs or lost history, while ownership, next run, latest result, delivery, and failure notifications are easier to inspect. [#100480](https://github.com/openclaw/openclaw/pull/100480) 204 Cron jobs can now watch an outside condition and run their real payload onl... Cron jobs can now watch an outside condition and run their real payload only when that state changes, avoiding full agent wakeups on unchanged polls. [#101195](https://github.com/openclaw/openclaw/pull/101195) 205 Windows and WSL2 users now get IPv4 and IPv6 checks plus the matching portp... Windows and WSL2 users now get IPv4 and IPv6 checks plus the matching portproxy guidance needed to restore Chrome browser control without broadening CDP exposure. [#100590](https://github.com/openclaw/openclaw/pull/100590) Thanks @owlock, @zengwen-dt. 206 The bundled Chrome extension now lets users control selected signed-in tabs... The bundled Chrome extension now lets users control selected signed-in tabs from a phone or another channel without someone approving remote debugging at the desktop, and removing a tab revokes access. [#100619](https://github.com/openclaw/openclaw/pull/100619) 207 Remote Gateway users can pair the bundled Chrome extension from another bro... Remote Gateway users can pair the bundled Chrome extension from another browser machine with `openclaw browser extension pair --gateway-url wss://...`, without installing OpenClaw or Node.js there or opening an inbound port. [#101127](https://github.com/openclaw/openclaw/pull/101127) 208 Agents can now save a browser download to a chosen guarded path or wait for... Agents can now save a browser download to a chosen guarded path or wait for a delayed export, receiving the final URL, filename, and local path. [#101369](https://github.com/openclaw/openclaw/pull/101369) Thanks @grd-chang. 209 Authenticated admins can open an interactive terminal in an agent workspace... Authenticated admins can open an interactive terminal in an agent workspace from Gateway-backed controls, while fully sandboxed agents remain blocked and the feature can be disabled with `gateway.terminal.enabled`. [f083f35](https://github.com/openclaw/openclaw/commit/f083f35ddb467fa5ed7077244525913673bc7aa0) 210 Control UI admins can now keep chat, session controls, and live shells toge... Control UI admins can now keep chat, session controls, and live shells together by opening multiple dockable, resizable terminal tabs inside the browser workspace. [ec72de4](https://github.com/openclaw/openclaw/commit/ec72de41faa71b71d0e479eaa31d791e3b6afe58) 211 Opt-in Control UI terminal sessions can now survive page reloads, sleep, an... Opt-in Control UI terminal sessions can now survive page reloads, sleep, and brief network drops, letting operators reattach and replay recent output instead of losing running commands. [#100089](https://github.com/openclaw/openclaw/pull/100089) 212 Opening a new Control UI terminal after closing the final tab now starts wi... Opening a new Control UI terminal after closing the final tab now starts with a blank fresh shell instead of restoring the closed terminal output. [#100665](https://github.com/openclaw/openclaw/pull/100665) 213 Control UI terminal tabs now close cleanly while opening, follow theme chan... Control UI terminal tabs now close cleanly while opening, follow theme changes, and reopen at a usable size instead of leaving hidden sessions, stale colors, or unreachable controls. [2399ce7](https://github.com/openclaw/openclaw/commit/2399ce7c854d278276e65c9ed75f273a3c972e39) 214 An already-open Control UI page now notices when terminal support is enable... An already-open Control UI page now notices when terminal support is enabled and makes the terminal available without requiring a manual refresh. [3f976f9](https://github.com/openclaw/openclaw/commit/3f976f9f8624ded5af6fc48abf43c25a79661a32) 215 Opening a new Control UI terminal tab after closing another no longer inher... Opening a new Control UI terminal tab after closing another no longer inherits an old exited state. [3c03389](https://github.com/openclaw/openclaw/commit/3c033899257210cb46d3c87468bb1a613e4fc831) 216 The Control UI terminal no longer crashes when its web component is loaded... The Control UI terminal no longer crashes when its web component is loaded more than once in a shared browser registry. [f2e5159](https://github.com/openclaw/openclaw/commit/f2e5159f53248800416c15cc3aef50e505968317) 217 Control UI terminals now use installed Nerd Font fallbacks so supported pro... Control UI terminals now use installed Nerd Font fallbacks so supported prompt and listing icons render as glyphs instead of placeholder boxes. [#100128](https://github.com/openclaw/openclaw/pull/100128) 218 The Control UI integrated terminal now shows one cursor instead of overlapp... The Control UI integrated terminal now shows one cursor instead of overlapping Chrome and terminal carets, making focus and typing state clearer. [#100240](https://github.com/openclaw/openclaw/pull/100240) 219 The Control UI terminal's new-session button now aligns with the surroundin... The Control UI terminal's new-session button now aligns with the surrounding tabs for a cleaner, easier-to-scan tab bar. [#100256](https://github.com/openclaw/openclaw/pull/100256) 220 Telegram automations can now tell from platform metadata whether a sender i... Telegram automations can now tell from platform metadata whether a sender is a bot, making routing and classification less dependent on usernames or naming conventions. [#96810](https://github.com/openclaw/openclaw/pull/96810) Thanks @lin-hongkuan, @ohyeah521. 221 Telegram sends and message actions that omit an account now consistently us... Telegram sends and message actions that omit an account now consistently use the configured default bot instead of a stale identity that can misroute or reject the action. [#98789](https://github.com/openclaw/openclaw/pull/98789) Thanks @yetval. 222 Telegram destinations genuinely named `current`, `self`, `this`, or `me` ca... Telegram destinations genuinely named `current`, `self`, `this`, or `me` can now be reached through configured entries, while accidental bare session words fail closed. [#94107](https://github.com/openclaw/openclaw/pull/94107) Thanks @obviyus, @silver-state, @zhangguiping-xydt. 223 Telegram sends to an `username` now use the account's configured proxy or c... Telegram sends to an `username` now use the account's configured proxy or custom Bot API endpoint for both target resolution and message delivery. [#100868](https://github.com/openclaw/openclaw/pull/100868) Thanks @machine3at. 224 Telegram webhook startup now releases its listener, bot, and network resour... Telegram webhook startup now releases its listener, bot, and network resources after a fatal registration error such as invalid or revoked credentials. [#100863](https://github.com/openclaw/openclaw/pull/100863) Thanks @machine3at. 225 Telegram photo albums now give the model every successfully downloaded imag... Telegram photo albums now give the model every successfully downloaded image in order instead of only one photo and unusable file references, while failed items are omitted. [#97045](https://github.com/openclaw/openclaw/pull/97045) Thanks @nianjiuzst, @obviyus. 226 Telegram replies now omit internal tool-execution failure lines and deliver... Telegram replies now omit internal tool-execution failure lines and deliver only the intended assistant answer. [#95774](https://github.com/openclaw/openclaw/pull/95774) Thanks @mushuiyu886. 227 Telegram replies retain literal wording such as `&lt Telegram replies retain literal wording such as `<think>` when it is part of the answer, while genuinely marked reasoning remains hidden. [#97286](https://github.com/openclaw/openclaw/pull/97286) Thanks @drickon, @obviyus. 228 Telegram heartbeat fallbacks now hide the `notify=false` control marker and... Telegram heartbeat fallbacks now hide the `notify=false` control marker and deliver silently as requested, including suppressing marker-only replies. [#100735](https://github.com/openclaw/openclaw/pull/100735) Thanks @hackerismydream, @vincentkoc. 229 Telegram stickers and other plugin message actions now stay in the active f... Telegram stickers and other plugin message actions now stay in the active forum topic or thread when sent to the matching conversation, including through Gateway dispatch. [#80293](https://github.com/openclaw/openclaw/pull/80293) Thanks @artdaal. 230 Telegram messages can now be sent proactively through the `message` tool or... Telegram messages can now be sent proactively through the `message` tool or `openclaw message send` instead of failing as an unsupported channel. [#92107](https://github.com/openclaw/openclaw/pull/92107) Thanks @bladin, @obviyus. 231 `sessions_send` now rejects Telegram topic child sessions before dispatch a... `sessions_send` now rejects Telegram topic child sessions before dispatch and directs callers to the parent group, reducing misrouted agent work. [#99845](https://github.com/openclaw/openclaw/pull/99845) Thanks @nianjiuzst, @qingminglong. 232 Polls now follow the selected direct or hybrid channel instead of being mis... Polls now follow the selected direct or hybrid channel instead of being misrouted through the Gateway, with clear errors for unsupported duration or anonymity options. [#99950](https://github.com/openclaw/openclaw/pull/99950) Thanks @nianjiuzst. 233 Established Telegram direct-message sessions now avoid resending recent mes... Established Telegram direct-message sessions now avoid resending recent messages already stored in the transcript, reducing token use and repetitive or confused replies. [#89855](https://github.com/openclaw/openclaw/pull/89855) Thanks @sweetcornna. 234 Telegram direct-message follow-ups now include one copy of the previous ass... Telegram direct-message follow-ups now include one copy of the previous assistant reply in recent context instead of duplicating it and wasting tokens. [#98769](https://github.com/openclaw/openclaw/pull/98769) Related [#98767](https://github.com/openclaw/openclaw/issues/98767). Thanks @rabsef-bicrym. 235 Telegram bots in ambient group mode now see recent room context before deci... Telegram bots in ambient group mode now see recent room context before deciding whether to speak, reducing replies to isolated fragments that were not directed at the bot. [#99143](https://github.com/openclaw/openclaw/pull/99143) Related [#99142](https://github.com/openclaw/openclaw/issues/99142). Thanks @obviyus. 236 Telegram group agents now receive one chronological copy of recent messages... Telegram group agents now receive one chronological copy of recent messages instead of duplicated history and repeated delivery details consuming context. [#99256](https://github.com/openclaw/openclaw/pull/99256) Related [#99218](https://github.com/openclaw/openclaw/issues/99218). Thanks @obviyus. 237 Telegram ambient group conversations can now retain unmentioned room contex... Telegram ambient group conversations can now retain unmentioned room context across later turns, restarts, and compaction without repeatedly replaying the same window. [#99306](https://github.com/openclaw/openclaw/pull/99306) Related [#99257](https://github.com/openclaw/openclaw/issues/99257). Thanks @obviyus. 238 Telegram ambient group sessions now restore the relevant older chat context... Telegram ambient group sessions now restore the relevant older chat context after a reset instead of silently treating archived messages as already visible. [#99385](https://github.com/openclaw/openclaw/pull/99385) Related [#99373](https://github.com/openclaw/openclaw/issues/99373). Thanks @obviyus. 239 Telegram group agents now post visible replies when directly mentioned or r... Telegram group agents now post visible replies when directly mentioned or replied to, while continuing to ignore unaddressed background chatter. [#99866](https://github.com/openclaw/openclaw/pull/99866) Related [#99854](https://github.com/openclaw/openclaw/issues/99854). Thanks @obviyus. 240 Telegram direct-message follow-ups now include one accurate copy of each ea... Telegram direct-message follow-ups now include one accurate copy of each earlier assistant reply instead of duplicating a hidden-instruction version. [#100573](https://github.com/openclaw/openclaw/pull/100573) Thanks @momothemage, @mooresoftware. 241 Telegram's live progress view now keeps reasoning, commentary, formatting,... Telegram's live progress view now keeps reasoning, commentary, formatting, and tool activity readable and stable, then leaves a concise completion summary instead of disappearing. [#98907](https://github.com/openclaw/openclaw/pull/98907) Thanks @marvinthebored, @peetiegonzalez. 242 Telegram rich replies and progress messages containing OAuth email addresse... Telegram rich replies and progress messages containing OAuth email addresses now arrive instead of being rejected by Telegram validation. [#95900](https://github.com/openclaw/openclaw/pull/95900) Thanks @obviyus. 243 Telegram progress updates now truncate safely around emoji and other multi-... Telegram progress updates now truncate safely around emoji and other multi-unit characters, preventing broken glyphs and rejected Bot API payloads. [#96456](https://github.com/openclaw/openclaw/pull/96456) Thanks @he-yufeng. 244 Telegram streaming draft previews no longer break or show garbled text when... Telegram streaming draft previews no longer break or show garbled text when an emoji falls at the size boundary, so long previews can keep updating normally. [#96504](https://github.com/openclaw/openclaw/pull/96504) Thanks @mushuiyu886, @obviyus. 245 Telegram replies now keep typing visible through more temporary API failure... Telegram replies now keep typing visible through more temporary API failures and fall back to plain text when valid rich content cannot be delivered. [#99745](https://github.com/openclaw/openclaw/pull/99745) Thanks @obviyus, @veda-openclaw. 246 Telegram typing indicators now retry after transient network failures, rest... Telegram typing indicators now retry after transient network failures, restoring status feedback without adding duplicate-message risk to normal sends. [#100762](https://github.com/openclaw/openclaw/pull/100762) Thanks @lzw112, @vincentkoc. 247 Telegram's final collapsed progress summary now includes Claude CLI thinkin... Telegram's final collapsed progress summary now includes Claude CLI thinking activity that was shown during the run instead of making that work appear to vanish. [4212de9](https://github.com/openclaw/openclaw/commit/4212de9e08d6e69357d937e399db3df63c1b66d7) Thanks @vincentkoc. 248 Telegram users with `/reasoning on` now receive the model's saved reasoning... Telegram users with `/reasoning on` now receive the model's saved reasoning messages alongside the final answer. [#97875](https://github.com/openclaw/openclaw/pull/97875) Thanks @fuller-stack-dev, @marvinthebored. 249 Telegram groups and forum topics now show a typing indicator as soon as an... Telegram groups and forum topics now show a typing indicator as soon as an addressed message is accepted, without signaling activity for ignored chatter. [#99965](https://github.com/openclaw/openclaw/pull/99965) Thanks @moeedahmed. 250 Telegram configurations with legacy `capabilities []` now inherit the normal inline-button policy, restoring clickable buttons without overriding intentional opt-outs. [#96468](https://github.com/openclaw/openclaw/pull/96468) Thanks @vincentkoc, @zhangguiping-xydt. 251 Telegram users still receive a plain-text reply when rich formatting for an... Telegram users still receive a plain-text reply when rich formatting for an email, URL, mention, hashtag, command, phone number, bank card, or similar entity is rejected, instead of the bot going silent. [#96642](https://github.com/openclaw/openclaw/pull/96642) Thanks @moguangyu5-design. 252 Telegram inline buttons supplied by plugins now run their intended actions... Telegram inline buttons supplied by plugins now run their intended actions and cleanup instead of posting raw callback data into chat. [#97174](https://github.com/openclaw/openclaw/pull/97174) Thanks @goldmar. 253 Telegram rich-text replies now render math formulas more reliably instead o... Telegram rich-text replies now render math formulas more reliably instead of exposing raw LaTeX-style markers. [#97197](https://github.com/openclaw/openclaw/pull/97197) Thanks @vincentkoc, @wangwllu. 254 Telegram final replies and media sends now fall back to readable plain text... Telegram final replies and media sends now fall back to readable plain text when formatting, captions, or quotes are rejected, and routine flood waits up to 60 seconds are honored instead of dropping the message. [#98786](https://github.com/openclaw/openclaw/pull/98786) Related [#98778](https://github.com/openclaw/openclaw/issues/98778). Thanks @obviyus. 255 Telegram plugins can now turn a button tap into a normal user reply to the... Telegram plugins can now turn a button tap into a normal user reply to the agent, while failed or skipped submissions leave the button available for another attempt. [#98922](https://github.com/openclaw/openclaw/pull/98922) Thanks @goldmar. 256 Telegram tables, rankings, and literal line breaks now remain readable, wit... Telegram tables, rankings, and literal line breaks now remain readable, with explicit logs when rich content must fall back to plain text. [#99861](https://github.com/openclaw/openclaw/pull/99861) Related [#99833](https://github.com/openclaw/openclaw/issues/99833). Thanks @obviyus. 257 Telegram rich messages using `richMessages true` and Markdown table mode `block` now display bordered, striped tables with the source column alignment. [#95822](https://github.com/openclaw/openclaw/pull/95822) Thanks @obviyus, @zhangguiping-xydt. 258 Telegram fallback messages now replace invalid numeric Unicode surrogate en... Telegram fallback messages now replace invalid numeric Unicode surrogate entities safely instead of emitting malformed text, while valid numeric emoji entities still render. [#96581](https://github.com/openclaw/openclaw/pull/96581) Thanks @llagy007, @weeli-009. 259 Telegram documents received through a containerized local Bot API now arriv... Telegram documents received through a containerized local Bot API now arrive with their actual contents when its mounted data path differs between containers. [#91984](https://github.com/openclaw/openclaw/pull/91984) Thanks @ailucasdz, @dizesales. 260 Telegram documents sent near a Gateway restart now retry after recovery ins... Telegram documents sent near a Gateway restart now retry after recovery instead of disappearing silently, while permanent failures still request a resend. [#98102](https://github.com/openclaw/openclaw/pull/98102) Related [#98076](https://github.com/openclaw/openclaw/issues/98076). Thanks @davearcher18, @luoyanglang, @obviyus. 261 Telegram rich messages and text-bearing forwards without a normal caption n... Telegram rich messages and text-bearing forwards without a normal caption now reach the agent as readable conversation content instead of an unsupported-message placeholder. [#98735](https://github.com/openclaw/openclaw/pull/98735) Thanks @obviyus. 262 Telegram now tells users when an attachment cannot be downloaded, reports t... Telegram now tells users when an attachment cannot be downloaded, reports the actual size limit for oversized files, and still retries transient failures such as rate limits. [#100051](https://github.com/openclaw/openclaw/pull/100051) Thanks @batyaro777. 263 Telegram replies and forwards now preserve visible text from rich details,... Telegram replies and forwards now preserve visible text from rich details, lists, math, captions, and credits so the agent receives the context users actually saw. [#100570](https://github.com/openclaw/openclaw/pull/100570) Thanks @veda-openclaw, @wangwllu. 264 MP3 speech from Piper, Kokoro, and other OpenAI-compatible TTS endpoints no... MP3 speech from Piper, Kokoro, and other OpenAI-compatible TTS endpoints now arrives in Telegram as a native voice note rather than a filename-style audio attachment. [#100715](https://github.com/openclaw/openclaw/pull/100715) Thanks @hemantsudarshan. 265 Telegram no longer follows a successfully delivered final answer with a con... Telegram no longer follows a successfully delivered final answer with a contradictory generic error when a later dispatch step fails, while partial-only failures still receive the existing fallback. [#90152](https://github.com/openclaw/openclaw/pull/90152) Thanks @zhangguiping-xydt. 266 A temporary Telegram reply-session conflict no longer traps a DM or forum t... A temporary Telegram reply-session conflict no longer traps a DM or forum topic in constant retries that block later messages; retries are paced, conversation order is retained, and unrelated chats continue processing. [#96550](https://github.com/openclaw/openclaw/pull/96550) Thanks @cnbarrier404, @vacinc. 267 Telegram reactions and message deletions now retry brief socket or Undici n... Telegram reactions and message deletions now retry brief socket or Undici network failures, reducing unnecessary action failures without adding duplicate risk to ordinary message sends. [#96612](https://github.com/openclaw/openclaw/pull/96612) Thanks @miorbnli. 268 Telegram messages entering through isolated ingress now proceed to the agen... Telegram messages entering through isolated ingress now proceed to the agent reply instead of replaying the same message in a loop. [#96847](https://github.com/openclaw/openclaw/pull/96847) Thanks @obviyus. 269 Long-running Telegram turns can finish without being reclaimed and processe... Long-running Telegram turns can finish without being reclaimed and processed again midway, reducing stalled or duplicate delivery while giving operators a clearer unhealthy status when the backlog stops draining. [#96962](https://github.com/openclaw/openclaw/pull/96962) Thanks @joshavant. 270 Telegram bots using isolated polling can resume ordered message processing... Telegram bots using isolated polling can resume ordered message processing after a stalled drain or Gateway restart without manual database repair. [#97118](https://github.com/openclaw/openclaw/pull/97118) Thanks @romneyda, @vincentkoc. 271 Long non-streamed Telegram group replies now keep every chunk visible, incl... Long non-streamed Telegram group replies now keep every chunk visible, including the beginning, while delivery receipts cover all generated text chunks. [#97304](https://github.com/openclaw/openclaw/pull/97304) Thanks @aliseturtle-lu, @obviyus. 272 Long streamed Telegram replies now deliver their middle sections under the... Long streamed Telegram replies now deliver their middle sections under the default configuration instead of silently omitting part of the answer. [#97312](https://github.com/openclaw/openclaw/pull/97312) Thanks @brycemurray, @obviyus. 273 Telegram polling now recovers from temporary rate limits, server failures,... Telegram polling now recovers from temporary rate limits, server failures, and malformed error responses without disabling the account, while busy bots avoid cache writes that could trigger false stall restarts. [#98775](https://github.com/openclaw/openclaw/pull/98775) Related [#98772](https://github.com/openclaw/openclaw/issues/98772), [#98773](https://github.com/openclaw/openclaw/issues/98773). Thanks @obviyus. 274 A repeatedly failing Telegram update no longer blocks later messages in the... A repeatedly failing Telegram update no longer blocks later messages in the same chat or topic, and replayed updates are retried safely without duplicate commands or apology spam. [#98776](https://github.com/openclaw/openclaw/pull/98776) Related [#98774](https://github.com/openclaw/openclaw/issues/98774). Thanks @obviyus. 275 Telegram webhook messages now survive Gateway restarts and temporary proces... Telegram webhook messages now survive Gateway restarts and temporary processing failures, while accounts recover from brief startup errors and repeated restarts stop leaking network connections. [#98806](https://github.com/openclaw/openclaw/pull/98806) Related [#98777](https://github.com/openclaw/openclaw/issues/98777). Thanks @obviyus. 276 Queued Telegram updates now remain replayable until restart recovery is saf... Queued Telegram updates now remain replayable until restart recovery is safely recorded, reducing message loss during a crash at processing startup. [#104032](https://github.com/openclaw/openclaw/pull/104032) Thanks @obviyus, @vincentkoc. 277 Telegram sends now retry a safe TCP or TLS connection timeout, reducing los... Telegram sends now retry a safe TCP or TLS connection timeout, reducing lost final replies during flaky handshakes without retrying failures that may already have reached Telegram. [#101258](https://github.com/openclaw/openclaw/pull/101258) Thanks @lzw112. 278 Telegram startup logs now show local socket failures such as `EADDRNOTAVAIL... Telegram startup logs now show local socket failures such as `EADDRNOTAVAIL` instead of incorrectly steering operators toward DNS troubleshooting. [#97130](https://github.com/openclaw/openclaw/pull/97130) Thanks @zhangguiping-xydt. 279 Telegram bot probes, webhook checks, membership audits, and polling now rej... Telegram bot probes, webhook checks, membership audits, and polling now reject oversized Bot API success bodies before they can exhaust Gateway memory. [#97271](https://github.com/openclaw/openclaw/pull/97271) Thanks @hugenshen. 280 Telegram chat-ID lookup now fails safely on oversized `getChat` responses i... Telegram chat-ID lookup now fails safely on oversized `getChat` responses instead of risking excessive Gateway memory use during onboarding or routing. [#97274](https://github.com/openclaw/openclaw/pull/97274) Thanks @hugenshen. 281 Telegram onboarding now offers both the classic BotFather chat flow and the... Telegram onboarding now offers both the classic BotFather chat flow and the official web interface for creating a bot and copying its token into OpenClaw. [#100540](https://github.com/openclaw/openclaw/pull/100540) 282 After `/login codex` succeeds in Telegram, retrying the request now uses th... After `/login codex` succeeds in Telegram, retrying the request now uses the newly authenticated OpenAI profile instead of the previous account. [fca0c81](https://github.com/openclaw/openclaw/commit/fca0c81791a5040536d4907913ed975bfcde1642) Thanks @100yenadmin. 283 Telegram `/steer` and `/tell` commands can redirect an active Codex task du... Telegram `/steer` and `/tell` commands can redirect an active Codex task during streaming or tool work instead of arriving late or becoming follow-up messages. [#98126](https://github.com/openclaw/openclaw/pull/98126) Related [#81594](https://github.com/openclaw/openclaw/issues/81594). Thanks @100yenadmin, @kyzcreig. 284 Saying `wait` in a Telegram group conversation no longer cancels active Ope... Saying `wait` in a Telegram group conversation no longer cancels active OpenClaw work, while explicit stop commands still take effect immediately. [#98639](https://github.com/openclaw/openclaw/pull/98639) Thanks @ianchen08. 285 Telegram messages that cannot be steered into an active Codex turn are now... Telegram messages that cannot be steered into an active Codex turn are now retained for handling afterward instead of disappearing without a reply. [#103916](https://github.com/openclaw/openclaw/pull/103916) Thanks @jalehman. 286 When Telegram requests overlap, the newest authorized message now wins with... When Telegram requests overlap, the newest authorized message now wins without an outdated reply being sent or replaced queued work being started. [#103965](https://github.com/openclaw/openclaw/pull/103965) 287 A Telegram reply that has already started is no longer unexpectedly cancell... A Telegram reply that has already started is no longer unexpectedly cancelled when another authorized command arrives. [52a3314](https://github.com/openclaw/openclaw/commit/52a331466882ca0b6befa56c883355c758305813) Thanks @vincentkoc. 288 Signal auto-replies now quote the message that triggered them, making respo... Signal auto-replies now quote the message that triggered them, making responses easier to follow in groups and busy conversations. [#95718](https://github.com/openclaw/openclaw/pull/95718) Thanks @jesse-merhi. 289 Signal reaction shortcuts now apply only to the intended structured exec or... Signal reaction shortcuts now apply only to the intended structured exec or plugin approval, including forwarded monitor and chunked prompts, while ordinary messages that merely quote approval commands no longer gain controls; older delivered prompts may still require `/approve` once after upgrade. [#96880](https://github.com/openclaw/openclaw/pull/96880) Thanks @joshavant. 290 Signal users who enable status reactions can now see when OpenClaw accepts... Signal users who enable status reactions can now see when OpenClaw accepts a message, works, uses tools, compacts, stalls, or finishes in direct and group chats. [#98791](https://github.com/openclaw/openclaw/pull/98791) Thanks @jesse-merhi. 291 Signal QuickStart now shows one clear `signal-cli` installation failure and... Signal QuickStart now shows one clear `signal-cli` installation failure and proceeds directly to the custom-path prompt instead of repeating the missing-binary message. [#96932](https://github.com/openclaw/openclaw/pull/96932) Thanks @romneyda. 292 Signal plugin setup now handles slow, malformed, or oversized GitHub releas... Signal plugin setup now handles slow, malformed, or oversized GitHub release metadata without risking process memory exhaustion. [#97536](https://github.com/openclaw/openclaw/pull/97536) Thanks @hugenshen. 293 Signal container mode now stops oversized or runaway `signal-cli-rest-api`... Signal container mode now stops oversized or runaway `signal-cli-rest-api` responses from threatening the entire OpenClaw process. [#97539](https://github.com/openclaw/openclaw/pull/97539) Thanks @alix-007. 294 Invalid JSON from the Signal REST container now produces a clear Signal-spe... Invalid JSON from the Signal REST container now produces a clear Signal-specific failure instead of exposing a raw parser error. [#98073](https://github.com/openclaw/openclaw/pull/98073) Thanks @lsr911, @vincentkoc. 295 Signal QuickStart on macOS now installs `signal-cli` through Homebrew inste... Signal QuickStart on macOS now installs `signal-cli` through Homebrew instead of downloading an incompatible Linux package, and gives platform-specific guidance when Homebrew is unavailable. [#96909](https://github.com/openclaw/openclaw/pull/96909) Thanks @romneyda. 296 Signal container receives now reject oversized JSON frames before buffering... Signal container receives now reject oversized JSON frames before buffering them, limiting memory pressure without affecting normal messages or separately fetched attachments. [#99992](https://github.com/openclaw/openclaw/pull/99992) Thanks @sunlit-deng. 297 Signal users can assign stable names such as `signal me` or `signal:ops` to repeat contacts and groups instead of reusing raw phone numbers, UUIDs, or IDs. [#95738](https://github.com/openclaw/openclaw/pull/95738) Thanks @jesse-merhi. 298 Signal users now receive clean assistant replies without internal tool stat... Signal users now receive clean assistant replies without internal tool status, reasoning tags, or tool-call markup. [#97360](https://github.com/openclaw/openclaw/pull/97360) Thanks @masatohoshino. 299 Signal local-file attachments that are oversized or use suspicious paths no... Signal local-file attachments that are oversized or use suspicious paths now fail quickly with a clear error before consuming excessive Gateway memory. [#101391](https://github.com/openclaw/openclaw/pull/101391) Thanks @cxbasdev. 300 Slack channels can keep ambient OpenClaw participation while the opt-in `ig... Slack channels can keep ambient OpenClaw participation while the opt-in `ignoreOtherMentions` setting prevents replies to conversations aimed at another person or group and retains that conversation as context for a later bot mention. [#53467](https://github.com/openclaw/openclaw/pull/53467) Thanks @hanamizuki. 301 Slack operators can now choose `off`, `first`, `all`, or `batched` reply th... Slack operators can now choose `off`, `first`, `all`, or `batched` reply threading per channel, with automatic replies and message tools following the same effective choice. [#82253](https://github.com/openclaw/openclaw/pull/82253) 302 Slack button and select interactions now remain in the correct assistant th... Slack button and select interactions now remain in the correct assistant thread and show a working status there until the follow-up turn finishes. [#82895](https://github.com/openclaw/openclaw/pull/82895) Thanks @wukongai-cmu. 303 The first Slack reply after a daily or idle reset can reuse recent thread h... The first Slack reply after a daily or idle reset can reuse recent thread history, so the conversation does not suddenly start from scratch. [#97100](https://github.com/openclaw/openclaw/pull/97100) Thanks @bek91. 304 Slack replies stay attached to the root thread's session history instead of... Slack replies stay attached to the root thread's session history instead of accumulating separate, nearly empty child sessions. [#97168](https://github.com/openclaw/openclaw/pull/97168) Related [#96535](https://github.com/openclaw/openclaw/issues/96535). Thanks @gorkem2020, @liuwqgit. 305 Ordinary Slack thread replies no longer download and process the opening me... Ordinary Slack thread replies no longer download and process the opening message attachments again, while new or reset sessions still receive those files once. [#100516](https://github.com/openclaw/openclaw/pull/100516) 306 Session history now identifies Slack replies that were generated but intent... Session history now identifies Slack replies that were generated but intentionally superseded before delivery, so operators do not mistake them for messages the user received. [#100607](https://github.com/openclaw/openclaw/pull/100607) Thanks @bek91. 307 Slack replies in very long threads and on busy Gateways now avoid several u... Slack replies in very long threads and on busy Gateways now avoid several unnecessary waits, reducing stalls before thread and direct-message events reach the agent. [#101888](https://github.com/openclaw/openclaw/pull/101888) Thanks @obviyus. 308 Slack agents can now read thread messages whose visible content exists only... Slack agents can now read thread messages whose visible content exists only in attachments or blocks, including alerts with empty top-level text. [#97727](https://github.com/openclaw/openclaw/pull/97727) Thanks @chthtlo. 309 Slack Codex conversations now retain one final assistant reply in history i... Slack Codex conversations now retain one final assistant reply in history instead of duplicating it through both the app-server transcript and delivery fallback. [#100160](https://github.com/openclaw/openclaw/pull/100160) Thanks @steipete-oai. 310 Scheduled and heartbeat-driven Slack messages now use the configured agent... Scheduled and heartbeat-driven Slack messages now use the configured agent name and icon, with graceful fallback to the app identity when Slack rejects customization. [#84335](https://github.com/openclaw/openclaw/pull/84335) Thanks @rohang2005. 311 Longer Slack assistant-thread replies now show changing progress notes so u... Longer Slack assistant-thread replies now show changing progress notes so users can tell OpenClaw is still working. [#85507](https://github.com/openclaw/openclaw/pull/85507) Thanks @emergentash. 312 Slack presentation messages now arrive as native Block Kit cards with worki... Slack presentation messages now arrive as native Block Kit cards with working headers, controls, and receipts instead of flattened plain text. [#95463](https://github.com/openclaw/openclaw/pull/95463) Thanks @zoowh. 313 Slack rich-text block actions can now include emoji near the preview limit... Slack rich-text block actions can now include emoji near the preview limit without producing malformed interaction text or downstream encoding failures. [#96577](https://github.com/openclaw/openclaw/pull/96577) Thanks @llagy007, @weeli-009. 314 Slack buttons and menus now preserve time labels such as `9 00` and return the intended action value when selected. [#99877](https://github.com/openclaw/openclaw/pull/99877) Thanks @qingminglong, @rodja. 315 Slack message reactions now accept common emoji or shortcode names, can tar... Slack message reactions now accept common emoji or shortcode names, can target the current message without repeating its ID, and provide clearer member-lookup guidance. [#100375](https://github.com/openclaw/openclaw/pull/100375) Thanks @gorkem2020. 316 Slack now uses one static acknowledgement reaction alongside its native ass... Slack now uses one static acknowledgement reaction alongside its native assistant loading status by default, avoiding two competing progress displays for the same reply. [#100462](https://github.com/openclaw/openclaw/pull/100462) Thanks @steipete-oai. 317 Slack messages and Block Kit labels now truncate without splitting emoji in... Slack messages and Block Kit labels now truncate without splitting emoji into broken replacement characters or invalid payload text. [#96382](https://github.com/openclaw/openclaw/pull/96382) Thanks @ly-wang19. 318 Long Slack command and plugin approval previews now keep emoji intact at th... Long Slack command and plugin approval previews now keep emoji intact at the length boundary, avoiding malformed approval text or payloads. [#96576](https://github.com/openclaw/openclaw/pull/96576) Thanks @llagy007, @weeli-009. 319 Slack slash-command choice menus now shorten long labels without splitting... Slack slash-command choice menus now shorten long labels without splitting emoji at the 75-character limit. [#97923](https://github.com/openclaw/openclaw/pull/97923) Thanks @lexes7. 320 Slack replies now keep each agent's custom name and avatar through streamin... Slack replies now keep each agent's custom name and avatar through streaming or fallback delivery instead of reverting to the app identity. [#100084](https://github.com/openclaw/openclaw/pull/100084) Thanks @moerai. 321 Slack operators running multiple Gateways through one Socket Mode app now r... Slack operators running multiple Gateways through one Socket Mode app now receive a startup warning explaining why events may reach another connection and how to choose a safer deployment setup. [#79938](https://github.com/openclaw/openclaw/pull/79938) Thanks @jeffvsutherland. 322 Slack replies no longer expose internal tool-failure banners, reasoning sca... Slack replies no longer expose internal tool-failure banners, reasoning scaffolding, or tool-call markup to users. [#97367](https://github.com/openclaw/openclaw/pull/97367) Thanks @masatohoshino. 323 When Slack accepts a reply but the confirmation is lost, OpenClaw can verif... When Slack accepts a reply but the confirmation is lost, OpenClaw can verify the existing post and avoid sending a duplicate. [#97480](https://github.com/openclaw/openclaw/pull/97480) Thanks @joeyfrasier. 324 Slack replies now retry after a temporary session-start conflict instead of... Slack replies now retry after a temporary session-start conflict instead of stopping before the expected message is delivered. [#99647](https://github.com/openclaw/openclaw/pull/99647) Thanks @steipete-oai. 325 Slack read actions can again access intentionally allowlisted channel names... Slack read actions can again access intentionally allowlisted channel names when Slack supplies an ID and `dangerouslyAllowNameMatching` is enabled. [#95313](https://github.com/openclaw/openclaw/pull/95313) Thanks @jontsai. 326 Slack message and attachment text is no longer copied into verbose or debug... Slack message and attachment text is no longer copied into verbose or debug logs during inbound processing. [#96312](https://github.com/openclaw/openclaw/pull/96312) Thanks @steipete-oai. 327 OpenClaw can use a trusted override for a compatible Slack API endpoint, wh... OpenClaw can use a trusted override for a compatible Slack API endpoint, while normal workspaces continue using Slack's public API and untrusted project .env files cannot redirect bearer-token requests. [#97154](https://github.com/openclaw/openclaw/pull/97154) Thanks @romneyda. 328 Slack agents can now identify admitted bot-authored messages through `is_bo... Slack agents can now identify admitted bot-authored messages through `is_bot: true`, making it easier to prevent unwanted bot-to-bot replies. [#97822](https://github.com/openclaw/openclaw/pull/97822) Thanks @masatohoshino, @vincentkoc. 329 Slack Socket Mode relay diagnostics now distinguish malformed WebSocket fra... Slack Socket Mode relay diagnostics now distinguish malformed WebSocket frames from transport failures, making channel problems easier to identify. [#98587](https://github.com/openclaw/openclaw/pull/98587) Thanks @lsr911, @vincentkoc. 330 Slack startup and account checks now warn when a user OAuth credential is c... Slack startup and account checks now warn when a user OAuth credential is configured as the bot token, before identity confusion affects mentions or replies. [#99931](https://github.com/openclaw/openclaw/pull/99931) Thanks @ooiuuii. 331 Long-running Slack integrations now keep conversation metadata caching with... Long-running Slack integrations now keep conversation metadata caching within a fixed limit, preventing memory use from growing indefinitely as more channels and workspaces are encountered. [#101562](https://github.com/openclaw/openclaw/pull/101562) Thanks @vincentkoc, @zhangguiping-xydt. 332 Discord tool-only replies no longer leave overlapping typing refreshes that... Discord tool-only replies no longer leave overlapping typing refreshes that suggest another answer is still coming, while explicitly configured typing behavior remains intact. [#84288](https://github.com/openclaw/openclaw/pull/84288) Thanks @dr00-eth. 333 When a Discord voice-note reply fails, users now receive the assistant's an... When a Discord voice-note reply fails, users now receive the assistant's answer as a threaded text fallback without duplicating text that was already delivered. [#89962](https://github.com/openclaw/openclaw/pull/89962) Thanks @danhayman. 334 Discord's clear-all reactions action now returns a real error if any bot re... Discord's clear-all reactions action now returns a real error if any bot reaction remains instead of claiming complete success. [#90038](https://github.com/openclaw/openclaw/pull/90038) Thanks @masatohoshino. 335 Discord now shows enabled Anthropic reasoning, notes, and tool activity in... Discord now shows enabled Anthropic reasoning, notes, and tool activity in the right order with accurate counters and nonblank summaries. [#96106](https://github.com/openclaw/openclaw/pull/96106) Thanks @marvinthebored, @obviyus, @peetiegonzalez. 336 Discord users now receive the reply text and a clear notice when an attachm... Discord users now receive the reply text and a clear notice when an attachment is too large instead of seeing the completed response disappear. [#99577](https://github.com/openclaw/openclaw/pull/99577) Thanks @lin-hongkuan. 337 Completed partial-stream Discord replies now arrive as fresh messages that... Completed partial-stream Discord replies now arrive as fresh messages that can trigger normal unread cues after a user leaves the channel. [#99711](https://github.com/openclaw/openclaw/pull/99711) Thanks @davelutztx. 338 Discord completion and error reactions now remain visible for the configure... Discord completion and error reactions now remain visible for the configured `doneHoldMs` and `errorHoldMs` durations instead of fixed default delays. [#94736](https://github.com/openclaw/openclaw/pull/94736) Thanks @liuwqgit. 339 Discord voice replies now keep their accompanying text and extra media atta... Discord voice replies now keep their accompanying text and extra media attached to the original message even when single-use reply mode is enabled. [#95978](https://github.com/openclaw/openclaw/pull/95978) Thanks @nxmxbbd. 340 Discord attachments queued while OpenClaw is busy now remain available when... Discord attachments queued while OpenClaw is busy now remain available when the message finally runs instead of disappearing after temporary download links expire. [#96183](https://github.com/openclaw/openclaw/pull/96183) Thanks @judsonnudson, @zacharyyw. 341 Generated Discord thread names now preserve multiple Markdown emphasis span... Generated Discord thread names now preserve multiple Markdown emphasis spans without dropping or stranding formatting markers. [#96394](https://github.com/openclaw/openclaw/pull/96394) Thanks @ly-wang19. 342 Discord's recent-model buttons now shorten long names without breaking emoj... Discord's recent-model buttons now shorten long names without breaking emoji or producing invalid picker payloads. [#97600](https://github.com/openclaw/openclaw/pull/97600) Thanks @llagy007, @weeli-009. 343 Long or media-rich implicit Discord replies now quote and notify the refere... Long or media-rich implicit Discord replies now quote and notify the referenced user once in `first` or `batched` mode, while explicit and `all` replies retain every intended reference. [#100784](https://github.com/openclaw/openclaw/pull/100784) Thanks @qingminglong, @revision-co-ltd. 344 Discord replies, cron reports, and other outbound messages are less likely... Discord replies, cron reports, and other outbound messages are less likely to disappear during a brief Gateway reconnect, without replaying chunks or media Discord already accepted. [#100896](https://github.com/openclaw/openclaw/pull/100896) Thanks @tiffanychum. 345 Discord automatic thread titles now handle long messages and channel detail... Discord automatic thread titles now handle long messages and channel details containing emoji without building malformed prompt text. [#101551](https://github.com/openclaw/openclaw/pull/101551) Thanks @alix-007. 346 Discord voice playback failures now produce a readable error within the 8,1... Discord voice playback failures now produce a readable error within the 8,192-byte limit, including when ffmpeg output contains non-English text or emoji. [#104230](https://github.com/openclaw/openclaw/pull/104230) Thanks @qingminglong. 347 Multiple Discord bot accounts in one server now keep independent voice sess... Multiple Discord bot accounts in one server now keep independent voice sessions, and configured voice auto-join works even when Discord becomes ready before voice startup completes. [#87530](https://github.com/openclaw/openclaw/pull/87530) Thanks @geekhuashan. 348 Checking a Discord member who is not in voice now reports them as disconnec... Checking a Discord member who is not in voice now reports them as disconnected instead of raising a misleading command or gateway failure. [#90969](https://github.com/openclaw/openclaw/pull/90969) Thanks @asock. 349 Adding a named Discord account no longer knocks a SecretRef-backed default... Adding a named Discord account no longer knocks a SecretRef-backed default account offline or into a restart loop. [#96401](https://github.com/openclaw/openclaw/pull/96401) Thanks @849261680. 350 Discord voice conversations in `stt-tts` mode now retain earlier spoken con... Discord voice conversations in `stt-tts` mode now retain earlier spoken context across turns instead of starting over after each reply. [#97746](https://github.com/openclaw/openclaw/pull/97746) Thanks @karabaralex, @sanjays2402. 351 Discord voice playback now turns broken ffmpeg output pipes into a normal p... Discord voice playback now turns broken ffmpeg output pipes into a normal playback error instead of an uncaught Gateway-level exception. [#101088](https://github.com/openclaw/openclaw/pull/101088) Thanks @masatohoshino. 352 Discord bots can now recover in place after repeated session-resume rejecti... Discord bots can now recover in place after repeated session-resume rejection, reducing prolonged outages, lost replies, and full Gateway restarts. [#103596](https://github.com/openclaw/openclaw/pull/103596) 353 Discord voice playback now cleans up ffmpeg after output-pipe failures, red... Discord voice playback now cleans up ffmpeg after output-pipe failures, reducing both Gateway crashes and leftover transcoder processes. [#101124](https://github.com/openclaw/openclaw/pull/101124) 354 The configured primary Discord account now starts first in multi-account se... The configured primary Discord account now starts first in multi-account setups, so the main bot is not delayed behind secondary or invalid entries after a restart. [#101292](https://github.com/openclaw/openclaw/pull/101292) Thanks @turbotheturtle. 355 Discord message reads and searches now decode raw compressed responses corr... Discord message reads and searches now decode raw compressed responses correctly and return clear errors for unexpected data instead of garbled output or opaque failures. [#80788](https://github.com/openclaw/openclaw/pull/80788) Thanks @jbetala7. 356 Discord REST calls now fail with a clear error when a response is oversized... Discord REST calls now fail with a clear error when a response is oversized or stalls instead of risking unbounded memory use and process instability. [#95412](https://github.com/openclaw/openclaw/pull/95412) Thanks @alix-007. 357 Discord account health checks now fail safely on oversized identity respons... Discord account health checks now fail safely on oversized identity responses instead of risking a Gateway crash or out-of-memory failure. [#97278](https://github.com/openclaw/openclaw/pull/97278) Thanks @hugenshen. 358 Discord message, thread-history, and attachment requests now reject oversiz... Discord message, thread-history, and attachment requests now reject oversized successful responses before they can drive excessive Gateway memory growth. [#97693](https://github.com/openclaw/openclaw/pull/97693) Thanks @alix-007. 359 Discord PluralKit lookups and voice-upload setup now stop unexpectedly larg... Discord PluralKit lookups and voice-upload setup now stop unexpectedly large JSON responses before they can exhaust memory. [#97706](https://github.com/openclaw/openclaw/pull/97706) Thanks @cxbasdev. 360 Malformed successful Discord responses now fail with endpoint-specific cont... Malformed successful Discord responses now fail with endpoint-specific context instead of surfacing a raw parser error or crashing OpenClaw. [#97889](https://github.com/openclaw/openclaw/pull/97889) Thanks @lsr911. 361 An oversized Discord gateway metadata response now logs a bounded error and... An oversized Discord gateway metadata response now logs a bounded error and falls back to Discord's default gateway URL instead of risking a Gateway crash. [#98682](https://github.com/openclaw/openclaw/pull/98682) Thanks @wings1029. 362 Discord deployments in restricted networks can now route Gateway and REST t... Discord deployments in restricted networks can now route Gateway and REST traffic through an explicitly configured DNS or private HTTP(S) proxy without opening broad direct HTTPS egress. [#99126](https://github.com/openclaw/openclaw/pull/99126) Related [#98266](https://github.com/openclaw/openclaw/issues/98266). Thanks @joshavant, @sallyom, @svuppala2006. 363 Discord Gateway connections now cap incoming frames at 16 MiB, preserving t... Discord Gateway connections now cap incoming frames at 16 MiB, preserving tested large member events while rejecting extreme traffic before it pressures memory. [#99998](https://github.com/openclaw/openclaw/pull/99998) Thanks @sunlit-deng. 364 Discord agents now receive `is_bot true` for admitted bot messages while human and PluralKit sender behavior stays unchanged. [#97824](https://github.com/openclaw/openclaw/pull/97824) Thanks @masatohoshino, @vincentkoc. 365 Logged-out or replaced WhatsApp accounts now stay stopped until reconnectio... Logged-out or replaced WhatsApp accounts now stay stopped until reconnection instead of entering repeated restart loops that can consume resources and slow other accounts. [#78511](https://github.com/openclaw/openclaw/pull/78511) Thanks @openperf. 366 Eligible WhatsApp messages received during a brief reconnect now reach Open... Eligible WhatsApp messages received during a brief reconnect now reach OpenClaw for an automatic reply instead of being marked read and silently skipped. [#80642](https://github.com/openclaw/openclaw/pull/80642) Thanks @vishalj99. 367 Concurrent WhatsApp Web replies, media, reactions, and queued messages now... Concurrent WhatsApp Web replies, media, reactions, and queued messages now send one at a time per account, reducing interference and unpredictable delivery order. [#99050](https://github.com/openclaw/openclaw/pull/99050) Thanks @ooiuuii. 368 Completed WhatsApp replies now continue delivering when another message arr... Completed WhatsApp replies now continue delivering when another message arrives mid-delivery, so overlapping conversations are less likely to go unexpectedly silent. [#100205](https://github.com/openclaw/openclaw/pull/100205) 369 Invalid `OPENCLAW_WHATSAPP_WEB_SOCKET_URL` values now fail immediately with... Invalid `OPENCLAW_WHATSAPP_WEB_SOCKET_URL` values now fail immediately with a clear configuration error instead of breaking later during socket startup. [#97697](https://github.com/openclaw/openclaw/pull/97697) Thanks @romneyda. 370 WhatsApp can now restore a saved linked-device session from a valid credent... WhatsApp can now restore a saved linked-device session from a valid credential backup when the primary file is interrupted or corrupted, avoiding an unnecessary QR re-pair. [#99070](https://github.com/openclaw/openclaw/pull/99070) Thanks @leonidaslux. 371 `openclaw channels login --channel whatsapp` now replaces expired QR codes... `openclaw channels login --channel whatsapp` now replaces expired QR codes in place so interactive terminals show one current, scannable code. [#100159](https://github.com/openclaw/openclaw/pull/100159) 372 A WhatsApp message interrupted by a temporary reply-session conflict can no... A WhatsApp message interrupted by a temporary reply-session conflict can now be retried instead of being marked delivered and silently ignored on redelivery. [#101106](https://github.com/openclaw/openclaw/pull/101106) Thanks @andersonjeccel. 373 OpenClaw can use a trusted override to point the normal Baileys socket at a... OpenClaw can use a trusted override to point the normal Baileys socket at a compatible local WebSocket endpoint, while normal WhatsApp connections continue using the default path unless explicitly overridden. [#97155](https://github.com/openclaw/openclaw/pull/97155) Thanks @romneyda. 374 WhatsApp group owners can reliably use `/new`, `/stop`, `/status`, and simi... WhatsApp group owners can reliably use `/new`, `/stop`, `/status`, and similar commands even when their sender identity arrives as an internal LID. [#93379](https://github.com/openclaw/openclaw/pull/93379) Related [#77755](https://github.com/openclaw/openclaw/issues/77755). Thanks @jiveshkalra, @xialonglee. 375 Direct WhatsApp polls now honor the same outreach timelock as other sends i... Direct WhatsApp polls now honor the same outreach timelock as other sends instead of reaching recipients during a blocked window. [1d128b4](https://github.com/openclaw/openclaw/commit/1d128b4dd23297ee3553142954e4ce0542ba83e6) Thanks @vincentkoc. 376 Replies to OpenClaw-authored WhatsApp group messages now remain visible on... Replies to OpenClaw-authored WhatsApp group messages now remain visible on WhatsApp Desktop and other multi-device clients with their quote context intact. [#94879](https://github.com/openclaw/openclaw/pull/94879) Thanks @bartok9. 377 WhatsApp direct sends and automatic replies now render combined bold-and-it... WhatsApp direct sends and automatic replies now render combined bold-and-italic Markdown without stray asterisks, including when the formatted text contains emoji. [#96570](https://github.com/openclaw/openclaw/pull/96570) Thanks @llagy007, @weeli-009. 378 Long WhatsApp auto-reply and inbound-message previews now preserve emoji an... Long WhatsApp auto-reply and inbound-message previews now preserve emoji and report the truncated character count accurately, making affected diagnostics readable without changing delivery. [#96580](https://github.com/openclaw/openclaw/pull/96580) Thanks @llagy007, @weeli-009. 379 WhatsApp direct messages blocked by a reachout timelock now fail immediatel... WhatsApp direct messages blocked by a reachout timelock now fail immediately with an explicit explanation instead of appearing accepted before a later delivery error. [#101264](https://github.com/openclaw/openclaw/pull/101264) Thanks @mcaxtr. 380 With `channels With `channels.whatsapp.actions.calls`, MeowCaller, and telephony TTS configured, a WhatsApp agent can now call the requester and speak a short task-completion or urgent message. [#99635](https://github.com/openclaw/openclaw/pull/99635) 381 Configured Weixin accounts with opaque IDs containing characters such as an... Configured Weixin accounts with opaque IDs containing characters such as an at sign or `.` now start normally and preserve their account-specific routing. [#93686](https://github.com/openclaw/openclaw/pull/93686) Related [#93556](https://github.com/openclaw/openclaw/issues/93556). Thanks @htkillermax-gif, @zhangguiping-xydt. 382 Official Weixin installs and core-upgrade reconciliation now target plugin... Official Weixin installs and core-upgrade reconciliation now target plugin version 2.4.6 with its correct compatibility requirement instead of unexpectedly returning users to 2.4.3. [#96801](https://github.com/openclaw/openclaw/pull/96801) Thanks @lin-hongkuan. 383 Compatible iMessage bridge users can create, read, and vote on native Apple... Compatible iMessage bridge users can create, read, and vote on native Apple Messages polls, with upgrade guidance for unsupported `imsg` installations. [#98421](https://github.com/openclaw/openclaw/pull/98421) Thanks @lobster, @omarshahine. 384 Photos bridged from a remote iMessage Mac to a separate Gateway host now ar... Photos bridged from a remote iMessage Mac to a separate Gateway host now arrive in Codex conversations through a readable local path rather than a Mac-only filename. [#91803](https://github.com/openclaw/openclaw/pull/91803) Thanks @turbotheturtle. 385 Voting for an emoji-labeled iMessage poll option no longer sends an extra o... Voting for an emoji-labeled iMessage poll option no longer sends an extra one-word message that repeats the selected answer. [#98691](https://github.com/openclaw/openclaw/pull/98691) Thanks @omarshahine. 386 Agents now answer iMessage polls, including polls with comments, with one n... Agents now answer iMessage polls, including polls with comments, with one native vote instead of an ordinary text answer, a repeated selection, or a separate reply to the comment. [#98781](https://github.com/openclaw/openclaw/pull/98781) Thanks @omarshahine. 387 AppleScript-only and bot-user or SSH iMessage setups now deliver replies ev... AppleScript-only and bot-user or SSH iMessage setups now deliver replies even when threading is unavailable, and database changes no longer leave inbound messages hidden behind stale recovery state. [#100446](https://github.com/openclaw/openclaw/pull/100446) Thanks @omarshahine. 388 Direct iMessage chats using the `imsg` private API bridge now show typing a... Direct iMessage chats using the `imsg` private API bridge now show typing as soon as a slow turn is accepted, without waiting for a read receipt. [#95621](https://github.com/openclaw/openclaw/pull/95621) Thanks @omarshahine. 389 iMessage replies no longer lose ordinary sentence text that happens to end... iMessage replies no longer lose ordinary sentence text that happens to end with `user:`, `system:`, or `assistant:`. [#96392](https://github.com/openclaw/openclaw/pull/96392) Thanks @ly-wang19. 390 Bursts of long iMessage messages can now be combined without cutting an emo... Bursts of long iMessage messages can now be combined without cutting an emoji in half and sending broken text to the agent. [#97598](https://github.com/openclaw/openclaw/pull/97598) Thanks @weeli-009. 391 iMessage startup warnings now distinguish working sender-allowlisted group... iMessage startup warnings now distinguish working sender-allowlisted group setups from truly blocked configurations and point blocked operators to the correct fix. [#100046](https://github.com/openclaw/openclaw/pull/100046) 392 Bare 32-character iMessage group IDs from `imsg` now route scheduled and di... Bare 32-character iMessage group IDs from `imsg` now route scheduled and direct sends to the intended conversation instead of a nonexistent phone number. [#99525](https://github.com/openclaw/openclaw/pull/99525) Related [#89235](https://github.com/openclaw/openclaw/issues/89235). Thanks @matthewdelprado. 393 An iMessage helper pipe failure now ends pending work predictably and lets... An iMessage helper pipe failure now ends pending work predictably and lets the monitor recover or stop cleanly instead of crashing the Gateway or hanging requests. [#101084](https://github.com/openclaw/openclaw/pull/101084) Thanks @masatohoshino. 394 iMessage CLI send and action failures caused by broken output pipes now ret... iMessage CLI send and action failures caused by broken output pipes now return a controlled error instead of risking a Gateway worker crash. [#101401](https://github.com/openclaw/openclaw/pull/101401) Thanks @cxbasdev. 395 Default and named LINE bots configured under `channels Default and named LINE bots configured under `channels.line.accounts` now receive working webhook routes unless explicitly disabled, preventing valid inbound messages from ending in 404 responses. [#81471](https://github.com/openclaw/openclaw/pull/81471) Thanks @edenfunf, @honorlin. 396 LINE file uploads now retain recognizable audio extensions such as ` LINE file uploads now retain recognizable audio extensions such as `.m4a`, allowing valid recordings to reach transcription instead of being treated as unknown files. [#96403](https://github.com/openclaw/openclaw/pull/96403) Thanks @tancolo, @zaidazmi. 397 LINE template titles, fallback text, and alt text now keep emoji intact at... LINE template titles, fallback text, and alt text now keep emoji intact at field limits, preventing broken previews and rejected payloads. [#97428](https://github.com/openclaw/openclaw/pull/97428) Thanks @ly-wang19, @vincentkoc. 398 Long LINE button labels, quick replies, postback data, and media controls n... Long LINE button labels, quick replies, postback data, and media controls now preserve emoji at field limits instead of producing malformed text. [#97470](https://github.com/openclaw/openclaw/pull/97470) Thanks @ly-wang19, @vincentkoc. 399 LINE messages, cards, menus, locations, and code blocks now preserve emoji... LINE messages, cards, menus, locations, and code blocks now preserve emoji and other multi-unit characters at field limits instead of producing broken text or rejected payloads. [#98994](https://github.com/openclaw/openclaw/pull/98994) Thanks @lexes7, @vincentkoc. 400 LINE replies that combine text with an image, card, or location now report... LINE replies that combine text with an image, card, or location now report a failed rich-media portion accurately while delivering the text once and avoiding duplicate retries. [#100996](https://github.com/openclaw/openclaw/pull/100996) Thanks @masatohoshino. 401 Feishu replies now arrive as completed blocks when block streaming is enabl... Feishu replies now arrive as completed blocks when block streaming is enabled without streaming cards, rather than disappearing entirely. [#94250](https://github.com/openclaw/openclaw/pull/94250) Related [#55027](https://github.com/openclaw/openclaw/issues/55027). Thanks @vincentkoc, @xialonglee, @zichaolong. 402 When an interactive command button falls back to text, users now receive th... When an interactive command button falls back to text, users now receive the command they can copy, with Feishu document comments explaining the manual step. [#94385](https://github.com/openclaw/openclaw/pull/94385) Related [#69754](https://github.com/openclaw/openclaw/issues/69754). Thanks @1yihui, @xialonglee. 403 `openclaw channels login --channel feishu` now prints a compact QR code tha... `openclaw channels login --channel feishu` now prints a compact QR code that stays scannable in a normal terminal window. [#97087](https://github.com/openclaw/openclaw/pull/97087) Thanks @nianjiuzst. 404 Long Feishu streaming-card summaries now keep emoji and other non-BMP chara... Long Feishu streaming-card summaries now keep emoji and other non-BMP characters intact at the truncation boundary. [#97462](https://github.com/openclaw/openclaw/pull/97462) Thanks @ly-wang19. 405 Long Feishu comments containing emoji at the cutoff now reach the agent as... Long Feishu comments containing emoji at the cutoff now reach the agent as valid text instead of being split into malformed characters. [#97595](https://github.com/openclaw/openclaw/pull/97595) Thanks @llagy007, @weeli-009. 406 Feishu and Lark registration and streaming-card requests now reject oversiz... Feishu and Lark registration and streaming-card requests now reject oversized provider JSON before it can place unbounded pressure on memory. [#97782](https://github.com/openclaw/openclaw/pull/97782) Thanks @alix-007. 407 Supported interactive-card JSON sent through Feishu messages, thread replie... Supported interactive-card JSON sent through Feishu messages, thread replies, or text payloads now renders as a card instead of appearing as raw JSON. [#100883](https://github.com/openclaw/openclaw/pull/100883) Thanks @martingarramon, @vincentkoc, @zenorewn. 408 Stalled Feishu tenant-token or streaming-card requests now time out with a... Stalled Feishu tenant-token or streaming-card requests now time out with a clear error and release the processing lane so other Gateway messages can continue. [#102948](https://github.com/openclaw/openclaw/pull/102948) Thanks @hugenshen, @sallyom. 409 Feishu setups that could send bot pushes but silently lost user replies now... Feishu setups that could send bot pushes but silently lost user replies now pass incoming messages into OpenClaw instead of failing during monitor startup. [#94013](https://github.com/openclaw/openclaw/pull/94013) Thanks @xydt-tanshanshan. 410 Feishu one-to-one chats can receive text, media, card, and fallback replies... Feishu one-to-one chats can receive text, media, card, and fallback replies again instead of losing the response after the incoming message was processed. [#94760](https://github.com/openclaw/openclaw/pull/94760) Thanks @obviyus, @xydigit-zt. 411 Feishu card headers now show a clean agent emoji and name instead of descri... Feishu card headers now show a clean agent emoji and name instead of descriptive text from `identity.emoji`, while flags, skin-tone variants, family emoji, and other valid sequences remain intact. [#96587](https://github.com/openclaw/openclaw/pull/96587) Thanks @harjothkhara, @leedongyu1128. 412 Feishu video messages now show the duration of local and remotely loaded MP... Feishu video messages now show the duration of local and remotely loaded MP4 clips when duration detection is available. [#98235](https://github.com/openclaw/openclaw/pull/98235) Thanks @areslp. 413 Temporary Feishu streaming-card refresh failures are now contained and logg... Temporary Feishu streaming-card refresh failures are now contained and logged for diagnosis instead of surfacing as unhandled errors. [#99301](https://github.com/openclaw/openclaw/pull/99301) Thanks @lwy-2. 414 Feishu direct messages received while the bot identity is temporarily unava... Feishu direct messages received while the bot identity is temporarily unavailable no longer turn ordinary user mentions into accidental forwarding targets. [#100891](https://github.com/openclaw/openclaw/pull/100891) Thanks @zhangguiping-xydt. 415 Feishu error logs now shorten emoji-containing text at a valid character bo... Feishu error logs now shorten emoji-containing text at a valid character boundary, making card-action and WebSocket cleanup failures easier to read. [#101364](https://github.com/openclaw/openclaw/pull/101364) Thanks @zengwen-dt. 416 Feishu Drive can now list files beyond the first page of a large shared fol... Feishu Drive can now list files beyond the first page of a large shared folder by accepting its returned `next_page_token`, with invalid page sizes rejected clearly before the request. [#101572](https://github.com/openclaw/openclaw/pull/101572) Thanks @zhangguiping-xydt. 417 A Feishu connection that stops receiving messages is less likely to remain... A Feishu connection that stops receiving messages is less likely to remain falsely marked healthy because transport activity now updates channel health. [#90966](https://github.com/openclaw/openclaw/pull/90966) Thanks @acache, @richardataxai-lab, @vincentkoc. 418 Canceling a Feishu reconnect, startup, or bot-identity retry wait now ends... Canceling a Feishu reconnect, startup, or bot-identity retry wait now ends cleanly instead of risking a `ReferenceError` during cleanup. [#98137](https://github.com/openclaw/openclaw/pull/98137) Thanks @zhanglei99586. 419 Feishu bot replies no longer expose internal tool or runtime failure banner... Feishu bot replies no longer expose internal tool or runtime failure banners alongside the intended response. [#98705](https://github.com/openclaw/openclaw/pull/98705) Thanks @zengwen-dt. 420 Multi-account Feishu setups can now start the default channel with an envir... Multi-account Feishu setups can now start the default channel with an environment-backed top-level SecretRef and separate inline secrets for named accounts, without replacing the protected secret with plaintext. [#96965](https://github.com/openclaw/openclaw/pull/96965) Thanks @zw-xysk. 421 Google Chat sends and request verification now bound oversized API, certifi... Google Chat sends and request verification now bound oversized API, certificate, and error responses, allowing normal traffic through while broken or hostile bodies fail or truncate without exhausting memory. [#96772](https://github.com/openclaw/openclaw/pull/96772) Thanks @vincentkoc, @wangmiao0668000666. 422 Google Chat agents can now distinguish allowed bot messages through `is_bot... Google Chat agents can now distinguish allowed bot messages through `is_bot: true` and handle automated senders differently from people. [#97825](https://github.com/openclaw/openclaw/pull/97825) Thanks @masatohoshino, @vincentkoc. 423 Long Google Chat approval cards now preserve emoji at the text limit, preve... Long Google Chat approval cards now preserve emoji at the text limit, preventing corrupted approval text or malformed card payloads. [#96573](https://github.com/openclaw/openclaw/pull/96573) Thanks @llagy007, @weeli-009. 424 Google Meet join, creation, talk-back, transcription, and related automatio... Google Meet join, creation, talk-back, transcription, and related automation now work across browser and account languages by using English in OpenClaw-controlled Meet tabs. [#89671](https://github.com/openclaw/openclaw/pull/89671) Thanks @unayung. 425 Google Meet sessions launched through a paired macOS Chrome node now open t... Google Meet sessions launched through a paired macOS Chrome node now open the intended URL with the configured Chrome profile and audio tools, while unsupported actions and executable overrides are rejected before reaching the node. [#96908](https://github.com/openclaw/openclaw/pull/96908) Thanks @joshavant. 426 When Google Meet's local OAuth callback port is occupied, `openclaw meet au... When Google Meet's local OAuth callback port is occupied, `openclaw meet auth login` now offers the manual redirect-paste flow instead of stopping sign-in. [#96492](https://github.com/openclaw/openclaw/pull/96492) Thanks @jinduwang1001-max, @yetval. 427 Microsoft Teams replies to long parent messages now keep emoji and similar... Microsoft Teams replies to long parent messages now keep emoji and similar characters intact in the agent's parent-message context instead of inserting malformed text. [#96569](https://github.com/openclaw/openclaw/pull/96569) Thanks @llagy007, @weeli-009. 428 Microsoft Teams Adaptive Card button clicks now deliver the submitted value... Microsoft Teams Adaptive Card button clicks now deliver the submitted value to the agent instead of arriving as empty messages. [#97546](https://github.com/openclaw/openclaw/pull/97546) Thanks @jimmypuckett. 429 Microsoft Teams file delivery and chat lookup now cap large Microsoft Graph... Microsoft Teams file delivery and chat lookup now cap large Microsoft Graph responses and return a labeled error instead of risking a process crash. [#97784](https://github.com/openclaw/openclaw/pull/97784) Thanks @alix-007. 430 Microsoft Teams attachment recovery now declines oversized Graph metadata w... Microsoft Teams attachment recovery now declines oversized Graph metadata with diagnostics instead of buffering it into Gateway memory, while normal hosted media still downloads within configured limits. [#101082](https://github.com/openclaw/openclaw/pull/101082) Thanks @cxbasdev. 431 The Microsoft Teams personal-chat welcome card now displays its greeting wi... The Microsoft Teams personal-chat welcome card now displays its greeting with the intended bold, medium emphasis. [#96290](https://github.com/openclaw/openclaw/pull/96290) Thanks @ly-wang19, @vincentkoc. 432 Microsoft Teams thread history now preserves literal entity text such as `&lt Microsoft Teams thread history now preserves literal entity text such as `<APIKEY>` instead of turning it into different markup before the agent sees it. [#96342](https://github.com/openclaw/openclaw/pull/96342) Thanks @ly-wang19. 433 Microsoft Teams feedback on long responses now carries intact emoji into re... Microsoft Teams feedback on long responses now carries intact emoji into reflection processing, preventing a cutoff from corrupting prompts, logs, or encoding. [#96578](https://github.com/openclaw/openclaw/pull/96578) Thanks @llagy007, @weeli-009. 434 Oversized or malformed Microsoft Teams personal-chat attachment metadata no... Oversized or malformed Microsoft Teams personal-chat attachment metadata now fails safely with a warning instead of consuming unbounded Gateway memory. [#99125](https://github.com/openclaw/openclaw/pull/99125) Thanks @ly85206559. 435 Long Matrix thread starters keep emoji and other special characters intact... Long Matrix thread starters keep emoji and other special characters intact when OpenClaw shortens them for agent context. [#97121](https://github.com/openclaw/openclaw/pull/97121) Thanks @bartok9, @ly-wang19. 436 Matrix operators now receive a structured warning when token rotations leav... Matrix operators now receive a structured warning when token rotations leave multiple populated storage roots, with details for identifying and carefully archiving stale folders. [#97353](https://github.com/openclaw/openclaw/pull/97353) Thanks @eldron81-r2d2, @outdog-hwh. 437 Long Matrix reply quotes sent to agents now truncate emoji and other multi-... Long Matrix reply quotes sent to agents now truncate emoji and other multi-unit characters without leaving broken text. [#97471](https://github.com/openclaw/openclaw/pull/97471) Thanks @ly-wang19. 438 Matrix media downloads now enforce size and idle-timeout limits before buff... Matrix media downloads now enforce size and idle-timeout limits before buffering, including for encrypted media. [#97662](https://github.com/openclaw/openclaw/pull/97662) Thanks @alix-007. 439 Malformed successful Matrix responses now produce a controlled homeserver e... Malformed successful Matrix responses now produce a controlled homeserver error instead of an opaque unhandled JSON parsing failure. [#97973](https://github.com/openclaw/openclaw/pull/97973) Thanks @lsr911. 440 Matrix dependency setup now stops its child process predictably and reports... Matrix dependency setup now stops its child process predictably and reports the failure when a local command's output pipe breaks. [#101597](https://github.com/openclaw/openclaw/pull/101597) Thanks @alix-007. 441 Matrix replies now deliver the intended answer without leaking internal too... Matrix replies now deliver the intended answer without leaking internal tool diagnostics, reasoning tags, or assistant-only scaffolding. [#97372](https://github.com/openclaw/openclaw/pull/97372) Thanks @masatohoshino. 442 Mattermost streaming draft previews now shorten long text containing emoji... Mattermost streaming draft previews now shorten long text containing emoji without showing a malformed replacement character. [#97472](https://github.com/openclaw/openclaw/pull/97472) Thanks @ly-wang19. 443 Mattermost channel monitoring now rejects inbound events above 16 MiB and r... Mattermost channel monitoring now rejects inbound events above 16 MiB and reconnects, limiting memory exposure while continuing to accept normal large messages. [#99366](https://github.com/openclaw/openclaw/pull/99366) Thanks @sunlit-deng. 444 Mattermost API calls now stop oversized or endless successful responses bef... Mattermost API calls now stop oversized or endless successful responses before they can consume unbounded memory, while normal requests and uploads continue unchanged. [#96033](https://github.com/openclaw/openclaw/pull/96033) Thanks @alix-007. 445 Mattermost API failures with an empty JSON body now produce a clear status-... Mattermost API failures with an empty JSON body now produce a clear status-based error instead of an `Unexpected end of JSON input` crash. [#97851](https://github.com/openclaw/openclaw/pull/97851) Thanks @pick-cat. 446 Mattermost installations repaired after an upgrade now load and reconnect o... Mattermost installations repaired after an upgrade now load and reconnect on Gateway restart without requiring a manual plugin-enable setting, including restrictive allowlist setups. [#98608](https://github.com/openclaw/openclaw/pull/98608) Related [#98564](https://github.com/openclaw/openclaw/issues/98564). Thanks @jacobtomlinson, @shakkernerd. 447 Mattermost teams with more than 200 members can now discover and address va... Mattermost teams with more than 200 members can now discover and address valid peers beyond the first page of the team directory. [#98877](https://github.com/openclaw/openclaw/pull/98877) Related [#98871](https://github.com/openclaw/openclaw/issues/98871). Thanks @qingminglong. 448 Mattermost replies now show the intended assistant response without exposin... Mattermost replies now show the intended assistant response without exposing internal tool-failure diagnostics. [#98693](https://github.com/openclaw/openclaw/pull/98693) Thanks @zengwen-dt. 449 Native `/oc_*` Mattermost commands work again in packaged installs using `o... Native `/oc_*` Mattermost commands work again in packaged installs using `openclaw/mattermost`, without allowing disabled or denied plugins to bypass Gateway checks. [#98819](https://github.com/openclaw/openclaw/pull/98819) Related [#98740](https://github.com/openclaw/openclaw/issues/98740). Thanks @amknight, @keltech-services. 450 Nextcloud Talk sends and reactions now bound server response sizes, protect... Nextcloud Talk sends and reactions now bound server response sizes, protecting OpenClaw from hangs or runaway memory use while preserving normal delivery. [#96031](https://github.com/openclaw/openclaw/pull/96031) Thanks @alix-007. 451 Nextcloud Talk startup checks now show a concise bot-admin API failure with... Nextcloud Talk startup checks now show a concise bot-admin API failure without buffering an arbitrarily large error body. [#97811](https://github.com/openclaw/openclaw/pull/97811) Thanks @pick-cat. 452 Long IRC messages now keep emoji and other supplementary characters intact... Long IRC messages now keep emoji and other supplementary characters intact when split into delivery chunks, including with unusually small configured chunk limits. [#96572](https://github.com/openclaw/openclaw/pull/96572) Thanks @llagy007, @weeli-009. 453 IRC reconnects now rotate fallback nicknames after a 433 conflict instead o... IRC reconnects now rotate fallback nicknames after a 433 conflict instead of repeatedly retrying the same occupied name. [#96108](https://github.com/openclaw/openclaw/pull/96108) Thanks @wendy-chsy. 454 IRC outbound text now preserves escaped emoji and keeps invalid surrogate e... IRC outbound text now preserves escaped emoji and keeps invalid surrogate escapes literal instead of silently replacing them with corrupted characters. [#97683](https://github.com/openclaw/openclaw/pull/97683) Thanks @llagy007, @weeli-009. 455 Long IRC replies now arrive complete when they contain Chinese, Cyrillic, e... Long IRC replies now arrive complete when they contain Chinese, Cyrillic, emoji, or other non-ASCII text, while respecting `messageChunkMaxChars`. [#99138](https://github.com/openclaw/openclaw/pull/99138) Thanks @yetval. 456 IRC bots now reconnect and rejoin configured channels after a temporary ser... IRC bots now reconnect and rejoin configured channels after a temporary server or network disconnect instead of staying silent until OpenClaw is restarted. [#100799](https://github.com/openclaw/openclaw/pull/100799) Thanks @zhangguiping-xydt. 457 IRC users now receive the intended answer without internal tool-failure ban... IRC users now receive the intended answer without internal tool-failure banners or assistant-only scaffolding appearing in channel messages. [#97214](https://github.com/openclaw/openclaw/pull/97214) Thanks @masatohoshino, @studentzhou-svg, @vincentkoc. 458 IRC allowlists now reject host-less `nick!user` entries by default and guid... IRC allowlists now reject host-less `nick!user` entries by default and guide operators toward verified full host masks, reducing impersonation risk. [#98339](https://github.com/openclaw/openclaw/pull/98339) Thanks @yetval. 459 Twilio SMS account checks now handle malformed successful JSON with safe ph... Twilio SMS account checks now handle malformed successful JSON with safe phone-number listing or a clear Messaging Service error. [#97999](https://github.com/openclaw/openclaw/pull/97999) Thanks @lsr911. 460 SMS replies now hide internal tool-trace failure banners and show only the... SMS replies now hide internal tool-trace failure banners and show only the intended assistant response. [#97989](https://github.com/openclaw/openclaw/pull/97989) Thanks @zengwen-dt. 461 Long Synology Chat messages and diagnostic previews now truncate without cu... Long Synology Chat messages and diagnostic previews now truncate without cutting an emoji or other supplementary character in half, keeping downstream text valid. [#96574](https://github.com/openclaw/openclaw/pull/96574) Thanks @weeli-009. 462 Zalo setup, polling, sending, and health checks now reject abnormally large... Zalo setup, polling, sending, and health checks now reject abnormally large successful replies before they can push the Gateway into severe memory pressure. [#97277](https://github.com/openclaw/openclaw/pull/97277) Thanks @hugenshen. 463 Zalo operators can point Bot API calls at a compatible alternate endpoint w... Zalo operators can point Bot API calls at a compatible alternate endpoint without patching code, while ordinary workspace environment files cannot silently redirect traffic and millisecond message times remain accurate. [#98768](https://github.com/openclaw/openclaw/pull/98768) Thanks @romneyda. 464 Zalo gateway startup output now shows the connected bot account name when t... Zalo gateway startup output now shows the connected bot account name when the Bot Platform supplies it. [#99274](https://github.com/openclaw/openclaw/pull/99274) Thanks @romneyda. 465 Zalo operators can send proactive CLI or scripted messages to valid nonnume... Zalo operators can send proactive CLI or scripted messages to valid nonnumeric `chat_id` values without an `Unknown target` rejection. [#101548](https://github.com/openclaw/openclaw/pull/101548) Thanks @goutamadwant. 466 QQBot upgrades now migrate recoverable credential backups into SQLite witho... QQBot upgrades now migrate recoverable credential backups into SQLite without deleting source files when import fails, while disposable caches rebuild separately. [#89597](https://github.com/openclaw/openclaw/pull/89597) 467 QQBot can now deliver documents and media created by sandboxed agents from... QQBot can now deliver documents and media created by sandboxed agents from authorized workspace paths while continuing to block path escapes. [#92872](https://github.com/openclaw/openclaw/pull/92872) Thanks @sliverp, @zhangguiping-xydt. 468 QQBot speech-to-text now returns an early, labelled error when an OpenAI-co... QQBot speech-to-text now returns an early, labelled error when an OpenAI-compatible transcription endpoint sends an oversized response instead of buffering the full body in memory. [#96968](https://github.com/openclaw/openclaw/pull/96968) Thanks @mushuiyu886. 469 QQBot Markdown tables now keep escaped pipe characters inside their cells,... QQBot Markdown tables now keep escaped pipe characters inside their cells, so commands and expressions do not shift into the wrong columns. [#97429](https://github.com/openclaw/openclaw/pull/97429) Thanks @ly-wang19. 470 QQBot reminders created from long text now receive readable job names even... QQBot reminders created from long text now receive readable job names even when an emoji falls at the cutoff, rather than storing a broken character. [#96575](https://github.com/openclaw/openclaw/pull/96575) Thanks @llagy007, @weeli-009. 471 QQBot status now reports disconnections and fatal close reasons accurately,... QQBot status now reports disconnections and fatal close reasons accurately, then returns to connected only after a READY or RESUMED event. [#100127](https://github.com/openclaw/openclaw/pull/100127) Thanks @masatohoshino, @vincentkoc. 472 QQBot approval cards, message previews, logs, media paths, and retry warnin... QQBot approval cards, message previews, logs, media paths, and retry warnings now shorten emoji-containing text without broken replacement characters. [#101421](https://github.com/openclaw/openclaw/pull/101421) Thanks @wangmiao0668000666. 473 QQBot previews, errors, commands, speech-to-text messages, media diagnostic... QQBot previews, errors, commands, speech-to-text messages, media diagnostics, and logs now remain valid when emoji-containing text reaches a length limit. [#101516](https://github.com/openclaw/openclaw/pull/101516) Thanks @vincentkoc, @wangmiao0668000666. 474 QQBot now avoids accidental reminders, limits exposure of private media det... QQBot now avoids accidental reminders, limits exposure of private media details, and requires explicit confirmation before destructive channel or announcement actions. [#98032](https://github.com/openclaw/openclaw/pull/98032) Thanks @patrick-erichsen. 475 Tlon and Urbit channel failures now bound oversized or malformed error resp... Tlon and Urbit channel failures now bound oversized or malformed error responses before they can cause memory spikes, while retaining useful short messages. [#98496](https://github.com/openclaw/openclaw/pull/98496) Thanks @pandah97. 476 Tlon now stops oversized or stalled external image downloads before they co... Tlon now stops oversized or stalled external image downloads before they consume unbounded memory and can continue the message with the original URL. [#100374](https://github.com/openclaw/openclaw/pull/100374) Thanks @hugenshen. 477 Oversized Tlon scry responses now fail with a clear path-specific error ins... Oversized Tlon scry responses now fail with a clear path-specific error instead of risking a Gateway out-of-memory crash. [#100376](https://github.com/openclaw/openclaw/pull/100376) Thanks @hugenshen. 478 Tlon approval notifications now keep emoji intact at the preview limit, pre... Tlon approval notifications now keep emoji intact at the preview limit, preventing malformed message previews. [#97599](https://github.com/openclaw/openclaw/pull/97599) Thanks @llagy007, @weeli-009. 479 Tlon media uploads now stop safely when Memex returns an oversized or malfo... Tlon media uploads now stop safely when Memex returns an oversized or malformed response instead of allowing the upload attempt to consume excessive memory. [#101115](https://github.com/openclaw/openclaw/pull/101115) Thanks @cxbasdev. 480 Repeated Nostr profile publishing now clears relay timeout timers after suc... Repeated Nostr profile publishing now clears relay timeout timers after success, reducing stale resource buildup in long-running agents. [#98720](https://github.com/openclaw/openclaw/pull/98720) Related [#98463](https://github.com/openclaw/openclaw/issues/98463). Thanks @wangmiao0668000666, @zhanglei99586. 481 Google Meet and direct Voice Call sessions now keep the identity, workspace... Google Meet and direct Voice Call sessions now keep the identity, workspace, routing, and transcript attribution of the agent that started the call instead of silently switching to the default agent. [#77763](https://github.com/openclaw/openclaw/pull/77763) Thanks @quangtran88. 482 Google Live call history now keeps both sides of the conversation, while re... Google Live call history now keeps both sides of the conversation, while reconnects avoid submitting unfinished speech or combining unrelated utterances. [#84161](https://github.com/openclaw/openclaw/pull/84161) 483 OpenAI Realtime outbound calls now play one opening greeting even when the... OpenAI Realtime outbound calls now play one opening greeting even when the recipient speaks immediately after answering, while later interruptions continue to stop active speech. [#86285](https://github.com/openclaw/openclaw/pull/86285) Thanks @giodl73-repo, @jnikolaidis. 484 Callers using realtime OpenAI or Google voice calls can now interrupt assis... Callers using realtime OpenAI or Google voice calls can now interrupt assistant speech and have buffered phone audio stop promptly, while other providers keep the existing local fallback. [#90749](https://github.com/openclaw/openclaw/pull/90749) Thanks @moellenbeck. 485 Voice callers now hear a completed answer without waiting for post-turn com... Voice callers now hear a completed answer without waiting for post-turn compaction, and a successful early playback is no longer repeated. [#94015](https://github.com/openclaw/openclaw/pull/94015) Thanks @xialonglee. 486 Twilio voice-call operators can select US1, IE1, or AU1 so call control and... Twilio voice-call operators can select US1, IE1, or AU1 so call control and records use the intended Region, with US1 remaining the default. [#95832](https://github.com/openclaw/openclaw/pull/95832) Thanks @jodok. 487 Inbound Telnyx-style and Plivo voice conversations can now continue after t... Inbound Telnyx-style and Plivo voice conversations can now continue after the caller's first response instead of falling silent before OpenClaw speaks again. [#100255](https://github.com/openclaw/openclaw/pull/100255) Thanks @dvy. 488 Valid Twilio and Plivo callbacks now pass signature checks behind trusted I... Valid Twilio and Plivo callbacks now pass signature checks behind trusted IPv4 reverse proxies even when Node reports the proxy as an IPv4-mapped IPv6 address. [#100261](https://github.com/openclaw/openclaw/pull/100261) Thanks @rohitjavvadi. 489 Repeated voice-call webhook deliveries are now acknowledged without repeati... Repeated voice-call webhook deliveries are now acknowledged without repeating call or transcript side effects within the replay window. [#100263](https://github.com/openclaw/openclaw/pull/100263) Thanks @xialonglee. 490 The Twilio voice-call provider now rejects unsupported API hostnames before... The Twilio voice-call provider now rejects unsupported API hostnames before sending a request and accepts only OpenClaw's supported Twilio regional hosts. [094c0d4](https://github.com/openclaw/openclaw/commit/094c0d421faff7691d259a26af9cb135f00c6ebc) Thanks @vincentkoc. 491 An accepted voice message that arrives while OpenClaw is already replying c... An accepted voice message that arrives while OpenClaw is already replying can still receive a voice response when `tts.auto: "inbound"` is configured. [#95596](https://github.com/openclaw/openclaw/pull/95596) Thanks @mcaxtr. 492 Realtime voice prompts now remain readable when long agent names or injecte... Realtime voice prompts now remain readable when long agent names or injected context containing emoji must be shortened. [#101304](https://github.com/openclaw/openclaw/pull/101304) Thanks @alix-007. 493 Google Meet local audio bridges now shut down cleanly and log a warning whe... Google Meet local audio bridges now shut down cleanly and log a warning when a capture or playback command pipe fails, rather than crashing on an unhandled stream error. [#101596](https://github.com/openclaw/openclaw/pull/101596) Thanks @alix-007. 494 Voice Call history now stays with the correct configured agent across Gatew... Voice Call history now stays with the correct configured agent across Gateway restarts and upgrades, while ambiguous legacy state is left untouched with actionable warnings. [#89884](https://github.com/openclaw/openclaw/pull/89884) Thanks @mushuiyu886. 495 Completed Voice Call status remains available through the Gateway, tool, an... Completed Voice Call status remains available through the Gateway, tool, and CLI after restart or eviction instead of incorrectly appearing missing. [#99797](https://github.com/openclaw/openclaw/pull/99797) Thanks @darren2030. 496 ClickClack agent replies to top-level messages now stay in the active chann... ClickClack agent replies to top-level messages now stay in the active channel or direct message, while replies inside real threads remain threaded. [#100582](https://github.com/openclaw/openclaw/pull/100582) Thanks @marvinthebored, @vincentkoc. 497 ClickClack can now show opt-in, durable commentary and tool activity during... ClickClack can now show opt-in, durable commentary and tool activity during a run so users are not left with an empty channel until the final reply. [#99954](https://github.com/openclaw/openclaw/pull/99954) Thanks @obviyus, @ragesaq. 498 ClickClack now stops oversized REST success responses at the provider limit... ClickClack now stops oversized REST success responses at the provider limit, giving users and operators a predictable failure instead of continued streaming and memory growth. [#96970](https://github.com/openclaw/openclaw/pull/96970) Thanks @mushuiyu886, @vincentkoc. 499 Messages that fail before reaching Discord, Slack, Matrix, or another chann... Messages that fail before reaching Discord, Slack, Matrix, or another channel can now be replayed after connectivity returns, while uncertain post-send outcomes still avoid blind duplicates. [#101024](https://github.com/openclaw/openclaw/pull/101024) Thanks @sunnyshu0925. 500 Messages sent through OpenClaw's message tool now retain configured static... Messages sent through OpenClaw's message tool now retain configured static or identity response prefixes, keeping routed and broadcast messages consistently labeled. [#93639](https://github.com/openclaw/openclaw/pull/93639) Thanks @zengwen-dt. 501 Completions from subagents, scheduled tasks, media jobs, and agent harnesse... Completions from subagents, scheduled tasks, media jobs, and agent harnesses now return through the same configured account, destination, and thread that requested them. [#98240](https://github.com/openclaw/openclaw/pull/98240) Thanks @yetval. 502 Replies and attachments already accepted by a channel are no longer resent... Replies and attachments already accepted by a channel are no longer resent after a restart or recovery failure, while genuinely unsent items remain retryable. [#99600](https://github.com/openclaw/openclaw/pull/99600) Thanks @zhangguiping-xydt. 503 Outbound sends now report failed and partially delivered messages with usef... Outbound sends now report failed and partially delivered messages with useful per-part outcomes instead of presenting every attempt as a success. [#99928](https://github.com/openclaw/openclaw/pull/99928) Thanks @masatohoshino. 504 Non-streaming channels no longer send the same final text or media twice fo... Non-streaming channels no longer send the same final text or media twice for one message, while genuinely separate replies with different routing or thread identities still go through. [#100828](https://github.com/openclaw/openclaw/pull/100828) Thanks @vincentkoc, @zhangxiaojiujiayi. 505 Cron and outbound channel sends no longer report success without a usable p... Cron and outbound channel sends no longer report success without a usable platform receipt, making missing notifications show as not delivered or suppressed instead of falsely delivered. [#79811](https://github.com/openclaw/openclaw/pull/79811) Thanks @indulgeback. 506 Queued messages now resume at a gentler pace after an outage, restart, or r... Queued messages now resume at a gentler pace after an outage, restart, or reconnect, reducing avoidable channel and provider rate-limit bursts while keeping recovery bounded. [#101118](https://github.com/openclaw/openclaw/pull/101118) Thanks @zengwen-dt. 507 Noisy phone numbers with extra plus signs now match the intended Signal, iM... Noisy phone numbers with extra plus signs now match the intended Signal, iMessage, or WhatsApp contact, while identities with no digits are rejected safely. [#100467](https://github.com/openclaw/openclaw/pull/100467) Thanks @morluto. 508 Reply directives containing hidden unsafe characters now produce stable, di... Reply directives containing hidden unsafe characters now produce stable, display-safe reply IDs before chat routing uses them. [#96446](https://github.com/openclaw/openclaw/pull/96446) Thanks @lin-hongkuan. 509 Ambient agents now stay quieter in observed group conversations and honor o... Ambient agents now stay quieter in observed group conversations and honor operator instructions such as replying only when spoken to. [#99144](https://github.com/openclaw/openclaw/pull/99144) Thanks @obviyus. 510 Ambient group chats now remain silent unless the agent deliberately sends a... Ambient group chats now remain silent unless the agent deliberately sends a message, without stray status lines, tool summaries, compaction notices, delivery warnings, or overflow follow-ups. [#99145](https://github.com/openclaw/openclaw/pull/99145) Thanks @obviyus. 511 Always-on group agents can now receive and answer valid unmentioned message... Always-on group agents can now receive and answer valid unmentioned messages after a plugin fallback instead of silently dropping them. [#99506](https://github.com/openclaw/openclaw/pull/99506) Related [#99457](https://github.com/openclaw/openclaw/issues/99457). Thanks @lzy3538, @zqchris. 512 Agents catching up in busy group chats now receive clearer sender-by-sender... Agents catching up in busy group chats now receive clearer sender-by-sender history, making multi-person conversations easier to follow without exposing local paths or URLs. [#100366](https://github.com/openclaw/openclaw/pull/100366) Thanks @gorkem2020. 513 Telegram and Discord plugin commands that send their own response can retur... Telegram and Discord plugin commands that send their own response can return `{ suppressReply: true }`, preventing a second misleading empty-response warning or failure. [#80928](https://github.com/openclaw/openclaw/pull/80928) Related [#80756](https://github.com/openclaw/openclaw/issues/80756). Thanks @alexuser, @unclouded77. 514 With `messages.ackReactionScope "all"`, ambient room messages now receive the configured acknowledgement reaction across Discord, Slack, and Telegram. [#87433](https://github.com/openclaw/openclaw/pull/87433) Thanks @paul-phan, @scoootscooob. 515 Channel plugins can resume automatic recovery after a long healthy run, so... Channel plugins can resume automatic recovery after a long healthy run, so an occasional later disconnect is not blocked by an old restart budget while true rapid crash loops remain capped. [#101413](https://github.com/openclaw/openclaw/pull/101413) Thanks @clintoncodewell. 516 Telegram and other channels can recover automatically after certain API out... Telegram and other channels can recover automatically after certain API outages and timed-out shutdowns instead of remaining silent until a Gateway restart. [#94016](https://github.com/openclaw/openclaw/pull/94016) Thanks @sheyanmin. 517 A partially delivered queued send is no longer blindly replayed after recon... A partially delivered queued send is no longer blindly replayed after reconnect, reducing duplicate Telegram and other channel messages. [#96247](https://github.com/openclaw/openclaw/pull/96247) Thanks @obviyus, @rosenlo. 518 Discord and other progress views now hide repetitive internal Code Mode pol... Discord and other progress views now hide repetitive internal Code Mode polling while continuing to show meaningful tool activity. [#99893](https://github.com/openclaw/openclaw/pull/99893) 519 Long-running Discord and Nextcloud Talk integrations now bound their channe... Long-running Discord and Nextcloud Talk integrations now bound their channel metadata caches instead of letting each newly encountered room increase memory use forever. [#101650](https://github.com/openclaw/openclaw/pull/101650) Thanks @alix-007, @vincentkoc. 520 A transient Gmail watch-renewal failure now produces an error without crash... A transient Gmail watch-renewal failure now produces an error without crashing a long-running foreground `openclaw webhooks gmail run` process. [#100342](https://github.com/openclaw/openclaw/pull/100342) Thanks @cxbasdev, @vincentkoc. 521 Channel previews, thread names, snippets, and shortened errors across brows... Channel previews, thread names, snippets, and shortened errors across browser and messaging integrations now preserve whole emoji and other Unicode characters. [c16bb87](https://github.com/openclaw/openclaw/commit/c16bb8725a8a04d5de92855769cf87e13574384f) Thanks @vincentkoc. 522 Long Slack context labels, Zalo messages and captions, and extension comman... Long Slack context labels, Zalo messages and captions, and extension command output now truncate without breaking emoji or other non-BMP characters. [7e03242](https://github.com/openclaw/openclaw/commit/7e0324263b867d3d47138d1d2b1e9afd1dd2016f) Thanks @hugenshen, @mushuiyu886, @vincentkoc. 523 Fenced code blocks that contain example lines resembling Markdown fence mar... Fenced code blocks that contain example lines resembling Markdown fence markers are now kept together instead of being split mid-block and becoming confusing or misread. [#96745](https://github.com/openclaw/openclaw/pull/96745) Thanks @ly-wang19, @vincentkoc. 524 Long unbroken messages now keep emoji intact when split into delivery-sized... Long unbroken messages now keep emoji intact when split into delivery-sized chunks, preventing garbled replacement characters for users and channel plugins. [#96951](https://github.com/openclaw/openclaw/pull/96951) Thanks @bartok9, @ly-wang19. 525 Skill command descriptions now remain fuller where supported and stay valid... Skill command descriptions now remain fuller where supported and stay valid in Discord and Mattermost when emoji appears near a platform limit. [#99593](https://github.com/openclaw/openclaw/pull/99593) Thanks @pick-cat. 526 Long emoji-containing agent labels now produce clean native channel thread... Long emoji-containing agent labels now produce clean native channel thread names and introductions instead of broken characters. [#101527](https://github.com/openclaw/openclaw/pull/101527) Thanks @lsr911. 527 Chinese, Japanese, and Korean bold labels followed immediately by text now... Chinese, Japanese, and Korean bold labels followed immediately by text now render as bold instead of exposing literal `**` markers in Telegram and other shared-Markdown channels. [#101230](https://github.com/openclaw/openclaw/pull/101230) Thanks @nicknmorty. 528 Attachment download failures across WhatsApp, LINE, Signal, iMessage, Teams... Attachment download failures across WhatsApp, LINE, Signal, iMessage, Teams, Feishu, Mattermost, and Zalo now remain visible and actionable instead of disappearing or masquerading as successful media. [#100119](https://github.com/openclaw/openclaw/pull/100119) 529 OpenClaw now recognizes ` OpenClaw now recognizes `.m2a` recordings as audio, allowing them to move through attachment, transcription, memory, and chat display workflows without conversion. [#92167](https://github.com/openclaw/openclaw/pull/92167) Thanks @llljjjwww333. 530 Files sent through Telegram and other supported chat channels now keep clea... Files sent through Telegram and other supported chat channels now keep clean names such as `report.png` instead of exposing an internal cache identifier in the attachment filename. [#96565](https://github.com/openclaw/openclaw/pull/96565) Thanks @narahariraghava, @obviyus. 531 Cron summaries, Teams and Slack replies, and other embedded assistant respo... Cron summaries, Teams and Slack replies, and other embedded assistant responses no longer expose provider reasoning markers such as `</mm:think>`. [#101036](https://github.com/openclaw/openclaw/pull/101036) Thanks @velanir-ai-manager. 532 Punctuation around a model's `NO_REPLY` token no longer turns it into a vis... Punctuation around a model's `NO_REPLY` token no longer turns it into a visible chat message, while legitimate messages containing the token still arrive. [#98224](https://github.com/openclaw/openclaw/pull/98224) Thanks @sunnyshu0925. 533 Slack, Discord, Telegram, WhatsApp, and Microsoft Teams users now receive a... Slack, Discord, Telegram, WhatsApp, and Microsoft Teams users now receive a clear retry and re-authentication message when a model provider returns a recognized HTTP 401 error instead of seeing only a reaction or no useful reply. [#96599](https://github.com/openclaw/openclaw/pull/96599) Thanks @sjf-oa. 534 Text commands such as `/model fable` now reliably display their confirmatio... Text commands such as `/model fable` now reliably display their confirmation even in flows that suppress ordinary source replies. [#100151](https://github.com/openclaw/openclaw/pull/100151) 535 The bare `/think` command now shows available thinking levels promptly in T... The bare `/think` command now shows available thinking levels promptly in Telegram, Slack, and Discord without waiting on slow model discovery. [#101926](https://github.com/openclaw/openclaw/pull/101926) Thanks @vincentkoc. 536 Direct mentions to Telegram and Discord group bots using `message_tool_only... Direct mentions to Telegram and Discord group bots using `message_tool_only` now produce visible channel replies on both new and resumed sessions. [#99389](https://github.com/openclaw/openclaw/pull/99389) Related [#99371](https://github.com/openclaw/openclaw/issues/99371). Thanks @obviyus. 537 The `/usage full` footer is shorter and easier to read on Telegram and othe... The `/usage full` footer is shorter and easier to read on Telegram and other narrow displays, with detailed token information still available through dedicated views. [#92877](https://github.com/openclaw/openclaw/pull/92877) Thanks @marvinthebored. 538 Custom usage footers now render alias and map fallbacks correctly even when... Custom usage footers now render alias and map fallbacks correctly even when model or mode names collide with properties such as `toString` or `constructor`. [#98503](https://github.com/openclaw/openclaw/pull/98503) Related [#98466](https://github.com/openclaw/openclaw/issues/98466). Thanks @chenyangjun-xy, @zhanglei99586. 539 Transient stdout or stderr read errors from `gog gmail watch serve` no long... Transient stdout or stderr read errors from `gog gmail watch serve` no longer crash OpenClaw while Gmail watch mode is running. [#100519](https://github.com/openclaw/openclaw/pull/100519) Thanks @cxbasdev. 540 OpenCode Zen users can browse and run its supported Claude, GPT, Gemini, GL... OpenCode Zen users can browse and run its supported Claude, GPT, Gemini, GLM, DeepSeek, MiniMax, Qwen, and other models without manually defining each route. [#92495](https://github.com/openclaw/openclaw/pull/92495) Thanks @mushuiyu886, @sallyom. 541 Library and integration developers can now install a version-matched packag... Library and integration developers can now install a version-matched package, create independent AI runtimes, and reuse OpenClaw's supported model transports without embedding the full application. [#99059](https://github.com/openclaw/openclaw/pull/99059) 542 Featherless AI now has an official provider install and onboarding path, in... Featherless AI now has an official provider install and onboarding path, including `FEATHERLESS_API_KEY`, a curated `featherless/Qwen/Qwen3-32B` default, and support for exact Featherless model IDs. [#101092](https://github.com/openclaw/openclaw/pull/101092) Thanks @vincentkoc. 543 Meta Model API is now exposed through the public `meta` provider, with `met... Meta Model API is now exposed through the public `meta` provider, with `meta/muse-spark-1.1`, canonical provider docs, and standalone npm or ClawHub installation paths. [#103070](https://github.com/openclaw/openclaw/pull/103070) Thanks @vincentkoc. 544 The bundled Meta provider now uses `https //api.meta.ai/v1`, advertises Muse Spark 1.1's documented 131,072-token output limit, and applies official-host request protections. [#103680](https://github.com/openclaw/openclaw/pull/103680) Thanks @vincentkoc. 545 Claude Fable 5 now works through Anthropic Vertex for simple-completion tas... Claude Fable 5 now works through Anthropic Vertex for simple-completion tasks such as generated conversation labels instead of failing before the request reaches Vertex. [#98932](https://github.com/openclaw/openclaw/pull/98932) 546 Claude CLI users can combine multiple `--mcp-config` files without losing s... Claude CLI users can combine multiple `--mcp-config` files without losing servers or corrupting the prompt, and concurrent Gemini CLI runs are less likely to interfere with shared credential files. [#98983](https://github.com/openclaw/openclaw/pull/98983) Related [#98944](https://github.com/openclaw/openclaw/issues/98944), [#98945](https://github.com/openclaw/openclaw/issues/98945). Thanks @obviyus. 547 Google image generation can now use `models Google image generation can now use `models.providers.google.apiKey` and an optional custom `baseUrl` without separate environment credentials or an auth profile. [#100779](https://github.com/openclaw/openclaw/pull/100779) Thanks @amknight. 548 OpenAI image generation can now be enabled from `models OpenAI image generation can now be enabled from `models.providers.openai` with a usable API key and custom base URL, without also requiring `OPENAI_API_KEY` or an auth profile. [#100745](https://github.com/openclaw/openclaw/pull/100745) Thanks @amknight. 549 Configurations using the retired `openai-codex-responses` API ID now receiv... Configurations using the retired `openai-codex-responses` API ID now receive a validation message naming the supported replacement instead of a generic failure. [#96257](https://github.com/openclaw/openclaw/pull/96257) Thanks @james-16, @yetval. 550 Legacy `openai-codex` references now direct operators to `openclaw doctor -... Legacy `openai-codex` references now direct operators to `openclaw doctor --fix` and `openclaw models status` instead of suggesting configuration that fails validation. [#100120](https://github.com/openclaw/openclaw/pull/100120) Thanks @jason-vaughan, @sunnyshu0925, @vincentkoc. 551 Ollama model discovery now stops oversized or never-ending endpoint respons... Ollama model discovery now stops oversized or never-ending endpoint responses before they can exhaust memory or leave setup hanging. [#96027](https://github.com/openclaw/openclaw/pull/96027) Thanks @alix-007. 552 LM Studio model discovery and startup now stop pathological server response... LM Studio model discovery and startup now stop pathological server responses at a fixed size and report a clear error instead of buffering them indefinitely. [#96042](https://github.com/openclaw/openclaw/pull/96042) Thanks @alix-007. 553 `openclaw models list` now reports configured local Ollama models as availa... `openclaw models list` now reports configured local Ollama models as available when they are running and usable. [#97491](https://github.com/openclaw/openclaw/pull/97491) Thanks @lingfeizi, @qingminglong. 554 Custom Xiaomi MiMo and other OpenAI-compatible models without a known outpu... Custom Xiaomi MiMo and other OpenAI-compatible models without a known output limit can now complete chats instead of failing with an invented oversized cap. [#98312](https://github.com/openclaw/openclaw/pull/98312) Thanks @peole, @sanjays2402. 555 Provider setup now stops reading runaway model-discovery responses before t... Provider setup now stops reading runaway model-discovery responses before they can stall or exhaust memory, while normal self-hosted server responses continue to work. [#95244](https://github.com/openclaw/openclaw/pull/95244) Thanks @alix-007, @sallyom. 556 Rerunning provider onboarding or refreshing models now preserves operator-o... Rerunning provider onboarding or refreshing models now preserves operator-owned timeouts, transport settings, MiniMax models, and SecretRef credentials instead of silently erasing them. [#100107](https://github.com/openclaw/openclaw/pull/100107) Thanks @frank-beans. 557 With `models With `models.mode` set to `replace`, agent startup now uses only explicitly configured providers and skips the slow implicit provider scan. [#82638](https://github.com/openclaw/openclaw/pull/82638) Related [#66957](https://github.com/openclaw/openclaw/issues/66957). Thanks @eldar702, @wangzhengshu. 558 Bundled provider aliases now accept supported overlay settings such as requ... Bundled provider aliases now accept supported overlay settings such as request timeouts without demanding custom-provider fields like `baseUrl` and `models`. [#88400](https://github.com/openclaw/openclaw/pull/88400) Thanks @pluviobyte. 559 Isolated cron jobs can now use models supplied by enabled bundled plugins w... Isolated cron jobs can now use models supplied by enabled bundled plugins without failing as unknown or silently resolving to the wrong provider. [#96070](https://github.com/openclaw/openclaw/pull/96070) Thanks @sallyom, @sunnyshu0925. 560 Z Z.AI endpoint and model detection now fails gracefully on oversized or endless error responses instead of exhausting host memory. [#97540](https://github.com/openclaw/openclaw/pull/97540) Thanks @alix-007. 561 Microsoft Foundry connection tests now stop oversized or continuously strea... Microsoft Foundry connection tests now stop oversized or continuously streamed error responses while preserving concise setup diagnostics. [#97812](https://github.com/openclaw/openclaw/pull/97812) Thanks @pick-cat. 562 Generic provider configurations for official DashScope/Qwen, Moonshot, Z Generic provider configurations for official DashScope/Qwen, Moonshot, Z.AI, DeepSeek, Groq, Cerebras, and Chutes endpoints now retain the compatibility behavior those services require even without optional plugins. [#100125](https://github.com/openclaw/openclaw/pull/100125) 563 Provider onboarding no longer writes an empty `request` block when no reque... Provider onboarding no longer writes an empty `request` block when no request overrides were supplied. [3a0a736](https://github.com/openclaw/openclaw/commit/3a0a736843af2877d66f5b8b8bcc78786d8f04a0) Thanks @vincentkoc. 564 Switching a live Control UI or TUI session through a provider-qualified mod... Switching a live Control UI or TUI session through a provider-qualified model alias now saves the canonical provider and model, preventing the next request from being rejected. [#100209](https://github.com/openclaw/openclaw/pull/100209) Thanks @sahilsatralkar. 565 Bedrock Mantle model discovery now times out and caps oversized catalog res... Bedrock Mantle model discovery now times out and caps oversized catalog responses instead of hanging or consuming excessive memory, while cached models remain available. [#99961](https://github.com/openclaw/openclaw/pull/99961) Thanks @zhangguiping-xydt. 566 OpenRouter video model discovery now stops oversized or runaway catalog res... OpenRouter video model discovery now stops oversized or runaway catalog responses promptly instead of letting them consume memory without limit, while normal discovery behavior is preserved. [#96505](https://github.com/openclaw/openclaw/pull/96505) Thanks @mushuiyu886. 567 Model aliases and partial names such as `opus` now resolve to the newest ma... Model aliases and partial names such as `opus` now resolve to the newest matching version even when catalogs reach double-digit versions, preventing silent routing to an older model. [#96609](https://github.com/openclaw/openclaw/pull/96609) Thanks @yetval, @zw-xysk. 568 Paginated provider catalogs now expose models beyond the first page, while... Paginated provider catalogs now expose models beyond the first page, while malformed, endless, or redirected catalogs fail safely instead of caching an incomplete list or forwarding sensitive headers across origins. [#97012](https://github.com/openclaw/openclaw/pull/97012) Thanks @zhangguiping-xydt. 569 Hugging Face model discovery now falls back to the bundled catalog when a p... Hugging Face model discovery now falls back to the bundled catalog when a provider response is malformed or oversized instead of risking excessive memory use. [#101079](https://github.com/openclaw/openclaw/pull/101079) Thanks @cxbasdev. 570 Trusted official external providers can now show model-specific thinking ch... Trusted official external providers can now show model-specific thinking choices before full runtime activation, including off, low, high, and max for Z.AI GLM 5.2. [b4fce16](https://github.com/openclaw/openclaw/commit/b4fce16971995438ee416eee90569a37d6a592dc) Thanks @vincentkoc. 571 Status summaries now respect provider-local model aliases, showing the sele... Status summaries now respect provider-local model aliases, showing the selected alias without a false pinned-model mismatch warning. [1d4e789](https://github.com/openclaw/openclaw/commit/1d4e7899a47f4483d29848eac02e1fb89de2a2ee) 572 OpenRouter scans now interpret model names such as `8b-70b` by their larger... OpenRouter scans now interpret model names such as `8b-70b` by their larger parameter size, improving minimum-size filters and small-model security warnings. [#96288](https://github.com/openclaw/openclaw/pull/96288) Thanks @ly-wang19. 573 Media-generation catalogs now keep the correct default model marker even wh... Media-generation catalogs now keep the correct default model marker even when provider metadata includes harmless surrounding whitespace. [#96430](https://github.com/openclaw/openclaw/pull/96430) Thanks @lin-hongkuan. 574 Very long OpenRouter Fusion model IDs now remain valid Unicode in the agent... Very long OpenRouter Fusion model IDs now remain valid Unicode in the agent prompt instead of showing a corrupted character when an emoji reaches the display limit. [#104433](https://github.com/openclaw/openclaw/pull/104433) Thanks @zhangguiping-xydt. 575 Anthropic OAuth token exchange and refresh now reject oversized endpoint re... Anthropic OAuth token exchange and refresh now reject oversized endpoint responses early instead of reading an unbounded body into memory. [#96644](https://github.com/openclaw/openclaw/pull/96644) Thanks @solodmd. 576 Anthropic sign-in now rejects unsupported callback-host overrides, keeps au... Anthropic sign-in now rejects unsupported callback-host overrides, keeps authorization on standard local loopback addresses, and avoids callback failures or exposure through a non-local listener. [#96917](https://github.com/openclaw/openclaw/pull/96917) Thanks @xialonglee. 577 Expired Claude CLI authentication now shows the exact recovery command `cla... Expired Claude CLI authentication now shows the exact recovery command `claude auth login && openclaw models auth login --provider anthropic --method cli` instead of a generic failure. [#97669](https://github.com/openclaw/openclaw/pull/97669) Thanks @alix-007. 578 Anthropic OAuth subscription requests now carry the Claude Code-style billi... Anthropic OAuth subscription requests now carry the Claude Code-style billing identity, helping them use the intended subscription route instead of failing or being treated as the wrong request type. [709be93](https://github.com/openclaw/openclaw/commit/709be93ca8987009540eb56ed1b6bfda136427de) Thanks @vincentkoc. 579 ChatGPT OAuth sign-in and refresh now reject unexpectedly large token respo... ChatGPT OAuth sign-in and refresh now reject unexpectedly large token responses cleanly instead of risking Gateway memory exhaustion. [#99479](https://github.com/openclaw/openclaw/pull/99479) Thanks @pandah97. 580 Cloudflare 403 challenges on OpenAI or Codex OAuth requests now produce gat... Cloudflare 403 challenges on OpenAI or Codex OAuth requests now produce gateway-block guidance instead of incorrectly telling users their authentication failed. [#94440](https://github.com/openclaw/openclaw/pull/94440) Related [#94432](https://github.com/openclaw/openclaw/issues/94432). Thanks @lzyyzznl, @pbm9z95m6z-hue. 581 OpenAI authentication errors now point ChatGPT/Codex OAuth users to a model... OpenAI authentication errors now point ChatGPT/Codex OAuth users to a model compatible with their existing sign-in instead of recommending an outdated default. [#100579](https://github.com/openclaw/openclaw/pull/100579) Thanks @zhangguiping-xydt. 582 For Codex-backed OpenAI models, `/status` now identifies ChatGPT login auth... For Codex-backed OpenAI models, `/status` now identifies ChatGPT login authentication as `oauth (codex-cli)` instead of incorrectly labeling it as an environment API key. [#91240](https://github.com/openclaw/openclaw/pull/91240) Related [#91099](https://github.com/openclaw/openclaw/issues/91099). Thanks @849261680, @ukstem. 583 OpenAI Realtime voice in Talk, Voice Call, and Discord was announced with a... OpenAI Realtime voice in Talk, Voice Call, and Discord was announced with a Codex/OpenAI OAuth fallback in [#100671](https://github.com/openclaw/openclaw/pull/100671). Correction: public Codex OAuth accounts do not have a supported realtime transport, so current builds require an OpenAI Platform API key. Thanks @steipete-oai. 584 Google Gemini CLI sign-in now rejects oversized OAuth, profile, project, an... Google Gemini CLI sign-in now rejects oversized OAuth, profile, project, and onboarding responses with labeled errors instead of risking excessive memory use. [#97587](https://github.com/openclaw/openclaw/pull/97587) Thanks @hugenshen. 585 Google Gemini CLI OAuth failures now keep oversized or malformed provider r... Google Gemini CLI OAuth failures now keep oversized or malformed provider responses bounded while preserving useful error details. [#99605](https://github.com/openclaw/openclaw/pull/99605) Thanks @mushuiyu886. 586 Google OAuth sign-in, token exchange, and project discovery now return a bo... Google OAuth sign-in, token exchange, and project discovery now return a bounded error for oversized responses instead of risking a process crash. [#97628](https://github.com/openclaw/openclaw/pull/97628) Thanks @vincentkoc, @wangmiao0668000666. 587 GitHub Copilot sign-in, refresh, and model-list checks now fail with labele... GitHub Copilot sign-in, refresh, and model-list checks now fail with labeled size limits when GitHub or a proxy returns an oversized response. [#97499](https://github.com/openclaw/openclaw/pull/97499) Thanks @wangmiao0668000666. 588 GitHub Copilot sign-in and token refresh now reject oversized service respo... GitHub Copilot sign-in and token refresh now reject oversized service responses with a clear error before they can exhaust OpenClaw's memory. [#97579](https://github.com/openclaw/openclaw/pull/97579) Thanks @hugenshen. 589 GitHub Copilot device login now fails cleanly on an oversized successful re... GitHub Copilot device login now fails cleanly on an oversized successful response instead of risking an out-of-memory crash. [#97583](https://github.com/openclaw/openclaw/pull/97583) Thanks @hugenshen. 590 OpenAI-compatible providers routed through the GitHub Copilot BYOK harness... OpenAI-compatible providers routed through the GitHub Copilot BYOK harness now retain bearer authentication, reducing false 401 errors for valid credentials. [#99955](https://github.com/openclaw/openclaw/pull/99955) Thanks @hxy91819. 591 xAI and Grok OAuth sign-in now works on SSH hosts, containers, VPS systems,... xAI and Grok OAuth sign-in now works on SSH hosts, containers, VPS systems, and other headless environments without forwarding a localhost callback port. [#97249](https://github.com/openclaw/openclaw/pull/97249) Thanks @fuller-stack-dev, @jaaneek. 592 xAI sign-in, token refresh, and device approval now stop oversized OAuth re... xAI sign-in, token refresh, and device approval now stop oversized OAuth responses before they can consume unbounded memory. [#97615](https://github.com/openclaw/openclaw/pull/97615) Thanks @cxbasdev. 593 Existing xAI and Grok OAuth sessions using the retired token endpoint can r... Existing xAI and Grok OAuth sessions using the retired token endpoint can renew after expiry without forcing another browser or SSH-tunneled login. [#96146](https://github.com/openclaw/openclaw/pull/96146) Thanks @fuller-stack-dev, @jaaneek. 594 Ollama Cloud setup now stops oversized or malicious authentication response... Ollama Cloud setup now stops oversized or malicious authentication responses before they can consume excessive memory, while normal sign-in remains unchanged. [#97581](https://github.com/openclaw/openclaw/pull/97581) Thanks @hugenshen. 595 MiniMax OAuth device setup now limits authorization response size so a faul... MiniMax OAuth device setup now limits authorization response size so a faulty proxied or self-hosted endpoint cannot exhaust Gateway memory. [#96322](https://github.com/openclaw/openclaw/pull/96322) Thanks @lsr911. 596 Chutes login, user lookup, and token refresh now stop unexpectedly large OA... Chutes login, user lookup, and token refresh now stop unexpectedly large OAuth responses with a bounded error instead of buffering them without limit. [#96777](https://github.com/openclaw/openclaw/pull/96777) Thanks @wangmiao0668000666. 597 Chutes onboarding now fails clearly when token-exchange or user-info respon... Chutes onboarding now fails clearly when token-exchange or user-info responses are oversized, preventing abnormal authentication traffic from causing unbounded memory growth. [#96779](https://github.com/openclaw/openclaw/pull/96779) Thanks @wangmiao0668000666. 598 Z Z.AI users can recover a profile that accidentally stored an onboarding command as the API key without wiping all authentication state. [#97520](https://github.com/openclaw/openclaw/pull/97520) Thanks @zhangguiping-xydt. 599 Chutes sign-in and token refresh errors now include a useful bounded snippe... Chutes sign-in and token refresh errors now include a useful bounded snippet without allowing an endpoint to stream an unlimited response into memory. [#97808](https://github.com/openclaw/openclaw/pull/97808) Thanks @pick-cat. 600 OpenRouter sign-in now fails safely on oversized replies, and Discord webho... OpenRouter sign-in now fails safely on oversized replies, and Discord webhook sends remain successful when their optional response body is absent, malformed, or too large. [#98098](https://github.com/openclaw/openclaw/pull/98098) Thanks @lwy-2. 601 OpenRouter model probes and agent requests now use discovered environment o... OpenRouter model probes and agent requests now use discovered environment or profile API keys correctly instead of failing with a missing-authentication-header error. [#98187](https://github.com/openclaw/openclaw/pull/98187) Related [#97934](https://github.com/openclaw/openclaw/issues/97934). Thanks @laurencebrown, @sunlit-deng. 602 ClawRouter models selected in agent defaults now resolve at runtime when th... ClawRouter models selected in agent defaults now resolve at runtime when the credential is stored in an auth profile instead of the environment. [#99759](https://github.com/openclaw/openclaw/pull/99759) 603 Amazon Bedrock users can now analyze images and PDFs with the same AWS prof... Amazon Bedrock users can now analyze images and PDFs with the same AWS profile, role, SSO, environment, or instance credentials already used for chat. [#72092](https://github.com/openclaw/openclaw/pull/72092) Thanks @truffle-dev. 604 OpenAI/Codex and Anthropic OAuth result pages now show OpenClaw branding in... OpenAI/Codex and Anthropic OAuth result pages now show OpenClaw branding instead of the legacy Pi logo. [1834592](https://github.com/openclaw/openclaw/commit/1834592be17668cbfc9ea834c57df73e05b71f14) 605 Agents created by copying credentials now preserve the source agent's porta... Agents created by copying credentials now preserve the source agent's portable provider-profile priority instead of unexpectedly choosing a different credential. [#100833](https://github.com/openclaw/openclaw/pull/100833) Thanks @machine3at. 606 New or updated provider credentials entered through the CLI now appear in t... New or updated provider credentials entered through the CLI now appear in the running Gateway and Control UI model picker without a manual secrets reload or restart. [#101256](https://github.com/openclaw/openclaw/pull/101256) Thanks @fuller-stack-dev. 607 OAuth-backed models now become available in Gateway model browsing after cr... OAuth-backed models now become available in Gateway model browsing after credentials are renewed from another CLI process, without requiring a Gateway restart. [#104732](https://github.com/openclaw/openclaw/pull/104732) Thanks @fuller-stack-dev. 608 Anthropic conversations rejected for a missing tool result now tell users t... Anthropic conversations rejected for a missing tool result now tell users to retry or start a fresh session with `/new` instead of showing only a generic provider failure. [#98163](https://github.com/openclaw/openclaw/pull/98163) Thanks @masatohoshino. 609 Claude native-thinking sessions can now recover automatically after Anthrop... Claude native-thinking sessions can now recover automatically after Anthropic rejects a replayed thinking block, without manual compaction or transcript loss. [#98411](https://github.com/openclaw/openclaw/pull/98411) Related [#98308](https://github.com/openclaw/openclaw/issues/98308). Thanks @clearhorizoninvestments, @sunlit-deng. 610 Claude CLI agent runs now fail over instead of presenting provider errors o... Claude CLI agent runs now fail over instead of presenting provider errors or raw stream data as answers, preserve multilingual and emoji output, and stop runaway one-shot output before it exhausts Gateway memory. [#98942](https://github.com/openclaw/openclaw/pull/98942) Related [#98896](https://github.com/openclaw/openclaw/issues/98896). Thanks @obviyus. 611 Eligible direct API-key requests to Claude Fable 5 now return an Opus 4 Eligible direct API-key requests to Claude Fable 5 now return an Opus 4.8 answer when Anthropic's safety classifier declines Fable, with diagnostics and Opus billing made clear. [#99906](https://github.com/openclaw/openclaw/pull/99906) 612 Gemini streaming can retry with another configured API key after a retryabl... Gemini streaming can retry with another configured API key after a retryable quota or rate-limit response instead of failing on the first key. [#97328](https://github.com/openclaw/openclaw/pull/97328) Thanks @monkeyleet. 613 Ollama requests whose native response stream ends early can now continue to... Ollama requests whose native response stream ends early can now continue to a configured fallback model instead of stopping with `LLM request failed`. [#100482](https://github.com/openclaw/openclaw/pull/100482) Thanks @turbotheturtle. 614 A detail-less failure from an OpenAI-compatible provider no longer puts a v... A detail-less failure from an OpenAI-compatible provider no longer puts a valid API-key profile into cooldown or forces avoidable fallback traffic. [#100617](https://github.com/openclaw/openclaw/pull/100617) Thanks @fengjikui. 615 Z Z.AI and similar HTTP 429 responses now distinguish temporary service overload from ordinary rate limiting and preserve provider-supplied retry timing. [#98165](https://github.com/openclaw/openclaw/pull/98165) Thanks @sunnyshu0925. 616 Continued conversations with strict custom OpenAI Responses-compatible endp... Continued conversations with strict custom OpenAI Responses-compatible endpoints no longer fail on an unsupported `input[n].status` field and needlessly switch to a fallback model. [#100831](https://github.com/openclaw/openclaw/pull/100831) Thanks @chenxiaoyu209. 617 Replay-safe model timeouts can now advance to the next configured provider,... Replay-safe model timeouts can now advance to the next configured provider, letting agent, chat, and cron runs recover without repeating work that may have side effects. [#96142](https://github.com/openclaw/openclaw/pull/96142) Thanks @brokemac79, @riazrahaman. 618 Agent runs can move to the next configured model after a provider drops a s... Agent runs can move to the next configured model after a provider drops a stream, while genuine cancellations still stop promptly. [#90908](https://github.com/openclaw/openclaw/pull/90908) Thanks @shengting. 619 Embedded-agent runs can now try the next configured fallback model after a... Embedded-agent runs can now try the next configured fallback model after a temporary upstream `LLM request failed` error. [#95542](https://github.com/openclaw/openclaw/pull/95542) Thanks @altaywtf, @mikasa0818. 620 Configured fallback chains now try an alternate model when the primary prov... Configured fallback chains now try an alternate model when the primary provider reports `model_not_found`, reducing failures after model availability changes. [#97571](https://github.com/openclaw/openclaw/pull/97571) Thanks @liuhao1024. 621 When a configured runtime model is no longer available, chat now explains t... When a configured runtime model is no longer available, chat now explains that a new session will not help and directs operators to choose an available model. [#97611](https://github.com/openclaw/openclaw/pull/97611) Thanks @romneyda. 622 Provider failures now keep fallback error text within the configured size l... Provider failures now keep fallback error text within the configured size limit, preventing oversized responses from overwhelming logs or visible diagnostics. [#99340](https://github.com/openclaw/openclaw/pull/99340) Thanks @pick-cat. 623 `/model default` now actually returns an active session to its configured m... `/model default` now actually returns an active session to its configured model after steering, fallback, or a previous manual selection. [#96318](https://github.com/openclaw/openclaw/pull/96318) Thanks @marsman-lab, @sunnyshu0925. 624 Gateway chat now classifies mixed provider messages as rate limits when thr... Gateway chat now classifies mixed provider messages as rate limits when throttling is the real failure, giving users recovery guidance that matches the problem. [#100755](https://github.com/openclaw/openclaw/pull/100755) Thanks @pick-cat. 625 `openclaw status` and `session_status` now identify when a session is using... `openclaw status` and `session_status` now identify when a session is using a fallback model and show the configured primary model beside it. [#101337](https://github.com/openclaw/openclaw/pull/101337) Thanks @lzy3538. 626 Claude CLI replies that streamed successfully are now retained when the fin... Claude CLI replies that streamed successfully are now retained when the final success envelope contains no text, preventing the completed answer from disappearing or triggering an empty-response fallback. [#90450](https://github.com/openclaw/openclaw/pull/90450) Thanks @totobusnello. 627 Claude Code 2 Claude Code 2.1 users can again approve and run Bash, WebFetch, Grep, Glob, AskUserQuestion, and other native tools in claude-cli sessions. [#98665](https://github.com/openclaw/openclaw/pull/98665) Related [#95171](https://github.com/openclaw/openclaw/issues/95171). Thanks @carterdawson, @yetval. 628 Claude CLI-backed agents now show native reasoning in `/reasoning stream` o... Claude CLI-backed agents now show native reasoning in `/reasoning stream` or `/reasoning on`, while `/reasoning off` consistently suppresses it for queued follow-ups too. [#99401](https://github.com/openclaw/openclaw/pull/99401) Thanks @marvinthebored. 629 Anthropic Opus 4 Anthropic Opus 4.8 can now run with `tools.profile=coding` without every turn failing with an HTTP 400 schema error before the assistant replies. [#100492](https://github.com/openclaw/openclaw/pull/100492) Thanks @lin-hongkuan, @vincentkoc. 630 Anthropic Messages-compatible proxy users no longer see raw antml tool-call... Anthropic Messages-compatible proxy users no longer see raw antml tool-call XML or arguments leak into visible Claude replies. [b2787a1](https://github.com/openclaw/openclaw/commit/b2787a1c7a7ae1a20d05411bba1dbf9091490c23) Thanks @jerry-xin. 631 Anthropic agents routed through AWS Bedrock can keep Feishu Bitable write t... Anthropic agents routed through AWS Bedrock can keep Feishu Bitable write tools enabled without the tool definitions blocking every conversation. [#94990](https://github.com/openclaw/openclaw/pull/94990) Thanks @twinslee, @vincentkoc. 632 Claude Fable 5 now uses the expected Anthropic `context1m` stream setup whe... Claude Fable 5 now uses the expected Anthropic `context1m` stream setup when 1M context is enabled, without affecting similar model IDs. [#100572](https://github.com/openclaw/openclaw/pull/100572) Thanks @zhangguiping-xydt. 633 Claude conversations through GitHub Copilot can continue after a tool failu... Claude conversations through GitHub Copilot can continue after a tool failure with no visible output instead of entering repeated provider-schema failures. [#101373](https://github.com/openclaw/openclaw/pull/101373) Thanks @galiniliev. 634 Anthropic-compatible calls with token caps too small for manual thinking no... Anthropic-compatible calls with token caps too small for manual thinking now run normally without thinking instead of failing provider validation. [#101415](https://github.com/openclaw/openclaw/pull/101415) Thanks @pick-cat. 635 Ollama Cloud and other OpenAI-compatible Ollama chats can now continue afte... Ollama Cloud and other OpenAI-compatible Ollama chats can now continue after a tool call instead of failing the next turn with a provider 400 error. [#96474](https://github.com/openclaw/openclaw/pull/96474) Thanks @849261680. 636 vLLM, Ollama proxies, and other OpenAI-compatible gateways can deliver stre... vLLM, Ollama proxies, and other OpenAI-compatible gateways can deliver streamed replies even when they incorrectly label an event stream as JSON, avoiding an early parsing failure that previously ended the agent run. [#96503](https://github.com/openclaw/openclaw/pull/96503) Thanks @zengwen-dt. 637 GPT-5 GPT-5.5 and other models can send valid streaming events larger than 64 KiB through ChatGPT Responses without failing the request, while malformed unbounded streams remain limited. [#98198](https://github.com/openclaw/openclaw/pull/98198) Thanks @marvinthebored, @obviyus, @peetiegonzalez. 638 `openclaw agent --local` now reports a clear first-event timeout when a pro... `openclaw agent --local` now reports a clear first-event timeout when a provider opens a stream but never sends usable output instead of appearing to hang indefinitely. [#98525](https://github.com/openclaw/openclaw/pull/98525) Thanks @osolmaz. 639 MCP tools that expect arrays or objects can now accept those values when Xi... MCP tools that expect arrays or objects can now accept those values when Xiaomi MiMo, Ollama, or another affected provider returns them as JSON strings, avoiding a pre-execution validation failure. [#96922](https://github.com/openclaw/openclaw/pull/96922) Thanks @liuhao1024. 640 Repaired plain-text tool calls from LM Studio, xAI, and Ollama now emit a f... Repaired plain-text tool calls from LM Studio, xAI, and Ollama now emit a final completion event so plugins and other streaming consumers can finish them reliably. [#104714](https://github.com/openclaw/openclaw/pull/104714) 641 Google Live voice sessions can now register and call OpenClaw tools instead... Google Live voice sessions can now register and call OpenClaw tools instead of rejecting their declarations before a tool-backed turn begins. [#100260](https://github.com/openclaw/openclaw/pull/100260) 642 MiniMax M3 replies, including those routed through Fireworks, no longer exp... MiniMax M3 replies, including those routed through Fireworks, no longer expose hidden `mm:` reasoning in visible chat or progress output. [#93767](https://github.com/openclaw/openclaw/pull/93767) Thanks @drhack1, @vincentkoc. 643 Long opencode-go model runs are less likely to be falsely stopped as stalle... Long opencode-go model runs are less likely to be falsely stopped as stalled while valid provider events are still arriving. [#97128](https://github.com/openclaw/openclaw/pull/97128) Thanks @liuwqgit, @vincentkoc, @yetval. 644 OpenRouter's DeepSeek V4 Flash and Pro models can answer with thinking enab... OpenRouter's DeepSeek V4 Flash and Pro models can answer with thinking enabled without failing with an HTTP 400. [#97208](https://github.com/openclaw/openclaw/pull/97208) Related [#97196](https://github.com/openclaw/openclaw/issues/97196). Thanks @nianjiuzst, @patelmm79. 645 Direct `mistral-medium-3-5` requests now send the user-selected adjustable... Direct `mistral-medium-3-5` requests now send the user-selected adjustable reasoning level to Mistral as `reasoningEffort`. [#100688](https://github.com/openclaw/openclaw/pull/100688) Thanks @aniruddhaadak80, @wm0018. 646 Realtime voice sessions now omit an individual custom tool with an invalid... Realtime voice sessions now omit an individual custom tool with an invalid provider-specific name and warn about it instead of letting that tool break the entire OpenAI, Azure, or Google session. [#89175](https://github.com/openclaw/openclaw/pull/89175) Thanks @vincentkoc. 647 Switching from thinking-off mode to a reasoning-required model now selects... Switching from thinking-off mode to a reasoning-required model now selects its lowest supported effort rather than silently choosing the most expensive level. [#93335](https://github.com/openclaw/openclaw/pull/93335) Thanks @obuchowski. 648 OpenAI Realtime voice and transcription sessions now start behind Clash, Su... OpenAI Realtime voice and transcription sessions now start behind Clash, Surge, sing-box, and similar TUN proxy setups that resolve `api.openai.com` into fake-IP ranges. [#86526](https://github.com/openclaw/openclaw/pull/86526) Thanks @shushushv. 649 OpenAI and Azure realtime voice connections now close inbound messages abov... OpenAI and Azure realtime voice connections now close inbound messages above 16 MiB, limiting avoidable gateway memory pressure. [#99450](https://github.com/openclaw/openclaw/pull/99450) Thanks @sunlit-deng. 650 OpenAI realtime voice sessions now default to `gpt-realtime-2 OpenAI realtime voice sessions now default to `gpt-realtime-2.1` when no model is specified, while explicit model pins continue to work. [#101390](https://github.com/openclaw/openclaw/pull/101390) Thanks @vincentkoc. 651 OpenAI image generation and reference-image editing no longer crash when cr... OpenAI image generation and reference-image editing no longer crash when credentials or a custom base URL are ready before the provider model catalog finishes loading. [#105518](https://github.com/openclaw/openclaw/pull/105518) Thanks @vincentkoc. 652 OpenAI video generation now stops oversized or endless submission responses... OpenAI video generation now stops oversized or endless submission responses with a bounded provider error before they can hang the request or exhaust memory. [#96905](https://github.com/openclaw/openclaw/pull/96905) Thanks @alix-007. 653 Gemini CLI media analysis now returns its description even when the valid r... Gemini CLI media analysis now returns its description even when the valid response also contains nested usage or other metadata. [#96432](https://github.com/openclaw/openclaw/pull/96432) Thanks @lin-hongkuan. 654 Google Veo video generation now ends oversized create or status responses e... Google Veo video generation now ends oversized create or status responses early with a clear bounded error, preventing a broken endpoint from hanging OpenClaw or consuming memory indefinitely. [#96605](https://github.com/openclaw/openclaw/pull/96605) Thanks @alix-007. 655 Reference-image edits through Fal-hosted Grok Imagine and Nano Banana 2 Lit... Reference-image edits through Fal-hosted Grok Imagine and Nano Banana 2 Lite now reach the correct service, while mixed-model fallbacks honor each candidate's supported resolution and reference limits. [#98688](https://github.com/openclaw/openclaw/pull/98688) Thanks @davenicoll, @vincentkoc. 656 MiniMax TTS now accurately explains that volume must be greater than 0 and... MiniMax TTS now accurately explains that volume must be greater than 0 and may be as high as 10 when a directive is invalid. [#101359](https://github.com/openclaw/openclaw/pull/101359) Thanks @quratulain-bilal. 657 MiniMax VLM and native PDF provider errors now remain readable when emoji o... MiniMax VLM and native PDF provider errors now remain readable when emoji or other supplementary characters land at the diagnostic snippet limit. [#101728](https://github.com/openclaw/openclaw/pull/101728) Thanks @wings1029. 658 MiniMax video generation now rejects oversized task, status, or file-metada... MiniMax video generation now rejects oversized task, status, or file-metadata responses before unbounded memory use or binary download begins, while normal responses continue to work. [#96889](https://github.com/openclaw/openclaw/pull/96889) Thanks @alix-007. 659 xAI video generation now stops oversized create or status responses with a... xAI video generation now stops oversized create or status responses with a clear size-limit error instead of buffering until OpenClaw hangs or consumes excessive memory. [#96903](https://github.com/openclaw/openclaw/pull/96903) Thanks @alix-007, @vincentkoc. 660 MiniMax image understanding now stops oversized or malformed successful res... MiniMax image understanding now stops oversized or malformed successful responses at a bounded limit, protecting memory while returning a useful diagnostic. [#100694](https://github.com/openclaw/openclaw/pull/100694) Thanks @zhangguiping-xydt. 661 Moonshot video understanding now returns a predictable error for oversized... Moonshot video understanding now returns a predictable error for oversized or malformed responses instead of hanging or consuming memory indefinitely, including with custom base URLs. [#96502](https://github.com/openclaw/openclaw/pull/96502) Thanks @hugenshen. 662 Qwen video understanding now stops oversized or malformed endpoint response... Qwen video understanding now stops oversized or malformed endpoint responses with a clear error instead of hanging or reading without limit, while normal descriptions continue unchanged. [#96604](https://github.com/openclaw/openclaw/pull/96604) Thanks @alix-007. 663 BytePlus video generation now stops oversized task-submission or status res... BytePlus video generation now stops oversized task-submission or status responses with a clear error before they can stall OpenClaw or exhaust memory, while normal responses continue unchanged. [#96606](https://github.com/openclaw/openclaw/pull/96606) Thanks @alix-007. 664 DashScope-compatible video submission and polling now reject oversized JSON... DashScope-compatible video submission and polling now reject oversized JSON responses with a bounded error instead of risking memory pressure or process instability, while ordinary responses continue normally. [#96782](https://github.com/openclaw/openclaw/pull/96782) Thanks @wangmiao0668000666. 665 OpenRouter video generation now rejects oversized submit and polling respon... OpenRouter video generation now rejects oversized submit and polling responses before they can hang OpenClaw or consume runaway memory, while normal-sized malformed responses retain their established error handling. [#96873](https://github.com/openclaw/openclaw/pull/96873) Thanks @alix-007. 666 Vydra image, video, and speech generation now fails with a bounded error on... Vydra image, video, and speech generation now fails with a bounded error on oversized or endless control responses instead of hanging or exhausting memory, while valid responses continue normally. [#96875](https://github.com/openclaw/openclaw/pull/96875) Thanks @alix-007. 667 fal music and video generation now stops oversized successful responses wit... fal music and video generation now stops oversized successful responses with a clear size-limit error before they can hang or exhaust memory, while normal generation continues as before. [#96886](https://github.com/openclaw/openclaw/pull/96886) Thanks @alix-007. 668 Together and PixVerse video generation now returns a provider-labelled size... Together and PixVerse video generation now returns a provider-labelled size error for oversized successful responses instead of continuing until severe memory pressure or process failure. [#96904](https://github.com/openclaw/openclaw/pull/96904) Thanks @alix-007. 669 Runway video generation now stops oversized create and status responses ins... Runway video generation now stops oversized create and status responses instead of continuing to consume memory or stall, while normal polling and provider-specific errors remain intact. [#96907](https://github.com/openclaw/openclaw/pull/96907) Thanks @alix-007. 670 Comfy image-generation workflows now stop oversized ComfyUI responses with... Comfy image-generation workflows now stop oversized ComfyUI responses with the actual size-limit error instead of risking memory exhaustion or misreporting the response as malformed JSON. [#96927](https://github.com/openclaw/openclaw/pull/96927) Thanks @wangmiao0668000666. 671 DeepInfra video generation now rejects oversized successful responses with... DeepInfra video generation now rejects oversized successful responses with a bounded error instead of risking an out-of-memory crash. [#97486](https://github.com/openclaw/openclaw/pull/97486) Thanks @hugenshen. 672 Configured Voice Call transcription providers such as xAI remain selectable... Configured Voice Call transcription providers such as xAI remain selectable when another provider registry is active, allowing Talk sessions to start normally. [#97170](https://github.com/openclaw/openclaw/pull/97170) Thanks @solavrc. 673 Missing official media providers now produce errors with the exact recovery... Missing official media providers now produce errors with the exact recovery commands needed to restore transcription and other media workflows. [#97484](https://github.com/openclaw/openclaw/pull/97484) Thanks @wangmiao0668000666. 674 A malformed Inworld voices response now produces a clear provider-specific... A malformed Inworld voices response now produces a clear provider-specific error instead of an unhelpful parsing exception or process crash. [#98660](https://github.com/openclaw/openclaw/pull/98660) Thanks @solodmd. 675 Short non-English audio now keeps the configured language hint without an u... Short non-English audio now keeps the configured language hint without an unrelated English prompt, reducing accidental translation when users expect a transcript in the spoken language. [#99023](https://github.com/openclaw/openclaw/pull/99023) Thanks @flyveryhigh, @nianjiuzst. 676 Image and video tools can now automatically select configured provider-plug... Image and video tools can now automatically select configured provider-plugin models authenticated through environment variables. [#98623](https://github.com/openclaw/openclaw/pull/98623) Thanks @medns. 677 Automatically configured video understanding now uses provider defaults suc... Automatically configured video understanding now uses provider defaults such as Moonshot's intended video model unless the user selected a model explicitly. [#99791](https://github.com/openclaw/openclaw/pull/99791) Thanks @vincentkoc, @zhangguiping-xydt. 678 Image generation now stops with a clear size-limit error when a provider or... Image generation now stops with a clear size-limit error when a provider or custom endpoint sends an oversized or endless response, preventing hangs and runaway memory use while valid images and edits continue normally. [#96495](https://github.com/openclaw/openclaw/pull/96495) Thanks @hugenshen, @sallyom. 679 Google Gemini TTS now rejects oversized responses before buffering them int... Google Gemini TTS now rejects oversized responses before buffering them into memory, while normal speech results continue through the existing audio workflow. [#96984](https://github.com/openclaw/openclaw/pull/96984) Thanks @mushuiyu886. 680 Inworld text-to-speech and voice-list requests now fail safely on oversized... Inworld text-to-speech and voice-list requests now fail safely on oversized, malformed, or never-ending responses instead of hanging or consuming unbounded Gateway memory. [#95416](https://github.com/openclaw/openclaw/pull/95416) Thanks @alix-007, @vincentkoc. 681 Azure Speech, Microsoft Speech, ElevenLabs, MiniMax TTS, OpenRouter transcr... Azure Speech, Microsoft Speech, ElevenLabs, MiniMax TTS, OpenRouter transcription, and xAI transcription now stop oversized or endless responses before they can stall speech work or strain Gateway memory, while ordinary responses remain unchanged. [#96496](https://github.com/openclaw/openclaw/pull/96496) Thanks @hugenshen. 682 Volcengine, BytePlus Seed Speech, and Xiaomi TTS now stop oversized provide... Volcengine, BytePlus Seed Speech, and Xiaomi TTS now stop oversized provider responses before one speech request can stall or destabilize OpenClaw. [#96874](https://github.com/openclaw/openclaw/pull/96874) Thanks @alix-007. 683 Google audio and video understanding now stops oversized provider responses... Google audio and video understanding now stops oversized provider responses at the shared 16 MiB limit with a clear error instead of allowing them to consume excessive memory. [#96920](https://github.com/openclaw/openclaw/pull/96920) Thanks @mushuiyu886, @vincentkoc. 684 Gemini memory-embedding batch uploads, creation, and status checks now fail... Gemini memory-embedding batch uploads, creation, and status checks now fail safely when a compatible endpoint returns an oversized control response. [#97535](https://github.com/openclaw/openclaw/pull/97535) Thanks @hugenshen. 685 OpenAI-compatible embedding requests now close oversized responses early wi... OpenAI-compatible embedding requests now close oversized responses early with a clear provider error instead of buffering until OpenClaw stalls or runs out of memory, while normal embeddings continue working. [#96868](https://github.com/openclaw/openclaw/pull/96868) Thanks @alix-007. 686 OpenAI embedding batch polling and Realtime setup now cancel oversized succ... OpenAI embedding batch polling and Realtime setup now cancel oversized successful responses early and return a bounded error instead of growing memory without limit. [#97533](https://github.com/openclaw/openclaw/pull/97533) Thanks @hugenshen. 687 OpenAI-compatible embedding batch downloads now process valid large outputs... OpenAI-compatible embedding batch downloads now process valid large outputs while stopping oversized files or JSONL records before they can exhaust memory. [#98554](https://github.com/openclaw/openclaw/pull/98554) Thanks @sunlit-deng, @vincentkoc. 688 GitHub Copilot model discovery and memory search now reject oversized or ma... GitHub Copilot model discovery and memory search now reject oversized or malformed responses instead of buffering them without limit, while valid catalog and embedding results continue normally. [#96499](https://github.com/openclaw/openclaw/pull/96499) Thanks @hugenshen, @sallyom. 689 Voyage embedding batch jobs now stop oversized status, failure, and error-f... Voyage embedding batch jobs now stop oversized status, failure, and error-file responses before they can hang or exhaust worker memory, while oversized diagnostics degrade safely and ordinary responses remain unchanged. [#96608](https://github.com/openclaw/openclaw/pull/96608) Thanks @alix-007. 690 LM Studio embedding preload now respects the configured context limit, redu... LM Studio embedding preload now respects the configured context limit, reducing GPU out-of-memory failures during memory search on constrained hardware. [#100750](https://github.com/openclaw/openclaw/pull/100750) Thanks @hxz398, @zak-li, @zoowh. 691 Malformed Voyage embedding batches now close their download connections aft... Malformed Voyage embedding batches now close their download connections after parsing fails, reducing resource buildup during repeated or large workloads. [#98840](https://github.com/openclaw/openclaw/pull/98840) Thanks @solodmd. 692 Google Meet document processing now rejects oversized Google Drive exports... Google Meet document processing now rejects oversized Google Drive exports before they can destabilize OpenClaw, while ordinary documents still export as text. [#97620](https://github.com/openclaw/openclaw/pull/97620) Thanks @alix-007, @vincentkoc. 693 Parallel web search now returns a bounded error when an upstream response i... Parallel web search now returns a bounded error when an upstream response is malformed, oversized, or never-ending instead of risking a hang or out-of-memory crash. [#96035](https://github.com/openclaw/openclaw/pull/96035) Thanks @alix-007. 694 Exa searches now reject responses above the supported limit, preventing exc... Exa searches now reject responses above the supported limit, preventing excessive provider output from hanging OpenClaw or creating memory pressure. [#96038](https://github.com/openclaw/openclaw/pull/96038) Thanks @alix-007. 695 Anthropic-compatible requests now fail promptly with a bounded transport er... Anthropic-compatible requests now fail promptly with a bounded transport error when an upstream stream sends an oversized partial event instead of hanging and consuming memory. [#100686](https://github.com/openclaw/openclaw/pull/100686) Thanks @zhangguiping-xydt. 696 OpenAI ChatGPT Responses streaming now cancels oversized or endless provide... OpenAI ChatGPT Responses streaming now cancels oversized or endless provider bodies with a clear error before they can consume excessive process memory, while normal responses keep using the existing parser. [#96762](https://github.com/openclaw/openclaw/pull/96762) Thanks @vincentkoc, @wangmiao0668000666. 697 OpenAI-compatible provider and proxy streams now stop oversized malformed o... OpenAI-compatible provider and proxy streams now stop oversized malformed or never-ending bodies at the affected request instead of letting them destabilize or crash the OpenClaw process. [#96989](https://github.com/openclaw/openclaw/pull/96989) Thanks @vincentkoc, @wangmiao0668000666. 698 OpenAI-compatible Chat Completions now use OpenClaw's guarded network path,... OpenAI-compatible Chat Completions now use OpenClaw's guarded network path, adding the same response safety controls used by other protected model calls. [#97228](https://github.com/openclaw/openclaw/pull/97228) Thanks @vincentkoc, @wangmiao0668000666. 699 Azure OpenAI Responses now bound oversized streaming and error bodies, prot... Azure OpenAI Responses now bound oversized streaming and error bodies, protecting memory while preserving normal errors and cancellation. [#97349](https://github.com/openclaw/openclaw/pull/97349) Thanks @wangmiao0668000666. 700 Anthropic-compatible model requests now consistently use OpenClaw's guarded... Anthropic-compatible model requests now consistently use OpenClaw's guarded transport, response normalization, and managed stream cleanup rather than bypassing them through the SDK. [#101357](https://github.com/openclaw/openclaw/pull/101357) Thanks @wangmiao0668000666. 701 When an OpenAI or OpenAI-compatible chat-completions model refuses a reques... When an OpenAI or OpenAI-compatible chat-completions model refuses a request, users now see the provider's explanation instead of a blank assistant reply. [#102344](https://github.com/openclaw/openclaw/pull/102344) Thanks @wuqxuan, @yetval. 702 Proxy-backed model streams now fail with bounded, clearer errors when respo... Proxy-backed model streams now fail with bounded, clearer errors when responses are oversized, malformed, incomplete, or idle instead of hanging or consuming unbounded data. [#97235](https://github.com/openclaw/openclaw/pull/97235) Thanks @vincentkoc, @zhangguiping-xydt. 703 Mistral-compatible endpoints now stop oversized streaming responses with a... Mistral-compatible endpoints now stop oversized streaming responses with a labeled error before OpenClaw can run out of memory. [#97648](https://github.com/openclaw/openclaw/pull/97648) Thanks @wangmiao0668000666. 704 Abnormally large Google Meet, Calendar, or OAuth responses now stop with an... Abnormally large Google Meet, Calendar, or OAuth responses now stop with an error before they can consume uncontrolled Gateway memory. [#98850](https://github.com/openclaw/openclaw/pull/98850) Thanks @pandah97. 705 Request-format and schema failures now show the relevant diagnostic without... Request-format and schema failures now show the relevant diagnostic without sending users through unnecessary provider login or reconfiguration steps. [#95779](https://github.com/openclaw/openclaw/pull/95779) Thanks @pick-cat. 706 Codex users can route both `codex/*` and `openai/*` models through the bund... Codex users can route both `codex/*` and `openai/*` models through the bundled runtime, and older conversations resume without unnecessary context reprojection. [#105034](https://github.com/openclaw/openclaw/pull/105034) 707 The bundled Codex plugin can complete backend requests again after updating... The bundled Codex plugin can complete backend requests again after updating its managed app-server runtime, with no model-picker or configuration migration required. [#106098](https://github.com/openclaw/openclaw/pull/106098) 708 OpenClaw's managed Codex workflow now uses app-server 0 OpenClaw's managed Codex workflow now uses app-server 0.143.0, and self-managed installations must use 0.143.0 or newer for protocol compatibility. [366258d](https://github.com/openclaw/openclaw/commit/366258dee6e4a3ea0bb04b1316e5a0c419c60188) Thanks @vincentkoc. 709 The managed Codex harness now surfaces supported GPT-5 The managed Codex harness now surfaces supported GPT-5.6 Sol, Terra, and Luna models returned by the account catalog and gives self-managed users current version guidance. [f80ce21](https://github.com/openclaw/openclaw/commit/f80ce219fcf0c5cbe9871b9ad05b7570fbfeba6e) Thanks @vincentkoc. 710 Managed Codex users on macOS, Linux, and Windows now receive app-server 0 Managed Codex users on macOS, Linux, and Windows now receive app-server 0.144.1 instead of 0.144.0. [5dcba9f](https://github.com/openclaw/openclaw/commit/5dcba9fae725c080b62c4b4e19533f5fcd59b964) Thanks @vincentkoc. 711 Codex-native delegation from OpenClaw threads now creates native task recor... Codex-native delegation from OpenClaw threads now creates native task records again, while unsupported custom Codex app-server versions fail startup with a clear minimum-version error. [#101221](https://github.com/openclaw/openclaw/pull/101221) 712 Codex sessions using `gpt-5 Codex sessions using `gpt-5.5-pro` or `gpt-5.4-pro` now clamp unsupported reasoning levels before the first turn, avoiding an immediate request rejection when live metadata is unavailable. [#101484](https://github.com/openclaw/openclaw/pull/101484) Thanks @zhangguiping-xydt. 713 Scheduled and CLI Codex runs with an explicit timeout longer than 30 minute... Scheduled and CLI Codex runs with an explicit timeout longer than 30 minutes can now use that full budget instead of being stopped by the terminal-idle guard. [#85296](https://github.com/openclaw/openclaw/pull/85296) Thanks @alkor2000, @vincentkoc. 714 A missing or hung local Codex tool result no longer switches the active ses... A missing or hung local Codex tool result no longer switches the active session to another provider that cannot resolve the local failure. [#95543](https://github.com/openclaw/openclaw/pull/95543) Thanks @mikasa0818. 715 Codex app-server runs with an invalid ChatGPT OAuth session now surface the... Codex app-server runs with an invalid ChatGPT OAuth session now surface the real sign-in error promptly instead of waiting for a misleading ten-second authentication timeout. [#100713](https://github.com/openclaw/openclaw/pull/100713) Thanks @lin-hongkuan. 716 Codex runs stopped by the guardian rejection limit now say why they ended,... Codex runs stopped by the guardian rejection limit now say why they ended, so operators do not have to mistake the result for a crash, cancellation, or generic interruption. [#101220](https://github.com/openclaw/openclaw/pull/101220) Thanks @darren2030. 717 Crestodian setup and repair chats on Codex-backed runs can now access the s... Crestodian setup and repair chats on Codex-backed runs can now access the status and repair tool they need instead of stopping with a missing-tool response. [#101281](https://github.com/openclaw/openclaw/pull/101281) 718 Shared Codex app-server clients now keep usage limits, auth cooldowns, thre... Shared Codex app-server clients now keep usage limits, auth cooldowns, thread subscriptions, and resumed connections tied to the account and conversation that actually owns them. [#101376](https://github.com/openclaw/openclaw/pull/101376) 719 Codex app-server stdout failures now end affected requests cleanly, while a... Codex app-server stdout failures now end affected requests cleanly, while a diagnostics-only stderr failure no longer interrupts an otherwise healthy turn. [#101505](https://github.com/openclaw/openclaw/pull/101505) Thanks @mushuiyu886, @vincentkoc. 720 Anthropic usage checks now cap unusually large error responses so a CDN, fi... Anthropic usage checks now cap unusually large error responses so a CDN, firewall, or proxy page cannot exhaust OpenClaw's memory. [#97614](https://github.com/openclaw/openclaw/pull/97614) Thanks @cxbasdev. 721 OpenAI and Codex users authenticated through the app server can again see t... OpenAI and Codex users authenticated through the app server can again see their five-hour and weekly quota windows in chat, CLI, and JSON status output. [#92520](https://github.com/openclaw/openclaw/pull/92520) Thanks @brokemac79. 722 OpenAI OAuth usage checks now cap oversized WHAM rate-limit responses befor... OpenAI OAuth usage checks now cap oversized WHAM rate-limit responses before they can destabilize the process. [#97702](https://github.com/openclaw/openclaw/pull/97702) Thanks @cxbasdev. 723 GitHub Copilot usage checks now contain oversized or endless endpoint respo... GitHub Copilot usage checks now contain oversized or endless endpoint responses as a usage error instead of buffering them indefinitely, while normal usage data still loads. [#96607](https://github.com/openclaw/openclaw/pull/96607) Thanks @alix-007. 724 OpenRouter cost tracking now caps unexpectedly large metadata responses and... OpenRouter cost tracking now caps unexpectedly large metadata responses and keeps the original streamed estimate instead of disrupting the agent turn. [#97490](https://github.com/openclaw/openclaw/pull/97490) Thanks @hugenshen. 725 MiniMax and other shared provider usage checks now fail safely on oversized... MiniMax and other shared provider usage checks now fail safely on oversized or malformed replies instead of buffering them without limit. [#97659](https://github.com/openclaw/openclaw/pull/97659) Thanks @cxbasdev, @vincentkoc. 726 OpenRouter completions that the provider bills at $0 now stay recorded as f... OpenRouter completions that the provider bills at $0 now stay recorded as free in transcripts, summaries, logs, and usage totals instead of being replaced with estimated catalog pricing. [#101177](https://github.com/openclaw/openclaw/pull/101177) 727 Amazon Bedrock adaptive-thinking Claude and Fable runs now honor configured... Amazon Bedrock adaptive-thinking Claude and Fable runs now honor configured high output-token limits for longer answers, reasoning, and tool calls. [#97343](https://github.com/openclaw/openclaw/pull/97343) Thanks @lilan0125, @prasithg. 728 Long, tool-heavy or media-heavy embedded-agent conversations now retain mor... Long, tool-heavy or media-heavy embedded-agent conversations now retain more prompt-cache reuse between turns, reducing repeated token processing, latency, and cost on prefix-cached providers. [#102610](https://github.com/openclaw/openclaw/pull/102610) Thanks @ugiezzz. 729 Nemotron 3 Super now exposes its full 1,048,576-token context budget in Ope... Nemotron 3 Super now exposes its full 1,048,576-token context budget in OpenClaw's bundled NVIDIA fallback catalog instead of compacting at the stale 262,144-token limit. [#98726](https://github.com/openclaw/openclaw/pull/98726) Thanks @eleqtrizit. 730 ChatGPT OAuth-backed Responses sessions now retain backend affinity across... ChatGPT OAuth-backed Responses sessions now retain backend affinity across turns, improving prompt-cache reuse and reducing repeated processing of the same conversation context. [#100233](https://github.com/openclaw/openclaw/pull/100233) Thanks @marvinthebored, @obviyus, @peetiegonzalez. 731 After `/model` changes a session's provider, `/status` and `session_status`... After `/model` changes a session's provider, `/status` and `session_status` now report that provider's usage, authentication, runtime, and context details rather than stale defaults. [#93384](https://github.com/openclaw/openclaw/pull/93384) Thanks @obviyus, @osolmaz, @rollingshmily, @samiralibabic, @zhangguiping-xydt. 732 Model-call traces now include prompt-size and per-call token usage details,... Model-call traces now include prompt-size and per-call token usage details, helping operators investigate cost and prompt growth without capturing raw content. [#95770](https://github.com/openclaw/openclaw/pull/95770) Thanks @amknight. 733 The diagnostics timeline now shows when provider model calls ran, how long... The diagnostics timeline now shows when provider model calls ran, how long they took, and whether they succeeded without recording prompt or response content. [7253552](https://github.com/openclaw/openclaw/commit/7253552c68d0ac8c6098126d373f185bb6df22a2) Thanks @vincentkoc. 734 QMD `search` and `vsearch` modes now skip the LLM reranker, reducing latenc... QMD `search` and `vsearch` modes now skip the LLM reranker, reducing latency and avoiding unnecessary GPU failures while full `query` mode keeps reranking. [#88887](https://github.com/openclaw/openclaw/pull/88887) Thanks @potterdigital. 735 Memory-wiki pages titled `Index` now remain stored, searchable, and retriev... Memory-wiki pages titled `Index` now remain stored, searchable, and retrievable instead of being hidden or overwritten by generated directory pages. [#94326](https://github.com/openclaw/openclaw/pull/94326) Thanks @vincentkoc, @yetval. 736 Active Memory now warns when recalled operational details may be outdated a... Active Memory now warns when recalled operational details may be outdated and clearly marks clipped summaries, so old or incomplete status is less likely to look current. [#95888](https://github.com/openclaw/openclaw/pull/95888) Thanks @spencer2211. 737 Memory-wiki pages in subfolders now appear in search, lookup, compiled inde... Memory-wiki pages in subfolders now appear in search, lookup, compiled indexes, digests, and vault counts just like pages at the top level. [#96022](https://github.com/openclaw/openclaw/pull/96022) Thanks @machine3at, @vincentkoc. 738 Large memory indexes can now return filtered matches beyond sqlite-vec's fi... Large memory indexes can now return filtered matches beyond sqlite-vec's first 4,096 candidates without failing or silently missing valid results. [#96157](https://github.com/openclaw/openclaw/pull/96157) Thanks @itsuzef, @vincentkoc. 739 Repeated QMD-backed `memory_search` and `openclaw memory search` requests c... Repeated QMD-backed `memory_search` and `openclaw memory search` requests can return faster after the first lookup, while diagnostics separate setup time from search time and missing collections still trigger repair. [#96655](https://github.com/openclaw/openclaw/pull/96655) Thanks @bek91. 740 Memory search now works with installed generic embedding plugins such as lo... Memory search now works with installed generic embedding plugins such as local llama.cpp, including their default model and connection details. [#97095](https://github.com/openclaw/openclaw/pull/97095) Thanks @849261680. 741 One memory-wiki page with broken YAML no longer blocks healthy pages from b... One memory-wiki page with broken YAML no longer blocks healthy pages from being searched, compiled, linted, counted, or updated. [#97177](https://github.com/openclaw/openclaw/pull/97177) Related [#96125](https://github.com/openclaw/openclaw/issues/96125). Thanks @cow11023, @sunnyshu0925. 742 Memory Wiki now marks claims with malformed explicit freshness timestamps a... Memory Wiki now marks claims with malformed explicit freshness timestamps as unknown instead of masking the bad metadata with the page date. [#97465](https://github.com/openclaw/openclaw/pull/97465) Thanks @ly-wang19. 743 Detailed `/status plugins` now warns when a configured memory embedding pro... Detailed `/status plugins` now warns when a configured memory embedding provider is unavailable and semantic recall has fallen back to keyword search. [#97968](https://github.com/openclaw/openclaw/pull/97968) Thanks @masatohoshino. 744 QMD memory recall now turns malformed or warning-filled mcporter output int... QMD memory recall now turns malformed or warning-filled mcporter output into a clear, filtered error instead of exposing raw subprocess text. [#98381](https://github.com/openclaw/openclaw/pull/98381) Thanks @miorbnli. 745 `memory_get` with `corpus=all` can now return an available wiki supplement... `memory_get` with `corpus=all` can now return an available wiki supplement when the requested memory file is missing instead of stopping with an empty result. [#100904](https://github.com/openclaw/openclaw/pull/100904) Thanks @mushuiyu886, @vincentkoc. 746 With `memorySearch.provider none`, OpenClaw now starts FTS-only memory without an unnecessary plugin capability scan. [fbf574a](https://github.com/openclaw/openclaw/commit/fbf574ad9db2658652e442aab4be3d597e1a9c14) 747 Interactive QMD memory searches with no matches now return an empty result... Interactive QMD memory searches with no matches now return an empty result promptly instead of appearing stuck during unnecessary index maintenance. [#90030](https://github.com/openclaw/openclaw/pull/90030) Related [#90023](https://github.com/openclaw/openclaw/issues/90023). Thanks @ruben2000de, @sahibzada-allahyar. 748 `openclaw doctor --fix` can now carry legacy Memory Core indexes from 2026 `openclaw doctor --fix` can now carry legacy Memory Core indexes from 2026.6.9 upgrades into the current store without forcing a full re-embed. [#95631](https://github.com/openclaw/openclaw/pull/95631) Thanks @mushuiyu886, @vincentkoc. 749 `openclaw memory status` now warns when session transcripts still need inde... `openclaw memory status` now warns when session transcripts still need indexing instead of incorrectly reporting memory as current. [#97857](https://github.com/openclaw/openclaw/pull/97857) Related [#97814](https://github.com/openclaw/openclaw/issues/97814). Thanks @che10x, @zw-xysk. 750 Memory Core now preserves short standalone concepts such as `kv` and `s3` i... Memory Core now preserves short standalone concepts such as `kv` and `s3` in tags, improving recall without matching them inside unrelated words. [#96304](https://github.com/openclaw/openclaw/pull/96304) Thanks @ly-wang19. 751 Memory-wiki bridge status now returns a usable warning instead of crashing... Memory-wiki bridge status now returns a usable warning instead of crashing on malformed plugin artifacts, and `readMemoryArtifacts: false` now reliably prevents those reads. [#100900](https://github.com/openclaw/openclaw/pull/100900) Thanks @huveewomg. 752 Wiki search and retrieval now explain when an older or partial memory plugi... Wiki search and retrieval now explain when an older or partial memory plugin lacks shared-search support and offer a practical workaround instead of exposing a raw TypeError. [#100902](https://github.com/openclaw/openclaw/pull/100902) Thanks @huveewomg, @vincentkoc, @xuanmingguo. 753 Memories containing emoji or supplementary CJK characters can now be indexe... Memories containing emoji or supplementary CJK characters can now be indexed without malformed text stalling the operation. [#101574](https://github.com/openclaw/openclaw/pull/101574) Thanks @jensenwang560-blip. 754 When both a primary memory read and its wiki supplement fail, `memory_get c... When both a primary memory read and its wiki supplement fail, `memory_get corpus=all` now returns the original structured read error instead of crashing the tool call. [#101902](https://github.com/openclaw/openclaw/pull/101902) Thanks @aniruddhaadak80, @vincentkoc, @zw-xysk. 755 Memory-index debug logs now show whether an embedding batch completed or fa... Memory-index debug logs now show whether an embedding batch completed or failed, making indexing problems easier to trace. [#94732](https://github.com/openclaw/openclaw/pull/94732) Thanks @doubleji817-lang, @xydt-tanshanshan. 756 `openclaw memory status --fix` now repairs session-corpus state without mis... `openclaw memory status --fix` now repairs session-corpus state without mistaking healthy daily-memory records for stale data. [#93389](https://github.com/openclaw/openclaw/pull/93389) Thanks @alix-007, @vincentkoc. 757 `openclaw memory status` no longer shows impossible session indexing totals... `openclaw memory status` no longer shows impossible session indexing totals where the indexed file count exceeds the total file count. [#95452](https://github.com/openclaw/openclaw/pull/95452) Thanks @buyitsydney, @liuhao1024. 758 Durable memory promotion now keeps OpenClaw's managed dreaming markers and... Durable memory promotion now keeps OpenClaw's managed dreaming markers and adjacent managed content out of `MEMORY.md` when a recalled range touches a block boundary. [#83718](https://github.com/openclaw/openclaw/pull/83718) Thanks @grifjef. 759 Inferred follow-up commitments now return to the queue after temporary mode... Inferred follow-up commitments now return to the queue after temporary model or network extraction failures, reducing missed reminders without duplicate processing. [#89817](https://github.com/openclaw/openclaw/pull/89817) Thanks @masatohoshino. 760 Memory-core light dreaming no longer repeats an unchanged work-summary bloc... Memory-core light dreaming no longer repeats an unchanged work-summary block in `DREAMS.md`, while genuine daily-note updates can still appear later. [#97446](https://github.com/openclaw/openclaw/pull/97446) Thanks @aaajiao, @qingminglong. 761 Memory Wiki lint now ignores link-looking text inside inline and fenced cod... Memory Wiki lint now ignores link-looking text inside inline and fenced code while continuing to report genuine broken links in prose. [#98095](https://github.com/openclaw/openclaw/pull/98095) Thanks @durambar, @vincentkoc, @zhangqueping. 762 Memory-wiki source updates now preserve hand-written Notes when a temporary... Memory-wiki source updates now preserve hand-written Notes when a temporary read failure prevents OpenClaw from safely loading the existing page. [#98360](https://github.com/openclaw/openclaw/pull/98360) Related [#98345](https://github.com/openclaw/openclaw/issues/98345). Thanks @qingminglong, @vincentkoc, @yetval. 763 Memory-wiki source sync can now recover when a page is missing or collides... Memory-wiki source sync can now recover when a page is missing or collides with a non-file, while preserving existing content when a retry remains unsafe. [#99276](https://github.com/openclaw/openclaw/pull/99276) Thanks @obviyus. 764 Memory Wiki imports now continue when a source page collides with a protect... Memory Wiki imports now continue when a source page collides with a protected vault entry instead of stopping the whole import. [76db9a3](https://github.com/openclaw/openclaw/commit/76db9a3376228db6a6f58cd705fc236aa697446c) Thanks @vincentkoc. 765 Newly promoted long-term memories now omit raw transcript, summary, session... Newly promoted long-term memories now omit raw transcript, summary, session-header, flush-prompt, and scoring clutter so useful notes are easier to find. [#94636](https://github.com/openclaw/openclaw/pull/94636) Thanks @josephur, @pinghe-learn, @tayoun. 766 Dreaming now keeps deleted or reset transcript archives and cron-created ch... Dreaming now keeps deleted or reset transcript archives and cron-created child conversations out of its learned session set, reducing duplicate history and automation noise without removing retained archives from historical search. [#96517](https://github.com/openclaw/openclaw/pull/96517) Thanks @adam-researchh, @jalehman, @xialonglee. 767 Memory Wiki import summaries now shorten ChatGPT text containing emoji with... Memory Wiki import summaries now shorten ChatGPT text containing emoji without leaving corrupted replacement characters. [#97362](https://github.com/openclaw/openclaw/pull/97362) Thanks @mushuiyu886. 768 Rerunning memory-wiki synthesis or ChatGPT imports no longer risks erasing... Rerunning memory-wiki synthesis or ChatGPT imports no longer risks erasing handwritten notes, frontmatter, or import state when an existing page cannot be read briefly. [#98787](https://github.com/openclaw/openclaw/pull/98787) Thanks @vincentkoc, @yetval. 769 Memory dreaming now records structured success or failure outcomes for ligh... Memory dreaming now records structured success or failure outcomes for light, REM, and deep phases so dashboards and health checks can monitor them reliably. [#97723](https://github.com/openclaw/openclaw/pull/97723) Thanks @lg320531124, @momothemage. 770 `openclaw wiki lint` now ignores wikilink-like patterns inside code example... `openclaw wiki lint` now ignores wikilink-like patterns inside code examples so real broken Memory Wiki links are easier to spot. [#97954](https://github.com/openclaw/openclaw/pull/97954) Thanks @durambar, @liuhao1024, @vincentkoc. 771 `openclaw wiki lint` now recognizes valid imported Obsidian links by title,... `openclaw wiki lint` now recognizes valid imported Obsidian links by title, slug, fragment-free path, or source-path suffix, reducing false broken-link warnings. [#100017](https://github.com/openclaw/openclaw/pull/100017) Thanks @ishangodawatta, @k-kerrigan, @vincentkoc. 772 Archived memories around user messages that begin with `[cron ]` remain searchable after a session reset or deletion, while genuine cron-generated archives stay hidden. [#101322](https://github.com/openclaw/openclaw/pull/101322) Thanks @ly-wang19. 773 After `/new` or `/reset`, the previous conversation remains available for d... After `/new` or `/reset`, the previous conversation remains available for daily memory summaries and full-history searches through the session-logs skill. [#71537](https://github.com/openclaw/openclaw/pull/71537) Thanks @injinj. 774 A group chat or Gateway session can now resume on the next visible request... A group chat or Gateway session can now resume on the next visible request after a failed, timed-out, or killed turn without requiring `/new` or manual session-file edits. [#89045](https://github.com/openclaw/openclaw/pull/89045) Thanks @jerry-xin. 775 Aborted or timed-out embedded runs now release their session write lock, so... Aborted or timed-out embedded runs now release their session write lock, so the next message can proceed without minutes of waiting or manual file cleanup. [#96100](https://github.com/openclaw/openclaw/pull/96100) Thanks @richwilson-bloom, @sallyom, @xialonglee. 776 Replies that span an automatic daily or idle reset now remain together in o... Replies that span an automatic daily or idle reset now remain together in one accessible transcript instead of losing later output. [#97164](https://github.com/openclaw/openclaw/pull/97164) Thanks @joshavant, @yetval. 777 Resuming work from a project now opens only that project's saved agent sess... Resuming work from a project now opens only that project's saved agent session, preventing unrelated transcripts from being mixed together. [#97785](https://github.com/openclaw/openclaw/pull/97785) Related [#96542](https://github.com/openclaw/openclaw/issues/96542). Thanks @qingminglong, @yetval. 778 Recurring provider-CLI cron jobs and local `openclaw agent` runs now keep t... Recurring provider-CLI cron jobs and local `openclaw agent` runs now keep their existing provider conversation across the daily reset boundary instead of silently losing context. [#98356](https://github.com/openclaw/openclaw/pull/98356) Thanks @yetval. 779 Discord, WebChat, and other ongoing conversations can keep receiving replie... Discord, WebChat, and other ongoing conversations can keep receiving replies when background activity touches the same session during reply startup, without a false initialization conflict or dropped message. [#98835](https://github.com/openclaw/openclaw/pull/98835) Related [#98672](https://github.com/openclaw/openclaw/issues/98672). Thanks @aaronfaby, @jalehman, @moguangyu5-design. 780 Resetting a multi-agent room now restores message delivery promptly instead... Resetting a multi-agent room now restores message delivery promptly instead of blocking most agents' acknowledgement and queued replies for several minutes. [#99091](https://github.com/openclaw/openclaw/pull/99091) Thanks @gorkem2020, @zengwen-dt. 781 Rapid follow-ups in the same chat no longer freeze both messages while the... Rapid follow-ups in the same chat no longer freeze both messages while the first automatic reply is finishing. [#99549](https://github.com/openclaw/openclaw/pull/99549) Thanks @shagrat2. 782 Claude CLI-backed interactive replies now keep their saved session more con... Claude CLI-backed interactive replies now keep their saved session more consistently, preserving continuity and reducing repeated full-history replay. [#99595](https://github.com/openclaw/openclaw/pull/99595) Related [#99372](https://github.com/openclaw/openclaw/issues/99372). Thanks @obviyus. 783 CLI-backed agents in multi-person group chats now retain conversational con... CLI-backed agents in multi-person group chats now retain conversational context when participants alternate, without expanding non-owner tool permissions. [#99640](https://github.com/openclaw/openclaw/pull/99640) Related [#99633](https://github.com/openclaw/openclaw/issues/99633). Thanks @obviyus. 784 CLI-backed group agents now keep one warm conversation across mentioned and... CLI-backed group agents now keep one warm conversation across mentioned and unmentioned follow-ups instead of resetting and losing context. [#99722](https://github.com/openclaw/openclaw/pull/99722) Related [#99696](https://github.com/openclaw/openclaw/issues/99696). Thanks @obviyus. 785 CLI-backed agents now keep conversation continuity across prompt-only chang... CLI-backed agents now keep conversation continuity across prompt-only changes, avoiding needless cold starts while still resetting when security or runtime conditions require it. [#99822](https://github.com/openclaw/openclaw/pull/99822) Related [#99729](https://github.com/openclaw/openclaw/issues/99729). Thanks @obviyus. 786 Temporary memory-maintenance failures no longer replace the agent reply, an... Temporary memory-maintenance failures no longer replace the agent reply, and persistently oversized sessions can recover in a fresh session while preserving the previous transcript. [#100618](https://github.com/openclaw/openclaw/pull/100618) Thanks @jerry-xin, @rhclaw. 787 A first command-only interaction in an auto-reply flow now keeps its sessio... A first command-only interaction in an auto-reply flow now keeps its session update even when no session row existed beforehand. [76d686c](https://github.com/openclaw/openclaw/commit/76d686cf61f29b4b26ef67066d0b88f405ddfe5c) 788 Sessions renamed with `/name` now keep that custom name in session lists in... Sessions renamed with `/name` now keep that custom name in session lists instead of reverting to an automatic title or UUID-like label. [#98841](https://github.com/openclaw/openclaw/pull/98841) Related [#98742](https://github.com/openclaw/openclaw/issues/98742). Thanks @bsg2000, @sunnyshu0925. 789 A successfully completed main-agent conversation now continues in the same... A successfully completed main-agent conversation now continues in the same session on the next message instead of unexpectedly resetting and archiving its transcript. [#99985](https://github.com/openclaw/openclaw/pull/99985) Thanks @sunnyshu0925. 790 Dashboard session labels and display names now remain attached when a sessi... Dashboard session labels and display names now remain attached when a session rolls over after a day or idle period. [#101576](https://github.com/openclaw/openclaw/pull/101576) Thanks @merlin-zhou, @zengwen-dt. 791 Claude CLI conversations that exhaust their context now recover into a fres... Claude CLI conversations that exhaust their context now recover into a fresh reseeded session automatically, and timeout retries retain the temporary files they need to complete. [#98934](https://github.com/openclaw/openclaw/pull/98934) Related [#98897](https://github.com/openclaw/openclaw/issues/98897). Thanks @obviyus. 792 Local Ollama-backed CLI agent turns can now continue when the context engin... Local Ollama-backed CLI agent turns can now continue when the context engine reports an already-compacted transcript, allowing the assistant or MCP tool result to reach the user. [#99136](https://github.com/openclaw/openclaw/pull/99136) Thanks @mushuiyu886, @peterskwang, @pkoserowski, @psedd. 793 Existing Codex sessions can resume their bound threads more reliably after... Existing Codex sessions can resume their bound threads more reliably after upgrades, resets, and compaction without depending on leftover transcript-side JSON files. [#101210](https://github.com/openclaw/openclaw/pull/101210) 794 A Codex reply delivered through `sourceReplyDeliveryMode "message_tool_only"` now completes its turn promptly instead of later ending as an incomplete reply. [#95942](https://github.com/openclaw/openclaw/pull/95942) Thanks @omarshahine. 795 Codex app-server installations using the retired `on-failure` approval poli... Codex app-server installations using the retired `on-failure` approval policy now upgrade to the supported `on-request` behavior without losing saved bindings. [70153f7](https://github.com/openclaw/openclaw/commit/70153f7f9c12be2ff025802c019e428047d1f579) Thanks @vincentkoc. 796 Existing Codex app-server conversations with dynamic tools can resume throu... Existing Codex app-server conversations with dynamic tools can resume through the tool-fingerprint format upgrade instead of starting an avoidable replacement thread. [3051748](https://github.com/openclaw/openclaw/commit/305174845f38f075bfd5096a0a4912b8d7d2559a) Thanks @vincentkoc. 797 Legacy Codex bindings with large tool or MCP configurations can now migrate... Legacy Codex bindings with large tool or MCP configurations can now migrate without overflowing plugin-state records or copying raw configuration secrets. [23228b6](https://github.com/openclaw/openclaw/commit/23228b67a47bf32fc9b662d13037757f51d329b8) Thanks @vincentkoc. 798 Upgraded Codex installations can now finish legacy binding migration and ar... Upgraded Codex installations can now finish legacy binding migration and archive old sidecars instead of repeatedly retaining them after an earlier partial import. [39fac06](https://github.com/openclaw/openclaw/commit/39fac06f48745dcd4d7a840f8261631614bb1926) Thanks @vincentkoc. 799 Codex sessions created in beta 5 can keep their existing conversation after... Codex sessions created in beta 5 can keep their existing conversation after upgrade when the user MCP configuration is unchanged, without retaining its authorization token. [272750d](https://github.com/openclaw/openclaw/commit/272750daed354029c1968dce7cd6747163e0957a) Thanks @vincentkoc. 800 Provider-owned CLI conversations now keep the same session and transcript a... Provider-owned CLI conversations now keep the same session and transcript across the daily default reset boundary unless an explicit reset policy or `/reset` applies. [#97931](https://github.com/openclaw/openclaw/pull/97931) Thanks @yetval. 801 New Codex-backed threads now preserve configured plugin apps, can activate... New Codex-backed threads now preserve configured plugin apps, can activate remote curated plugins, and run Guardian on the first eligible native OpenAI turn. [#98042](https://github.com/openclaw/openclaw/pull/98042) Thanks @kevinslin. 802 A stuck Claude CLI startup now fails only the affected turn instead of exit... A stuck Claude CLI startup now fails only the affected turn instead of exiting the Gateway, and heartbeat activity no longer causes the next user turn to lose its CLI conversation history. [#98933](https://github.com/openclaw/openclaw/pull/98933) Related [#98894](https://github.com/openclaw/openclaw/issues/98894), [#98895](https://github.com/openclaw/openclaw/issues/98895). Thanks @obviyus. 803 Claude CLI agent runs now fail clearly when messaging tools are unavailable... Claude CLI agent runs now fail clearly when messaging tools are unavailable, recover when Claude exits without a result, retain more long-session continuity, and clean up prompt images and failed preparation files. [#99159](https://github.com/openclaw/openclaw/pull/99159) Related [#98946](https://github.com/openclaw/openclaw/issues/98946). Thanks @obviyus. 804 The same-release Codex session-continuity work now covers app-server thread... The same-release Codex session-continuity work now covers app-server thread start and resume, with binding fingerprints kept bounded throughout. [78edf1c](https://github.com/openclaw/openclaw/commit/78edf1cec15c4a45881386b94e06c71c64f90fa4) Thanks @vincentkoc. 805 Shared group and channel transcripts now retain the sender ID, display name... Shared group and channel transcripts now retain the sender ID, display name, and username for each durable user turn, making later history and memory processing correctly attribute participants. [#90552](https://github.com/openclaw/openclaw/pull/90552) Thanks @pick-cat. 806 `/export-session` now warns when a CLI- or ACP-backed export contains only... `/export-session` now warns when a CLI- or ACP-backed export contains only user messages and points users to the backend transcript for missing assistant, tool, usage, and cost details. [#90867](https://github.com/openclaw/openclaw/pull/90867) Thanks @tank-x3, @vincentkoc, @xydigit-sj. 807 `openclaw export-trajectory` and `/export-trajectory` now include redacted... `openclaw export-trajectory` and `/export-trajectory` now include redacted messages from older version 1 sessions instead of producing a successful but empty transcript. [#93814](https://github.com/openclaw/openclaw/pull/93814) Thanks @yetval. 808 Session-memory files created around `/new` and `/reset` now keep one copy o... Session-memory files created around `/new` and `/reset` now keep one copy of each assistant reply instead of duplicating reasoning-model responses. [#94401](https://github.com/openclaw/openclaw/pull/94401) Thanks @sallyom, @sunnyshu0925. 809 Compacted agent history now lists genuine tool failures instead of repeated... Compacted agent history now lists genuine tool failures instead of repeatedly mislabeling successful subagent launches, including when older transcript records contain the incorrect error flag. [#96842](https://github.com/openclaw/openclaw/pull/96842) Thanks @nxmxbbd. 810 Invalid transcript entries now raise a visible write error instead of becom... Invalid transcript entries now raise a visible write error instead of becoming `undefined` JSONL lines that silently vanish after reload. [#97356](https://github.com/openclaw/openclaw/pull/97356) Thanks @miorbnli. 811 `openclaw sessions cleanup --fix-missing` now preserves fresh cron sessions... `openclaw sessions cleanup --fix-missing` now preserves fresh cron sessions with valid transcripts and clearly reports repaired entries. [#97495](https://github.com/openclaw/openclaw/pull/97495) Thanks @qingminglong. 812 Automatic recovery from provider role-ordering conflicts now archives the c... Automatic recovery from provider role-ordering conflicts now archives the complete prior transcript as a timestamped JSONL file before replaying a shorter tail. [#97544](https://github.com/openclaw/openclaw/pull/97544) Thanks @yungchentang. 813 Compacted group conversations now retain identical long messages from diffe... Compacted group conversations now retain identical long messages from different participants while still removing accidental duplicate retries from the same sender. [#98336](https://github.com/openclaw/openclaw/pull/98336) Thanks @sunnyshu0925, @yetval. 814 Transcript summary and import reads now close files reliably after malforme... Transcript summary and import reads now close files reliably after malformed data, preventing long-running processes from gradually exhausting file handles. [#98493](https://github.com/openclaw/openclaw/pull/98493) Related [#98467](https://github.com/openclaw/openclaw/issues/98467). Thanks @wangmiao0668000666, @zhanglei99586. 815 Older or imported sessions with plain-string assistant messages now replay... Older or imported sessions with plain-string assistant messages now replay correctly across provider and streaming paths instead of sending malformed conversation history. [#98908](https://github.com/openclaw/openclaw/pull/98908) Thanks @obviyus. 816 Claude CLI chat history reloads no longer display OpenClaw's internal resee... Claude CLI chat history reloads no longer display OpenClaw's internal reseed wrapper as if it were a message the user typed. [#99653](https://github.com/openclaw/openclaw/pull/99653) Related [#99646](https://github.com/openclaw/openclaw/issues/99646). Thanks @harjothkhara, @jeehut, @vincentkoc, @zoowh. 817 Transcript-backed history now treats a missing file as empty while reportin... Transcript-backed history now treats a missing file as empty while reporting real access, directory, or stream failures cleanly instead of leaving partial or unhandled results. [#100524](https://github.com/openclaw/openclaw/pull/100524) Thanks @cxbasdev, @zhanglei99586. 818 Transient transcript read failures no longer destabilize session-log diagno... Transient transcript read failures no longer destabilize session-log diagnostics or let an incomplete usage scan overwrite the last complete cost cache as though it were current. [#101062](https://github.com/openclaw/openclaw/pull/101062) Thanks @cxbasdev, @vincentkoc. 819 Malformed transcript rows now produce an aggregate warning with skipped and... Malformed transcript rows now produce an aggregate warning with skipped and loaded counts while the remaining usable session history continues to load. [#98669](https://github.com/openclaw/openclaw/pull/98669) Thanks @cxbasdev. 820 Transcript tools can now identify channel delivery mirrors as OpenClaw book... Transcript tools can now identify channel delivery mirrors as OpenClaw bookkeeping rather than mistaking them for OpenAI Responses output. [#99855](https://github.com/openclaw/openclaw/pull/99855) Thanks @vincentkoc. 821 Debug-proxy ACP runs now shut down cleanly, mark capture sessions finished,... Debug-proxy ACP runs now shut down cleanly, mark capture sessions finished, and close their capture databases without reporting a spurious database error. [#100827](https://github.com/openclaw/openclaw/pull/100827) Thanks @amknight. 822 `openclaw sessions tail` now rejects oversized trajectory snapshots and upd... `openclaw sessions tail` now rejects oversized trajectory snapshots and updates with a clear limit error before they can exhaust memory. [#101450](https://github.com/openclaw/openclaw/pull/101450) Thanks @cxbasdev, @vincentkoc. 823 Long usage and session log messages now truncate emoji cleanly instead of d... Long usage and session log messages now truncate emoji cleanly instead of displaying malformed character artifacts. [#101517](https://github.com/openclaw/openclaw/pull/101517) Thanks @maweibin. 824 Reopened sessions can now replay older string or single-object tool results... Reopened sessions can now replay older string or single-object tool results correctly instead of treating successful output as empty or failing on its stored shape. [#98891](https://github.com/openclaw/openclaw/pull/98891) Related [#98825](https://github.com/openclaw/openclaw/issues/98825). Thanks @obviyus. 825 Agents in long-running WebChat, Discord, and other direct sessions can keep... Agents in long-running WebChat, Discord, and other direct sessions can keep reading fresh command, file, browser, and status output instead of seeing it disappear or turn into an image placeholder. [#98955](https://github.com/openclaw/openclaw/pull/98955) Related [#98874](https://github.com/openclaw/openclaw/issues/98874). Thanks @lamkan0210, @momothemage. 826 Imported Claude CLI history now keeps image-only and attachment-bearing tur... Imported Claude CLI history now keeps image-only and attachment-bearing turns visible when removing empty legacy reseed text. [#99839](https://github.com/openclaw/openclaw/pull/99839) Thanks @vincentkoc. 827 Claude CLI model fallback now carries the prior tool-call trail alongside t... Claude CLI model fallback now carries the prior tool-call trail alongside tool results, giving the replacement model enough context to continue coherently. [#99851](https://github.com/openclaw/openclaw/pull/99851) Thanks @vincentkoc. 828 Long-running agents can now recover full command output and truncated `web_... Long-running agents can now recover full command output and truncated `web_fetch` content after history cleanup, reducing repeated expensive work and lost page context. [#100135](https://github.com/openclaw/openclaw/pull/100135) Thanks @obviyus. 829 Embedded agents now receive well-formed summaries of long media or JSON val... Embedded agents now receive well-formed summaries of long media or JSON values instead of broken characters at Unicode truncation boundaries. [#101311](https://github.com/openclaw/openclaw/pull/101311) Thanks @alix-007. 830 Media-provider audit details containing emoji now remain valid and readable... Media-provider audit details containing emoji now remain valid and readable when shortened, instead of ending with malformed characters. [#101298](https://github.com/openclaw/openclaw/pull/101298) Thanks @alix-007. 831 Long agent prompt data containing emoji or other paired Unicode characters... Long agent prompt data containing emoji or other paired Unicode characters now stays well-formed when capped, avoiding broken text in agent and automation context. [#101303](https://github.com/openclaw/openclaw/pull/101303) Thanks @alix-007. 832 Embedded agents now retain configured compaction reserve limits when runtim... Embedded agents now retain configured compaction reserve limits when runtime safeguards save settings, reducing unexpected context-budget shrinkage during long work. [#92237](https://github.com/openclaw/openclaw/pull/92237) Thanks @sercada. 833 Telling an agent to remember a preference no longer triggers the unrelated... Telling an agent to remember a preference no longer triggers the unrelated warning used for promises to schedule an automatic reminder. [#93862](https://github.com/openclaw/openclaw/pull/93862) Thanks @arkyu2077. 834 Sessions with large command output or summaries now compact before exceedin... Sessions with large command output or summaries now compact before exceeding the model context, avoiding failed provider requests and misleading token budgets. [#97861](https://github.com/openclaw/openclaw/pull/97861) Thanks @yetval. 835 Long tool-heavy or compacted sessions now budget the real size of command o... Long tool-heavy or compacted sessions now budget the real size of command output and summaries before sending a prompt, reducing context overflow failures. [#97928](https://github.com/openclaw/openclaw/pull/97928) Related [#97927](https://github.com/openclaw/openclaw/issues/97927). Thanks @liuhao1024, @yetval. 836 Edge-case fixes now preserve literal memory text and valid Unicode, improve... Edge-case fixes now preserve literal memory text and valid Unicode, improve voice-call cleanup and port checks, report Claude models and context limits accurately, and retain useful ClickClack connection errors. [#100204](https://github.com/openclaw/openclaw/pull/100204) Thanks @cxbasdev, @harjothkhara, @lilan0125, @lin-hongkuan, @liuhao1024, @mikasa0818, @pandah97, @sunlit-deng, @zoowh. 837 Fresh Claude CLI workspaces now run a pending `BOOTSTRAP Fresh Claude CLI workspaces now run a pending `BOOTSTRAP.md` on the first reply so required identity, memory, and setup steps are completed before normal conversation. [#100560](https://github.com/openclaw/openclaw/pull/100560) Thanks @bill-starfoundry, @kruegerb, @vincentkoc. 838 Long-running agents are less likely to lose workspace instructions such as... Long-running agents are less likely to lose workspace instructions such as `AGENTS.md`, `SOUL.md`, or `MEMORY.md` for a turn during a temporary filesystem error. [#100910](https://github.com/openclaw/openclaw/pull/100910) Thanks @masatohoshino. 839 Embedded agent runs that omit a session key now retain the intended fallbac... Embedded agent runs that omit a session key now retain the intended fallback session context more reliably. [31a65e0](https://github.com/openclaw/openclaw/commit/31a65e0647ae85eb4c9048051145f07003722caf) Thanks @vincentkoc. 840 A malformed custom tool in realtime Talk no longer removes the built-in con... A malformed custom tool in realtime Talk no longer removes the built-in consult tool or other valid custom tools from the session. [170150a](https://github.com/openclaw/openclaw/commit/170150a306e39204ebe1ab7be47450b73005de1f) Thanks @vincentkoc. 841 Local-model conversations now retain reusable prompt work when switching be... Local-model conversations now retain reusable prompt work when switching between interactive chats and background jobs, avoiding repeated multi-minute warm-up delays. [#98267](https://github.com/openclaw/openclaw/pull/98267) Related [#98261](https://github.com/openclaw/openclaw/issues/98261). Thanks @headbouyjb. 842 A response interrupted mid-tool-call no longer runs or saves that incomplet... A response interrupted mid-tool-call no longer runs or saves that incomplete action, preventing accidental child sessions and other unintended side effects. [#97140](https://github.com/openclaw/openclaw/pull/97140) Thanks @galiniliev. 843 Agents running on macOS 26 now receive the macOS product version in their r... Agents running on macOS 26 now receive the macOS product version in their runtime prompt instead of the Darwin kernel version. [#95225](https://github.com/openclaw/openclaw/pull/95225) Thanks @sunlit-deng. 844 Level directives such as `/verbose` and `/think` no longer remove the first... Level directives such as `/verbose` and `/think` no longer remove the first word of the user's message when both are sent together. [#97929](https://github.com/openclaw/openclaw/pull/97929) Thanks @yetval. 845 Malformed surrogate HTML entities in provider output no longer corrupt agen... Malformed surrogate HTML entities in provider output no longer corrupt agent tool arguments, transcripts, or URLs, while legitimate entities and emoji still decode normally. [#99564](https://github.com/openclaw/openclaw/pull/99564) Thanks @mikasa0818. 846 Leaving one answer blank in a multi-question prompt no longer shifts the re... Leaving one answer blank in a multi-question prompt no longer shifts the remaining typed answers onto the wrong questions. [#100832](https://github.com/openclaw/openclaw/pull/100832) Thanks @machine3at. 847 ACP runtime controls can now truly clear saved model, thinking, working-dir... ACP runtime controls can now truly clear saved model, thinking, working-directory, permission, timeout, mode, and backend-extra settings so later turns do not reuse stale values. [#101044](https://github.com/openclaw/openclaw/pull/101044) Thanks @mushuiyu886. 848 Skill Workshop sessions now carry a clearer prompt with about 1 Skill Workshop sessions now carry a clearer prompt with about 1.8KB less repeated prompt and schema overhead while retaining the same reviewable proposal flow. [#100481](https://github.com/openclaw/openclaw/pull/100481) 849 Prompt caching and cache traces now fingerprint malformed incoming text con... Prompt caching and cache traces now fingerprint malformed incoming text consistently with the cleaned text providers receive, avoiding needless cache misses and misleading diagnostics. [#101009](https://github.com/openclaw/openclaw/pull/101009) Thanks @qingminglong. 850 Operators now receive `payload Operators now receive `payload.large` or `truncated` diagnostics and an accurate count whenever `chat.history` omits older messages, making hidden history trimming visible without changing client responses. [#96788](https://github.com/openclaw/openclaw/pull/96788) Thanks @zengwen-dt. 851 With memory flush enabled, important conversation context now gets a chance... With memory flush enabled, important conversation context now gets a chance to reach durable memory before automatic compaction, reducing silent gaps in saved notes. [#84792](https://github.com/openclaw/openclaw/pull/84792) Thanks @turbotheturtle. 852 Long CJK-heavy sessions using a context engine such as lossless-claw no lon... Long CJK-heavy sessions using a context engine such as lossless-claw no longer stop on a false `prompt too large` precheck after the engine has already managed the prompt. [#95342](https://github.com/openclaw/openclaw/pull/95342) Thanks @jalehman, @mpz4life. 853 Large Chinese, Japanese, and Korean tool results are now estimated more acc... Large Chinese, Japanese, and Korean tool results are now estimated more accurately, reducing false context-overflow interruptions and premature compaction. [#95447](https://github.com/openclaw/openclaw/pull/95447) Thanks @moguangyu5-design, @vincentkoc. 854 Prompts containing fullwidth East Asian characters now receive more accurat... Prompts containing fullwidth East Asian characters now receive more accurate size estimates, allowing context management to start before an oversized request reaches the model. [#96442](https://github.com/openclaw/openclaw/pull/96442) Thanks @lin-hongkuan. 855 Long conversations now recover compaction after transient provider disconne... Long conversations now recover compaction after transient provider disconnects instead of replacing useful history with a degraded placeholder summary. [#97504](https://github.com/openclaw/openclaw/pull/97504) Thanks @hugenshen. 856 Long conversations using `historyLimit` or `dmHistoryLimit` now retain thei... Long conversations using `historyLimit` or `dmHistoryLimit` now retain their saved earlier summary after compaction, helping the assistant remember prior context. [#97591](https://github.com/openclaw/openclaw/pull/97591) Thanks @liuhao1024, @yetval. 857 Long Codex conversations with heavy tool use can now compact at a real hist... Long Codex conversations with heavy tool use can now compact at a real history boundary and continue with relevant tool results summarized instead of retaining the full transcript. [#99391](https://github.com/openclaw/openclaw/pull/99391) Related [#99375](https://github.com/openclaw/openclaw/issues/99375). Thanks @imchloe92, @lzy3538. 858 Local-model sessions now retain auto-compaction bookkeeping, reducing repea... Local-model sessions now retain auto-compaction bookkeeping, reducing repeated context refills and the unresponsive behavior they could cause. [#99678](https://github.com/openclaw/openclaw/pull/99678) Related [#99677](https://github.com/openclaw/openclaw/issues/99677). Thanks @headbouyjb, @vincentkoc. 859 Long, tool-heavy agent sessions now preserve the newest command, file, or b... Long, tool-heavy agent sessions now preserve the newest command, file, or browser result for the model while shortening older history first. [#99756](https://github.com/openclaw/openclaw/pull/99756) Thanks @acosx. 860 Long cached Anthropic tool sessions now compact near the configured context... Long cached Anthropic tool sessions now compact near the configured context threshold instead of interrupting work early because cumulative cache tokens looked like live context. [#99864](https://github.com/openclaw/openclaw/pull/99864) Thanks @jrex-jooni, @lzy3538, @vincentkoc. 861 Long-lived agents with large context windows now retain fresh tool output,... Long-lived agents with large context windows now retain fresh tool output, compact under aggregate pressure, and warn users to run `/compact` or `/new` if pressure persists. [#100077](https://github.com/openclaw/openclaw/pull/100077) Thanks @obviyus. 862 Small-context local models can now begin and continue conversations without... Small-context local models can now begin and continue conversations without immediately entering an overflow-compaction loop before useful prompt space is available. [#100621](https://github.com/openclaw/openclaw/pull/100621) Thanks @vincentkoc. 863 Long sessions that compact in stages now preserve clearer older-to-newer or... Long sessions that compact in stages now preserve clearer older-to-newer ordering when summaries are combined, reducing the chance that stale context appears equally recent. [#100684](https://github.com/openclaw/openclaw/pull/100684) Thanks @vincentkoc, @zw-xysk. 864 Context-engine plugins can now identify the exact session that continues af... Context-engine plugins can now identify the exact session that continues after compaction while older integrations using `sessionFile` remain compatible. [#101182](https://github.com/openclaw/openclaw/pull/101182) Thanks @jalehman. 865 Preparing a reset for a long-running session now avoids scanning the entire... Preparing a reset for a long-running session now avoids scanning the entire transcript, reducing startup file activity and memory use as history grows. [#99335](https://github.com/openclaw/openclaw/pull/99335) Thanks @gmschasiepen, @momothemage. 866 Gateway and embedded TUI startup now reclaim old session temporary files le... Gateway and embedded TUI startup now reclaim old session temporary files left by hard shutdowns, reducing hidden disk growth while preserving fresh or potentially recoverable state. [#90503](https://github.com/openclaw/openclaw/pull/90503) Thanks @sahibzada-allahyar. 867 Long-running gateways can clear stale one-shot model-check sessions before... Long-running gateways can clear stale one-shot model-check sessions before they crowd out real conversation history, with dedicated CLI reporting for review. [#91057](https://github.com/openclaw/openclaw/pull/91057) Thanks @jalehman, @wangwllu. 868 Mac users now get stronger protection for local OpenClaw SQLite data after... Mac users now get stronger protection for local OpenClaw SQLite data after abrupt power loss or an operating-system crash, with no configuration change. [#99067](https://github.com/openclaw/openclaw/pull/99067) Thanks @ooiuuii. 869 Session-memory diagnostics now show the correct workspace and memory-file p... Session-memory diagnostics now show the correct workspace and memory-file paths for sibling directories whose names merely resemble the user's home path. [#101577](https://github.com/openclaw/openclaw/pull/101577) Thanks @cxbasdev. 870 Timed-out cron jobs, expired agent requests, and disconnected HTTP clients... Timed-out cron jobs, expired agent requests, and disconnected HTTP clients now stop promptly instead of spending more time and provider calls on model fallback. [#62682](https://github.com/openclaw/openclaw/pull/62682) Thanks @altaywtf, @cinapbot, @simonusa. 871 Channel replies can now continue as soon as an embedded-agent turn finishes... Channel replies can now continue as soon as an embedded-agent turn finishes instead of waiting roughly 50 seconds for post-run authentication bookkeeping. [#85829](https://github.com/openclaw/openclaw/pull/85829) Thanks @turbotheturtle. 872 Anthropic sessions stuck on a thinking-signature replay error can now retry... Anthropic sessions stuck on a thinking-signature replay error can now retry once without invalid thinking blocks and continue without `/new` or transcript repair. [#95430](https://github.com/openclaw/openclaw/pull/95430) Related [#95429](https://github.com/openclaw/openclaw/issues/95429). Thanks @alexelgier, @lzyyzznl, @vincentkoc. 873 Codex-backed runs can now deliver a completed final answer instead of timin... Codex-backed runs can now deliver a completed final answer instead of timing out or appearing aborted when the final completion event is missing. [#99217](https://github.com/openclaw/openclaw/pull/99217) Thanks @100yenadmin, @fuller-stack-dev, @sedrak-hovhannisyan. 874 Interactive chat requests that end in a terminal failure now receive one vi... Interactive chat requests that end in a terminal failure now receive one visible error response instead of appearing to be ignored. [#99304](https://github.com/openclaw/openclaw/pull/99304) Thanks @grox2012, @moeedahmed. 875 Agent sessions are less likely to lose output, alter unrelated formatting,... Agent sessions are less likely to lose output, alter unrelated formatting, stall after temporary provider errors, reject BMP images, or drop longer ChatGPT connections. [#99949](https://github.com/openclaw/openclaw/pull/99949) 876 Long Claude CLI-backed runs now show honest `Thinking Long Claude CLI-backed runs now show honest `Thinking... (~N tokens)` activity for direct and queued work instead of appearing stalled when readable reasoning text is unavailable. [#100148](https://github.com/openclaw/openclaw/pull/100148) Thanks @obviyus. 877 Interactive turns that truly end without visible output now send a clear fa... Interactive turns that truly end without visible output now send a clear failure reply, while intentional silence and already-completed actions remain quiet. [#100474](https://github.com/openclaw/openclaw/pull/100474) 878 Completed answers from tool-using tasks now reach the user instead of being... Completed answers from tool-using tasks now reach the user instead of being replaced by an incomplete-turn error, with run metadata attached to the same final response. [#100655](https://github.com/openclaw/openclaw/pull/100655) Thanks @liuwqgit. 879 Using `/stop` during a late-aborting prompt no longer leaves a stale sessio... Using `/stop` during a late-aborting prompt no longer leaves a stale session lock that blocks the next turn in the same conversation. [f8016c4](https://github.com/openclaw/openclaw/commit/f8016c44a4ba44ba2865938bcb4f7248a91d76fe) 880 Long agent runs can now resume from a valid conversation boundary after com... Long agent runs can now resume from a valid conversation boundary after compaction recovery instead of wedging or incorrectly demoting the selected model. [486033b](https://github.com/openclaw/openclaw/commit/486033b18344d134d089e654ab0dbb278ce69008) Thanks @mettlyz11, @neltomw, @obviyus. 881 Embedded agent jobs with an explicitly longer timeout now keep their lane u... Embedded agent jobs with an explicitly longer timeout now keep their lane until that requested deadline instead of being recovered at the default limit. [1437512](https://github.com/openclaw/openclaw/commit/143751282c60a34a6e2ad6c5629f421441929993) Thanks @vincentkoc. 882 Mobile, WebChat, consult, and other `chat Mobile, WebChat, consult, and other `chat.send` clients can apply a one-time thinking level without losing the assistant reply or having the message mistaken for a text command. [#98855](https://github.com/openclaw/openclaw/pull/98855) Thanks @jesse-merhi. 883 A wedged provider call now releases its embedded agent lane on a bounded wa... A wedged provider call now releases its embedded agent lane on a bounded watchdog instead of indefinitely blocking queued work when run timeouts are disabled. [ec28935](https://github.com/openclaw/openclaw/commit/ec289357a450f50491723a86a8a771f5d512541c) Thanks @arismontclair, @obviyus, @patelmm79. 884 Gateway conversations with an orphaned active task can now recover through... Gateway conversations with an orphaned active task can now recover through diagnostics instead of leaving later turns blocked until restart. [b1da734](https://github.com/openclaw/openclaw/commit/b1da734a1e7d5b608d6fccc4b2c0b3f2c9dc9347) Thanks @arismontclair, @obviyus, @ralf003. 885 An agent no longer stays silent after compaction when a plugin's final-answ... An agent no longer stays silent after compaction when a plugin's final-answer hook hangs; OpenClaw times out the hook and still delivers the response. [b2baf79](https://github.com/openclaw/openclaw/commit/b2baf799b41edce512b1945b6dec3ad637b9c814) Thanks @dserious, @obviyus, @villa-feng. 886 Very long agent conversations are less likely to loop through failed overfl... Very long agent conversations are less likely to loop through failed overflow recovery because compaction now reflects the prompt OpenClaw actually prepared. [#101181](https://github.com/openclaw/openclaw/pull/101181) Thanks @jalehman. 887 With `messages With `messages.suppressToolErrors` enabled, tool failures no longer leak into chat as progress updates while normal progress and final replies continue. [#98063](https://github.com/openclaw/openclaw/pull/98063) Thanks @amittell, @moeedahmed. 888 Interactive and queued turns that finish without a visible answer now retur... Interactive and queued turns that finish without a visible answer now return a clear, sanitized failure message instead of leaving the chat looking stuck. [#100456](https://github.com/openclaw/openclaw/pull/100456) Thanks @mushuiyu886. 889 Legacy subagent sessions now follow their actual nesting level, so nested-a... Legacy subagent sessions now follow their actual nesting level, so nested-agent limits and controls no longer fall back to top-level behavior. [#54593](https://github.com/openclaw/openclaw/pull/54593) Thanks @ruanrrn. 890 Subagent completion notices now arrive once instead of being repeated when... Subagent completion notices now arrive once instead of being repeated when the requesting session changes during delivery. [#92274](https://github.com/openclaw/openclaw/pull/92274) Related [#91527](https://github.com/openclaw/openclaw/issues/91527). Thanks @fsdwen, @obviyus, @zackchiutw. 891 Successful embedded-agent subagent launches now remain successful in transc... Successful embedded-agent subagent launches now remain successful in transcripts and later compaction summaries instead of being recorded as tool failures, while real launch failures stay visible. [#96851](https://github.com/openclaw/openclaw/pull/96851) Thanks @neomail2, @parveshsaini. 892 Codex-runtime transcripts and compaction summaries now keep successful suba... Codex-runtime transcripts and compaction summaries now keep successful subagent launches and goal operations out of failure records, while genuine failures remain visible and accepted-launch hooks can run. [#96856](https://github.com/openclaw/openclaw/pull/96856) Thanks @nxmxbbd. 893 Successfully started subagents now remain visible in `/subagents list` and... Successfully started subagents now remain visible in `/subagents list` and `subagents(action="list")`, including when different sessions own control and completion. [#99410](https://github.com/openclaw/openclaw/pull/99410) Related [#75593](https://github.com/openclaw/openclaw/issues/75593). Thanks @aaajiao, @sheyanmin. 894 Codex app-server agents can again list allowed agents, spawn OpenClaw or AC... Codex app-server agents can again list allowed agents, spawn OpenClaw or ACP subagents, and yield during delegated work without resumed heartbeats hitting incompatible tool definitions. [#99561](https://github.com/openclaw/openclaw/pull/99561) Related [#99464](https://github.com/openclaw/openclaw/issues/99464). Thanks @100yenadmin, @joshavant. 895 Requester agents now receive a follow-up when an accepted `sessions_send` d... Requester agents now receive a follow-up when an accepted `sessions_send` delivery later fails because the target session is locked, so they can retry or choose another route. [#99907](https://github.com/openclaw/openclaw/pull/99907) Thanks @849261680, @alex-heyuqing. 896 Sub-agents and other HTTP loopback MCP clients can again receive browser sc... Sub-agents and other HTTP loopback MCP clients can again receive browser screenshots and valid image or embedded-resource results without schema failures. [#100336](https://github.com/openclaw/openclaw/pull/100336) Thanks @tzy-17. 897 A yielded Codex native subagent's completion now reaches its parent run bef... A yielded Codex native subagent's completion now reaches its parent run before the shared app-server connection is cleaned up. [2f89de8](https://github.com/openclaw/openclaw/commit/2f89de81655accf71f5fac5cdabcdf0c3488eab7) Thanks @vincentkoc. 898 Large agent and subagent workloads now place less memory pressure on the Ga... Large agent and subagent workloads now place less memory pressure on the Gateway because completed run snapshots are bounded while results still remain available to active waiters. [#77973](https://github.com/openclaw/openclaw/pull/77973) Related [#77976](https://github.com/openclaw/openclaw/issues/77976). Thanks @fede-kamel, @vincentkoc. 899 Parent sessions waiting on a subagent now receive the subagent's actual har... Parent sessions waiting on a subagent now receive the subagent's actual hard-timeout phase and timestamps instead of a generic timeout. [#89367](https://github.com/openclaw/openclaw/pull/89367) Thanks @pick-cat. 900 Malformed cyclic attachments can no longer crash subagent delivery-evidence... Malformed cyclic attachments can no longer crash subagent delivery-evidence collection, so the reply handoff completes and still returns reachable media URLs. [#97041](https://github.com/openclaw/openclaw/pull/97041) Thanks @pick-cat. 901 A parent session waiting on several subagents now resumes and returns their... A parent session waiting on several subagents now resumes and returns their combined results when the last outstanding work finishes, without requiring the user to send another message. [#97090](https://github.com/openclaw/openclaw/pull/97090) Thanks @galiniliev. 902 Manually spawned ACP child runs now appear once in the task ledger instead... Manually spawned ACP child runs now appear once in the task ledger instead of creating duplicate requester-visible rows. [#97131](https://github.com/openclaw/openclaw/pull/97131) Thanks @moeedahmed. 903 Cancelling an ACP task from the CLI now reaches the live Gateway-owned run,... Cancelling an ACP task from the CLI now reaches the live Gateway-owned run, reports real failures, and avoids duplicate active task rows. [#97352](https://github.com/openclaw/openclaw/pull/97352) Thanks @aliahnaf2013-max. 904 Stopping a subagent now clears its running task reliably and prevents late... Stopping a subagent now clears its running task reliably and prevents late completion races from reviving or overwriting the canceled state. [#99806](https://github.com/openclaw/openclaw/pull/99806) Thanks @masatohoshino, @timofa. 905 After a Gateway restart, a redirected subagent now continues the user's new... After a Gateway restart, a redirected subagent now continues the user's newest instruction instead of returning to stale work. [7b5d86e](https://github.com/openclaw/openclaw/commit/7b5d86e89a5f74bd4c9bac1453d045e4c415a367) Thanks @amittell. 906 ACP run-to-session lookups now return the current active run instead of a s... ACP run-to-session lookups now return the current active run instead of a stale association from an older run. [#96427](https://github.com/openclaw/openclaw/pull/96427) Thanks @lin-hongkuan. 907 Parent sessions no longer repeat an earlier child-agent progress message wh... Parent sessions no longer repeat an earlier child-agent progress message when the child later reports completion. [#101042](https://github.com/openclaw/openclaw/pull/101042) Thanks @mushuiyu886. 908 Isolated cron jobs can announce a cross-session result without feeding the... Isolated cron jobs can announce a cross-session result without feeding the recipient's reply back into the cron run and creating duplicate message loops. [#92283](https://github.com/openclaw/openclaw/pull/92283) Related [#92257](https://github.com/openclaw/openclaw/issues/92257). Thanks @harjothkhara, @nailujac, @vincentkoc. 909 Agents can now read structured JSON and resource tool results during provid... Agents can now read structured JSON and resource tool results during provider replay instead of receiving an empty result or generic media placeholder. [#97742](https://github.com/openclaw/openclaw/pull/97742) Thanks @obviyus. 910 Images attached to a CLI-backed prompt now survive embedded-model fallback,... Images attached to a CLI-backed prompt now survive embedded-model fallback, preserving the visual context needed to answer. [#99891](https://github.com/openclaw/openclaw/pull/99891) Thanks @vincentkoc. 911 Messages mixing inline and offloaded images now preserve every attachment p... Messages mixing inline and offloaded images now preserve every attachment position so model instructions that depend on sequence remain accurate. [#99902](https://github.com/openclaw/openclaw/pull/99902) Thanks @vincentkoc. 912 Images from the current prompt now reach CLI fallback attempts in the right... Images from the current prompt now reach CLI fallback attempts in the right order, without pulling stale image references from earlier retries or history. [#100035](https://github.com/openclaw/openclaw/pull/100035) Thanks @vincentkoc. 913 Batched media replies can now finish successfully after delivery without a... Batched media replies can now finish successfully after delivery without a misleading session-change failure, while active conversation ownership checks remain enforced. [#100490](https://github.com/openclaw/openclaw/pull/100490) Thanks @scotthuang. 914 Sandboxed auto-replies now wait for remote media copied over SCP to finish... Sandboxed auto-replies now wait for remote media copied over SCP to finish and report transfer failures without crashing or cleaning up too early. [#100861](https://github.com/openclaw/openclaw/pull/100861) Thanks @cxbasdev. 915 Useful JSON, resource data, and CLI tool results now remain visible in tran... Useful JSON, resource data, and CLI tool results now remain visible in transcripts instead of disappearing behind an attachment placeholder. [#97268](https://github.com/openclaw/openclaw/pull/97268) 916 An empty non-image tool result no longer becomes `(see attached image)` in... An empty non-image tool result no longer becomes `(see attached image)` in OpenAI-compatible agent context, avoiding misleading follow-up behavior. [#97423](https://github.com/openclaw/openclaw/pull/97423) Thanks @scribe-dandelion-cult. 917 Gateway event-delivery failures now produce actionable warnings instead of... Gateway event-delivery failures now produce actionable warnings instead of unexplained process-level promise rejections, while unrelated subscriptions keep running. [#100401](https://github.com/openclaw/openclaw/pull/100401) Thanks @cxbasdev. 918 Discord now presents commentary, reasoning, and tool activity in a clearer... Discord now presents commentary, reasoning, and tool activity in a clearer sequence across queued turns, while loopback MCP clients can attach to one Gateway session with an expiring, revocable token. [35af831](https://github.com/openclaw/openclaw/commit/35af831fd0bc549d9333a197a90abbecbc55ff35) Thanks @dwc1997, @lsr911, @ooiuuii, @romneyda, @solodmd, @vincentkoc, @wendy-chsy, @yeager, @zenglingbiao. 919 Successful agent tools that return safe plain text now show that output ins... Successful agent tools that return safe plain text now show that output instead of leaving users with an apparently empty result. [#99526](https://github.com/openclaw/openclaw/pull/99526) Related [#99523](https://github.com/openclaw/openclaw/issues/99523). Thanks @snowzlm. 920 A successfully delivered heartbeat notification no longer leaves stale reco... A successfully delivered heartbeat notification no longer leaves stale recovery state that can block later heartbeat alerts or check-ins. [#83187](https://github.com/openclaw/openclaw/pull/83187) Thanks @agocs. 921 Restarting the Gateway during a deferred channel reload no longer starts th... Restarting the Gateway during a deferred channel reload no longer starts the same channel twice, avoiding webhook port conflicts and repeated restart failures. [#94964](https://github.com/openclaw/openclaw/pull/94964) Related [#79487](https://github.com/openclaw/openclaw/issues/79487). Thanks @lzyyzznl, @tseller. 922 A damaged SQLite delivery-queue entry no longer blocks recovery of every ot... A damaged SQLite delivery-queue entry no longer blocks recovery of every other valid queued session or outbound delivery after restart. [#98354](https://github.com/openclaw/openclaw/pull/98354) Thanks @pick-cat. 923 Gateway startup lock failures now clean up partial files and open handles,... Gateway startup lock failures now clean up partial files and open handles, allowing a later startup to acquire the lock normally. [#99291](https://github.com/openclaw/openclaw/pull/99291) Related [#98958](https://github.com/openclaw/openclaw/issues/98958). Thanks @chenyangjun-xy, @zhanglei99586. 924 Gateway status now reports unavailable SSH cleanly and promptly instead of... Gateway status now reports unavailable SSH cleanly and promptly instead of crashing or waiting indefinitely when tunnel startup fails. [#99800](https://github.com/openclaw/openclaw/pull/99800) Thanks @cxbasdev, @vincentkoc. 925 Heartbeat and cron work on macOS and Linux is less likely to fail with `Unk... Heartbeat and cron work on macOS and Linux is less likely to fail with `Unknown system error -11` when reconnects overlap session or workspace updates. [#100389](https://github.com/openclaw/openclaw/pull/100389) Thanks @ogarciarevett. 926 Gateway startup no longer performs unsolicited provider-auth discovery acro... Gateway startup no longer performs unsolicited provider-auth discovery across every configured agent, helping channels and local commands remain responsive while authentication loads on demand. [#100667](https://github.com/openclaw/openclaw/pull/100667) Thanks @vincentkoc. 927 Unexpected SSH tunnel diagnostic-stream closure no longer crashes the Gatew... Unexpected SSH tunnel diagnostic-stream closure no longer crashes the Gateway during tunnel checks or shutdown. [#100855](https://github.com/openclaw/openclaw/pull/100855) Thanks @cxbasdev, @vincentkoc. 928 A disconnected or failing session-history stream no longer crashes the Gate... A disconnected or failing session-history stream no longer crashes the Gateway and interrupts service for everyone else. [#101571](https://github.com/openclaw/openclaw/pull/101571) Thanks @vincentkoc, @zengwen-dt. 929 Gateway startup can now be retried immediately after a configuration-change... Gateway startup can now be retried immediately after a configuration-change rejection instead of being blocked for up to five minutes by a stale migration lease. [#103157](https://github.com/openclaw/openclaw/pull/103157) 930 Gateway startup channel warnings now use the same plugin manifests as the r... Gateway startup channel warnings now use the same plugin manifests as the running startup process, reducing inconsistent warnings and repeated discovery. [10ca94e](https://github.com/openclaw/openclaw/commit/10ca94ef1a6a98a0033574ba537492453b6b3c4f) Thanks @vincentkoc. 931 Gateway startup now skips unnecessary provider thinking-policy work when an... Gateway startup now skips unnecessary provider thinking-policy work when an explicit setting or model catalog already determines the banner result. [b18af41](https://github.com/openclaw/openclaw/commit/b18af41f52d401223cad5913ed06650828aacdd6) 932 Gateway connection failures now identify the last completed handshake phase... Gateway connection failures now identify the last completed handshake phase, helping operators distinguish upgrade, credential, authentication, session, and ready-state stalls. [#93402](https://github.com/openclaw/openclaw/pull/93402) Thanks @849261680, @bzelones, @vincentkoc, @youngting520. 933 Control UI and other Gateway clients now show the correct pairing or protoc... Control UI and other Gateway clients now show the correct pairing or protocol-version guidance even when detail codes contain extra whitespace. [#99555](https://github.com/openclaw/openclaw/pull/99555) Thanks @ly85206559. 934 Gateway override authentication errors now tell CLI and TUI users whether t... Gateway override authentication errors now tell CLI and TUI users whether to add a token or password, remove `--url`, or pair the relevant environment variables. [#100418](https://github.com/openclaw/openclaw/pull/100418) Thanks @gmays. 935 Standalone ACP clients now close the shared SQLite state database during sh... Standalone ACP clients now close the shared SQLite state database during shutdown so hot reloads and immediate restarts can reopen it without stale locks or callbacks. [#100691](https://github.com/openclaw/openclaw/pull/100691) Thanks @lzy3538. 936 Voice-call webhook setup through ngrok or Tailscale now fails cleanly on tu... Voice-call webhook setup through ngrok or Tailscale now fails cleanly on tunnel stream errors instead of crashing the Gateway, and shutdown avoids waiting on an already-ended tunnel. [#101394](https://github.com/openclaw/openclaw/pull/101394) Thanks @cxbasdev. 937 Provider failures that contain BigInt, circular objects, or other unusual v... Provider failures that contain BigInt, circular objects, or other unusual values now produce the intended structured transport error instead of crashing the error-reporting path. [#88401](https://github.com/openclaw/openclaw/pull/88401) Thanks @pluviobyte. 938 OpenClaw no longer crashes when a supervised child output stream fails imme... OpenClaw no longer crashes when a supervised child output stream fails immediately after launch. [#99802](https://github.com/openclaw/openclaw/pull/99802) Thanks @cxbasdev, @vincentkoc. 939 MCP stdio sessions now report stderr pipe failures as transport errors with... MCP stdio sessions now report stderr pipe failures as transport errors without taking down OpenClaw or losing available diagnostics. [#99803](https://github.com/openclaw/openclaw/pull/99803) Thanks @cxbasdev, @vincentkoc. 940 ACPX MCP proxies now turn closed input or output pipes into a clear proxy f... ACPX MCP proxies now turn closed input or output pipes into a clear proxy failure instead of an uncaught Node stream crash. [#99852](https://github.com/openclaw/openclaw/pull/99852) Thanks @sunlit-deng, @vincentkoc. 941 Shell snapshot capture and validation no longer crash OpenClaw when an unus... Shell snapshot capture and validation no longer crash OpenClaw when an unused helper-process output pipe reports a stream error. [#100744](https://github.com/openclaw/openclaw/pull/100744) Thanks @lsr911, @vincentkoc. 942 A node-host `system A node-host `system.run` stream failure now returns a clear failed result instead of crashing the node host, and a child that will not stop is terminated after one second. [#100849](https://github.com/openclaw/openclaw/pull/100849) Thanks @cxbasdev. 943 Docker-backed sandbox file and shell commands now fail promptly with the or... Docker-backed sandbox file and shell commands now fail promptly with the original input-stream error instead of crashing, hanging, or remaining pending. [#101032](https://github.com/openclaw/openclaw/pull/101032) Thanks @cxbasdev. 944 APNs relay pushes now reject oversized response bodies as `RelayResponseToo... APNs relay pushes now reject oversized response bodies as `RelayResponseTooLarge` instead of exhausting Gateway memory or reporting false delivery. [#97550](https://github.com/openclaw/openclaw/pull/97550) Thanks @alix-007. 945 An ACP Gateway event-handler failure now produces a concise diagnostic inst... An ACP Gateway event-handler failure now produces a concise diagnostic instead of terminating the ACP process or corrupting protocol output. [#100558](https://github.com/openclaw/openclaw/pull/100558) Thanks @ajwan8998. 946 A runaway `tool_search_code` subprocess can no longer grow Gateway memory w... A runaway `tool_search_code` subprocess can no longer grow Gateway memory without limit through stderr, while failure reports retain the latest useful diagnostic detail. [#101007](https://github.com/openclaw/openclaw/pull/101007) Thanks @hugenshen, @vincentkoc. 947 Built-in grep stream failures now become ordinary tool errors instead of cr... Built-in grep stream failures now become ordinary tool errors instead of crashing the agent runtime, hanging the search, or leaving incomplete results unexplained. [#101014](https://github.com/openclaw/openclaw/pull/101014) Thanks @cxbasdev. 948 SSH-backed sandbox commands and uploads now stop cleanly, clean up child pr... SSH-backed sandbox commands and uploads now stop cleanly, clean up child processes, and preserve the useful error when an input or output stream fails. [#101031](https://github.com/openclaw/openclaw/pull/101031) Thanks @cxbasdev. 949 Experimental local-model lean mode now offers a smaller default tool menu f... Experimental local-model lean mode now offers a smaller default tool menu for constrained models, while operators can explicitly retain media, voice, or PDF tools through allowlists. [#88881](https://github.com/openclaw/openclaw/pull/88881) Thanks @vincentkoc. 950 Operators can now set `OPENCLAW_SANDBOX_IMAGE` to build revision-specific s... Operators can now set `OPENCLAW_SANDBOX_IMAGE` to build revision-specific sandbox image tags for controlled rollout and rollback. [#99915](https://github.com/openclaw/openclaw/pull/99915) 951 Lean local-model agents can now choose the familiar `exec` tool directly wh... Lean local-model agents can now choose the familiar `exec` tool directly when policy permits it, while existing allowlists, sandboxing, approvals, and hooks still govern command execution. [#101607](https://github.com/openclaw/openclaw/pull/101607) Thanks @vincentkoc. 952 Busy or slower hosts now give Codex native permission checks and pre-tool h... Busy or slower hosts now give Codex native permission checks and pre-tool hooks more time to finish, reducing dropped policy decisions. [123ec16](https://github.com/openclaw/openclaw/commit/123ec165bb5638ea9587c9e72566c081159bce5c) Thanks @vincentkoc. 953 Completed or expired exec approvals no longer add misleading follow-up warn... Completed or expired exec approvals no longer add misleading follow-up warnings, making the remaining dispatch warnings more useful for spotting real delivery failures. [#66685](https://github.com/openclaw/openclaw/pull/66685) Thanks @pfrederiksen. 954 Local Gateway approval read or write failures now return a consistent `UNAV... Local Gateway approval read or write failures now return a consistent `UNAVAILABLE` response instead of a generic handler error. [#79861](https://github.com/openclaw/openclaw/pull/79861) Thanks @martins-oss. 955 Agent requests with several MCP servers now initialize those servers concur... Agent requests with several MCP servers now initialize those servers concurrently, shortening the wait before the model begins while isolating slow or failed servers. [#94230](https://github.com/openclaw/openclaw/pull/94230) Thanks @mmyzwl, @vincentkoc. 956 External tools can now receive session-scoped Gateway access without proces... External tools can now receive session-scoped Gateway access without process-wide credentials or permission to impersonate another session, forming the secure base for `openclaw attach`. [#96351](https://github.com/openclaw/openclaw/pull/96351) Thanks @anagnorisis2peripeteia, @obviyus. 957 Operators can inspect the effective tools for global sessions assigned to a... Operators can inspect the effective tools for global sessions assigned to any configured agent, not only the default one. [#97265](https://github.com/openclaw/openclaw/pull/97265) Thanks @pick-cat. 958 Agent runs, Doctor, and Gateway tool views now describe access using the sa... Agent runs, Doctor, and Gateway tool views now describe access using the same policy that actually governs the run, reducing confusing permission mismatches. [#99817](https://github.com/openclaw/openclaw/pull/99817) 959 Bounded write-scope clients can now rename, pin, archive, categorize, and m... Bounded write-scope clients can now rename, pin, archive, categorize, and mark sessions unread without admin access, while user labels and stable list ordering survive refreshes. [#100964](https://github.com/openclaw/openclaw/pull/100964) 960 Embedded terminals can now open, resize, stream output, and close consisten... Embedded terminals can now open, resize, stream output, and close consistently across the Gateway, Control UI, and native apps. [6601576](https://github.com/openclaw/openclaw/commit/66015762a39030584d6a7cc91fad09f4709f8d3f) 961 Developers can build against and consume managed-worktree session results f... Developers can build against and consume managed-worktree session results from the Gateway protocol package without duplicate-name failures. [8ce620f](https://github.com/openclaw/openclaw/commit/8ce620f3e675b25111dcbed6d1e124fedd4756a3) Thanks @vincentkoc. 962 Embedded `openclaw agent --local` runs using OpenAI-compatible providers no... Embedded `openclaw agent --local` runs using OpenAI-compatible providers now report and save streamed token usage instead of showing zero, improving session, context, cost, and monitoring records. [#96523](https://github.com/openclaw/openclaw/pull/96523) Thanks @ly85206559, @vincentkoc. 963 Unusual ACP failure causes now produce stable, readable diagnostic details... Unusual ACP failure causes now produce stable, readable diagnostic details instead of a missing or invalid explanation. [#96270](https://github.com/openclaw/openclaw/pull/96270) Thanks @ly-wang19. 964 Normally completed agent and subagent runs no longer appear as error-level... Normally completed agent and subagent runs no longer appear as error-level log entries, reducing false alarms while genuine failures remain elevated. [#101703](https://github.com/openclaw/openclaw/pull/101703) Thanks @zengwen-dt. 965 Gateway logs now reveal when OpenClaw cannot save a terminal session's fina... Gateway logs now reveal when OpenClaw cannot save a terminal session's final lifecycle state, making silent persistence failures diagnosable. [#97839](https://github.com/openclaw/openclaw/pull/97839) Related [#97795](https://github.com/openclaw/openclaw/issues/97795). Thanks @aniruddhaadak80, @lzy3538. 966 Gateway MCP logs are now quieter and identify the responsible tool when sch... Gateway MCP logs are now quieter and identify the responsible tool when schema problems occur, while distinct conflicts remain visible. [#98821](https://github.com/openclaw/openclaw/pull/98821) Thanks @alvelda, @harjothkhara. 967 Malformed Gateway MCP `tools/call` arguments now return a clear invalid-par... Malformed Gateway MCP `tools/call` arguments now return a clear invalid-parameters response before any hook or tool can process them. [#99180](https://github.com/openclaw/openclaw/pull/99180) Thanks @vectorpeak. 968 MCP attach requests without a valid session key now return the intended val... MCP attach requests without a valid session key now return the intended validation error instead of crashing the Gateway with a TypeError. [#99488](https://github.com/openclaw/openclaw/pull/99488) Thanks @zhanglei99586. 969 Starting a new Codex session no longer emits a false history warning before... Starting a new Codex session no longer emits a false history warning before its transcript exists, while genuine history failures remain visible. [#100484](https://github.com/openclaw/openclaw/pull/100484) Thanks @litang9, @vincentkoc. 970 Gateway usage reports now label start and end dates in the requested timezo... Gateway usage reports now label start and end dates in the requested timezone, including correct calendar-day handling across local daylight-saving transitions. [#100567](https://github.com/openclaw/openclaw/pull/100567) Thanks @nianjiuzst. 971 Session usage details now recover malformed transcript dates from available... Session usage details now recover malformed transcript dates from available message timestamps and return finite, consistently ordered values instead of nulls. [#100687](https://github.com/openclaw/openclaw/pull/100687) Thanks @sheyanmin. 972 Truncated agent logs and diagnostic previews now keep emoji and other exten... Truncated agent logs and diagnostic previews now keep emoji and other extended Unicode characters intact at the cutoff. [#96296](https://github.com/openclaw/openclaw/pull/96296) Thanks @ly-wang19. 973 Long agent grep lines now truncate emoji and uncommon CJK characters cleanl... Long agent grep lines now truncate emoji and uncommon CJK characters cleanly instead of ending with corrupted replacement symbols. [#97559](https://github.com/openclaw/openclaw/pull/97559) Thanks @zenglingbiao. 974 Emoji and other supplementary characters now remain intact when long agent... Emoji and other supplementary characters now remain intact when long agent progress or active-memory recall text is shortened. [#100244](https://github.com/openclaw/openclaw/pull/100244) Thanks @vincentkoc, @xialonglee, @zengwen-dt. 975 Shortened text across CLI output, diagnostics, plugin messages, previews, e... Shortened text across CLI output, diagnostics, plugin messages, previews, errors, task summaries, and Zalo sends now preserves complete emoji and other supplementary characters. [#101654](https://github.com/openclaw/openclaw/pull/101654) Thanks @lsr911, @maweibin, @wm0018. 976 Long names, labels, summaries, previews, titles, and diagnostics across Ope... Long names, labels, summaries, previews, titles, and diagnostics across OpenClaw now truncate without splitting emoji or other supplementary Unicode characters. [#101685](https://github.com/openclaw/openclaw/pull/101685) Thanks @lsr911, @ly85206559, @maweibin, @wings1029. 977 Bounded text in Parallel searches, compaction, telemetry, presence, Workboa... Bounded text in Parallel searches, compaction, telemetry, presence, Workboard, badges, and Control UI metadata now keeps or omits whole Unicode characters instead of leaving malformed fragments. [#101711](https://github.com/openclaw/openclaw/pull/101711) 978 Long streamed replies now split only between complete Unicode characters, p... Long streamed replies now split only between complete Unicode characters, preserving emoji in plain text and fenced Markdown even at tight message limits. [#104441](https://github.com/openclaw/openclaw/pull/104441) Thanks @mushuiyu886. 979 Long status messages and command output now stay readable when shortened, w... Long status messages and command output now stay readable when shortened, without splitting emoji or non-English characters into corrupted text. [2e7ffca](https://github.com/openclaw/openclaw/commit/2e7ffca8fff001d1d962611a70d76640c920fc6f) Thanks @vincentkoc. 980 Codex usage-limit previews and plan status labels now truncate emoji and un... Codex usage-limit previews and plan status labels now truncate emoji and uncommon Unicode cleanly at their display boundaries. [#97299](https://github.com/openclaw/openclaw/pull/97299) Thanks @zenglingbiao. 981 `/subagents list` now shortens long names and task descriptions containing... `/subagents list` now shortens long names and task descriptions containing emoji or uncommon CJK characters without displaying broken glyphs. [#97557](https://github.com/openclaw/openclaw/pull/97557) Thanks @zenglingbiao. 982 Compact subagent lists now keep long labels and task text within their disp... Compact subagent lists now keep long labels and task text within their display budget without splitting emoji or breaking alignment. [#100013](https://github.com/openclaw/openclaw/pull/100013) Thanks @qingminglong. 983 Shortened web, media, TTS, status, transport, and voice-call text now prese... Shortened web, media, TTS, status, transport, and voice-call text now preserves complete Unicode characters instead of producing replacement symbols or malformed downstream content. [#101355](https://github.com/openclaw/openclaw/pull/101355) Thanks @alix-007, @vincentkoc. 984 Codex desktop notifications now shorten long assistant previews containing... Codex desktop notifications now shorten long assistant previews containing emoji or CJK text without malformed characters. [#101534](https://github.com/openclaw/openclaw/pull/101534) Thanks @lsr911. 985 ACP tool titles, permission prompts, warnings, and errors now keep long emo... ACP tool titles, permission prompts, warnings, and errors now keep long emoji or CJK argument previews readable when shortened. [#101535](https://github.com/openclaw/openclaw/pull/101535) Thanks @lsr911. 986 Suppressed auto-reply previews in verbose logs now preserve complete emoji... Suppressed auto-reply previews in verbose logs now preserve complete emoji and other supplementary characters instead of showing corrupted text at the length limit. [#101575](https://github.com/openclaw/openclaw/pull/101575) Thanks @wm0018. 987 Oversized agent tool results now preserve complete emoji and similar Unicod... Oversized agent tool results now preserve complete emoji and similar Unicode characters when shortened before being sent to the model. [#102087](https://github.com/openclaw/openclaw/pull/102087) Thanks @chengzhichao-xydt. 988 Gateway WebSocket failures now keep non-ASCII close reasons readable and wi... Gateway WebSocket failures now keep non-ASCII close reasons readable and within the byte limit instead of cutting characters into garbled text. [#100047](https://github.com/openclaw/openclaw/pull/100047) Thanks @narahariraghava. 989 Model-provider keys stored with SecretRefs now receive additional protectio... Model-provider keys stored with SecretRefs now receive additional protection against accidental exposure in logs, errors, proxy captures, SDK setup, and runtime inspection, with a compatibility switch for secret sentinels. [#102009](https://github.com/openclaw/openclaw/pull/102009) 990 Operators can use targeted Doctor lint to detect credential residue in hist... Operators can use targeted Doctor lint to detect credential residue in historical `config-audit.jsonl` entries and preview redaction before running `openclaw doctor --fix`. [#84450](https://github.com/openclaw/openclaw/pull/84450) Thanks @giodl73-repo. 991 Gateway service regeneration now keeps environment-backed secrets out of Li... Gateway service regeneration now keeps environment-backed secrets out of Linux unit definitions and preserves resolved provider and channel credentials on macOS. [#96065](https://github.com/openclaw/openclaw/pull/96065) Thanks @darren2030, @obviyus. 992 `openclaw doctor --fix` now preserves separate OAuth accounts for the same... `openclaw doctor --fix` now preserves separate OAuth accounts for the same provider, including each account reference and saved display name. [#97541](https://github.com/openclaw/openclaw/pull/97541) Thanks @liuhao1024, @yetval. 993 Bare Fireworks API keys are now masked in logs, provider errors, command de... Bare Fireworks API keys are now masked in logs, provider errors, command details, tool output, and Control UI diagnostics even without a nearby sensitive-field label. [#98226](https://github.com/openclaw/openclaw/pull/98226) Related [#98225](https://github.com/openclaw/openclaw/issues/98225). Thanks @ooiuuii. 994 Failed OpenAI or Codex credential refreshes now report that reauthenticatio... Failed OpenAI or Codex credential refreshes now report that reauthentication is required and privately identify the affected profile instead of appearing healthy until model turns fail. [#99134](https://github.com/openclaw/openclaw/pull/99134) Related [#99120](https://github.com/openclaw/openclaw/issues/99120). Thanks @100yenadmin, @fuller-stack-dev. 995 A temporary output-stream read failure from an exec-based SecretRef provide... A temporary output-stream read failure from an exec-based SecretRef provider no longer crashes OpenClaw during credential resolution. [#100521](https://github.com/openclaw/openclaw/pull/100521) Thanks @cxbasdev. 996 Agent payload logs and cache traces now redact provider keys even when thos... Agent payload logs and cache traces now redact provider keys even when those credentials appear inside free-text diagnostic values. [d8ee630](https://github.com/openclaw/openclaw/commit/d8ee630b203c86fd5d91331156614a441ec9e52c) Thanks @joshavant. 997 Failed cron webhooks no longer forward raw command summaries or diagnostics... Failed cron webhooks no longer forward raw command summaries or diagnostics that may contain setup prompts, codes, or secret-like output. [1d17263](https://github.com/openclaw/openclaw/commit/1d172637d6dda23a0b108c624239264eae0e5042) Thanks @joshavant. 998 Secret target discovery now works consistently for both scoped requests and... Secret target discovery now works consistently for both scoped requests and the full compiled registry instead of failing when no allowed subset is supplied. [e490171](https://github.com/openclaw/openclaw/commit/e490171ff24b4165b68b9835e76c1baf8903a149) 999 `/login codex` now switches the active chat to the account just authenticat... `/login codex` now switches the active chat to the account just authenticated without overwriting a newer manual profile choice, and gives recovery guidance if the switch fails. [02c3de9](https://github.com/openclaw/openclaw/commit/02c3de947169acdafbf60dd5ce76f655c34e37c7) Thanks @vincentkoc. 1000 Profile changes made through `/login` now use the standard session save pat... Profile changes made through `/login` now use the standard session save path, preserving newer concurrent selections and existing recovery behavior. [f07c478](https://github.com/openclaw/openclaw/commit/f07c4782fa6a109df7f4345f51a88caa9d8439c9) Thanks @vincentkoc. 1001 Codex session bindings now keep large MCP configurations and rotated Author... Codex session bindings now keep large MCP configurations and rotated Authorization credentials in bounded fingerprints without persisting readable bearer values. [491e42e](https://github.com/openclaw/openclaw/commit/491e42e6d5a334f850e2ad790a19c936c8daa07e) Thanks @100yenadmin. 1002 Copied provider keys and tokens now have hidden terminal control characters... Copied provider keys and tokens now have hidden terminal control characters removed before request headers are prepared, while intentional spaces remain intact. [#96444](https://github.com/openclaw/openclaw/pull/96444) Thanks @lin-hongkuan. 1003 Masked malformed credentials now stay on one safe line in setup and authent... Masked malformed credentials now stay on one safe line in setup and authentication diagnostics even when the original input contains newlines or other control bytes. [#96445](https://github.com/openclaw/openclaw/pull/96445) Thanks @lin-hongkuan. 1004 Security audits no longer mistake bundled placeholder keys for LM Studio, O... Security audits no longer mistake bundled placeholder keys for LM Studio, Ollama, and other keyless local providers as exposed plaintext credentials. [#97622](https://github.com/openclaw/openclaw/pull/97622) Thanks @xydigit-sj. 1005 Control UI Activity previews now conceal API keys stored under dotted confi... Control UI Activity previews now conceal API keys stored under dotted configuration names or returned in structured tool output. [#99460](https://github.com/openclaw/openclaw/pull/99460) Related [#99459](https://github.com/openclaw/openclaw/issues/99459). Thanks @ooiuuii. 1006 Custom ACP error redactors now keep OpenClaw's built-in secret cleanup, pre... Custom ACP error redactors now keep OpenClaw's built-in secret cleanup, preventing known tokens, credentials, and private-key material from leaking into formatted errors. [#100191](https://github.com/openclaw/openclaw/pull/100191) Thanks @lin-hongkuan. 1007 When another OpenClaw process is refreshing OpenAI OAuth credentials, opera... When another OpenClaw process is refreshing OpenAI OAuth credentials, operators now see one useful contention error without duplicated wording or exposed local file paths. [#101573](https://github.com/openclaw/openclaw/pull/101573) Thanks @vincentkoc. 1008 Running a read-only local Gateway check no longer leaves stale pairing perm... Running a read-only local Gateway check no longer leaves stale pairing permissions that block a later agent, admin, write, or device-approval command. [#96002](https://github.com/openclaw/openclaw/pull/96002) Thanks @vincentkoc. 1009 `/pair` now refuses setup codes that point to non-routable `0 `/pair` now refuses setup codes that point to non-routable `0.0.0.0` or `::` addresses and gives operators secure Gateway URL guidance instead. [#98617](https://github.com/openclaw/openclaw/pull/98617) Thanks @crh-code. 1010 Gateway authentication retries now send stored device tokens only to true l... Gateway authentication retries now send stored device tokens only to true loopback endpoints, not remote hostnames that merely resemble `127.*` addresses. [#99859](https://github.com/openclaw/openclaw/pull/99859) Thanks @ly85206559. 1011 The `/pair` mobile setup flow now accepts local IPv6 ULA and link-local Gat... The `/pair` mobile setup flow now accepts local IPv6 ULA and link-local Gateway addresses without requiring TLS or a different advertised host, while public cleartext URLs remain blocked. [#101008](https://github.com/openclaw/openclaw/pull/101008) Thanks @zhangguiping-xydt. 1012 Device owners can approve the request ID most recently shown by `openclaw d... Device owners can approve the request ID most recently shown by `openclaw devices list` after a reconnect, without weakening protection against newly expanded scopes. [#98145](https://github.com/openclaw/openclaw/pull/98145) Thanks @romneyda. 1013 Swift native clients now support device-scoped skill approvals, with the re... Swift native clients now support device-scoped skill approvals, with the reviewer-device field encoded in their generated Gateway models. [1403c64](https://github.com/openclaw/openclaw/commit/1403c64799ae62785e36327b6fc4c5235b10d8ba) 1014 Gateway sign-in tracking now keeps bounded memory use during floods of fail... Gateway sign-in tracking now keeps bounded memory use during floods of failed attempts from many addresses while preserving existing lockouts. [#96224](https://github.com/openclaw/openclaw/pull/96224) Thanks @eleqtrizit. 1015 Browser control now requires the same administrator permission through dire... Browser control now requires the same administrator permission through direct node invocation as through the standard browser request path, preventing write-only credentials or third-party plugins from gaining elevated access. [#85916](https://github.com/openclaw/openclaw/pull/85916) Thanks @eleqtrizit, @laphilosophie. 1016 Only the configured owner can now change whether a group responds to mentio... Only the configured owner can now change whether a group responds to mentions or every message through `/activation`. [#97838](https://github.com/openclaw/openclaw/pull/97838) Thanks @pgondhi987. 1017 Starting or changing native Codex sessions now requires owner or `operator Starting or changing native Codex sessions now requires owner or `operator.admin` access, while other authorized senders retain read-only inspection. [#97952](https://github.com/openclaw/openclaw/pull/97952) Thanks @eleqtrizit. 1018 ACP session lifecycle and runtime controls now require an owner or internal... ACP session lifecycle and runtime controls now require an owner or internal Gateway administrator instead of being available to any authorized channel user. [#97953](https://github.com/openclaw/openclaw/pull/97953) Thanks @eleqtrizit. 1019 Approving a node that can handle sensitive browser traffic now requires adm... Approving a node that can handle sensitive browser traffic now requires administrator permission, matching the security level already required to use that capability. [#104491](https://github.com/openclaw/openclaw/pull/104491) Thanks @yetval. 1020 Authorized non-owner chat participants can no longer inspect or change owne... Authorized non-owner chat participants can no longer inspect or change owner-controlled MCP server configuration through `/mcp`. [ad5a26c](https://github.com/openclaw/openclaw/commit/ad5a26cf699afd7a387a187aee77bbc7d04793df) Thanks @joshavant. 1021 Auto-reply diagnostics now remain owner-only instead of allowing non-owner... Auto-reply diagnostics now remain owner-only instead of allowing non-owner participants to run the command. [170bf72](https://github.com/openclaw/openclaw/commit/170bf72e64a9b85933e156244cccda7bd0270df4) Thanks @joshavant. 1022 After an agent is removed, its leftover sessions can no longer start new mo... After an agent is removed, its leftover sessions can no longer start new model runs through the Gateway. [#97260](https://github.com/openclaw/openclaw/pull/97260) Thanks @obviyus, @pick-cat. 1023 Non-owner Gateway chat users are no longer offered the protected `cron`, `g... Non-owner Gateway chat users are no longer offered the protected `cron`, `gateway`, or `nodes` control tools, even when those tools are otherwise allowlisted. [#102030](https://github.com/openclaw/openclaw/pull/102030) Thanks @pgondhi987. 1024 Trajectory exports from chat now require owner authority, preventing other... Trajectory exports from chat now require owner authority, preventing other command-authorized channel users from retrieving sensitive session artifacts. [#97840](https://github.com/openclaw/openclaw/pull/97840) Thanks @pgondhi987. 1025 Gateway-wide Active Memory can now be changed only by owners or administrat... Gateway-wide Active Memory can now be changed only by owners or administrators, while other authorized users retain session-level controls. [#97841](https://github.com/openclaw/openclaw/pull/97841) Thanks @pgondhi987. 1026 Only owners and administrative Gateway clients can now turn Memory Core dre... Only owners and administrative Gateway clients can now turn Memory Core dreaming on or off through `/dreaming`, while status and help remain available to others. [#97869](https://github.com/openclaw/openclaw/pull/97869) Thanks @eleqtrizit. 1027 Non-admin Telegram and Discord users can no longer change the Gateway's Tal... Non-admin Telegram and Discord users can no longer change the Gateway's Talk voice, though they can still view the current and available voices. [#97874](https://github.com/openclaw/openclaw/pull/97874) Thanks @eleqtrizit. 1028 Installing or reconfiguring Codex Computer Use resources now requires owner... Installing or reconfiguring Codex Computer Use resources now requires owner or administrator access, while other authorized senders can still inspect status. [#97955](https://github.com/openclaw/openclaw/pull/97955) Thanks @eleqtrizit. 1029 Authenticated owners can use their already-granted shell, file, process, Sk... Authenticated owners can use their already-granted shell, file, process, Skill Workshop, and plugin tools in WebChat without extending those permissions to guests or external senders. [#101271](https://github.com/openclaw/openclaw/pull/101271) Thanks @fuller-stack-dev. 1030 With `strictInlineEval` enabled, versioned Python and PyPy commands plus ad... With `strictInlineEval` enabled, versioned Python and PyPy commands plus additional PHP and R inline forms now require fresh explicit approval rather than inheriting executable trust. [#96216](https://github.com/openclaw/openclaw/pull/96216) Thanks @eleqtrizit. 1031 In shared channels, only the person who started a Claude Code command can a... In shared channels, only the person who started a Claude Code command can approve or deny its tool permission requests. [#98256](https://github.com/openclaw/openclaw/pull/98256) Thanks @eleqtrizit. 1032 Running `/prose` now shows operators the transitive remote imports and asks... Running `/prose` now shows operators the transitive remote imports and asks for consent before OpenProse fetches those code dependencies. [259877d](https://github.com/openclaw/openclaw/commit/259877dccf1c6e2e8abce5deb92450af1a8b53a6) Thanks @joshavant. 1033 Codex plugin users can allow read-only app actions while requiring a fresh... Codex plugin users can allow read-only app actions while requiring a fresh approval for every write or destructive action. [#97123](https://github.com/openclaw/openclaw/pull/97123) Thanks @kevinslin. 1034 Codex plugin apps now avoid approval prompts for read-only actions, preserv... Codex plugin apps now avoid approval prompts for read-only actions, preserve per-app write policies across recovery, and refresh their app inventory after upgrades. [#97327](https://github.com/openclaw/openclaw/pull/97327) Thanks @kevinslin. 1035 Windows exact-path execution approvals now launch the approved executable r... Windows exact-path execution approvals now launch the approved executable rather than a same-named program from the working directory. [#98260](https://github.com/openclaw/openclaw/pull/98260) Thanks @eleqtrizit. 1036 The Codex plugin now names per-action destructive approval mode `ask`, maki... The Codex plugin now names per-action destructive approval mode `ask`, making it clear that each write or destructive action remains available but requires confirmation. [#98501](https://github.com/openclaw/openclaw/pull/98501) Related [#98499](https://github.com/openclaw/openclaw/issues/98499). Thanks @kevinslin. 1037 Exec approval prompts now display and transmit long command text containing... Exec approval prompts now display and transmit long command text containing emoji or malformed Unicode without broken characters or encoding failures. [#99566](https://github.com/openclaw/openclaw/pull/99566) Thanks @mikasa0818. 1038 The Control UI terminal is now explicit opt-in, opens tabs under the select... The Control UI terminal is now explicit opt-in, opens tabs under the selected agent's workspace and policy, and closes affected shells when accepted access restrictions tighten. [#100081](https://github.com/openclaw/openclaw/pull/100081) Thanks @rayncc. 1039 Windows companion-node exec policies can now be viewed and updated through... Windows companion-node exec policies can now be viewed and updated through node-aware approvals commands and displayed correctly in Control UI. [#101669](https://github.com/openclaw/openclaw/pull/101669) Thanks @vincentkoc. 1040 Using `jq` through exec now requires an explicit trusted allowlist entry or... Using `jq` through exec now requires an explicit trusted allowlist entry or approval instead of being treated as a harmless stdin-only safe binary. [#102032](https://github.com/openclaw/openclaw/pull/102032) Thanks @pgondhi987. 1041 Always-allow approvals for `npm exec`, `npx`, `pnpm`, and `yarn` wrappers n... Always-allow approvals for `npm exec`, `npx`, `pnpm`, and `yarn` wrappers now apply to the actual command rather than unintentionally trusting different future payloads. [#102035](https://github.com/openclaw/openclaw/pull/102035) Thanks @pgondhi987. 1042 Skills created by agents now remain pending for Skill Workshop review and a... Skills created by agents now remain pending for Skill Workshop review and approval instead of becoming active immediately without the expected safeguards. [#98346](https://github.com/openclaw/openclaw/pull/98346) Related [#96054](https://github.com/openclaw/openclaw/issues/96054). Thanks @momothemage, @xianshishan. 1043 Status and diagnostic tools can now identify stale exec approval follow-ups... Status and diagnostic tools can now identify stale exec approval follow-ups intentionally suppressed after `/new` or `/reset` instead of treating them as unexplained delivery failures. [#98293](https://github.com/openclaw/openclaw/pull/98293) Thanks @bsniznd. 1044 Codex `/btw` side conversations now preserve an ask-mode plugin app's requi... Codex `/btw` side conversations now preserve an ask-mode plugin app's requirement to obtain approval before destructive actions. [#98812](https://github.com/openclaw/openclaw/pull/98812) 1045 Long Codex app-server approval details and command previews now preserve em... Long Codex app-server approval details and command previews now preserve emoji and extended Unicode characters instead of showing corrupted text. [#100177](https://github.com/openclaw/openclaw/pull/100177) Thanks @xialonglee. 1046 Strict exec approval now keeps joined or clustered interpreter inline-code... Strict exec approval now keeps joined or clustered interpreter inline-code commands such as `python3 -xcprint` as one-time approvals rather than reusable allowlist entries. [#101353](https://github.com/openclaw/openclaw/pull/101353) Thanks @pgondhi987. 1047 Long exec auto-review explanations containing emoji or supplementary CJK ch... Long exec auto-review explanations containing emoji or supplementary CJK characters now shorten cleanly instead of showing a broken replacement symbol. [#101513](https://github.com/openclaw/openclaw/pull/101513) Thanks @wm0018. 1048 Plugin approval titles and descriptions now remain readable when emoji or s... Plugin approval titles and descriptions now remain readable when emoji or supplementary CJK characters fall at the Gateway's text limit. [#101580](https://github.com/openclaw/openclaw/pull/101580) Thanks @wm0018. 1049 Agents using OpenClaw's cron tools are now limited to their own scheduled j... Agents using OpenClaw's cron tools are now limited to their own scheduled jobs and session targets, while operator-managed cron remains unchanged and mixed-version setups fail closed with an `openclaw gateway restart` instruction. [#96883](https://github.com/openclaw/openclaw/pull/96883) Thanks @joshavant. 1050 Cron wake actions started by an agent now remain within that agent's own se... Cron wake actions started by an agent now remain within that agent's own session lanes, reducing the chance of waking another agent's conversation. [#97949](https://github.com/openclaw/openclaw/pull/97949) Thanks @eleqtrizit. 1051 Write-scoped Gateway clients can still perform supported message actions bu... Write-scoped Gateway clients can still perform supported message actions but can no longer supply identity fields that masquerade as a trusted requester or owner. [#102031](https://github.com/openclaw/openclaw/pull/102031) Thanks @pgondhi987. 1052 Multi-user bridges using `openclaw agent --agent Multi-user bridges using `openclaw agent --agent ... --channel ... --to ...` now keep recipients in separate sessions when per-recipient isolation is configured. [#101507](https://github.com/openclaw/openclaw/pull/101507) Thanks @pingfanfan, @vincentkoc. 1053 Read-only voice-call status now omits phone numbers, transcripts, routing d... Read-only voice-call status now omits phone numbers, transcripts, routing details, processed event IDs, and raw metadata. [#97870](https://github.com/openclaw/openclaw/pull/97870) Thanks @eleqtrizit. 1054 ClawHub now checks community plugin and skill releases before download, blo... ClawHub now checks community plugin and skill releases before download, blocking prohibited releases and requiring explicit acknowledgement for suspicious ones while leaving existing installs in place when an update is skipped. [#81364](https://github.com/openclaw/openclaw/pull/81364) Thanks @jesse-merhi. 1055 Authorized operators now have a durable audit history for agent and tool ac... Authorized operators now have a durable audit history for agent and tool activity, with filters, stable paging, bounded JSON export, configurable recording, and automatic retention limits. [#98704](https://github.com/openclaw/openclaw/pull/98704) 1056 Operators using workspace repairs can now run `doctor --fix` to disable pol... Operators using workspace repairs can now run `doctor --fix` to disable policy-denied Gateway HTTP endpoints without removing nested URL-fetch settings. [#99731](https://github.com/openclaw/openclaw/pull/99731) Thanks @giodl73-repo. 1057 `openclaw security audit` now warns that per-agent skill allowlists do not... `openclaw security audit` now warns that per-agent skill allowlists do not prevent shell-capable agents from reaching globally configured MCP servers. [#98352](https://github.com/openclaw/openclaw/pull/98352) Thanks @momothemage. 1058 Managed deployments can now require entries such as `system Managed deployments can now require entries such as `system.run` in `gateway.nodes.denyCommands`, and Policy doctor warns when configuration drift leaves a privileged node command available. [#99121](https://github.com/openclaw/openclaw/pull/99121) Thanks @giodl73-repo. 1059 `policy check --json` now tells administrators whether each finding is auto... `policy check --json` now tells administrators whether each finding is automatically repairable, needs review or manual work, is validation-only, or is unsupported. [#99686](https://github.com/openclaw/openclaw/pull/99686) Thanks @giodl73-repo. 1060 Operators who explicitly enable Policy workspace repairs can now automatica... Operators who explicitly enable Policy workspace repairs can now automatically narrow several unsafe settings, while OpenClaw remains read-only without that opt-in. [#99690](https://github.com/openclaw/openclaw/pull/99690) Thanks @giodl73-repo, @omarshahine. 1061 Policy workspace repairs can now add required tools to the affected deny li... Policy workspace repairs can now add required tools to the affected deny list while preserving existing entries and avoiding unintended root-policy widening. [#99700](https://github.com/openclaw/openclaw/pull/99700) Thanks @giodl73-repo. 1062 Policy workspace repairs can now move reported open channel groups to allow... Policy workspace repairs can now move reported open channel groups to allowlist mode and require mentions without changing inherited defaults. [#99720](https://github.com/openclaw/openclaw/pull/99720) Thanks @giodl73-repo, @omarshahine. 1063 `doctor --fix` now shows the exact `gateway `doctor --fix` now shows the exact `gateway.bind=loopback` or `gateway.nodes.denyCommands` change needed for sensitive findings without applying it automatically. [#99776](https://github.com/openclaw/openclaw/pull/99776) Thanks @giodl73-repo. 1064 `openclaw security audit` now reports Browser exposure only when plugin pol... `openclaw security audit` now reports Browser exposure only when plugin policy actually allows the Browser plugin to run. [#97732](https://github.com/openclaw/openclaw/pull/97732) Thanks @amtellezfernandez. 1065 Provider, channel, media, and web requests can now reach public destination... Provider, channel, media, and web requests can now reach public destinations through a managed proxy even when local DNS is unavailable or differs from the proxy's DNS. [#98951](https://github.com/openclaw/openclaw/pull/98951) Related [#98925](https://github.com/openclaw/openclaw/issues/98925). Thanks @momothemage, @sandl99. 1066 Malformed MCP OAuth failures now return a bounded HTTP-status diagnostic in... Malformed MCP OAuth failures now return a bounded HTTP-status diagnostic instead of allowing an unbounded error response to exhaust agent memory. [#98143](https://github.com/openclaw/openclaw/pull/98143) Thanks @pick-cat. 1067 Under strict SSRF policy, remote-browser discovery can no longer redirect O... Under strict SSRF policy, remote-browser discovery can no longer redirect OpenClaw from the configured CDP endpoint to a different host, port, or security mode. [cbc833a](https://github.com/openclaw/openclaw/commit/cbc833a7f33804db11f11274678770a1b55be3ca) Thanks @vincentkoc. 1068 Oversized or never-ending responses from supported external providers now s... Oversized or never-ending responses from supported external providers now stop at a fixed limit with a labeled error instead of consuming memory until the full body arrives. [0a14444](https://github.com/openclaw/openclaw/commit/0a14444924e34e031133c997b00d30573353c5a0) Thanks @joshavant. 1069 Web fetch and provider integrations now enforce response-size caps without... Web fetch and provider integrations now enforce response-size caps without allocating an entire nonstandard response in memory. [#99884](https://github.com/openclaw/openclaw/pull/99884) Thanks @zenglingbiao. 1070 Trusted custom provider hosts are now protected from DNS rebinding into loc... Trusted custom provider hosts are now protected from DNS rebinding into local services; intentional loopback aliases must use an explicit local origin or enable `allowPrivateNetwork`. [#100835](https://github.com/openclaw/openclaw/pull/100835) Thanks @machine3at. 1071 Browser-control requests now reject oversized successful JSON responses wit... Browser-control requests now reject oversized successful JSON responses with a `BrowserServiceError` before they can consume excessive memory, while supported large browser results still work. [#100889](https://github.com/openclaw/openclaw/pull/100889) Thanks @mushuiyu886. 1072 Browser automation now keeps Chrome control traffic tied to the configured... Browser automation now keeps Chrome control traffic tied to the configured or explicitly allowed CDP host, reducing the risk that a discovered debugger address redirects credentials or control elsewhere. [#101171](https://github.com/openclaw/openclaw/pull/101171) 1073 Hidden control characters can no longer break terminal hyperlink boundaries... Hidden control characters can no longer break terminal hyperlink boundaries or inject control behavior through documentation link text. [#96440](https://github.com/openclaw/openclaw/pull/96440) Thanks @lin-hongkuan. 1074 MCP include and exclude filters with many wildcard segments now reject nonm... MCP include and exclude filters with many wildcard segments now reject nonmatches quickly instead of stalling tool discovery for minutes. [#100330](https://github.com/openclaw/openclaw/pull/100330) Thanks @lsr911. 1075 Anthropic and Gemini PDF analysis now blocks unsafe private-network redirec... Anthropic and Gemini PDF analysis now blocks unsafe private-network redirects and oversized responses by default while still supporting configured local endpoints. [#97872](https://github.com/openclaw/openclaw/pull/97872) Thanks @eleqtrizit. 1076 Anthropic requests through Cloudflare AI Gateway now receive OpenClaw's sta... Anthropic requests through Cloudflare AI Gateway now receive OpenClaw's standard private-address blocking, timeouts, retry guidance, and managed response safeguards. [#98003](https://github.com/openclaw/openclaw/pull/98003) Thanks @wangmiao0668000666. 1077 Sandboxed agents with host browser control disabled can no longer reach a s... Sandboxed agents with host browser control disabled can no longer reach a signed-in host browser through a paired browser node. [#97958](https://github.com/openclaw/openclaw/pull/97958) Thanks @eleqtrizit. 1078 Hooks and skills no longer activate from unsafe inherited configuration val... Hooks and skills no longer activate from unsafe inherited configuration values, while ordinary configured paths and explicit defaults continue to work. [#59694](https://github.com/openclaw/openclaw/pull/59694) Thanks @yonganzhang. 1079 Unsafe, malformed, or unexpectedly large fd and ripgrep helper archives now... Unsafe, malformed, or unexpectedly large fd and ripgrep helper archives now fail early and clean up after themselves instead of putting agent setup at risk. [#98988](https://github.com/openclaw/openclaw/pull/98988) Thanks @leonidaslux, @vincentkoc. 1080 Config show, set, and unset now operate only on values truly stored in the... Config show, set, and unset now operate only on values truly stored in the user's configuration, preventing inherited object state from masquerading as saved settings. [#99846](https://github.com/openclaw/openclaw/pull/99846) Thanks @vincentkoc, @zenglingbiao. 1081 Terminal requests with an unknown agent ID now fail clearly instead of fall... Terminal requests with an unknown agent ID now fail clearly instead of falling back to global defaults and potentially opening a host shell outside the intended agent boundary. [3601dca](https://github.com/openclaw/openclaw/commit/3601dcad24fea8924c52d8abbafb85e50fc247ce) 1082 The Windows installer now accepts patched SQLite runtimes, rejects unsafe o... The Windows installer now accepts patched SQLite runtimes, rejects unsafe or unreadable ones, and reports the detected version when another Node.js upgrade is required. [28db140](https://github.com/openclaw/openclaw/commit/28db14005a77ca146c1f10979501dcfd375e8d01) Thanks @vincentkoc. 1083 Managed host tools no longer inherit the active Conda environment from the... Managed host tools no longer inherit the active Conda environment from the shell that launched OpenClaw, avoiding unintended Python and package-manager behavior. [#99425](https://github.com/openclaw/openclaw/pull/99425) Related [#99424](https://github.com/openclaw/openclaw/issues/99424). Thanks @krissding, @ooiuuii. 1084 OpenShell workspace file operations now stay inside the validated local san... OpenShell workspace file operations now stay inside the validated local sandbox mirror, with unsafe symlink, hard-link, cross-root, and changing-directory cases failing cleanly. [c6f5725](https://github.com/openclaw/openclaw/commit/c6f5725906dcaaaeeb0b5942addc844ffc579caf) Thanks @joshavant. 1085 Config recovery now warns when the file was repaired but its final permissi... Config recovery now warns when the file was repaired but its final permissions could not be hardened, preserving the recovery while exposing the security issue. [#95348](https://github.com/openclaw/openclaw/pull/95348) Thanks @hugenshen. 1086 Installing or updating ClawHub skills, plugins, and packages on Linux no lo... Installing or updating ClawHub skills, plugins, and packages on Linux no longer risks changing shared `/tmp` permissions and disrupting unrelated services. [#101246](https://github.com/openclaw/openclaw/pull/101246) Thanks @ch3ch2cho2021, @yangxiansheng. 1087 The Diffs viewer now provides a multi-file overview and direct file navigat... The Diffs viewer now provides a multi-file overview and direct file navigation, while PNG and PDF exports omit controls that cannot be used. [#100753](https://github.com/openclaw/openclaw/pull/100753) 1088 After the Diffs viewer is reopened or refreshed, its toolbar controls now a... After the Diffs viewer is reopened or refreshed, its toolbar controls now act only on the currently displayed diff cards. [#96138](https://github.com/openclaw/openclaw/pull/96138) Thanks @brokemac79, @davinci282828. 1089 Session tools now display the correct absolute path for projects beside the... Session tools now display the correct absolute path for projects beside the home directory instead of turning a shared text prefix into a misleading `~...` path. [#96562](https://github.com/openclaw/openclaw/pull/96562) Thanks @he-yufeng. 1090 Realtime Talk consult calls acknowledge as soon as the embedded agent run i... Realtime Talk consult calls acknowledge as soon as the embedded agent run is accepted, rather than waiting for it to finish. [#101091](https://github.com/openclaw/openclaw/pull/101091) Thanks @romneyda. 1091 Authorized remote clients can now request playable speech for an individual... Authorized remote clients can now request playable speech for an individual assistant message using the existing Gateway TTS configuration without accessing server-local files. [#100770](https://github.com/openclaw/openclaw/pull/100770) 1092 Trusted Gateway clients can now browse workspace directories and preview su... Trusted Gateway clients can now browse workspace directories and preview supported files, enabling the iOS and Android apps to inspect and share agent output without SSH. [#100738](https://github.com/openclaw/openclaw/pull/100738) 1093 iOS and Android users can create empty session groups, rename them once acr... iOS and Android users can create empty session groups, rename them once across their sessions, and remove a group without deleting the conversations inside it. [#101234](https://github.com/openclaw/openclaw/pull/101234) 1094 Android and iOS now explain which side needs an update when app and Gateway... Android and iOS now explain which side needs an update when app and Gateway protocol versions differ and avoid offering reconnect attempts that cannot succeed. [#98385](https://github.com/openclaw/openclaw/pull/98385) Related [#98384](https://github.com/openclaw/openclaw/issues/98384). Thanks @joshavant. 1095 Mobile camera clips and screen recordings longer than 30 seconds can now fi... Mobile camera clips and screen recordings longer than 30 seconds can now finish within the existing duration limit without the request expiring early. [#99455](https://github.com/openclaw/openclaw/pull/99455) Thanks @nianjiuzst. 1096 The iOS and Android terminal pages now receive the operator credential from... The iOS and Android terminal pages now receive the operator credential from the connected device session, so authenticated users do not land on a terminal that cannot connect. [451190d](https://github.com/openclaw/openclaw/commit/451190d625693153dfdca800fdbb9a05b2c21b6a) Thanks @vincentkoc. 1097 iOS and Android can now show the Gateway terminal as a focused full-screen... iOS and Android can now show the Gateway terminal as a focused full-screen view with stored credentials and a clear unavailable state instead of embedding the full desktop Control UI. [9c78489](https://github.com/openclaw/openclaw/commit/9c7848928f8b7f4104dd3eb4ddc9330d850d1886) 1098 Android and iOS Gateway setup now clearly requires Secure TLS for remote ho... Android and iOS Gateway setup now clearly requires Secure TLS for remote hosts, warns before trusted LAN use without encryption, and offers actionable update guidance for protocol mismatches. [#101325](https://github.com/openclaw/openclaw/pull/101325) Thanks @joshavant. 1099 iOS and macOS chat now show a context-usage ring that changes warning color... iOS and macOS chat now show a context-usage ring that changes warning color near the limit, helping users anticipate compaction or truncation in long conversations. [#101183](https://github.com/openclaw/openclaw/pull/101183) 1100 Apple native app users across 21 supported non-English locales now see tran... Apple native app users across 21 supported non-English locales now see translated Listen and speech-playback status controls. [0146534](https://github.com/openclaw/openclaw/commit/01465340f6dfe6dd51671e3a0c3b33d23c1ff1d7) 1101 Swift clients can now decode skill curator actions and status details such... Swift clients can now decode skill curator actions and status details such as pinned state, use counts, timestamps, archived reasons, and overlaps. [ad833d7](https://github.com/openclaw/openclaw/commit/ad833d788305faeb9c12f3f4c5068674d201ee68) 1102 Apple chat now presents fenced code with theme-aware highlighting and GitHu... Apple chat now presents fenced code with theme-aware highlighting and GitHub-style tables as aligned native tables on iOS and macOS. [#100207](https://github.com/openclaw/openclaw/pull/100207) 1103 Apple chat now restores the visible in-progress state after backgrounding o... Apple chat now restores the visible in-progress state after backgrounding or reconnecting, preventing overlapping sends and reconciling one correct final reply. [#100277](https://github.com/openclaw/openclaw/pull/100277) 1104 iOS chat now shows and switches the active model, while iOS and macOS model... iOS chat now shows and switches the active model, while iOS and macOS model pickers support pinned favorites and the five most recent choices. [#100774](https://github.com/openclaw/openclaw/pull/100774) 1105 Display equations in iOS and macOS chats now appear as readable, accessible... Display equations in iOS and macOS chats now appear as readable, accessible typeset math, with horizontal scrolling for wide formulas and raw text retained for malformed expressions. [#100829](https://github.com/openclaw/openclaw/pull/100829) 1106 iOS and macOS hide the thinking-level control for models that cannot use it... iOS and macOS hide the thinking-level control for models that cannot use it, avoid sending stale unsupported settings, and restore the previous level when a reasoning-capable model is selected again. [#100875](https://github.com/openclaw/openclaw/pull/100875) 1107 Streaming replies in iOS and macOS chats now reveal text more smoothly word... Streaming replies in iOS and macOS chats now reveal text more smoothly word by word, while reduced-motion users still receive immediate text and completed messages remain unchanged. [#100884](https://github.com/openclaw/openclaw/pull/100884) 1108 iOS and macOS users can preview a safe link's title and description inside... iOS and macOS users can preview a safe link's title and description inside chat before deciding whether to open it. [#101198](https://github.com/openclaw/openclaw/pull/101198) 1109 Expanded link previews on iOS and macOS can now show a safe page thumbnail,... Expanded link previews on iOS and macOS can now show a safe page thumbnail, with the existing text card retained when image loading fails. [#101387](https://github.com/openclaw/openclaw/pull/101387) 1110 Finished iOS and macOS chat replies now typeset inline LaTeX formulas while... Finished iOS and macOS chat replies now typeset inline LaTeX formulas while streaming text, code, currency, and invalid math remain readable as plain text. [#101388](https://github.com/openclaw/openclaw/pull/101388) 1111 iOS chat and macOS webchat users can search, pin, rename, archive, restore,... iOS chat and macOS webchat users can search, pin, rename, archive, restore, and reopen sessions from the in-chat switcher instead of scrolling a simple recent list. [#101053](https://github.com/openclaw/openclaw/pull/101053) 1112 Transcript export controls, chat actions, and export failure messages are n... Transcript export controls, chat actions, and export failure messages are now translated across 21 supported native app locales. [45f561a](https://github.com/openclaw/openclaw/commit/45f561ab6c24de9848b70823c80b7ac770531c41) 1113 Supported non-English native apps now translate newer app information, supp... Supported non-English native apps now translate newer app information, support links, and message retry, delete, and waiting-to-send states. [82f5ac1](https://github.com/openclaw/openclaw/commit/82f5ac150ffde0c847696cddcdcb2d300bb44294) 1114 Broader native app setup, chat, Talk, permission, connection, session, prov... Broader native app setup, chat, Talk, permission, connection, session, provider, and status text now uses the selected language across the language packs updated in this release. Sources: [a39b07b](https://github.com/openclaw/openclaw/commit/a39b07bb15f280c6d83522f79b1397104e5e05c4), [f8e1e0c](https://github.com/openclaw/openclaw/commit/f8e1e0c5bfbc1b43339ffaaaddd3ee6e45083c2d), [db27d2e](https://github.com/openclaw/openclaw/commit/db27d2ecfa77666397f841d6c0d47153ff94d822), [28a8414](https://github.com/openclaw/openclaw/commit/28a841472684eed2d98a1a277fcefc30855b580b), [e8e96bf](https://github.com/openclaw/openclaw/commit/e8e96bf7ee03aa251fc196693deb70af81da3d63), [6ea407d](https://github.com/openclaw/openclaw/commit/6ea407d46223ad3336abfc93abfb0345b2a58e75), [0011a18](https://github.com/openclaw/openclaw/commit/0011a184786686e625268f55799bdfbb8c8c7fda), [8c5adbf](https://github.com/openclaw/openclaw/commit/8c5adbfe3ec4f68a49d41a3b313a3b6b059c81d3), [019603d](https://github.com/openclaw/openclaw/commit/019603d336028c31de7c49814b45bb29314174e8), [d3d7282](https://github.com/openclaw/openclaw/commit/d3d7282a8cf4c99a29efa8c58c1980557f1c1abc), [267898c](https://github.com/openclaw/openclaw/commit/267898cddb9804bc2f27f94350e0c2342b48bf4b), [55ed57a](https://github.com/openclaw/openclaw/commit/55ed57a4e39b8e40628b9fcbfc982e9ac5fd86b5), [c54dc67](https://github.com/openclaw/openclaw/commit/c54dc67381933fa6240fe617e414fd6f1933ea38), [fd0355d](https://github.com/openclaw/openclaw/commit/fd0355d5b1a12c263bbd87e01ee88f451d11514b), [49726a5](https://github.com/openclaw/openclaw/commit/49726a5f5cbc013d42d7bf64c3033bbce4af319c), [2ffeedf](https://github.com/openclaw/openclaw/commit/2ffeedf406e741e9f58858c83af06aa763ba1ab6), [#98043](https://github.com/openclaw/openclaw/pull/98043), [beca2b1](https://github.com/openclaw/openclaw/commit/beca2b1749733f4afccf47a780187859e7afce22), [4078dc7](https://github.com/openclaw/openclaw/commit/4078dc78cc79b6a9ab0564f065fe1871a9a0c499), [e7e98f6](https://github.com/openclaw/openclaw/commit/e7e98f6399cd7bffdd5598bb86a48066dd2ce3e3), [3020f78](https://github.com/openclaw/openclaw/commit/3020f7817eb3ecf54057ed2847a0d54d0801d348), [0c82908](https://github.com/openclaw/openclaw/commit/0c82908f78e9eb33a9ad13dd726fa92833a688d9), [8a3935f](https://github.com/openclaw/openclaw/commit/8a3935fe0ba7b06dd76203b4f20b11a74ecbc688), [3f289fd](https://github.com/openclaw/openclaw/commit/3f289fdb4042446042b6cd9a5261a17dc3edf6a0), [203a896](https://github.com/openclaw/openclaw/commit/203a896b27c5c5191823138a4365578e0e77352d), [6afef15](https://github.com/openclaw/openclaw/commit/6afef15100fb402fb747a3543822d33fb9086f68). Thanks @yeager. 1115 New-chat and worktree-chat entry points now appear in the selected language... New-chat and worktree-chat entry points now appear in the selected language across supported Android and Apple app locales. [24bca38](https://github.com/openclaw/openclaw/commit/24bca38cdaad4a304a5624ef8ddc6cdc9b7d4d5a) 1116 Supported non-English native apps now cover more Gateway setup, session, pr... Supported non-English native apps now cover more Gateway setup, session, provider, health, messaging, terminal, and device text without English gaps. [52f1e05](https://github.com/openclaw/openclaw/commit/52f1e056006dc3aeca574877d51b942c87fa7cb1) 1117 Refreshed native language packs now cover workspace files, sharing actions,... Refreshed native language packs now cover workspace files, sharing actions, folder states, Android SMS guidance, message delivery states, and related branding. [a9b0a9a](https://github.com/openclaw/openclaw/commit/a9b0a9a12b07899d8a0c4638a8521f5865d75bc6) 1118 Supported non-English native apps now translate the new Terminal destinatio... Supported non-English native apps now translate the new Terminal destination, Gateway setup guidance, Back action, connection messages, and OpenClaw branding. [e069cb2](https://github.com/openclaw/openclaw/commit/e069cb26f72a2e6233df8e2bd18a4274e1d53722) 1119 Native app onboarding and AI connection guidance now reflects Crestodian an... Native app onboarding and AI connection guidance now reflects Crestodian and the current setup flow across supported non-English locales. Sources: [ad4809f](https://github.com/openclaw/openclaw/commit/ad4809f677f531cb00085c1d006db3d46a529ed8), [f0ecc16](https://github.com/openclaw/openclaw/commit/f0ecc16629f018d157345f1c653011f3ec9c97d3). 1120 Native app command search now translates loading, unavailable, retry, and n... Native app command search now translates loading, unavailable, retry, and no-result states across the languages updated in this release. Sources: [745d2d0](https://github.com/openclaw/openclaw/commit/745d2d09cdbc79a019d2f7491bf04959ead4e51b), [7f7bec7](https://github.com/openclaw/openclaw/commit/7f7bec78445d049ba1d1b7019b2085cc808beb5a), [35be1c8](https://github.com/openclaw/openclaw/commit/35be1c81439c8df99e4de7057344c5bf0d056f56), [7db67ab](https://github.com/openclaw/openclaw/commit/7db67abd9eb01c36c55f3621a1b3521b290131b3), [4bc5766](https://github.com/openclaw/openclaw/commit/4bc57666cd8b0924f5ab15d5d8cafc4ba9b0ddbb), [0672720](https://github.com/openclaw/openclaw/commit/06727207d66ec1aef814664cf1e88da82c100140), [2a8cd44](https://github.com/openclaw/openclaw/commit/2a8cd440d14ae66e41c63140ea0c0067ca033461), [fd648fb](https://github.com/openclaw/openclaw/commit/fd648fbb17575fec3780c7d8fddf13780b083df2), [00b0b40](https://github.com/openclaw/openclaw/commit/00b0b40e284f40c3c8906251bbb202b81caab656), [a67990a](https://github.com/openclaw/openclaw/commit/a67990a180d6915328165dd7dc9975395160a784), [7640f67](https://github.com/openclaw/openclaw/commit/7640f672b407cf28384cbf5396cdf5d20965da6b), [15f4819](https://github.com/openclaw/openclaw/commit/15f481920c079364513b06939edc06aba6caef04), [4d1d720](https://github.com/openclaw/openclaw/commit/4d1d720164dbf3eb46c4d3a4a98814c2a1d2bdc2), [d1d3a27](https://github.com/openclaw/openclaw/commit/d1d3a2724feeca65759f2658c4af6a8350c1f854), [c2737d5](https://github.com/openclaw/openclaw/commit/c2737d55a9ffea741e07687a6eb40eff61fd369d), [bd3263d](https://github.com/openclaw/openclaw/commit/bd3263d713a1dbb299c14392139bab3cc5aed428), [127ce63](https://github.com/openclaw/openclaw/commit/127ce639547ef0f6016c829c31b915d97d4a55df), [0c960cd](https://github.com/openclaw/openclaw/commit/0c960cd8ae6a1553bdef3820b8167376772e7e53), [e6c3ad9](https://github.com/openclaw/openclaw/commit/e6c3ad99637b4f6fba34d9f2d64f7ca5b2413e45), [84c86f7](https://github.com/openclaw/openclaw/commit/84c86f73eb99b716598d031e7dce58ed73fa5d28), [e7aea60](https://github.com/openclaw/openclaw/commit/e7aea605426cfe8e39287b1e07fa23436260c88b). 1121 Native chat controls for jumping to the latest message or reply now use the... Native chat controls for jumping to the latest message or reply now use the selected language across the translations in this release. Sources: [e31fa36](https://github.com/openclaw/openclaw/commit/e31fa360d94a0efd6003079271986ad32f0c2f9c), [375def8](https://github.com/openclaw/openclaw/commit/375def86042a938141bed0c635c361df72cf0ab2), [aabe44f](https://github.com/openclaw/openclaw/commit/aabe44f6382206a49855e8b7c7f1848666790f61), [48c3f4b](https://github.com/openclaw/openclaw/commit/48c3f4b10326a890352ba5e7dd51fad897145c38), [3db6fb9](https://github.com/openclaw/openclaw/commit/3db6fb9972768d7b4979a2649f202d8851935dd8), [a4b51e5](https://github.com/openclaw/openclaw/commit/a4b51e58d3627ba4524a98d9aebe2c11115b284e), [a60686d](https://github.com/openclaw/openclaw/commit/a60686dbc376667625e1613aa131af5487e5d8fa), [12e17ec](https://github.com/openclaw/openclaw/commit/12e17ec052982a37c29245d738954488248ea8c7), [6c4ac0c](https://github.com/openclaw/openclaw/commit/6c4ac0c71da53cd99968a976894c7b8def078f67), [bdc6258](https://github.com/openclaw/openclaw/commit/bdc625866b942f8f8d82ecfb72427f7c90992e78), [a775f9f](https://github.com/openclaw/openclaw/commit/a775f9f78e80a76b49cdf259e71ee002ee1da101), [a1f6acc](https://github.com/openclaw/openclaw/commit/a1f6accef457ab9f48adff2975a853e28c291909), [ee9f61d](https://github.com/openclaw/openclaw/commit/ee9f61d724ff265017c93aef0b11c2d5f1a2401b), [f188c66](https://github.com/openclaw/openclaw/commit/f188c664c0e73d455f3bf6c5ac074a5432269c50), [2525078](https://github.com/openclaw/openclaw/commit/2525078b86544143634697a4f46aef850b783025), [ed5ccda](https://github.com/openclaw/openclaw/commit/ed5ccda79c8b0b96c59a6af880bf114997e85414), [a6a4792](https://github.com/openclaw/openclaw/commit/a6a4792098a88953f1be8a81035f06b9bd7ed83a), [0924bee](https://github.com/openclaw/openclaw/commit/0924bee96bcc86715942d11c31b878c323548e90), [0420aef](https://github.com/openclaw/openclaw/commit/0420aefb1d4eeab37bbcf7f50268c41cfb760b26), [d23c4fd](https://github.com/openclaw/openclaw/commit/d23c4fdbb55f06833b9e37675185c003f7b3ea81), [37f0067](https://github.com/openclaw/openclaw/commit/37f006725d3706cfa28922178e123d8ff192f352). 1122 Native prompts for starting work, checking status, using phone and voice co... Native prompts for starting work, checking status, using phone and voice controls, pairing, and returning to Chat now use the selected language across the translations in this release. Sources: [dd050bc](https://github.com/openclaw/openclaw/commit/dd050bc5f8151488e080b117714ea9f5cad832b5), [db72ffd](https://github.com/openclaw/openclaw/commit/db72ffd5d47050acb2d4dd72de8087c162876523), [4997802](https://github.com/openclaw/openclaw/commit/4997802eb0051cc83b9da1a06c923f211ff12159), [2dc7bd1](https://github.com/openclaw/openclaw/commit/2dc7bd19cb67742a7908427d2512d7b816f4d96f), [4381c29](https://github.com/openclaw/openclaw/commit/4381c294942b342c0b7df82668fdae7883978ba8), [9eb1a05](https://github.com/openclaw/openclaw/commit/9eb1a05c49082f221547015ad7a69561d113964a), [7838bc8](https://github.com/openclaw/openclaw/commit/7838bc82b6df287946b9d45afd52f507c1e1463c), [4352eaf](https://github.com/openclaw/openclaw/commit/4352eaf6ade181654d5a729e5632a1681385b1e6), [43fe5cc](https://github.com/openclaw/openclaw/commit/43fe5cc890fc98a29af7aacd4030a0c288f76f76), [6bd1a4b](https://github.com/openclaw/openclaw/commit/6bd1a4b89f2f82da1e19b0205c80fc4bd855be6d), [531af42](https://github.com/openclaw/openclaw/commit/531af42246acecc8ee37d0ee189c8d3b8fea3af6), [305715c](https://github.com/openclaw/openclaw/commit/305715c725af26d80c69bc9daa3fad77df330139), [8f9e163](https://github.com/openclaw/openclaw/commit/8f9e1635a1d6351f9ec4a64c2624423e45b5e7a8), [2abad57](https://github.com/openclaw/openclaw/commit/2abad575d250b6e7723a660c92b5ad7fed9ea379). 1123 Native app status and appearance choices now use the selected language acro... Native app status and appearance choices now use the selected language across the translations in this release. Sources: [58d199b](https://github.com/openclaw/openclaw/commit/58d199bbcbd298a3e806bcf5c56eb242759dea5b), [c15348b](https://github.com/openclaw/openclaw/commit/c15348b74f6291282d79b592ec29577b2b871852), [c047a3a](https://github.com/openclaw/openclaw/commit/c047a3a9c669f12c51e3cf0f72606e53e85f7f2b), [e191685](https://github.com/openclaw/openclaw/commit/e191685be93f9a461d6346439ce227419fb41d1d), [b1e173d](https://github.com/openclaw/openclaw/commit/b1e173d4c30419f8c7f7393a9c4977f30a49ddcd), [50fecf8](https://github.com/openclaw/openclaw/commit/50fecf848c405af2902838cecb34771367f3552c), [5211afe](https://github.com/openclaw/openclaw/commit/5211afeb67cc521eb7b55cf19884e1d77c6dbbce), [4c43cf5](https://github.com/openclaw/openclaw/commit/4c43cf5eaba52ab729587c9d4f4a660638770701), [fb394de](https://github.com/openclaw/openclaw/commit/fb394de179ba7b5914b1b886795d67c17aff39e8), [ba8c1fa](https://github.com/openclaw/openclaw/commit/ba8c1fa76fe9031424cc2727c7d0f7b2cd08ecba), [7bee4f6](https://github.com/openclaw/openclaw/commit/7bee4f67d4cd66c78009497f931b8a19e03dda2a), [77ab268](https://github.com/openclaw/openclaw/commit/77ab268f79a5cee110df9ee0014b08f67368ff55), [2417d94](https://github.com/openclaw/openclaw/commit/2417d94663fdfd8770ebf00d67f0a73ae1a904cb), [9b6ef34](https://github.com/openclaw/openclaw/commit/9b6ef34f9deaa6f6fa524b860340d7000eb87ccd), [9c4274f](https://github.com/openclaw/openclaw/commit/9c4274f94570f1f41ee30350eae32255c675c38e), [2671bcc](https://github.com/openclaw/openclaw/commit/2671bcc39f8c17d55ae3e96cabf48e4d474cac19), [b21153b](https://github.com/openclaw/openclaw/commit/b21153b98d6d2bde03cd1979d6db6ecb2ad47bab), [117e8e1](https://github.com/openclaw/openclaw/commit/117e8e1e042709b6eba851fc8d208b98c43b22b9), [cc0d7e1](https://github.com/openclaw/openclaw/commit/cc0d7e1dd4c638034cafc27a93da1bb7c7735694), [e6f3f54](https://github.com/openclaw/openclaw/commit/e6f3f54ad05728d874fdc4ff492e688741785249), [dd64f66](https://github.com/openclaw/openclaw/commit/dd64f66bb981595b8558af907d628fd49322a06f), [4c16e66](https://github.com/openclaw/openclaw/commit/4c16e669b2252724cd6e68bf68d727de3edfedc9), [3a8375c](https://github.com/openclaw/openclaw/commit/3a8375c29a810d923603d9f043e3e0916548bddf), [3e3b6d6](https://github.com/openclaw/openclaw/commit/3e3b6d6669468460959f1c9a57f4cb6a84b00620), [c356245](https://github.com/openclaw/openclaw/commit/c356245fc0d04803f768b6cd0675744728618fcd), [d506201](https://github.com/openclaw/openclaw/commit/d506201c6578e5ae782c4a401cdfd46557a11b1f). 1124 Native app license notices, acknowledgements, and unavailable-file explanat... Native app license notices, acknowledgements, and unavailable-file explanations now use the selected language across the translations in this release. Sources: [34bf5a9](https://github.com/openclaw/openclaw/commit/34bf5a90b4ae2ff2b987899a44f9c6b10467f6fe), [068088c](https://github.com/openclaw/openclaw/commit/068088c7fc98d6e18d67855abb2c9ad9e6de449a), [a623ac7](https://github.com/openclaw/openclaw/commit/a623ac71eba10364e558490326273cf369d9ee3c), [71374d3](https://github.com/openclaw/openclaw/commit/71374d379b40cd080992955e57587b552e55a5f6), [a9b0de8](https://github.com/openclaw/openclaw/commit/a9b0de803789a9945c12bf37f143ae4cde2faeba), [8f495e2](https://github.com/openclaw/openclaw/commit/8f495e2f805af548d78ee1f3834bde962a86f1a9), [436dd39](https://github.com/openclaw/openclaw/commit/436dd3934328bce7d75d77998212441859a044db), [f917e89](https://github.com/openclaw/openclaw/commit/f917e893a6d3fb2005074b6a1d752cf4fd505497), [2c8b97c](https://github.com/openclaw/openclaw/commit/2c8b97cee9e056f155e2144311eccd5e5a66a6e2), [ace162b](https://github.com/openclaw/openclaw/commit/ace162b95b47d1a16e9b2dd42851af64c731a9f1), [e60cccf](https://github.com/openclaw/openclaw/commit/e60cccf8a9c95d7a158e3fe4b8f47204141fea2e), [359ea4c](https://github.com/openclaw/openclaw/commit/359ea4c19bc9251e225a130d6f9c0fcab71d0ec2), [b7bc860](https://github.com/openclaw/openclaw/commit/b7bc8600e46aca2fbac8e0ddbea1a1084db80c64), [49ea27e](https://github.com/openclaw/openclaw/commit/49ea27ecc230b49b664b594e99758400595fa80f), [99cbc58](https://github.com/openclaw/openclaw/commit/99cbc589536e7309a5f8c468de4d9795addad55f), [204526a](https://github.com/openclaw/openclaw/commit/204526ac0a2a35fd7482cac4c64ecee6ad7de0fa), [3821c36](https://github.com/openclaw/openclaw/commit/3821c36d58cebab82ebf46614413b688930e3b47), [030d184](https://github.com/openclaw/openclaw/commit/030d184254756706af637fb1eeb0a9c31036eb8c), [24f639c](https://github.com/openclaw/openclaw/commit/24f639c66ca9a05a6531d4504971f67434989324), [499feb2](https://github.com/openclaw/openclaw/commit/499feb2e2fd474c7abeff9e87743b720ba03f593), [591d099](https://github.com/openclaw/openclaw/commit/591d099897938a27c6383b17ca36e128abcf098c). 1125 Native photo-permission controls now explain limited, selected, and recent-... Native photo-permission controls now explain limited, selected, and recent-photo access in the selected language across the translations in this release. Sources: [c360f92](https://github.com/openclaw/openclaw/commit/c360f92563fb2221452ae599412ea61f9eee188b), [4dd027e](https://github.com/openclaw/openclaw/commit/4dd027eaa1f14356f4f7740d4258d72adb59d2f2), [9cde1ca](https://github.com/openclaw/openclaw/commit/9cde1ca97141784f89816afd9283b2d7416b9a8c), [328fb70](https://github.com/openclaw/openclaw/commit/328fb70ba730bc7bb4cd3a0eaa5e6d1d089c734c), [71e5fcc](https://github.com/openclaw/openclaw/commit/71e5fccb644b51e50f61e8e3bd6715a0fd717a58), [b11d710](https://github.com/openclaw/openclaw/commit/b11d710e524f7d6d664ea5857f358f4ebbaff6e4), [55a2a9b](https://github.com/openclaw/openclaw/commit/55a2a9b0f0c4c56d03292b930ed116a146322e6c), [c4b40d0](https://github.com/openclaw/openclaw/commit/c4b40d0b2a008c1ba1bae82a180e455bc8656e00), [3a1b983](https://github.com/openclaw/openclaw/commit/3a1b983bc227f67ac0862f1761d53f6a3fee083d), [dea40a5](https://github.com/openclaw/openclaw/commit/dea40a5f96307e9da0862bbc774100f799110d6c), [4b1fab8](https://github.com/openclaw/openclaw/commit/4b1fab8047319bc07e47ef8136a9c83594729ed8), [44ca739](https://github.com/openclaw/openclaw/commit/44ca739f77ab7dfaa1f096627e84bc79e859b849), [d36452c](https://github.com/openclaw/openclaw/commit/d36452cc0bd66722f426c7c686859cbfcb1e9f24), [a50a59e](https://github.com/openclaw/openclaw/commit/a50a59e64802a1263bd8befe6c4bea57e055499e), [49b68e1](https://github.com/openclaw/openclaw/commit/49b68e1039347867c227e992fa7fcfac3e58f932), [122e4ba](https://github.com/openclaw/openclaw/commit/122e4ba3a30f32b8d563d7afa2f60cc4cd6c431b), [4086d35](https://github.com/openclaw/openclaw/commit/4086d35caf54c3a9759b21ad5f83536cdf08c2bc), [547a563](https://github.com/openclaw/openclaw/commit/547a563e4ca3cf6d573cf6210db3ffbedb592175), [538f28a](https://github.com/openclaw/openclaw/commit/538f28abce55949ee0a412da07664092427413d1), [c5afa92](https://github.com/openclaw/openclaw/commit/c5afa92c1f8ac63a9c01b7971acabcfb1d6f948f), [32a986d](https://github.com/openclaw/openclaw/commit/32a986d21c170741b5505870dd0a2e98ec410b1d). 1126 Native skill availability, Gateway setup, diagnostics, privacy, and access... Native skill availability, Gateway setup, diagnostics, privacy, and access guidance now use the selected language across the translations in this release. Sources: [fdcd5c0](https://github.com/openclaw/openclaw/commit/fdcd5c0eb0c2493f5d3845fcf76a02f4e1a6d6ba), [26f6735](https://github.com/openclaw/openclaw/commit/26f673526e7a6680df175570da67baf6fe5abeed), [5220eff](https://github.com/openclaw/openclaw/commit/5220effc10c92cec20abb6df0c5acdaa40e56ad6), [bb7dbda](https://github.com/openclaw/openclaw/commit/bb7dbda027b9451281f2d81d2f4cbad9a003599c), [952245b](https://github.com/openclaw/openclaw/commit/952245b49c4b6743afc9ad97f6f3e48af407e5ed), [edb1e74](https://github.com/openclaw/openclaw/commit/edb1e74645ebba0b8992863a9d395d80fd10498f), [f7bad57](https://github.com/openclaw/openclaw/commit/f7bad5749b9a441a6b55d1dc34cf9ef037270960), [0602930](https://github.com/openclaw/openclaw/commit/060293056b33ff1a44dd5ab6f44ff8783d612f31), [e779b8f](https://github.com/openclaw/openclaw/commit/e779b8f1bde92173dcaeadd87853a458656dd7b3), [0400be7](https://github.com/openclaw/openclaw/commit/0400be7118c03b6e3c2330fc31d9451e5a2c0151), [851d0ad](https://github.com/openclaw/openclaw/commit/851d0ad7354321ccad43ecf5f7c04abd168da0dc), [1e0dd95](https://github.com/openclaw/openclaw/commit/1e0dd95e5d9a0bb4d62dd72ce451a9902b4eb6d3), [703e1ad](https://github.com/openclaw/openclaw/commit/703e1adadefe213c4fcc312ccb4aead7b120a3a1), [1c93e50](https://github.com/openclaw/openclaw/commit/1c93e509a36673ee8a58b0c1aa6c4b9a9a00a5e8), [37c45f2](https://github.com/openclaw/openclaw/commit/37c45f28fbbdbd768bd7fefa8d8a94274d075aa9), [8fe917b](https://github.com/openclaw/openclaw/commit/8fe917b4f7784e44dabcb6cf7b673da74bf3753e), [da21e4b](https://github.com/openclaw/openclaw/commit/da21e4b8dd47fc174cef6e3373471aba37f851e0), [f4f63b1](https://github.com/openclaw/openclaw/commit/f4f63b187041cd20fe4016ad62d85ad59b94fa66), [3e4febb](https://github.com/openclaw/openclaw/commit/3e4febbe68f82d8ee06977486a0f50ecba933452), [a82cd35](https://github.com/openclaw/openclaw/commit/a82cd35ed5405a5cca392a5272fe898264eaf107), [52323b6](https://github.com/openclaw/openclaw/commit/52323b67c5872f5c396ad2eb5e5749bfa1a63f6e). 1127 Native Gateway connection, diagnostics, permissions, onboarding, Chat, and... Native Gateway connection, diagnostics, permissions, onboarding, Chat, and Talk guidance now uses the selected language across the translations in this release. Sources: [3b27bb4](https://github.com/openclaw/openclaw/commit/3b27bb4536a3bdc4b6bdf82fc59f878e478121d0), [e296d14](https://github.com/openclaw/openclaw/commit/e296d1447eb7b7666100e34169b0cd27b07e759c), [5516775](https://github.com/openclaw/openclaw/commit/5516775933a84f3bc88f9a485d7f53ad2d9e5928), [6ec4962](https://github.com/openclaw/openclaw/commit/6ec49620baf962ecbd2c69f0299fd98410f18a8f), [291f2a4](https://github.com/openclaw/openclaw/commit/291f2a477373c01cde9aac0f36438b9073b7677e), [7e2d41b](https://github.com/openclaw/openclaw/commit/7e2d41b94c7a11ba96abe1839819e7c63c3e6c87), [81bc96f](https://github.com/openclaw/openclaw/commit/81bc96f70f9e50fcf7cbbe014d0e6f9b10ff35d0), [574556c](https://github.com/openclaw/openclaw/commit/574556cd32d816436209d006d6744273b82a0276), [8bb44e6](https://github.com/openclaw/openclaw/commit/8bb44e60d0cf740d13663d40a780fa28705eeeed), [ae09908](https://github.com/openclaw/openclaw/commit/ae09908259e163598eea8170640255aa6d8c04ce), [42fc19d](https://github.com/openclaw/openclaw/commit/42fc19d77e93e7a41ce634c43f3317d3e123fd6a), [28bbb43](https://github.com/openclaw/openclaw/commit/28bbb439f6398a3e48fa8a88e67879290bb70ea0), [6ff9185](https://github.com/openclaw/openclaw/commit/6ff9185637fc3ab0fd1f966355fc7cfe505863e8), [4be0be6](https://github.com/openclaw/openclaw/commit/4be0be697fb95444596f9d604cf54ea4ecd12943), [0f1fbbe](https://github.com/openclaw/openclaw/commit/0f1fbbe8779dfbe317bf99de0a45aebcdadec1ea), [d893a72](https://github.com/openclaw/openclaw/commit/d893a724f6f0e91161a93a223d01057c04cd8db4), [f5cb29b](https://github.com/openclaw/openclaw/commit/f5cb29b2881edf85de14569adbfaea44b7b02056). 1128 Wake Words and Discovery Logs now use current, natural labels across suppor... Wake Words and Discovery Logs now use current, natural labels across supported non-English native app locales. [de30d2f](https://github.com/openclaw/openclaw/commit/de30d2f5c333d49004f0771f529b578ed1af6f17) 1129 Supported non-English native apps now translate workspace file browsing and... Supported non-English native apps now translate workspace file browsing and sharing, image preview failures, offline status, and custom Gateway header controls. [6b99fd9](https://github.com/openclaw/openclaw/commit/6b99fd9a94ce99023c77e733efe7943e4f51c285) 1130 OpenClaw's mascot now uses the same float, blink, antenna, and claw animati... OpenClaw's mascot now uses the same float, blink, antenna, and claw animations across web, iOS, and Android surfaces while respecting reduced-motion preferences. [851156a](https://github.com/openclaw/openclaw/commit/851156af3b35b56c56d8d20fff7fb97104d13d1a) 1131 New Android users now get a guided first-run path through setup-code or QR... New Android users now get a guided first-run path through setup-code or QR entry, Gateway pairing, node approval, permissions, recovery steps, and confirmed phone readiness before onboarding completes. [#98752](https://github.com/openclaw/openclaw/pull/98752) Thanks @jesse-merhi. 1132 Android users can open an agent-workspace shell from Settings &gt Android users can open an agent-workspace shell from Settings > Terminal, with clear connection guidance and Gateway credentials passed without placing the token in the URL when supported. [fcd7eb6](https://github.com/openclaw/openclaw/commit/fcd7eb6130ed0d3de4a850bda6434f6a8b67664f) 1133 Android users can sideload the official signed `OpenClaw-Android Android users can sideload the official signed `OpenClaw-Android.apk` from a stable GitHub release and verify it with the published SHA-256 checksums. [#101212](https://github.com/openclaw/openclaw/pull/101212) 1134 Android node reconnects now point users from a failed `devices approve` att... Android node reconnects now point users from a failed `devices approve` attempt to the correct `openclaw nodes approve <requestId>` command, including a reminder to reuse connection flags. [#98115](https://github.com/openclaw/openclaw/pull/98115) Thanks @welfo-beo. 1135 Android SMS commands now clearly distinguish phone permission from the Gate... Android SMS commands now clearly distinguish phone permission from the Gateway's separate opt-in, allowing read-only `sms.search` without also enabling `sms.send`. [#100993](https://github.com/openclaw/openclaw/pull/100993) Thanks @narcissus0702. 1136 Android notification forwarding now leaves WhatsApp, Telegram, Discord, and... Android notification forwarding now leaves WhatsApp, Telegram, Discord, and Signal messages with their dedicated channel sessions, preventing duplicate or wrong-conversation replies while other selected apps continue to follow forwarding rules. [#101170](https://github.com/openclaw/openclaw/pull/101170) 1137 Android Canvas content can no longer navigate to device-local web services,... Android Canvas content can no longer navigate to device-local web services, while normal remote and Gateway-hosted pages continue to work. [#99874](https://github.com/openclaw/openclaw/pull/99874) Thanks @ly85206559. 1138 Android release builds no longer expose detailed `camera Android release builds no longer expose detailed `camera.clip` settings, device data, temporary paths, and recording events in production logs. [#99484](https://github.com/openclaw/openclaw/pull/99484) Thanks @nianjiuzst. 1139 Android Back navigation now returns users from Gateway or Talk settings, Se... Android Back navigation now returns users from Gateway or Talk settings, Sessions, and Providers to the Voice, Chat, or command-palette tab where they started. [#98914](https://github.com/openclaw/openclaw/pull/98914) Thanks @lokimorty. 1140 Android now presents evenly spaced bottom tabs and avoids the chat-cache st... Android now presents evenly spaced bottom tabs and avoids the chat-cache startup crash that could block entry to the post-onboarding shell. [#100382](https://github.com/openclaw/openclaw/pull/100382) Thanks @iwhatsskill. 1141 Android's Home overview now uses more consistent card, Talk, and recent-ses... Android's Home overview now uses more consistent card, Talk, and recent-session spacing for a calmer, easier-to-tap first screen. [#100059](https://github.com/openclaw/openclaw/pull/100059) Thanks @iwhatsskill. 1142 Android's command palette now keeps action and session rows visually aligne... Android's command palette now keeps action and session rows visually aligned, with consistent icons, navigation spacing, and clean truncation for long labels. [#101072](https://github.com/openclaw/openclaw/pull/101072) Thanks @iwhatsskill. 1143 Android users can open a scheduled job to inspect its timing, payload, deli... Android users can open a scheduled job to inspect its timing, payload, delivery state, recent results, errors, and exact ID. [#95107](https://github.com/openclaw/openclaw/pull/95107) Thanks @tosko4. 1144 The Android Files card now lets users browse the active agent workspace, pr... The Android Files card now lets users browse the active agent workspace, preview text and images, and share output directly from their phone. [#100776](https://github.com/openclaw/openclaw/pull/100776) 1145 Android users can now read bundled third-party and open-source license noti... Android users can now read bundled third-party and open-source license notices directly from Settings > Licenses. [#99299](https://github.com/openclaw/openclaw/pull/99299) Thanks @joshavant. 1146 Android's About screen now clearly identifies OpenClaw and provides direct... Android's About screen now clearly identifies OpenClaw and provides direct links to the website, documentation, source repository, and Discord community. [#100994](https://github.com/openclaw/openclaw/pull/100994) 1147 Android Chat now includes a New chat action and a `/` command browser that... Android Chat now includes a New chat action and a `/` command browser that filters the current agent's advertised commands without dropping command arguments. [#98796](https://github.com/openclaw/openclaw/pull/98796) Thanks @iwhatsskill, @solvely-colin. 1148 Android Chat now lets users choose and verify the configured agent for new... Android Chat now lets users choose and verify the configured agent for new messages, with Chat, Talk mode, and the home canvas staying aligned to that selection. [#80422](https://github.com/openclaw/openclaw/pull/80422) Thanks @bcperry. 1149 Android chats now render links, lists, quotes, emphasis, code, and plain te... Android chats now render links, lists, quotes, emphasis, code, and plain text consistently through the shared Markdown renderer. [#88899](https://github.com/openclaw/openclaw/pull/88899) Related [#88014](https://github.com/openclaw/openclaw/issues/88014). Thanks @iman-sharif, @pluviobyte. 1150 Android chat now adds light- and dark-mode syntax highlighting to supported... Android chat now adds light- and dark-mode syntax highlighting to supported fenced code, making code-heavy replies easier to scan without delaying partial or oversized messages. [#100217](https://github.com/openclaw/openclaw/pull/100217) 1151 Android chat now restores an active response with buffered text after recon... Android chat now restores an active response with buffered text after reconnecting or reopening, and recovers missed event gaps without duplicating transcript rows. [#100384](https://github.com/openclaw/openclaw/pull/100384) 1152 Android chat now keeps sent messages and active replies stable through reco... Android chat now keeps sent messages and active replies stable through reconnects, reconciling delayed history without duplicate turns or stale composer activity. [#100551](https://github.com/openclaw/openclaw/pull/100551) 1153 Android chats now keep internal reasoning, tool results, and raw operationa... Android chats now keep internal reasoning, tool results, and raw operational details out of both live conversations and reopened offline caches. [#100826](https://github.com/openclaw/openclaw/pull/100826) Thanks @iman-sharif. 1154 Android users can long-press a completed chat message to copy all text, sel... Android users can long-press a completed chat message to copy all text, select an excerpt, share it, or quote it in a reply without losing their current draft. [#100879](https://github.com/openclaw/openclaw/pull/100879) Thanks @bdhwan. 1155 Android chat users can preview a link's destination and summary before open... Android chat users can preview a link's destination and summary before opening it, without messages triggering background lookups and with a clear unavailable state when inspection fails. [#100898](https://github.com/openclaw/openclaw/pull/100898) 1156 Android's model picker now stays aligned with the active chat and agent, an... Android's model picker now stays aligned with the active chat and agent, and a failed model change no longer sends the next message with the previous model. [#100985](https://github.com/openclaw/openclaw/pull/100985) 1157 Android hides thinking controls for models that do not support configurable... Android hides thinking controls for models that do not support configurable reasoning, prevents unsupported settings from breaking live or queued sends, and restores the user's preference on compatible models. [#101002](https://github.com/openclaw/openclaw/pull/101002) 1158 Android users can search sessions by name, label, or key beyond the current... Android users can search sessions by name, label, or key beyond the currently loaded Recent or Archived window, with cached active-session matches still available during a temporary Gateway outage. [#101102](https://github.com/openclaw/openclaw/pull/101102) 1159 Android users with a physical keyboard can press Enter to send a chat messa... Android users with a physical keyboard can press Enter to send a chat message while modified Enter combinations remain available for multiline text. [#101321](https://github.com/openclaw/openclaw/pull/101321) Thanks @3ninyt3nin-creator. 1160 Android users can now see safe page thumbnails in expanded link previews, w... Android users can now see safe page thumbnails in expanded link previews, while bad or blocked images quietly leave the text preview intact. [#101396](https://github.com/openclaw/openclaw/pull/101396) 1161 Android users can now archive a chat session and delete it from the Archive... Android users can now archive a chat session and delete it from the Archived view even with the app's bounded operator permissions. [#101522](https://github.com/openclaw/openclaw/pull/101522) 1162 Android users with a hardware keyboard can now send from the chat composer... Android users with a hardware keyboard can now send from the chat composer with Enter, while an unaccepted send still preserves the draft. [de8db74](https://github.com/openclaw/openclaw/commit/de8db7405850146199c5f4e6e9efa0704878eea4) Thanks @vincentkoc. 1163 Android users can switch the current chat's model from the composer, pin fa... Android users can switch the current chat's model from the composer, pin favorites, revisit recent choices, and return to the default without leaving the conversation; older pairings may need to be renewed. [#100798](https://github.com/openclaw/openclaw/pull/100798) 1164 Android chat now renders top-level display LaTeX as readable equations whil... Android chat now renders top-level display LaTeX as readable equations while invalid or still-streaming math remains visible as text. [#101435](https://github.com/openclaw/openclaw/pull/101435) 1165 Android's thread picker now prioritizes real conversations, hides internal... Android's thread picker now prioritizes real conversations, hides internal setup and device sessions, and still makes valid older chats available through All. [#99557](https://github.com/openclaw/openclaw/pull/99557) Thanks @ly85206559. 1166 Returning to an already loaded Android chat no longer flashes a loading scr... Returning to an already loaded Android chat no longer flashes a loading screen, and the Overview recent-session list stays deduplicated and steadier during refreshes. [#100966](https://github.com/openclaw/openclaw/pull/100966) Thanks @solvely-colin. 1167 Android Home's Recent Sessions section now keeps recently active rows in a... Android Home's Recent Sessions section now keeps recently active rows in a stable order, collapses duplicates, and preserves labels and timestamps during partial live refreshes. [#101161](https://github.com/openclaw/openclaw/pull/101161) Thanks @solvely-colin. 1168 Android physical-keyboard users can press or hold Enter to send once withou... Android physical-keyboard users can press or hold Enter to send once without leaving a stray newline, while Shift+Enter and in-progress input-method composition keep working. [#101360](https://github.com/openclaw/openclaw/pull/101360) Thanks @3ninyt3nin-creator, @joshavant. 1169 Expanded Android link previews now keep thumbnail memory within a byte budg... Expanded Android link previews now keep thumbnail memory within a byte budget, reducing excessive memory retention during long chats. [#101560](https://github.com/openclaw/openclaw/pull/101560) 1170 Android can now keep multiple Gateways paired and switch among them without... Android can now keep multiple Gateways paired and switch among them without repeating setup, while each Gateway retains its own credentials, chat state, queued messages, and removable local data. [#100947](https://github.com/openclaw/openclaw/pull/100947) 1171 Android Gateway actions now stop promptly when their connection closes, whi... Android Gateway actions now stop promptly when their connection closes, while requests started after reconnect are not cancelled by old cleanup. [#98067](https://github.com/openclaw/openclaw/pull/98067) Thanks @nianjiuzst. 1172 Android connection recovery now identifies expired setup codes, stale crede... Android connection recovery now identifies expired setup codes, stale credentials, and missing or invalid authentication with the appropriate next step. [#98094](https://github.com/openclaw/openclaw/pull/98094) Thanks @qingminglong. 1173 Android can reconnect to the same Gateway without erasing saved access when... Android can reconnect to the same Gateway without erasing saved access when credential fields are blank, while endpoint and setup-code changes avoid carrying stale credentials silently. [#98277](https://github.com/openclaw/openclaw/pull/98277) Thanks @solvely-colin. 1174 Android now gives clearer TLS verification guidance for reachable remote an... Android now gives clearer TLS verification guidance for reachable remote and Tailnet Gateways and allows slow valid handshakes more time to show the trust prompt. [#98366](https://github.com/openclaw/openclaw/pull/98366) Related [#98365](https://github.com/openclaw/openclaw/issues/98365). Thanks @joshavant. 1175 Android can now pair with local Gateways advertised by standard cleartext ` Android can now pair with local Gateways advertised by standard cleartext `.local` names while continuing to reject unsafe remote or ambiguous cleartext addresses. [#98439](https://github.com/openclaw/openclaw/pull/98439) Thanks @joshavant. 1176 Scanning a valid Gateway setup QR code on Android now starts pairing immedi... Scanning a valid Gateway setup QR code on Android now starts pairing immediately and advances to recovery or approval instead of leaving users on setup. [#98483](https://github.com/openclaw/openclaw/pull/98483) Thanks @joshavant. 1177 Android Gateway setup now replaces a generic authentication warning with sp... Android Gateway setup now replaces a generic authentication warning with specific recovery labels for expired setup codes, missing or invalid credentials, stale saved authentication, and required device identity. [#98698](https://github.com/openclaw/openclaw/pull/98698) Related [#98046](https://github.com/openclaw/openclaw/issues/98046). Thanks @ccaprani, @masatohoshino. 1178 Android gateway setup now gives specific recovery actions for expired codes... Android gateway setup now gives specific recovery actions for expired codes, stale credentials, pending node approval, and terminal authentication failures. [#99414](https://github.com/openclaw/openclaw/pull/99414) Related [#98045](https://github.com/openclaw/openclaw/issues/98045), [#98046](https://github.com/openclaw/openclaw/issues/98046). Thanks @ccaprani. 1179 Android manual Gateway setup now defaults blank ports to 18789 for ordinary... Android manual Gateway setup now defaults blank ports to 18789 for ordinary TLS and cleartext hosts while retaining port 443 for Tailscale MagicDNS. [#99865](https://github.com/openclaw/openclaw/pull/99865) Thanks @ly85206559. 1180 Saved Android Gateway sessions now reconnect promptly when validated intern... Saved Android Gateway sessions now reconnect promptly when validated internet access returns, without unnecessary retries during captive or partial network changes. [#100347](https://github.com/openclaw/openclaw/pull/100347) Thanks @ly85206559. 1181 Android Gateway settings now give connection details, setup fields, and hel... Android Gateway settings now give connection details, setup fields, and helper text more stable space on phone-sized screens, reducing clipping and crowding. [#100363](https://github.com/openclaw/openclaw/pull/100363) Thanks @iwhatsskill. 1182 Android now isolates cached conversations and queued commands when users re... Android now isolates cached conversations and queued commands when users re-pair, sign out, or replace Gateway credentials, preventing a new identity from inheriting the previous one's data. [#100454](https://github.com/openclaw/openclaw/pull/100454) 1183 Android onboarding now finishes after permission-triggered node approval in... Android onboarding now finishes after permission-triggered node approval instead of trapping users in a loop between the Permissions and approval screens. [#100959](https://github.com/openclaw/openclaw/pull/100959) 1184 Android users can now connect to Gateways behind Cloudflare Access or anoth... Android users can now connect to Gateways behind Cloudflare Access or another authenticating reverse proxy by saving the required credential headers in Advanced manual-connection settings. [#100765](https://github.com/openclaw/openclaw/pull/100765) 1185 When Android Chat cannot reach the Gateway, users can open Gateway Settings... When Android Chat cannot reach the Gateway, users can open Gateway Settings or copy connection diagnostics directly from the blocked screen. [#94566](https://github.com/openclaw/openclaw/pull/94566) Thanks @tosko4. 1186 Android manual Gateway setup now accepts IPv6 hosts such as ` :1` directly instead of rejecting an address that works only when entered as a bracketed WebSocket URL. [#99107](https://github.com/openclaw/openclaw/pull/99107) Thanks @ly85206559. 1187 Android manual setup now accepts and preserves complete `ws //`, `wss://`, and HTTP Gateway addresses, including embedded ports, so private-LAN onboarding reaches the intended server. [#99110](https://github.com/openclaw/openclaw/pull/99110) Related [#87216](https://github.com/openclaw/openclaw/issues/87216). Thanks @cursoragent, @ly85206559, @ruben2000de. 1188 Android setup now rejects gateway URLs with unsupported IPv6 interface zone... Android setup now rejects gateway URLs with unsupported IPv6 interface zones and directs users to an unscoped address or LAN hostname before saving. [#99570](https://github.com/openclaw/openclaw/pull/99570) Thanks @ly85206559. 1189 Android now preserves specific Gateway and A2UI error codes containing numb... Android now preserves specific Gateway and A2UI error codes containing numbers, such as `A2UI_HOST_UNAVAILABLE`, instead of replacing them with a generic failure. [#99591](https://github.com/openclaw/openclaw/pull/99591) Thanks @ly85206559. 1190 Android Gateway settings now show both setup actions as full-width buttons,... Android Gateway settings now show both setup actions as full-width buttons, keeping `Pair New Gateway` readable and easy to tap. [#100090](https://github.com/openclaw/openclaw/pull/100090) Thanks @iwhatsskill. 1191 The Android app now respects a user's disconnect, connect, or gateway-switc... The Android app now respects a user's disconnect, connect, or gateway-switch choice during startup and reports final disconnect failures to fire-and-forget callers. [#101799](https://github.com/openclaw/openclaw/pull/101799) 1192 Android users can record and send a voice note of up to three minutes from... Android users can record and send a voice note of up to three minutes from the chat composer without entering live Talk mode. [#101193](https://github.com/openclaw/openclaw/pull/101193) 1193 Android background push-to-talk requests now return `NODE_BACKGROUND_UNAVAI... Android background push-to-talk requests now return `NODE_BACKGROUND_UNAVAILABLE` instead of attempting a microphone start that the operating system may reject. [#98055](https://github.com/openclaw/openclaw/pull/98055) Thanks @nianjiuzst. 1194 Android now reports Realtime Talk and Dictation readiness separately, opens... Android now reports Realtime Talk and Dictation readiness separately, opens setup only for the mode that needs it, and keeps useful provider failure details visible. [#98269](https://github.com/openclaw/openclaw/pull/98269) Related [#98268](https://github.com/openclaw/openclaw/issues/98268). Thanks @solvely-colin. 1195 Android Talk and Dictation now use a connected Bluetooth headset microphone... Android Talk and Dictation now use a connected Bluetooth headset microphone for hands-free capture and fall back cleanly when it disconnects. [#99259](https://github.com/openclaw/openclaw/pull/99259) Related [#96241](https://github.com/openclaw/openclaw/issues/96241). Thanks @gwtaylor. 1196 Android push-to-talk now takes exclusive microphone control during Talk Mod... Android push-to-talk now takes exclusive microphone control during Talk Mode and resumes the correct realtime listener afterward, preventing duplicate capture. [#99986](https://github.com/openclaw/openclaw/pull/99986) Thanks @nianjiuzst. 1197 Android push-to-talk now cleans up backgrounded, cancelled, or retried capt... Android push-to-talk now cleans up backgrounded, cancelled, or retried captures without reopening the microphone or stopping a newer voice session, and overlapping requests return busy. [#100552](https://github.com/openclaw/openclaw/pull/100552) Thanks @xialonglee. 1198 Android users can now long-press an assistant reply and choose Listen, with... Android users can now long-press an assistant reply and choose Listen, with visible playback status, tap-to-stop, and on-device speech fallback. [#100772](https://github.com/openclaw/openclaw/pull/100772) 1199 Android Talk Mode now keeps push-to-talk busy until the active turn is safe... Android Talk Mode now keeps push-to-talk busy until the active turn is safely handed off, preventing overlapping microphones, stale playback, or the wrong relay resuming. [#100786](https://github.com/openclaw/openclaw/pull/100786) 1200 Android voice features now speak only chat events explicitly identified as... Android voice features now speak only chat events explicitly identified as assistant replies, preventing user, tool, system, or role-less text from being read aloud. [#99123](https://github.com/openclaw/openclaw/pull/99123) Thanks @ly85206559. 1201 Android Talk now applies supported directive values even when generated or... Android Talk now applies supported directive values even when generated or dictated JSON uses different capitalization for keys such as `Voice` or `Language_Code`. [#99592](https://github.com/openclaw/openclaw/pull/99592) Thanks @ly85206559. 1202 Android Talk Mode now delivers agent-consult answers even when realtime com... Android Talk Mode now delivers agent-consult answers even when realtime completion events arrive out of order, preventing sessions from remaining stuck on `Thinking...`. [#100049](https://github.com/openclaw/openclaw/pull/100049) Thanks @qingminglong. 1203 Android Voice and Talk setup text now truncates cleanly on narrow screens a... Android Voice and Talk setup text now truncates cleanly on narrow screens and at larger accessibility font sizes instead of appearing clipped. [#100060](https://github.com/openclaw/openclaw/pull/100060) Thanks @iwhatsskill, @solvely-colin. 1204 The Android Voice tab now gives Realtime Talk and Dictation text and contro... The Android Voice tab now gives Realtime Talk and Dictation text and controls enough room to remain readable on phones and at larger font sizes. [#100491](https://github.com/openclaw/openclaw/pull/100491) Thanks @iwhatsskill. 1205 Third-party Android builds can allow Gateway-requested location checks whil... Third-party Android builds can allow Gateway-requested location checks while the app is in the background by selecting Location > Always and granting Android's persistent location permission. [#100967](https://github.com/openclaw/openclaw/pull/100967) Thanks @ioridev. 1206 Android notification automations now queue accepted events during Gateway c... Android notification automations now queue accepted events during Gateway connection or reconnection and deliver them in order once the link is ready. [#92602](https://github.com/openclaw/openclaw/pull/92602) Related [#79552](https://github.com/openclaw/openclaw/issues/79552). Thanks @ashishpatel26, @hectorrp13. 1207 Android one-shot camera captures now turn the camera and privacy indicator... Android one-shot camera captures now turn the camera and privacy indicator off promptly after success, failure, or cancellation. [#98040](https://github.com/openclaw/openclaw/pull/98040) Thanks @nianjiuzst. 1208 Android's selected-photos permission now counts as usable access, allowing... Android's selected-photos permission now counts as usable access, allowing `photos.latest` while clearly showing how to manage the limited selection. [#98059](https://github.com/openclaw/openclaw/pull/98059) Thanks @nianjiuzst. 1209 Android onboarding now marks Contacts and Calendar ready only after both re... Android onboarding now marks Contacts and Calendar ready only after both read and write access are available, including when those permissions arrive in separate prompts. [#99158](https://github.com/openclaw/openclaw/pull/99158) Thanks @nianjiuzst. 1210 Android now reports Contacts and Calendar access as granted only when both... Android now reports Contacts and Calendar access as granted only when both reading and adding entries are authorized, preventing misleading setup results. [#99204](https://github.com/openclaw/openclaw/pull/99204) Thanks @nianjiuzst. 1211 The Android companion no longer forwards OpenClaw's own notifications back... The Android companion no longer forwards OpenClaw's own notifications back to the Gateway, even when older allowlists still include the app package. [#99568](https://github.com/openclaw/openclaw/pull/99568) Thanks @ly85206559. 1212 Android third-party onboarding now recognizes SMS access when send and read... Android third-party onboarding now recognizes SMS access when send and read permissions are granted in separate prompts, while genuinely missing permissions remain unauthorized. [#99147](https://github.com/openclaw/openclaw/pull/99147) Thanks @nianjiuzst. 1213 Cancelled, timed-out, failed, or interrupted Android `camera Cancelled, timed-out, failed, or interrupted Android `camera.clip` requests now release the camera and remove unfinished temporary files before later camera commands run. [#99153](https://github.com/openclaw/openclaw/pull/99153) Thanks @nianjiuzst. 1214 Android node commands now honor common boolean values such as `yes`, `no`,... Android node commands now honor common boolean values such as `yes`, `no`, `1`, and `0` for app filters and camera audio options. [#99873](https://github.com/openclaw/openclaw/pull/99873) Thanks @ly85206559. 1215 Tapping an Android notification created by `system Tapping an Android notification created by `system.notify` now brings OpenClaw to the foreground. [#100888](https://github.com/openclaw/openclaw/pull/100888) 1216 Android's "New chat in worktree" action is now translated across supported... Android's "New chat in worktree" action is now translated across supported non-English locales instead of appearing with a missing resource. [#100805](https://github.com/openclaw/openclaw/pull/100805) Thanks @amknight. 1217 Android users in supported languages now see key Gateway setup, connection,... Android users in supported languages now see key Gateway setup, connection, trust, shell, and recovery prompts in their device language. [#97111](https://github.com/openclaw/openclaw/pull/97111) Thanks @vincentkoc. 1218 Indonesian Android strings ship under Android's recognized locale Indonesian Android strings ship under Android's recognized locale; the same prior-release work also prepared the 2026.6.11 Play version and store text. [3412318](https://github.com/openclaw/openclaw/commit/341231831b706df0024d2d9e2096438e3581b5af) Thanks @joshavant. 1219 Traditional Chinese users now see localized wording for common native app a... Traditional Chinese users now see localized wording for common native app actions, permissions, connection messages, and mobile states. [f0d2066](https://github.com/openclaw/openclaw/commit/f0d2066787f172079c19f26b72f49ad3950ceea6) 1220 Android now explains in the selected language how to keep a saved token or... Android now explains in the selected language how to keep a saved token or replace an existing Gateway setup. Sources: [32f3eb3](https://github.com/openclaw/openclaw/commit/32f3eb3fa805e776f562ea1af6f7731bf4ce8b48), [6336762](https://github.com/openclaw/openclaw/commit/6336762b68e5cebd44acbda527ba1d964448355a), [eeb0682](https://github.com/openclaw/openclaw/commit/eeb0682409b86dcd956ffe30e45f12c6424d8c05), [ed72b86](https://github.com/openclaw/openclaw/commit/ed72b860a436eb187c9fa2fb4ef91ecb13180760), [e376f28](https://github.com/openclaw/openclaw/commit/e376f285e87bfa07bf3111b446b9e44fcba6cd9e), [a6631fe](https://github.com/openclaw/openclaw/commit/a6631fee6d465b30e116038d8e6e8aa1f041019c), [283bd82](https://github.com/openclaw/openclaw/commit/283bd82eb414f0ba968157aec77eac7701e7ae1e), [6d5a1db](https://github.com/openclaw/openclaw/commit/6d5a1db04859adbf8860376ddbd5ce1b5d5f3efa), [d3087fc](https://github.com/openclaw/openclaw/commit/d3087fcf375c81b81ffb0cf7b65764559b6e836f), [8bab3f7](https://github.com/openclaw/openclaw/commit/8bab3f7dbd8364de93422d064c00c7171139ccf4), [dfb7bc8](https://github.com/openclaw/openclaw/commit/dfb7bc84d8194177988d2870fe17b963912a1c52), [7780e30](https://github.com/openclaw/openclaw/commit/7780e3062dcb547227d90cbd02111910e00e3f6f), [b109b88](https://github.com/openclaw/openclaw/commit/b109b88b5785b22fea0fe20f06b314dbda156d58), [c1b7bf2](https://github.com/openclaw/openclaw/commit/c1b7bf23bc16d641e966ff4de7cbb8b2becfaddc), [dedb17c](https://github.com/openclaw/openclaw/commit/dedb17ceff3c93c938aaff5c3f697d70d06e9dd1), [6f84c10](https://github.com/openclaw/openclaw/commit/6f84c10bdae1f73b112777c9a94d5933171d4b75), [a8358e8](https://github.com/openclaw/openclaw/commit/a8358e8848c8228893a259b36cd6f54139fa18da), [2501ca3](https://github.com/openclaw/openclaw/commit/2501ca340945072642b9bb2ec1348a15de83d4b6), [1b40eb9](https://github.com/openclaw/openclaw/commit/1b40eb9e6a2feb0c436948fbcd113424e85db01e), [d47308f](https://github.com/openclaw/openclaw/commit/d47308f8008ca08c7df983d3932c63d4ede4060c), [3a2baef](https://github.com/openclaw/openclaw/commit/3a2baef0bfc62b0d37b4f7648869e57fabaa3cb3). 1221 Android pairing and connection failures now provide localized next steps fo... Android pairing and connection failures now provide localized next steps for expired codes, credentials, approvals, and retries. Sources: [48eae1b](https://github.com/openclaw/openclaw/commit/48eae1b8c96d9e8873ba59ccc6e2493fa847c27e), [f095eb9](https://github.com/openclaw/openclaw/commit/f095eb9fd989020ad1bdd57a57702ce899f98607), [714c2b0](https://github.com/openclaw/openclaw/commit/714c2b07bdf715055205b550018d289e4fb06948), [d2b5bb7](https://github.com/openclaw/openclaw/commit/d2b5bb72e8e3b61dac5ddc7085fb0b5dfe53a18c), [d2551bd](https://github.com/openclaw/openclaw/commit/d2551bdd3cf53973d679a47f3e753fc0d75f3edb), [6b91507](https://github.com/openclaw/openclaw/commit/6b915072208b121055000ef1d3a36578eac4da2e), [f1c4476](https://github.com/openclaw/openclaw/commit/f1c44762771edb9fe2124a15c871dc466b215c43), [5ef6fb4](https://github.com/openclaw/openclaw/commit/5ef6fb4d7cd053e1caa0d1caf27ff93f7bb3311c), [e2e0312](https://github.com/openclaw/openclaw/commit/e2e03127240c1878b3ea6a336fd91bd995a2be83), [7fb70b2](https://github.com/openclaw/openclaw/commit/7fb70b235d1d7d4ece6519b27f2d65d51999272c), [d702f5c](https://github.com/openclaw/openclaw/commit/d702f5c6e6c4f1463c82c4f74d96765b316f76bf), [24e6b9f](https://github.com/openclaw/openclaw/commit/24e6b9fbe1b9449b837fecddf1f9b160ed7bb896), [7cb41cc](https://github.com/openclaw/openclaw/commit/7cb41ccc63f51208630426e08ceef65e78b02bf9), [a6040c3](https://github.com/openclaw/openclaw/commit/a6040c3560c18005b58aed73a687b8c0d06b7d6b), [5e61da3](https://github.com/openclaw/openclaw/commit/5e61da3deb190b16899157ace98aa520b424e085), [18360ac](https://github.com/openclaw/openclaw/commit/18360ac668f82631f61cf48d0816800385f4cf05), [17a1e3b](https://github.com/openclaw/openclaw/commit/17a1e3bbb2b8de1da6569fe4f46a4ea4138c56e6), [adafb56](https://github.com/openclaw/openclaw/commit/adafb56b2eb9207d93896ebf6c5faa9205875833), [5b5fadb](https://github.com/openclaw/openclaw/commit/5b5fadbf0d17c1fddb13d891037767beb64aa144), [9b30570](https://github.com/openclaw/openclaw/commit/9b30570a935ecdae8ee0e2bc45a42ffdd7223948), [d331a36](https://github.com/openclaw/openclaw/commit/d331a36250f8ebb29bda2ae8fa480a2aa5e15193). 1222 Android Gateway discovery, QR and manual setup, connection checks, approval... Android Gateway discovery, QR and manual setup, connection checks, approvals, and permission guidance now use the selected language across the translations in this release. Sources: [28062c8](https://github.com/openclaw/openclaw/commit/28062c868c03e1e6876013d450c8f92bf1fc2faf), [3d43858](https://github.com/openclaw/openclaw/commit/3d438588c5eb0497bdb2fbccf9d6f6cd325d0ec5), [ad74b32](https://github.com/openclaw/openclaw/commit/ad74b322ba80178c1c0f68348a55d5d3e65e64ae), [1b07620](https://github.com/openclaw/openclaw/commit/1b076209c4d2ea37a7178b50f5ba5c54b5753c2b), [4fa4c9e](https://github.com/openclaw/openclaw/commit/4fa4c9e06e39e095a7373390240b3a5a5cf1be79), [1dd5230](https://github.com/openclaw/openclaw/commit/1dd52307fcd74bc25ea31800a4c551bc415f7645), [9db7ec5](https://github.com/openclaw/openclaw/commit/9db7ec5edd62e3f05758a28a6c6acb14f6889ea5), [e6f8788](https://github.com/openclaw/openclaw/commit/e6f8788bf5569e87e9df0d3e404eaef5f86184ab), [e5cf67e](https://github.com/openclaw/openclaw/commit/e5cf67ea1d73d9724a227000eadead902fa606a9), [b52d988](https://github.com/openclaw/openclaw/commit/b52d98861e8c14f30dc459c395fd60281fa99604), [cd3b4ee](https://github.com/openclaw/openclaw/commit/cd3b4eee7d104d266d8514afea2ae53eea435e9d), [c3bcb9f](https://github.com/openclaw/openclaw/commit/c3bcb9fa21ec5f1b98bdb89940e93707b8f9a3e1), [8af3aa0](https://github.com/openclaw/openclaw/commit/8af3aa0b1bfa3f5d2950b053a8d7d2568cbbea31), [c34e79e](https://github.com/openclaw/openclaw/commit/c34e79e7299b19267000a79bb94bcae9608f93a1), [c9c8f6c](https://github.com/openclaw/openclaw/commit/c9c8f6c9f6a9ebf337ff486c15b9cc4d43904ffe), [255e251](https://github.com/openclaw/openclaw/commit/255e2518de492d518cde78617f6c5b220bb1278d), [0e98ba4](https://github.com/openclaw/openclaw/commit/0e98ba4391dddfa9bcd48a978b5cd1df8ae03411), [0cc9927](https://github.com/openclaw/openclaw/commit/0cc9927577c6663a5839a4d2ad3e5708df04157a), [97955d9](https://github.com/openclaw/openclaw/commit/97955d969d83a158a70c23912703e92b69b0883a), [ba449f2](https://github.com/openclaw/openclaw/commit/ba449f240d4e437752be44bef76e93c177454ca4), [0e22e54](https://github.com/openclaw/openclaw/commit/0e22e54431f5740b65ddbfcc307bd6b3c1f43eea), [ae65251](https://github.com/openclaw/openclaw/commit/ae65251fdf5ebfa7213a7d36f64a5bbb8883eb4c), [d957f5a](https://github.com/openclaw/openclaw/commit/d957f5a7900e134b514915cee07c45bb0c2a54be). 1223 Android now explains in the selected language when a scoped IPv6 address mu... Android now explains in the selected language when a scoped IPv6 address must be replaced with an unscoped address or LAN hostname. Sources: [5793f73](https://github.com/openclaw/openclaw/commit/5793f731f54f1de387a49e014a632517450f75a2), [066e697](https://github.com/openclaw/openclaw/commit/066e6973b084c62717a2e9ac99b84e99459597b7), [bf35947](https://github.com/openclaw/openclaw/commit/bf35947eb2695740e61cdd180fde44b4308ba472), [3385817](https://github.com/openclaw/openclaw/commit/3385817658496c88166f16cdbcbb0dbd3b8419b5), [a0a5054](https://github.com/openclaw/openclaw/commit/a0a5054b93bf842ff4dd281dac2617129dd9900c), [66cb9a9](https://github.com/openclaw/openclaw/commit/66cb9a99b1d9c30589fcc9b42144c95322bd30ab), [3da73a7](https://github.com/openclaw/openclaw/commit/3da73a77fe51060659a3ad69018a65e19cf21837), [df659ec](https://github.com/openclaw/openclaw/commit/df659eca87253824b5eccaa1939fa38877a87e7e), [57a3975](https://github.com/openclaw/openclaw/commit/57a3975ce14062de887707e38ab580b20ff39421), [141b2cf](https://github.com/openclaw/openclaw/commit/141b2cf4d10cb33a487e62c7e304aba88b135da1), [b043adf](https://github.com/openclaw/openclaw/commit/b043adf192bb64e8ff64bbf6b9631e30a4446f1e), [dcc4fa8](https://github.com/openclaw/openclaw/commit/dcc4fa874683a59f86656be19adfc05b688cc3ea), [eade8f1](https://github.com/openclaw/openclaw/commit/eade8f1c1a142eefa47a2657ef77a352944506cc), [72a8098](https://github.com/openclaw/openclaw/commit/72a809840890575654f7d293631965af0541f9e9), [355fa77](https://github.com/openclaw/openclaw/commit/355fa773f8ac13c433eea42f4e575c895b224863), [8cc1786](https://github.com/openclaw/openclaw/commit/8cc1786f495af1c7c55ac5f2b145ff7df25853dd), [a3ef37b](https://github.com/openclaw/openclaw/commit/a3ef37b991533671eae13ddbd25324bc5f9c4749), [cb9ac50](https://github.com/openclaw/openclaw/commit/cb9ac50f5bc7f8148eeacbf8b921ebaa3bab6680), [cab8147](https://github.com/openclaw/openclaw/commit/cab81470d96126ef92614ba38468e94964429c20), [7cc3cb0](https://github.com/openclaw/openclaw/commit/7cc3cb0d28c807871b2e997a996f4c920fc0b7ae), [ca258fb](https://github.com/openclaw/openclaw/commit/ca258fb9452d6dac7344530fafbcf2939238d9a4). 1224 Android license notices, acknowledgements, empty states, and open-license a... Android license notices, acknowledgements, empty states, and open-license actions now use the selected language across the translations in this release. Sources: [4b8b60f](https://github.com/openclaw/openclaw/commit/4b8b60f8abc1ae99228fe31bedd31977064062d1), [3b16c41](https://github.com/openclaw/openclaw/commit/3b16c41daa8237f481c2b8061b0f6e00817ffbca), [c4966e8](https://github.com/openclaw/openclaw/commit/c4966e86cbc9403177ccb725d5d1cb87c519b853), [116e9db](https://github.com/openclaw/openclaw/commit/116e9db2a18d5341b5e44844dfefa938fa467e6a), [1617233](https://github.com/openclaw/openclaw/commit/1617233ff141c913def1675aaee33bac3590b1f6), [a598c97](https://github.com/openclaw/openclaw/commit/a598c976d01db50adc35de495a981635c6a38cd4), [3b9e0c8](https://github.com/openclaw/openclaw/commit/3b9e0c86828e0d8f45acafd2908b82191ecfd13f), [eebbf6c](https://github.com/openclaw/openclaw/commit/eebbf6cba5fef565044e556b862f3ce09db2fd86), [4c08ea4](https://github.com/openclaw/openclaw/commit/4c08ea403ad9436d9a8cf0dd02799a441a1bc4db), [21be45c](https://github.com/openclaw/openclaw/commit/21be45c17e845e4027f7a044d2c009423bcd07b7), [b415072](https://github.com/openclaw/openclaw/commit/b415072a2e6a900f382d7e68594b4511bd1a0c5b), [9eec24d](https://github.com/openclaw/openclaw/commit/9eec24df6710308e7a66a7a80bc232f7ee024900), [de23987](https://github.com/openclaw/openclaw/commit/de23987f13b95d71a145218b11f36857a8eefc2c), [898564e](https://github.com/openclaw/openclaw/commit/898564e71aef7abe66112d757eee8db83eaf04d2), [7af800b](https://github.com/openclaw/openclaw/commit/7af800b5be960b595829642b412fce2842017cfc), [a47ec8d](https://github.com/openclaw/openclaw/commit/a47ec8d303e46642d81c8c231786fb0b2fd51045), [fac9e58](https://github.com/openclaw/openclaw/commit/fac9e586685666a9f8159f5132fb18ad2bc37210), [61e4ef0](https://github.com/openclaw/openclaw/commit/61e4ef08f483e9e32eaa6edf6fb391185e462394), [399f9d6](https://github.com/openclaw/openclaw/commit/399f9d696171ec14eafa1d5de64533d2b9670819), [9069f69](https://github.com/openclaw/openclaw/commit/9069f696986ed970565989efacb27024160dbad2), [2e049f5](https://github.com/openclaw/openclaw/commit/2e049f509fad1ba2889186e457e630bad50d7a16). 1225 Android Talk, dictation, speech-provider setup, readiness, and failure guid... Android Talk, dictation, speech-provider setup, readiness, and failure guidance now use the selected language across the translations in this release. Sources: [c785196](https://github.com/openclaw/openclaw/commit/c785196287d0e929396def1fc0929af672bdc7cf), [9edb906](https://github.com/openclaw/openclaw/commit/9edb9065a8596f8473bea1ae4a626da8f0508724), [da67520](https://github.com/openclaw/openclaw/commit/da67520b8d5fc49775005638425ca2d9317d6ee7), [88f13ca](https://github.com/openclaw/openclaw/commit/88f13cab62999abe7c2650ccd32d55e72ee80046), [e878efe](https://github.com/openclaw/openclaw/commit/e878efe9508edd88166a09eb5a1e503ab405aad9), [662d127](https://github.com/openclaw/openclaw/commit/662d127f60b91aaaec4b5363c73bd00855d9e3f0), [5002a0e](https://github.com/openclaw/openclaw/commit/5002a0e9ea9970e4e270ec029c994dc217549687), [fe57718](https://github.com/openclaw/openclaw/commit/fe57718b419a08a5306e3d195519d3527a07f936), [ebcf8dc](https://github.com/openclaw/openclaw/commit/ebcf8dcaf7120bfdc01d0b83c595895355944b5b), [4e7ca8e](https://github.com/openclaw/openclaw/commit/4e7ca8e6c6afe672da1a40922e67f94e005f9e8b), [9863ceb](https://github.com/openclaw/openclaw/commit/9863cebef12bf2e7b1414ac5f64bc3277a7ca28b), [768da09](https://github.com/openclaw/openclaw/commit/768da09ceb157a1bfd4dd309b8566a2b9ce7668d), [ff5d986](https://github.com/openclaw/openclaw/commit/ff5d98681f7e38043bbc33a87fade6069da9795c), [005ebd1](https://github.com/openclaw/openclaw/commit/005ebd108f4d6ebd663c8cf996634aeaf3e82287), [2824796](https://github.com/openclaw/openclaw/commit/28247960130f88b6ac01d8a392d54d0996212c1a), [4eaec93](https://github.com/openclaw/openclaw/commit/4eaec934e83d0bc4f0d595c37e06356c5b54dc2a), [f99fdc9](https://github.com/openclaw/openclaw/commit/f99fdc9403b49b59a42c8d3522368d64b9168498), [555f601](https://github.com/openclaw/openclaw/commit/555f601230c075185f362c71db518096c3818998), [d2af689](https://github.com/openclaw/openclaw/commit/d2af68965a0cdb3a1ed91c2d1ba8aedd76dcb3ac), [81e92de](https://github.com/openclaw/openclaw/commit/81e92deb089b54ccedbe0c9593b492f6f09b989d), [8ed6c78](https://github.com/openclaw/openclaw/commit/8ed6c78b7891b12fee2b378d79e6888764455486). 1226 Android command search and New Chat labels now use the selected language ac... Android command search and New Chat labels now use the selected language across the translations in this release. Sources: [b81c58b](https://github.com/openclaw/openclaw/commit/b81c58bdf6a07894231bc3afcab9a6b12b175bf8), [8929118](https://github.com/openclaw/openclaw/commit/8929118353fce0b8ac8189a95fd4534b39e85903), [1eee853](https://github.com/openclaw/openclaw/commit/1eee853c71e1ddd5c632e49f1e75b18c0837add7), [a5c9662](https://github.com/openclaw/openclaw/commit/a5c9662cd17746a35adf350f55b3f6b7c6cae78c), [9035729](https://github.com/openclaw/openclaw/commit/9035729528a9ae0ed4922728c94fd025cfdd8ea6), [2e359d4](https://github.com/openclaw/openclaw/commit/2e359d49951bf8c786e4c018ef59858743e80386), [91f4d0a](https://github.com/openclaw/openclaw/commit/91f4d0ae25ae86f76cccaac709b84d87990c7ca1), [e785c4a](https://github.com/openclaw/openclaw/commit/e785c4a8f7025ee7a529816a50207c0f925e3a93), [2c5a076](https://github.com/openclaw/openclaw/commit/2c5a07661c153bced0feb10f34e74811f2920831), [02250d9](https://github.com/openclaw/openclaw/commit/02250d957fed2a1e05baac4b33b7315603002732), [bf23194](https://github.com/openclaw/openclaw/commit/bf23194888b626ec4318955d4305197c1c9c4a88), [603502f](https://github.com/openclaw/openclaw/commit/603502f60f54bf9c0e0b7bd8b200ac0a4cc0d5e5), [a837a1a](https://github.com/openclaw/openclaw/commit/a837a1ac6c00c3e71471bcf4ff451b9cecf02f69), [26df1fa](https://github.com/openclaw/openclaw/commit/26df1fa7bca40fbb24f199593ae4bd4de74b2302), [c926610](https://github.com/openclaw/openclaw/commit/c9266107d6c65489b75ae412fe9484d2eca347c6), [c312f9f](https://github.com/openclaw/openclaw/commit/c312f9f0e059b838f4afdbf20f2f1bd8b938ba13), [f4275fa](https://github.com/openclaw/openclaw/commit/f4275fa00b8f89055a8b3a8b23740153750e97af), [69d4657](https://github.com/openclaw/openclaw/commit/69d4657bdb2da553641e34f1b7f85223cfb8c660), [3e66eb9](https://github.com/openclaw/openclaw/commit/3e66eb9de863d333d9f7b7951d2b63eac857df07), [db5057e](https://github.com/openclaw/openclaw/commit/db5057edf935d85b6324bd725506424f2554fc89), [1fee4a5](https://github.com/openclaw/openclaw/commit/1fee4a5daf57a864cd730b9dc2f0bcb19d90c5d8). 1227 Supported non-English Android builds now localize offline Gateway queue gui... Supported non-English Android builds now localize offline Gateway queue guidance and the Retry and Delete actions for text messages. [660d752](https://github.com/openclaw/openclaw/commit/660d752b348f740f130610571101db1f0e3ebb53) 1228 Supported non-English Android builds now translate more cron inspection, de... Supported non-English Android builds now translate more cron inspection, delivery error, copy feedback, default-state, and agent request details. [d83ee4c](https://github.com/openclaw/openclaw/commit/d83ee4c44f9562c4e73fb571016624cf54b538d7) 1229 Android model organization, default-model, and pinning controls now use the... Android model organization, default-model, and pinning controls now use the selected language. Sources: [41bea62](https://github.com/openclaw/openclaw/commit/41bea62b4a28fab24edff319c7cd8807c494cd53), [bdc98f4](https://github.com/openclaw/openclaw/commit/bdc98f482a1ab6f86766041d8c48a16dddde5a96). 1230 Android link-preview controls and status messages now appear in the selecte... Android link-preview controls and status messages now appear in the selected language across refreshed locales. [9997c53](https://github.com/openclaw/openclaw/commit/9997c534b8ebd82fb8db0e9a944e75e594facb2d) 1231 The Android background-location explanation, settings action, and Not Now c... The Android background-location explanation, settings action, and Not Now choice now appear in the selected language when Always location mode is offered. [4c38d89](https://github.com/openclaw/openclaw/commit/4c38d89c0c948b215dd00603db68a80029364c37) 1232 Opening Control -&gt Opening Control -> Terminal on iOS now goes directly to the terminal without briefly showing the general Web UI login screen during connection. [#100727](https://github.com/openclaw/openclaw/pull/100727) 1233 iOS users can open Terminal directly from the Control hub, see a Gateway se... iOS users can open Terminal directly from the Control hub, see a Gateway setup prompt when disconnected, and keep active shell sessions running through unrelated screen updates. [211e0d7](https://github.com/openclaw/openclaw/commit/211e0d7263c188ef8cbc5956808306b37bbfccc0) 1234 The iOS Control, Chat, Talk, Agent, Settings, Gateway, and Overview screens... The iOS Control, Chat, Talk, Agent, Settings, Gateway, and Overview screens now use clearer navigation, status cues, controls, and a compact expanding chat composer. [#98452](https://github.com/openclaw/openclaw/pull/98452) Thanks @joelnishanth. 1235 The iOS Control, Agents, and Settings screens are now easier to scan, with... The iOS Control, Agents, and Settings screens are now easier to scan, with fewer duplicate destinations, more compact controls, standard navigation, and a direct Gateway shortcut from detail views. [#98811](https://github.com/openclaw/openclaw/pull/98811) Related [#98803](https://github.com/openclaw/openclaw/issues/98803). 1236 Chat, Talk, Settings, navigation, and onboarding on iPhone and iPad now use... Chat, Talk, Settings, navigation, and onboarding on iPhone and iPad now use more consistent native controls, appearance, and back behavior. [#99231](https://github.com/openclaw/openclaw/pull/99231) Related [#99195](https://github.com/openclaw/openclaw/issues/99195). Thanks @marvkr. 1237 On iPad, selecting Overview, Chat, Talk, or another sidebar destination now... On iPad, selecting Overview, Chat, Talk, or another sidebar destination now leaves the current Settings detail and opens the requested screen. [#94991](https://github.com/openclaw/openclaw/pull/94991) Thanks @solvely-colin. 1238 The iOS app now opens to Chat for normal launches while preserving direct n... The iOS app now opens to Chat for normal launches while preserving direct navigation to Control, Settings, Agent, Talk, and nested destinations. [#98353](https://github.com/openclaw/openclaw/pull/98353) Thanks @bsniznd. 1239 iOS Control, Talk, and Settings are easier to scan with clearer status emph... iOS Control, Talk, and Settings are easier to scan with clearer status emphasis, safer action styling, calmer idle visuals, and improved large-text support. [#98423](https://github.com/openclaw/openclaw/pull/98423) Related [#98397](https://github.com/openclaw/openclaw/issues/98397). 1240 iOS connection, warning, and information text is now easier to read in ligh... iOS connection, warning, and information text is now easier to read in light and dark modes, and Appearance settings accurately describe the selected behavior. [#98443](https://github.com/openclaw/openclaw/pull/98443) Related [#98440](https://github.com/openclaw/openclaw/issues/98440). 1241 iOS users who open Gateway, Voice, or Notifications settings from another s... iOS users who open Gateway, Voice, or Notifications settings from another screen now return to the Chat, Talk, Agent, Control, or Approvals screen they came from. [#98898](https://github.com/openclaw/openclaw/pull/98898) Thanks @lokimorty. 1242 The iOS app now applies OpenClaw's palette consistently across Talk, settin... The iOS app now applies OpenClaw's palette consistently across Talk, settings, Gateway, privacy, usage, and workboard views while retaining accessible contrast. [#98930](https://github.com/openclaw/openclaw/pull/98930) Thanks @joelnishanth. 1243 iPhone users who open Chat from a Control detail can now return to that sam... iPhone users who open Chat from a Control detail can now return to that same Overview, Activity, Workboard, or Sessions screen without losing their place. [#99245](https://github.com/openclaw/openclaw/pull/99245) Thanks @solvely-colin. 1244 iOS users can now read OpenClaw's bundled third-party license acknowledgeme... iOS users can now read OpenClaw's bundled third-party license acknowledgements from Settings > Licenses. [#99290](https://github.com/openclaw/openclaw/pull/99290) Thanks @joshavant. 1245 On iOS 26, affected Settings switches now respond when users tap anywhere o... On iOS 26, affected Settings switches now respond when users tap anywhere on the labeled row, with accessibility labels and values preserved. [#99888](https://github.com/openclaw/openclaw/pull/99888) Thanks @ly85206559. 1246 Talk and Settings rows on iOS now use consistent title sizing and typograph... Talk and Settings rows on iOS now use consistent title sizing and typography, making adjacent options easier to scan. [#100515](https://github.com/openclaw/openclaw/pull/100515) 1247 The iOS About screen now presents OpenClaw branding, license information, a... The iOS About screen now presents OpenClaw branding, license information, and direct links to the website, documentation, GitHub repository, and Discord community. [#100531](https://github.com/openclaw/openclaw/pull/100531) 1248 Equivalent rows in the iPhone Control and Settings tabs now use the same ro... Equivalent rows in the iPhone Control and Settings tabs now use the same rounded icon treatment, making both lists easier to scan. [#98936](https://github.com/openclaw/openclaw/pull/98936) Related [#98916](https://github.com/openclaw/openclaw/issues/98916). Thanks @sahilsatralkar. 1249 The iOS About screen now shows a concise app, device-family, and iOS summar... The iOS About screen now shows a concise app, device-family, and iOS summary without duplicated identity or a raw hardware identifier. [#98985](https://github.com/openclaw/openclaw/pull/98985) Related [#98943](https://github.com/openclaw/openclaw/issues/98943). Thanks @sahilsatralkar. 1250 The iOS appearance setting now sits in the normal Settings list, shows the... The iOS appearance setting now sits in the normal Settings list, shows the current System, Light, or Dark choice at a glance, and behaves consistently on iPad. [#99052](https://github.com/openclaw/openclaw/pull/99052) Related [#98995](https://github.com/openclaw/openclaw/issues/98995). Thanks @sahilsatralkar. 1251 The iPhone Control destination list is now denser and easier to scan withou... The iPhone Control destination list is now denser and easier to scan without changing navigation or status information. [#99468](https://github.com/openclaw/openclaw/pull/99468) Related [#99439](https://github.com/openclaw/openclaw/issues/99439). Thanks @sahilsatralkar. 1252 Already-paired iPhone users now return to Chat, Talk, and Settings instead... Already-paired iPhone users now return to Chat, Talk, and Settings instead of being trapped in setup when older onboarding flags are stale. [#101481](https://github.com/openclaw/openclaw/pull/101481) 1253 Images shared from iOS or through node `agent Images shared from iOS or through node `agent.request` now remain attached to the correct conversation turn after history reload, so later messages can still use them. [#86936](https://github.com/openclaw/openclaw/pull/86936) Thanks @peterdsp. 1254 iPhone and iPad users can now browse an agent workspace, preview generated... iPhone and iPad users can now browse an agent workspace, preview generated files, logs, and configuration, and share a file without returning to the host computer. [#100767](https://github.com/openclaw/openclaw/pull/100767) 1255 Native iOS Chat now follows Larger Text and Dynamic Type settings for messa... Native iOS Chat now follows Larger Text and Dynamic Type settings for messages, the intro, and composer text with less clipping. [#97552](https://github.com/openclaw/openclaw/pull/97552) Thanks @jmcte. 1256 Native iOS Chat now gives the conversation more room, uses a compact compos... Native iOS Chat now gives the conversation more room, uses a compact composer that grows with longer drafts, and keeps attachment, Talk, and send controls comfortably tappable. [#98953](https://github.com/openclaw/openclaw/pull/98953) Related [#98929](https://github.com/openclaw/openclaw/issues/98929). 1257 iOS Chat now keeps one final assistant reply per turn instead of briefly sh... iOS Chat now keeps one final assistant reply per turn instead of briefly showing a duplicate that disappears after history refreshes. [#98117](https://github.com/openclaw/openclaw/pull/98117) Related [#98116](https://github.com/openclaw/openclaw/issues/98116). Thanks @joshavant, @ooiuuii. 1258 iOS Chat now preserves intentional line breaks in assistant responses and o... iOS Chat now preserves intentional line breaks in assistant responses and other multiline messages without disrupting normal Markdown rendering. [#98304](https://github.com/openclaw/openclaw/pull/98304) Related [#98028](https://github.com/openclaw/openclaw/issues/98028). Thanks @jabato01, @joshavant. 1259 The iOS chat experience now offers useful starting prompts, clearer pairing... The iOS chat experience now offers useful starting prompts, clearer pairing and setup actions, better agent placeholders, and steadier message ordering during refreshes. [#99243](https://github.com/openclaw/openclaw/pull/99243) Thanks @jcooley8. 1260 iOS chat now lets users browse, filter, and select available commands and s... iOS chat now lets users browse, filter, and select available commands and skills from the composer instead of memorizing exact slash commands. [#99426](https://github.com/openclaw/openclaw/pull/99426) Thanks @solvely-colin, @viczhang6. 1261 iOS chat now provides tactile feedback for accepted sends and most complete... iOS chat now provides tactile feedback for accepted sends and most completed or failed runs, though some abort paths may still omit or misclassify failure feedback. [#100416](https://github.com/openclaw/openclaw/pull/100416) 1262 iOS users can export the current conversation as a named, readable Markdown... iOS users can export the current conversation as a named, readable Markdown file and save or send it through the system share sheet. [#100417](https://github.com/openclaw/openclaw/pull/100417) 1263 Offline iOS messages now survive relaunch, remain tied to their original Ga... Offline iOS messages now survive relaunch, remain tied to their original Gateway and conversation, and send once only when delivery can be confirmed, with clear uncertain-delivery status when it cannot. [#100942](https://github.com/openclaw/openclaw/pull/100942) 1264 Tapping the iPhone status bar now leaves the chat at the top for reading ol... Tapping the iPhone status bar now leaves the chat at the top for reading older messages until the user chooses Jump to latest. [#100502](https://github.com/openclaw/openclaw/pull/100502) 1265 Translated Gateway controls on iOS and approval actions on Apple Watch no l... Translated Gateway controls on iOS and approval actions on Apple Watch no longer fall back to English in supported locales. [#97112](https://github.com/openclaw/openclaw/pull/97112) Thanks @vincentkoc. 1266 iOS voice notes now stay with the intended chat and recover more reliably a... iOS voice notes now stay with the intended chat and recover more reliably across offline queues, app recreation, uncertain sends, and competing microphone use. [#101236](https://github.com/openclaw/openclaw/pull/101236) 1267 The iPhone app now presents a compact Talk control bar, a cleaner Appearanc... The iPhone app now presents a compact Talk control bar, a cleaner Appearance picker, and a properly aligned realtime-audio button beside the resting Chat composer. [#98736](https://github.com/openclaw/openclaw/pull/98736) 1268 Apple Watch users can dictate a message and hear OpenClaw's final reply on... Apple Watch users can dictate a message and hear OpenClaw's final reply on the Watch, with separate silent-send, cancel, and stop controls. [#100283](https://github.com/openclaw/openclaw/pull/100283) 1269 iOS users can record and send a voice note of up to three minutes from the... iOS users can record and send a voice note of up to three minutes from the chat composer, optionally add text, and see the recording's duration in chat. [#100946](https://github.com/openclaw/openclaw/pull/100946) 1270 Paired iOS users can start native ElevenLabs Talk with a SecretRef-backed G... Paired iOS users can start native ElevenLabs Talk with a SecretRef-backed Gateway key without copying the credential into plaintext mobile configuration. [#98210](https://github.com/openclaw/openclaw/pull/98210) Related [#98209](https://github.com/openclaw/openclaw/issues/98209). Thanks @joshavant, @ooiuuii. 1271 iOS Talk's Gateway Default now uses the configured Gateway speech provider,... iOS Talk's Gateway Default now uses the configured Gateway speech provider, and stopping a reply prevents delayed audio from leaking into later turns. [#98376](https://github.com/openclaw/openclaw/pull/98376) Related [#98153](https://github.com/openclaw/openclaw/issues/98153). Thanks @jraxworthy, @tony-ooo. 1272 OpenAI Realtime Talk on iPhone now uses native WebRTC by default, recovers... OpenAI Realtime Talk on iPhone now uses native WebRTC by default, recovers continuous sessions from provider disconnects, and respects speaker, Bluetooth, and AirPlay output choices. [#98563](https://github.com/openclaw/openclaw/pull/98563) Thanks @pollybot13. 1273 The iOS Talk fallback banner now opens Voice & Talk settings directly inste... The iOS Talk fallback banner now opens Voice & Talk settings directly instead of sending users to unrelated Gateway settings. [#98602](https://github.com/openclaw/openclaw/pull/98602) Related [#98593](https://github.com/openclaw/openclaw/issues/98593). Thanks @pollybot13. 1274 Voice Wake on iOS can now pause while Talk, camera audio, or another featur... Voice Wake on iOS can now pause while Talk, camera audio, or another feature uses the microphone and resume without crashing the app. [#99137](https://github.com/openclaw/openclaw/pull/99137) Thanks @pollybot13. 1275 Apple Watch pairing and companion status now refresh without restarting the... Apple Watch pairing and companion status now refresh without restarting the iPhone app, while cold-launch actions wait for readiness or return a clear `WATCH_UNAVAILABLE` error. [#100732](https://github.com/openclaw/openclaw/pull/100732) 1276 iPhone users can now choose Listen on an assistant reply, follow preparatio... iPhone users can now choose Listen on an assistant reply, follow preparation and playback status, stop at any time, and fall back to on-device speech when needed. [#100771](https://github.com/openclaw/openclaw/pull/100771) 1277 Apple Watch quick replies now survive an unavailable iPhone and reconnect l... Apple Watch quick replies now survive an unavailable iPhone and reconnect later to the intended Gateway without being lost, duplicated, or misrouted. [#100372](https://github.com/openclaw/openclaw/pull/100372) Thanks @nianjiuzst. 1278 OpenClaw now uses consistent branded typography throughout its iOS, Watch,... OpenClaw now uses consistent branded typography throughout its iOS, Watch, and Live Activity interfaces while retaining Dynamic Type and accessibility support. [#99246](https://github.com/openclaw/openclaw/pull/99246) Thanks @joelnishanth, @joshavant. 1279 iOS users can pair multiple Gateways once and switch among them while keepi... iOS users can pair multiple Gateways once and switch among them while keeping credentials, trust, chats, preferences, device access, and push registration attached to the correct Gateway. [#100948](https://github.com/openclaw/openclaw/pull/100948) 1280 iPhone users pairing with a LAN Gateway now stay authenticated after the on... iPhone users pairing with a LAN Gateway now stay authenticated after the one-time bootstrap so Chat and the node connection do not immediately disconnect. [#98066](https://github.com/openclaw/openclaw/pull/98066) Related [#98064](https://github.com/openclaw/openclaw/issues/98064). Thanks @ooiuuii. 1281 After scanning an iOS pairing QR code, users now move to a live connection-... After scanning an iOS pairing QR code, users now move to a live connection-progress screen instead of returning to Welcome while pairing continues invisibly. [#98302](https://github.com/openclaw/openclaw/pull/98302) Related [#98297](https://github.com/openclaw/openclaw/issues/98297). Thanks @joelnishanth. 1282 iOS now explains secure Gateway connection and certificate-verification fai... iOS now explains secure Gateway connection and certificate-verification failures precisely and reliably presents the fingerprint trust prompt for first-time HTTPS connections. [#98429](https://github.com/openclaw/openclaw/pull/98429) Thanks @joshavant. 1283 New iPhone users now get clearer QR, setup-code, and manual Gateway choices... New iPhone users now get clearer QR, setup-code, and manual Gateway choices, better nearby and connection status, and a direct handoff to Chat after connecting. [#98868](https://github.com/openclaw/openclaw/pull/98868) Thanks @solvely-colin, @thats2easyyy. 1284 iOS users can correct gateway details after a failed manual setup and retry... iOS users can correct gateway details after a failed manual setup and retry immediately with the values currently on screen. [#99220](https://github.com/openclaw/openclaw/pull/99220) Related [#99219](https://github.com/openclaw/openclaw/issues/99219). Thanks @abdullahtas0. 1285 iOS gateway QR pairing now stays open through trust and approval, avoids sc... iOS gateway QR pairing now stays open through trust and approval, avoids scanner crashes, and keeps credentials and pending actions with the correct gateway during switches. [#99572](https://github.com/openclaw/openclaw/pull/99572) Thanks @pollybot13. 1286 Repeated iOS Gateway setup links now update the visible settings screen wit... Repeated iOS Gateway setup links now update the visible settings screen with the newest connection instead of being consumed by a hidden view or replaying stale details. [#100328](https://github.com/openclaw/openclaw/pull/100328) 1287 The iOS app can now connect through Cloudflare Access, Basic authentication... The iOS app can now connect through Cloudflare Access, Basic authentication, and similar proxies by storing per-Gateway credential headers for the next reconnect. [#100768](https://github.com/openclaw/openclaw/pull/100768) 1288 iOS pairing codes can now advertise both local and Tailnet Gateway routes,... iOS pairing codes can now advertise both local and Tailnet Gateway routes, allowing the phone to save the first reachable address when it is away from the private LAN. [#100317](https://github.com/openclaw/openclaw/pull/100317) 1289 iOS Gateway connection errors now appear as one dismissible toast that retu... iOS Gateway connection errors now appear as one dismissible toast that returns for a later failure and visibly reacts instead of stacking when the same problem repeats. [#98856](https://github.com/openclaw/openclaw/pull/98856) Thanks @lokimorty. 1290 The iOS QR setup scanner is less likely to crash or become unstable when us... The iOS QR setup scanner is less likely to crash or become unstable when users open, cancel, or close the camera during onboarding. [#101235](https://github.com/openclaw/openclaw/pull/101235) Thanks @joshavant, @solvely-colin. 1291 iOS location settings now explain Off, While Using, Always, Precise Locatio... iOS location settings now explain Off, While Using, Always, Precise Location, restrictions, and permission mismatches in the selected language across the translations in this release. Sources: [3542585](https://github.com/openclaw/openclaw/commit/3542585de59987dd0b962df3ddb70bde093fa4dd), [261d79a](https://github.com/openclaw/openclaw/commit/261d79a9a42ef45a41c3947caa6e616c92702ad4), [ef1474d](https://github.com/openclaw/openclaw/commit/ef1474dd3d4dfdffd4a47a5f14166dc8e2e97a55), [cc1d61b](https://github.com/openclaw/openclaw/commit/cc1d61bd3c04d86b470f94364b1fe7fc6762c456), [2a1e118](https://github.com/openclaw/openclaw/commit/2a1e1184f5139d300567d0c2437669727dddc821), [748bfee](https://github.com/openclaw/openclaw/commit/748bfee90d16df63b9d89ae7db8c80579c8f7a6f), [e0b2dda](https://github.com/openclaw/openclaw/commit/e0b2ddad6cd7a8a562dd39fd99746557923549a1), [f371a2f](https://github.com/openclaw/openclaw/commit/f371a2f2022f9ef6dd9ee781ccf9cb3ee2cf5d88), [ee00cc7](https://github.com/openclaw/openclaw/commit/ee00cc7c949469612e79a55479c363d62a00f7e6), [27f9ae0](https://github.com/openclaw/openclaw/commit/27f9ae0c0a41f812c872439efdfb05f1df79c17c), [51a07ae](https://github.com/openclaw/openclaw/commit/51a07aec27eee6ff7c75ddc9d2d1d40ce0d74672), [ba9d167](https://github.com/openclaw/openclaw/commit/ba9d167e1a9596eff784716992a1f9885d60e892), [576169e](https://github.com/openclaw/openclaw/commit/576169e6d247308fd92cb8cdd3ba493797fa2f3f), [10500a6](https://github.com/openclaw/openclaw/commit/10500a63fa5837a58d3e9b400daa7f52d20d0fbb), [a344252](https://github.com/openclaw/openclaw/commit/a34425273c4ed1796845f1706d1c3b3974044434), [d7d280f](https://github.com/openclaw/openclaw/commit/d7d280fc78a0e8c51b3404294a6a1958a023eb03), [cb2547f](https://github.com/openclaw/openclaw/commit/cb2547f329109ee0b81a62b12ebea7743cac5905), [2191c2e](https://github.com/openclaw/openclaw/commit/2191c2eb1f77eb24f5c0dc8499630d52ebb55a68), [c63e9f9](https://github.com/openclaw/openclaw/commit/c63e9f9bf8ac0e573cfd32937e11ee0e16248709), [4b1e0de](https://github.com/openclaw/openclaw/commit/4b1e0deb3374012338586f39fa8f064515a50cc8), [525c4c7](https://github.com/openclaw/openclaw/commit/525c4c7ce1b821236a07901d80b14a0e7ed81ded). 1292 iOS location settings now show the permission that is actually in effect, i... iOS location settings now show the permission that is actually in effect, including Precise Location and mismatches between OpenClaw's selected mode and the iOS grant. [#99247](https://github.com/openclaw/openclaw/pull/99247) Thanks @pollybot13. 1293 iOS users can now add contacts and search affected records without crashing... iOS users can now add contacts and search affected records without crashing the app or disconnecting the node. [#99475](https://github.com/openclaw/openclaw/pull/99475) Thanks @abdullahtas0. 1294 iOS Calendar, Reminders, and Contacts commands now return an immediate perm... iOS Calendar, Reminders, and Contacts commands now return an immediate permission-required result instead of opening a prompt that leaves the agent request waiting. [#99477](https://github.com/openclaw/openclaw/pull/99477) Thanks @nianjiuzst. 1295 Choosing While Using for location access on iOS now remains selected after... Choosing While Using for location access on iOS now remains selected after approval and after the app is relaunched. [#100512](https://github.com/openclaw/openclaw/pull/100512) 1296 The iOS `screen The iOS `screen.record` command now finishes more reliably with a nonempty MP4 instead of crashing the app and disconnecting the node as recording stops. [#101550](https://github.com/openclaw/openclaw/pull/101550) Thanks @tony-ooo. 1297 The iOS app now recovers when a location permission prompt returns without... The iOS app now recovers when a location permission prompt returns without a clear decision instead of waiting indefinitely. [75c8753](https://github.com/openclaw/openclaw/commit/75c8753a2cb52cf14acdc50cfa2d2c99368d0e0e) Thanks @vincentkoc. 1298 Cancelling or interrupting an iOS `screen Cancelling or interrupting an iOS `screen.record` request now stops the system recorder instead of letting capture continue after the tool call fails. [#99155](https://github.com/openclaw/openclaw/pull/99155) Thanks @nianjiuzst. 1299 iOS now recognizes Limited Photos access as usable, offers in-app controls... iOS now recognizes Limited Photos access as usable, offers in-app controls for requesting or managing the grant, and avoids interrupting gateway requests with a surprise prompt. [#99350](https://github.com/openclaw/openclaw/pull/99350) Related [#99046](https://github.com/openclaw/openclaw/issues/99046). Thanks @tony-ooo. 1300 The iOS camera permission prompt now clearly connects access to Gateway set... The iOS camera permission prompt now clearly connects access to Gateway setup and assistant-requested photo, video, document, screen, or workspace capture. [e77994e](https://github.com/openclaw/openclaw/commit/e77994ed5adfd5e69c457a5bca82795eff3555bf) Thanks @joshavant. 1301 Localized macOS builds now translate the new GitHub link label, including i... Localized macOS builds now translate the new GitHub link label, including its accessibility-facing text, instead of falling back to English. [8be1d36](https://github.com/openclaw/openclaw/commit/8be1d366a1f72936495c3d2b00461c5b58572706) 1302 macOS onboarding now translates local Gateway installation, checks, repairs... macOS onboarding now translates local Gateway installation, checks, repairs, retries, paused setup, and resume guidance across the languages updated in this release. Sources: [7a717b7](https://github.com/openclaw/openclaw/commit/7a717b777037c6e5152eda24e135e2a64295d256), [85d31e1](https://github.com/openclaw/openclaw/commit/85d31e10d5fcbbeb331e31aa67f8bce520cdbd8e), [27778a7](https://github.com/openclaw/openclaw/commit/27778a7c3de9ba798ae821d5a8dfc3059d4b9af2), [cffc6ad](https://github.com/openclaw/openclaw/commit/cffc6adbce9ca2c8421459a29cfc7bcabb5cf148), [ab0d604](https://github.com/openclaw/openclaw/commit/ab0d604ced35802e8e754ba298b76f5d9a933e1b), [972d394](https://github.com/openclaw/openclaw/commit/972d394c7b008ff278a138c6e1587647e8545c4f), [edbbdf6](https://github.com/openclaw/openclaw/commit/edbbdf6728472f98b92bba22381dd7d70bcb9c0b), [863a054](https://github.com/openclaw/openclaw/commit/863a054576cdeed556bb55c110a451f5c8cab571), [ef5650f](https://github.com/openclaw/openclaw/commit/ef5650f7816433aa5003ebef40019220911bf126), [5f2e51f](https://github.com/openclaw/openclaw/commit/5f2e51fccfc1c700a854cf1b288b16311fd43f87), [5769416](https://github.com/openclaw/openclaw/commit/5769416b6280042684efde75a64ebb36ff27c6d7), [a3aa917](https://github.com/openclaw/openclaw/commit/a3aa917225ecaf87ef83d41f7d23b31dba748722), [2f7bd01](https://github.com/openclaw/openclaw/commit/2f7bd01835c8e7fe28a0aee44d235a6fd521c7f4), [c54a6f3](https://github.com/openclaw/openclaw/commit/c54a6f304e49ba6746e8d92bd96d7ed904352a2c), [9c3ffc5](https://github.com/openclaw/openclaw/commit/9c3ffc5aafbf1075c0f6a00bdd2956a71e8a5f05), [469e707](https://github.com/openclaw/openclaw/commit/469e707970ea5ac0465b83b259f060b13ed2eede), [d066a81](https://github.com/openclaw/openclaw/commit/d066a81d225df29c3f763c62885219991585bea6), [72a3b71](https://github.com/openclaw/openclaw/commit/72a3b712af9b02352d6f2d8d2af3202204480097), [63aa909](https://github.com/openclaw/openclaw/commit/63aa90921602909f19293ba243c344f4d895da6e), [b68e2e7](https://github.com/openclaw/openclaw/commit/b68e2e701ae5f083909e499a84d57ec225cc5ffb). 1303 macOS users can run Codex Computer Use desktop controls through managed ins... macOS users can run Codex Computer Use desktop controls through managed installation without a manual `appServer.command`, and an outdated Codex Desktop app-server no longer blocks a supported plugin-local binary. [#96730](https://github.com/openclaw/openclaw/pull/96730) Thanks @bdjben. 1304 New Mac users can now open the app and reach a working local agent without... New Mac users can now open the app and reach a working local agent without Terminal, Homebrew, administrator access, or an extra approval prompt for the app's own node. [#99767](https://github.com/openclaw/openclaw/pull/99767) Related [#99764](https://github.com/openclaw/openclaw/issues/99764). 1305 macOS onboarding now verifies the chosen AI connection before first chat, p... macOS onboarding now verifies the chosen AI connection before first chat, presents clearer local and remote setup choices, and offers friendly recovery or a verified manual API-key path when authentication fails. [#100288](https://github.com/openclaw/openclaw/pull/100288) 1306 macOS onboarding now offers the Gateway's supported text-inference provider... macOS onboarding now offers the Gateway's supported text-inference provider catalog instead of only Anthropic, OpenAI, and Google, and tests credentials before saving them. [#101132](https://github.com/openclaw/openclaw/pull/101132) 1307 First-run macOS setup now recognizes a successfully saved Codex login and i... First-run macOS setup now recognizes a successfully saved Codex login and is less likely to finish with a stale Gateway or bundled-skills warning. [#101218](https://github.com/openclaw/openclaw/pull/101218) 1308 After `openclaw doctor --fix` archives a legacy sidecar, the macOS app no l... After `openclaw doctor --fix` archives a legacy sidecar, the macOS app no longer recreates it or triggers the same migration conflict warning on every command or Gateway start. [#99039](https://github.com/openclaw/openclaw/pull/99039) Related [#98917](https://github.com/openclaw/openclaw/issues/98917). Thanks @momothemage, @p51moustache. 1309 Repeated pairing repair attempts now produce one usable macOS approval prom... Repeated pairing repair attempts now produce one usable macOS approval prompt per device instead of stacking stale alerts that cannot complete approval. [#100976](https://github.com/openclaw/openclaw/pull/100976) 1310 On macOS, an explicit `OPENCLAW_STATE_DIR` now stays isolated from the mach... On macOS, an explicit `OPENCLAW_STATE_DIR` now stays isolated from the machine's existing App Group pairing identity and device tokens. [#101779](https://github.com/openclaw/openclaw/pull/101779) 1311 macOS remote mode can now connect through explicitly selected managed SSH a... macOS remote mode can now connect through explicitly selected managed SSH aliases and recover app-owned tunnels when SSH multiplexing or backgrounding is enabled. [#99661](https://github.com/openclaw/openclaw/pull/99661) 1312 Finder-launched macOS sessions can now use SSH aliases backed by common use... Finder-launched macOS sessions can now use SSH aliases backed by common user-installed `ProxyCommand` helpers without losing agent state or failing Gateway readiness checks. [#100214](https://github.com/openclaw/openclaw/pull/100214) 1313 Multiple macOS app instances now preserve shared SSH tunnel tracking and cl... Multiple macOS app instances now preserve shared SSH tunnel tracking and clean up stale processes more reliably, reducing port conflicts after a crash. [#100601](https://github.com/openclaw/openclaw/pull/100601) 1314 The macOS Dashboard now follows a restarted remote SSH tunnel to its new lo... The macOS Dashboard now follows a restarted remote SSH tunnel to its new local port automatically and keeps authentication tokens out of logged URLs. [#100488](https://github.com/openclaw/openclaw/pull/100488) 1315 After a macOS crash or force quit, OpenClaw now reclaims confirmed orphaned... After a macOS crash or force quit, OpenClaw now reclaims confirmed orphaned remote-mode SSH tunnels so relaunches can reuse the preferred local Gateway port. [#100489](https://github.com/openclaw/openclaw/pull/100489) 1316 The macOS menu-bar app now uses fewer idle CPU wakeups and less repeated co... The macOS menu-bar app now uses fewer idle CPU wakeups and less repeated configuration and permission work, reducing background battery use without changing active status behavior. [#100463](https://github.com/openclaw/openclaw/pull/100463) 1317 Long-running `system Long-running `system.run` commands on the macOS app node no longer make the node appear offline or block unrelated Gateway traffic. [#100842](https://github.com/openclaw/openclaw/pull/100842) Thanks @lvan185, @vincentkoc. 1318 The macOS app no longer mistakes a valid launchd-managed local Gateway for... The macOS app no longer mistakes a valid launchd-managed local Gateway for an unexpected listener and terminates active assistant or channel work. [#100867](https://github.com/openclaw/openclaw/pull/100867) Thanks @lsr911, @vincentkoc. 1319 The macOS app now keeps the same paired device and node identity across upg... The macOS app now keeps the same paired device and node identity across upgrades, restarts, and Gateway reconnects instead of repeatedly asking for approval or creating stale duplicates. [#101105](https://github.com/openclaw/openclaw/pull/101105) Thanks @yetval. 1320 The Mac app now shows the animated OpenClaw mascot in onboarding and About,... The Mac app now shows the animated OpenClaw mascot in onboarding and About, while Reduce Motion keeps it still. [f052a2f](https://github.com/openclaw/openclaw/commit/f052a2f23b2d2b510686526ce52c6637bca8a4c6) 1321 The macOS onboarding and About mascot now more closely matches openclaw The macOS onboarding and About mascot now more closely matches openclaw.ai with theme-aware colors, glow, hover scaling, and smoother motion that keeps its antennae visible. [05c9dcc](https://github.com/openclaw/openclaw/commit/05c9dccf35ec86ebd41e17fdcc0dbf67d203b54c) 1322 The Mac About screen now links directly to the OpenClaw website, documentat... The Mac About screen now links directly to the OpenClaw website, documentation, GitHub project, and Discord community, matching the other native apps. [6e7ef63](https://github.com/openclaw/openclaw/commit/6e7ef631d2ac41370fc5b14b8e5b5992413a4cd7) 1323 Opening OpenClaw again from the macOS Dock or Finder now brings up the dash... Opening OpenClaw again from the macOS Dock or Finder now brings up the dashboard or its failure window even when the menu-bar app is already running. [#97637](https://github.com/openclaw/openclaw/pull/97637) Thanks @solvely-colin. 1324 `openclaw tui` now finds the custom port of an active local Gateway automat... `openclaw tui` now finds the custom port of an active local Gateway automatically, so users usually do not need to repeat its URL with `--url`. [#73338](https://github.com/openclaw/openclaw/pull/73338) Thanks @haishmg, @vincentkoc. 1325 Gateway-backed and local TUI sessions now display assistant text as it arri... Gateway-backed and local TUI sessions now display assistant text as it arrives instead of appearing quiet until the final response. [#83000](https://github.com/openclaw/openclaw/pull/83000) Thanks @flashosophy. 1326 The TUI now explains when repeated invalid tool arguments abort a run, givi... The TUI now explains when repeated invalid tool arguments abort a run, giving users a useful correction clue without exposing sensitive inputs. [#91002](https://github.com/openclaw/openclaw/pull/91002) Thanks @taerlandsen, @wsyjh8. 1327 Typing indicators now remain active during long Codex model, tool, command,... Typing indicators now remain active during long Codex model, tool, command, recovery, and queued follow-up work instead of making the reply appear idle. [#95844](https://github.com/openclaw/openclaw/pull/95844) Thanks @jalehman. 1328 Shortened exec and bash summaries now keep emoji and other supplementary ch... Shortened exec and bash summaries now keep emoji and other supplementary characters intact around the ellipsis instead of displaying a broken replacement glyph. [#96963](https://github.com/openclaw/openclaw/pull/96963) Thanks @bartok9, @ly-wang19, @vincentkoc. 1329 Replies triggered through Telegram or another external channel now appear o... Replies triggered through Telegram or another external channel now appear only once in the terminal UI after history refreshes, while resets, session switches, delayed events, and in-progress recovery continue normally. [#96980](https://github.com/openclaw/openclaw/pull/96980) Thanks @xialonglee. 1330 Long assistant and provider errors now end cleanly when emoji or rare Unico... Long assistant and provider errors now end cleanly when emoji or rare Unicode characters land near the display limit. [#97289](https://github.com/openclaw/openclaw/pull/97289) Thanks @zenglingbiao. 1331 The TUI now directs users to the pending device or scope-upgrade approval c... The TUI now directs users to the pending device or scope-upgrade approval command instead of incorrectly sending them through chat-DM pairing. [#98144](https://github.com/openclaw/openclaw/pull/98144) Thanks @romneyda. 1332 Embedded and local TUI sessions now contain event-consumer errors instead o... Embedded and local TUI sessions now contain event-consumer errors instead of terminating the terminal. [#100117](https://github.com/openclaw/openclaw/pull/100117) Thanks @cxbasdev. 1333 TUI users can now submit prompts while an agent is working and receive the... TUI users can now submit prompts while an agent is working and receive the configured followup, collect, or interrupt behavior, with Esc and `/stop` canceling only the intended work. [#100123](https://github.com/openclaw/openclaw/pull/100123) Thanks @kevinlp, @sebtardif. 1334 TUI `/new` now performs a real session transition with the expected lifecyc... TUI `/new` now performs a real session transition with the expected lifecycle hooks and prevents a new session from racing an active turn. [#100241](https://github.com/openclaw/openclaw/pull/100241) Thanks @caopulan. 1335 Terminal Hatch onboarding and other TUI connections now show `starting up`... Terminal Hatch onboarding and other TUI connections now show `starting up` until session loading finishes, with accurate running indicators after reconnects. [#93999](https://github.com/openclaw/openclaw/pull/93999) Thanks @ml12580. 1336 Repeated submits while the TUI agent is busy now update one warning instead... Repeated submits while the TUI agent is busy now update one warning instead of flooding the conversation with duplicate notices. [#99879](https://github.com/openclaw/openclaw/pull/99879) Thanks @vincentkoc. 1337 `openclaw tui --local` now explains when a known slash command requires the... `openclaw tui --local` now explains when a known slash command requires the Gateway instead of sending that command to the model as an unwanted prompt. [#100188](https://github.com/openclaw/openclaw/pull/100188) Thanks @goslingmanagment. 1338 Workspace skill approvals started in the TUI now appear in that terminal, s... Workspace skill approvals started in the TUI now appear in that terminal, so users can review and unblock the run without switching to Telegram. [#100251](https://github.com/openclaw/openclaw/pull/100251) Thanks @vincentkoc. 1339 The terminal UI now stays open and shows a safe, useful error when a local... The terminal UI now stays open and shows a safe, useful error when a local shell command, slash command, or message submission fails. [#100340](https://github.com/openclaw/openclaw/pull/100340) Thanks @cxbasdev. 1340 Codex CLI session lists now shorten long last-message previews without spli... Codex CLI session lists now shorten long last-message previews without splitting emoji or similar characters into broken text. [#96582](https://github.com/openclaw/openclaw/pull/96582) Thanks @llagy007, @weeli-009. 1341 Users can turn a conversation, file path, URL, or pasted note into a review... Users can turn a conversation, file path, URL, or pasted note into a reviewable Skill Workshop proposal with one message instead of starting from a blank draft. [#100442](https://github.com/openclaw/openclaw/pull/100442) 1342 Long-running agents can automatically retire unused Skill Workshop skills f... Long-running agents can automatically retire unused Skill Workshop skills from future context, pin important ones, restore archives, and surface possible overlaps without deleting the underlying skills. [#101214](https://github.com/openclaw/openclaw/pull/101214) 1343 The opt-in Logbook lets users review a model-organized workday timeline, ge... The opt-in Logbook lets users review a model-organized workday timeline, generate standups, and ask questions about captured activity, with owner-only local storage and configurable retention. [#99930](https://github.com/openclaw/openclaw/pull/99930) 1344 Skill archive validation and upload hashing errors now identify the missing... Skill archive validation and upload hashing errors now identify the missing or unreadable file while preserving the original filesystem error. [#101085](https://github.com/openclaw/openclaw/pull/101085) Thanks @cxbasdev, @vincentkoc. 1345 The bundled xurl skill now shows a working Node/npm installation path, and... The bundled xurl skill now shows a working Node/npm installation path, and the github skill no longer advertises an unsupported Linux apt option. [#102158](https://github.com/openclaw/openclaw/pull/102158) Thanks @not-stbenjam. 1346 Owner-operated native Codex agents can now use selected apps already connec... Owner-operated native Codex agents can now use selected apps already connected to the operator's Codex account, with a bounded per-thread allowlist and existing approval controls preserved. [#100973](https://github.com/openclaw/openclaw/pull/100973) Thanks @pash-openai. 1347 Updated integration runtimes keep Codex, ACP, Copilot, Telegram, and diff r... Updated integration runtimes keep Codex, ACP, Copilot, Telegram, and diff rendering aligned with compatible upstream behavior, while reconnect recovery no longer floods operator logs with duplicate messages. [#100027](https://github.com/openclaw/openclaw/pull/100027) 1348 Configured and accessible native Codex plugin apps now remain available whe... Configured and accessible native Codex plugin apps now remain available when a new OpenClaw thread starts during an app-inventory and activation-state transition instead of disappearing silently. [#96872](https://github.com/openclaw/openclaw/pull/96872) Thanks @kevinslin. 1349 Changes made by plugin hooks now reach agent and child-run context, includi... Changes made by plugin hooks now reach agent and child-run context, including replacements or removals made by `agent:bootstrap`. [#97281](https://github.com/openclaw/openclaw/pull/97281) Thanks @outdog-hwh. 1350 Embedded context-engine plugins now see the current turn in the transcript... Embedded context-engine plugins now see the current turn in the transcript during `afterTurn`, preventing missing first messages and duplicate imports. [#97342](https://github.com/openclaw/openclaw/pull/97342) Thanks @gorkem2020, @iwhatsskill, @sgh6688, @udjin79. 1351 Windows can now load valid inbound media when configured roots and runtime... Windows can now load valid inbound media when configured roots and runtime file paths differ only in letter casing. [#97630](https://github.com/openclaw/openclaw/pull/97630) Thanks @vectorpeak. 1352 Plugins can now react when a new DM pairing request is created, enabling ow... Plugins can now react when a new DM pairing request is created, enabling owner alerts, audit records, tickets, and approval integrations without polling. [#97733](https://github.com/openclaw/openclaw/pull/97733) Thanks @clawsean, @omarshahine, @trupe-rs. 1353 Provider plugins that mask text now restore intended values inside tool-cal... Provider plugins that mask text now restore intended values inside tool-call inputs before messages, file operations, and other external actions run. [#97769](https://github.com/openclaw/openclaw/pull/97769) Related [#97761](https://github.com/openclaw/openclaw/issues/97761). Thanks @get-viti, @zoowh. 1354 Plugin and media workflows now handle malformed or truncated ffprobe output... Plugin and media workflows now handle malformed or truncated ffprobe output without crashing while continuing to read valid video dimensions normally. [#98613](https://github.com/openclaw/openclaw/pull/98613) Thanks @pick-cat. 1355 Ordinary Lobster run and resume approvals no longer fail TaskFlow-only vali... Ordinary Lobster run and resume approvals no longer fail TaskFlow-only validation simply because unused default flow fields were present. [#102036](https://github.com/openclaw/openclaw/pull/102036) Thanks @arthurnie, @lilan0125, @vincentkoc. 1356 Operators can run `openclaw plugins marketplace refresh` to verify and save... Operators can run `openclaw plugins marketplace refresh` to verify and save a hosted feed, enforce a SHA-256 match, and see whether live, saved, or bundled data was used. [#96155](https://github.com/openclaw/openclaw/pull/96155) Thanks @giodl73-repo. 1357 `openclaw plugins init` can now scaffold a model-provider plugin with authe... `openclaw plugins init` can now scaffold a model-provider plugin with authentication, model setup, tests, packaging, validation, and ClawHub publishing structure. [#94352](https://github.com/openclaw/openclaw/pull/94352) Thanks @patrick-erichsen. 1358 Existing plugin discovery keeps the same bundled official catalog while gai... Existing plugin discovery keeps the same bundled official catalog while gaining a versioned, fail-closed fallback format for the hosted marketplace work. [#95846](https://github.com/openclaw/openclaw/pull/95846) Thanks @giodl73-repo. 1359 ClawHub marketplace reads now fail back to OpenClaw's bundled plugin catalo... ClawHub marketplace reads now fail back to OpenClaw's bundled plugin catalog when hosted data is unsafe or unusable, providing a guarded base for the new marketplace workflow. [#95868](https://github.com/openclaw/openclaw/pull/95868) Thanks @giodl73-repo. 1360 A hosted marketplace can keep serving its last verified catalog when the fe... A hosted marketplace can keep serving its last verified catalog when the feed is unchanged or briefly unavailable, without trusting stale or invalid saved data. [#95877](https://github.com/openclaw/openclaw/pull/95877) Thanks @giodl73-repo. 1361 The latest verified hosted marketplace catalog can survive a restart and re... The latest verified hosted marketplace catalog can survive a restart and remain available through unchanged responses or temporary feed failures, with persistence still optional. [#95964](https://github.com/openclaw/openclaw/pull/95964) Thanks @giodl73-repo. 1362 Hosted marketplace entries become installable only when they match approved... Hosted marketplace entries become installable only when they match approved local sources and trusted ClawHub packages, preventing unknown or untrusted choices from slipping into installation. [#95969](https://github.com/openclaw/openclaw/pull/95969) Thanks @giodl73-repo. 1363 Administrators can configure named hosted marketplace feeds and the trusted... Administrators can configure named hosted marketplace feeds and the trusted local package sources those feeds may reference, while unsupported trust settings are rejected. [#95981](https://github.com/openclaw/openclaw/pull/95981) Thanks @giodl73-repo. 1364 The new `openclaw plugins marketplace entries` command lists available host... The new `openclaw plugins marketplace entries` command lists available hosted plugins, versions, and install choices while showing whether results came from live, saved, or bundled data. [#96158](https://github.com/openclaw/openclaw/pull/96158) Thanks @giodl73-repo. 1365 Marketplace diagnostics now show whether refresh and entries commands used... Marketplace diagnostics now show whether refresh and entries commands used a hosted feed, a saved snapshot, or a fallback without logging feed secrets. [#96194](https://github.com/openclaw/openclaw/pull/96194) Thanks @giodl73-repo. 1366 Plugin authors can now import shared `textResult` and `jsonResult` helpers... Plugin authors can now import shared `textResult` and `jsonResult` helpers from `openclaw/plugin-sdk/tool-results` instead of recreating common response shapes. [#99740](https://github.com/openclaw/openclaw/pull/99740) Thanks @romneyda. 1367 Plugin authors now have a shared `formatByteSize` helper for consistent byt... Plugin authors now have a shared `formatByteSize` helper for consistent byte labels, while existing labels across OpenClaw remain unchanged. [#99768](https://github.com/openclaw/openclaw/pull/99768) Thanks @romneyda. 1368 Migration `agentDir` values beginning with `~` now resolve against OpenClaw... Migration `agentDir` values beginning with `~` now resolve against OpenClaw's effective home. [#99901](https://github.com/openclaw/openclaw/pull/99901) 1369 Starting QR login without a required official channel plugin now returns th... Starting QR login without a required official channel plugin now returns the exact installation command or `openclaw doctor --fix` instead of only saying the provider is unavailable. [#90517](https://github.com/openclaw/openclaw/pull/90517) Related [#83277](https://github.com/openclaw/openclaw/issues/83277). Thanks @carol-iung, @tuaran. 1370 Plugin update failures now report the real npm metadata or registry problem... Plugin update failures now report the real npm metadata or registry problem instead of disguising it as an unsupported package specification. [#96143](https://github.com/openclaw/openclaw/pull/96143) Thanks @brokemac79, @romneyda, @slideshow-dingo. 1371 Operators can install a pinned older ClawHub plugin when that version is co... Operators can install a pinned older ClawHub plugin when that version is compatible with their OpenClaw deployment, without the latest release's requirements incorrectly blocking it; incompatible or unverifiable versions remain blocked. [#96506](https://github.com/openclaw/openclaw/pull/96506) Thanks @isaiahstapleton. 1372 `openclaw plugins update --all` now realigns trusted official plugins with... `openclaw plugins update --all` now realigns trusted official plugins with the current stable or beta catalog after a core upgrade, without manual force installs or overwriting intentional targeted pins. [#96831](https://github.com/openclaw/openclaw/pull/96831) Thanks @ooiuuii, @velvet-shark. 1373 `openclaw plugins update &lt `openclaw plugins update <id> --dry-run` now tells operators when a newer default release exists even if the installed plugin is pinned exactly. [#97282](https://github.com/openclaw/openclaw/pull/97282) Thanks @yungchentang. 1374 Windows plugin updates no longer create managed paths so long that official... Windows plugin updates no longer create managed paths so long that official Codex-backed agents fail before they can start and reply. [#97488](https://github.com/openclaw/openclaw/pull/97488) Thanks @ooiuuii. 1375 `openclaw update` now accepts valid bundle-format marketplace and ClawHub p... `openclaw update` now accepts valid bundle-format marketplace and ClawHub plugins without `package.json`, preventing plugin sync from aborting and leaving the Gateway stopped. [#98010](https://github.com/openclaw/openclaw/pull/98010) Related [#97985](https://github.com/openclaw/openclaw/issues/97985). Thanks @herove, @lilan0125. 1376 `openclaw/memory-lancedb` can now install and update under normal npm depen... `openclaw/memory-lancedb` can now install and update under normal npm dependency resolution, keeping LanceDB-backed memory active without version pinning or bypass flags. [#99118](https://github.com/openclaw/openclaw/pull/99118) Related [#90295](https://github.com/openclaw/openclaw/issues/90295). Thanks @allenhurff, @joshavant. 1377 Installing a managed npm plugin no longer makes workspace plugins from `plu... Installing a managed npm plugin no longer makes workspace plugins from `plugins.load.paths` disappear after startup or restart. [#99196](https://github.com/openclaw/openclaw/pull/99196) Thanks @leonidaslux. 1378 Git-backed plugin installs and updates now work when `~/ Git-backed plugin installs and updates now work when `~/.openclaw` and the system temp directory are on different filesystems, without a `TMPDIR` workaround. [#99896](https://github.com/openclaw/openclaw/pull/99896) Thanks @bartok9, @carelvanheerden, @vincentkoc. 1379 Extended-stable users can install, repair, and update eligible official plu... Extended-stable users can install, repair, and update eligible official plugins at the exact OpenClaw core version instead of drifting onto the regular stable line. [#100448](https://github.com/openclaw/openclaw/pull/100448) Thanks @kevinslin. 1380 `openclaw update` no longer retries a plugin after successfully moving it t... `openclaw update` no longer retries a plugin after successfully moving it to ClawHub, preventing a redundant transient failure from disabling the migrated plugin. [3ce26d6](https://github.com/openclaw/openclaw/commit/3ce26d690f627ad07dd1097384e8c71dd1537ac1) Thanks @vincentkoc. 1381 `openclaw doctor` can continue legacy dedupe migration when a retired cache... `openclaw doctor` can continue legacy dedupe migration when a retired cache file contains malformed JSON instead of stopping with a parsing error. [#98125](https://github.com/openclaw/openclaw/pull/98125) Thanks @pick-cat. 1382 Plugin install and update failures now show whether npm exited, was killed,... Plugin install and update failures now show whether npm exited, was killed, or timed out instead of presenting a blank error that makes valid packages look invalid. [#98497](https://github.com/openclaw/openclaw/pull/98497) Thanks @sanjays2402, @vincentkoc. 1383 Failed plugin installations now show the useful plugin error without adding... Failed plugin installations now show the useful plugin error without adding a false `Also not a valid hook pack` diagnosis, while genuine hook-pack failures remain visible. [#100554](https://github.com/openclaw/openclaw/pull/100554) Thanks @vincentkoc. 1384 Declared plugin tools now remain callable in subagent sessions after plugin... Declared plugin tools now remain callable in subagent sessions after plugin registry changes, avoiding repeated `plugin tool runtime missing` failures and Gateway restarts. [#82562](https://github.com/openclaw/openclaw/pull/82562) Thanks @luoyanglang, @vincentkoc. 1385 Plugin metadata cache hits no longer flood diagnostics with repeated full-s... Plugin metadata cache hits no longer flood diagnostics with repeated full-scan entries, leaving smaller timelines where real scans are easier to identify. [#86796](https://github.com/openclaw/openclaw/pull/86796) Thanks @galiniliev, @vincentkoc. 1386 Plugin loading no longer evaluates OpenClaw's own package code twice, reduc... Plugin loading no longer evaluates OpenClaw's own package code twice, reducing startup work and avoiding duplicate module, class, singleton, or registry identities in one process. [#88384](https://github.com/openclaw/openclaw/pull/88384) Thanks @vincentkoc. 1387 `openclaw plugins inspect` now shows the bundled document-extract plugin's... `openclaw plugins inspect` now shows the bundled document-extract plugin's PDF extractor as an available capability instead of reporting none. [#91597](https://github.com/openclaw/openclaw/pull/91597) Thanks @xydt-tanshanshan. 1388 Configured context-engine plugins such as lossless-claw now stay active aft... Configured context-engine plugins such as lossless-claw now stay active after discovery instead of being silently replaced by the built-in legacy engine. [#96357](https://github.com/openclaw/openclaw/pull/96357) Thanks @vincentkoc. 1389 Gateway startup now reports configured channels that failed to load, so ope... Gateway startup now reports configured channels that failed to load, so operators can fix plugin trust, enablement, or installation before messages go missing. [#96397](https://github.com/openclaw/openclaw/pull/96397) Thanks @849261680. 1390 Plugin-heavy startup and configuration checks, especially on Windows, now r... Plugin-heavy startup and configuration checks, especially on Windows, now repeat fewer package-path lookups while rebuilding installed-plugin fingerprints, making those paths more responsive. [#96710](https://github.com/openclaw/openclaw/pull/96710) Thanks @211-lee, @sheyanmin, @vincentkoc. 1391 `/status plugins` now labels a plugin as loaded only when it is actually ru... `/status plugins` now labels a plugin as loaded only when it is actually running, while still showing healthy installed inventory. [#97479](https://github.com/openclaw/openclaw/pull/97479) Thanks @masatohoshino. 1392 Raising a running Gateway's log level to debug now immediately enables Matt... Raising a running Gateway's log level to debug now immediately enables Mattermost, Matrix, Microsoft Teams, IRC, Nextcloud Talk, and other plugin diagnostics without a restart. [#97617](https://github.com/openclaw/openclaw/pull/97617) Thanks @amknight, @vincentkoc. 1393 Detailed `/status plugins` now flags a plugin that was configured to run bu... Detailed `/status plugins` now flags a plugin that was configured to run but did not load, separating runtime drift from ordinary inactive inventory. [#97878](https://github.com/openclaw/openclaw/pull/97878) Thanks @masatohoshino. 1394 Plugin loading now honors operator-configured Jiti native-module exceptions... Plugin loading now honors operator-configured Jiti native-module exceptions while retaining protection against duplicate OpenClaw package evaluation. [#100344](https://github.com/openclaw/openclaw/pull/100344) 1395 Bundled channel setup plugins now load correctly through current-release sy... Bundled channel setup plugins now load correctly through current-release symlinks and mixed source/dist layouts without false outside-package warnings. [#100758](https://github.com/openclaw/openclaw/pull/100758) 1396 Source checkouts with a partial bundled plugin tree now retain complete bui... Source checkouts with a partial bundled plugin tree now retain complete built-in metadata for plugin health checks and provider endpoint discovery. [26c0285](https://github.com/openclaw/openclaw/commit/26c0285812b4299bcb5d61ae76f374410e39d5c5) Thanks @vincentkoc. 1397 The GitHub Copilot plugin no longer breaks `openclaw plugins list` or `open... The GitHub Copilot plugin no longer breaks `openclaw plugins list` or `openclaw status` during metadata-only loading before full runtime state is available. [#95229](https://github.com/openclaw/openclaw/pull/95229) Related [#94516](https://github.com/openclaw/openclaw/issues/94516). Thanks @cuihaijun, @sunlit-deng. 1398 `/status plugins` now groups disabled plugins by reason, including allowlis... `/status plugins` now groups disabled plugins by reason, including allowlist, denylist, default, and override decisions, without changing activation behavior. [#99598](https://github.com/openclaw/openclaw/pull/99598) Thanks @masatohoshino. 1399 Bundled channel runtime and setup plugins now load from valid source-only r... Bundled channel runtime and setup plugins now load from valid source-only registry roots in mixed source/dist checkouts instead of silently disappearing. [#100737](https://github.com/openclaw/openclaw/pull/100737) 1400 Duplicate plugin-request scopes now normalize consistently, and genuine plu... Duplicate plugin-request scopes now normalize consistently, and genuine plugin scan access failures are surfaced. [#99932](https://github.com/openclaw/openclaw/pull/99932) 1401 Official OpenClaw container images are now available from Docker Hub as wel... Official OpenClaw container images are now available from Docker Hub as well as GHCR, reducing reliance on unofficial mirrors. [#97122](https://github.com/openclaw/openclaw/pull/97122) Thanks @vincentkoc. 1402 Docker users now get a more complete bundled AI runtime, reducing startup a... Docker users now get a more complete bundled AI runtime, reducing startup and runtime failures caused by package links removed during image trimming. [57ca1b0](https://github.com/openclaw/openclaw/commit/57ca1b02543af9f4ac1d78446951b98cc31fba5a) Thanks @vincentkoc. 1403 Affected npm installations can once again start the Gateway and produce rep... Affected npm installations can once again start the Gateway and produce replies because speech now loads only through its supported package-backed TTS path. [#89899](https://github.com/openclaw/openclaw/pull/89899) Thanks @zhangguiping-xydt. 1404 OpenClaw npm packages are now about 3 OpenClaw npm packages are now about 3.18 MB smaller unpacked and 371 KB smaller compressed, with plugin SDK entrypoints and runtime behavior unchanged. [#98758](https://github.com/openclaw/openclaw/pull/98758) Related [#98757](https://github.com/openclaw/openclaw/issues/98757). Thanks @romneyda. 1405 Source and macOS package builds no longer fail when the tsdown configuratio... Source and macOS package builds no longer fail when the tsdown configuration is loaded from a temporary directory that cannot resolve the runtime package. [#100499](https://github.com/openclaw/openclaw/pull/100499) 1406 Global npm upgrades can continue as OpenClaw's packaged files grow without... Global npm upgrades can continue as OpenClaw's packaged files grow without hitting `InstalledDistScanLimitError`, while runaway scans remain bounded. [#101206](https://github.com/openclaw/openclaw/pull/101206) 1407 Source builds now work on supported Node Source builds now work on supported Node.js distributions without native TypeScript stripping, avoiding a late failure tied to `--experimental-strip-types`. [#91262](https://github.com/openclaw/openclaw/pull/91262) Thanks @smoe, @vincentkoc. 1408 `openclaw onboard` now explains up front what setup covers, why full onboar... `openclaw onboard` now explains up front what setup covers, why full onboarding can take longer, and which optional steps can be postponed. [#97482](https://github.com/openclaw/openclaw/pull/97482) Thanks @ly85206559. 1409 Crestodian on Claude Code or Gemini CLI can now hold multi-turn setup conve... Crestodian on Claude Code or Gemini CLI can now hold multi-turn setup conversations, inspect state, request exact approval for changes, and verify writes instead of falling back immediately to a single-turn planner. [#100029](https://github.com/openclaw/openclaw/pull/100029) 1410 Crestodian setup and repair chats no longer destabilize the local TUI when... Crestodian setup and repair chats no longer destabilize the local TUI when a terminal event consumer fails during response delivery. [#100341](https://github.com/openclaw/openclaw/pull/100341) Thanks @cxbasdev, @vincentkoc. 1411 Crestodian now distinguishes ordinary questions from operational requests,... Crestodian now distinguishes ordinary questions from operational requests, accepts natural approval phrases, clears stale proposals, and keeps sensitive configuration out of the conversation model. [#100656](https://github.com/openclaw/openclaw/pull/100656) 1412 Fresh git installs now lead users through setup, or give the exact command... Fresh git installs now lead users through setup, or give the exact command to finish later, before missing configuration or Gateway authentication can break first use. [#101901](https://github.com/openclaw/openclaw/pull/101901) Thanks @fuller-stack-dev. 1413 Setup now checks the configured custom agent or auth directory for credenti... Setup now checks the configured custom agent or auth directory for credentials instead of reporting the wrong bootstrap state from a default location. [0fd69dc](https://github.com/openclaw/openclaw/commit/0fd69dc3d2b864fb7d3a0b5204a7c720b5a19c0d) Thanks @vincentkoc. 1414 `openclaw config` now recommends a Gateway restart only when the changed se... `openclaw config` now recommends a Gateway restart only when the changed settings require one, so hot-loadable agent, model, and provider edits no longer prompt unnecessary restarts. [#80823](https://github.com/openclaw/openclaw/pull/80823) Thanks @kiranmagic7. 1415 Removing a visible built-in model alias now explains that the alias is auto... Removing a visible built-in model alias now explains that the alias is automatic and shows how to shadow it, while genuinely absent aliases still report as not found. [#81641](https://github.com/openclaw/openclaw/pull/81641) Thanks @scientificprogrammer, @vincentkoc. 1416 `openclaw config unset` now explains when a visible value is an inherited r... `openclaw config unset` now explains when a visible value is an inherited runtime default that is not stored in the user's config, avoiding an unproductive loop between `config get` and `config unset` while leaving failed attempts unchanged. [#96557](https://github.com/openclaw/openclaw/pull/96557) Thanks @moeghashim. 1417 Configuration and plugin-schema validation hints now show clear allowed val... Configuration and plugin-schema validation hints now show clear allowed values instead of the misleading literal label `undefined`. [#99045](https://github.com/openclaw/openclaw/pull/99045) Thanks @lzyyzznl. 1418 Valid `openclaw Valid `openclaw.json` files with a BOM, PowerShell formatting, or deep indentation can now save authentication, model, repair, and other configuration changes without manual reformatting. [#100591](https://github.com/openclaw/openclaw/pull/100591) Thanks @vincentkoc. 1419 Upgrades from the legacy config-health store no longer repeat a permanent c... Upgrades from the legacy config-health store no longer repeat a permanent conflict warning, and existing recovery backups remain available without overwriting newer observations. [#99728](https://github.com/openclaw/openclaw/pull/99728) Related [#99280](https://github.com/openclaw/openclaw/issues/99280). Thanks @ccbridle, @jalehman, @joshavant. 1420 Repeated configuration warnings are now suppressed between meaningful recur... Repeated configuration warnings are now suppressed between meaningful recurrences, keeping long-running Gateway logs readable without hiding new diagnostics. [#100569](https://github.com/openclaw/openclaw/pull/100569) Thanks @vincentkoc. 1421 Gateway settings marked as no-restart now take effect in live and heartbeat... Gateway settings marked as no-restart now take effect in live and heartbeat-driven turns without requiring a manual restart. [#100586](https://github.com/openclaw/openclaw/pull/100586) Thanks @obviyus, @sedrak-hovhannisyan. 1422 Gateway `config Gateway `config.patch` now accepts unrelated configuration updates when a bundled provider uses its default endpoint, without saving empty runtime-only provider fields. [#98396](https://github.com/openclaw/openclaw/pull/98396) Related [#98270](https://github.com/openclaw/openclaw/issues/98270). Thanks @momothemage, @weltmaister. 1423 Gateway configuration updates now reject missing redacted values for keys s... Gateway configuration updates now reject missing redacted values for keys such as `toString` or `constructor` instead of restoring an inherited JavaScript function. [#99152](https://github.com/openclaw/openclaw/pull/99152) Thanks @zenglingbiao. 1424 Manual Gateway setup now rejects port entries such as `1e3` or `0x1000` ins... Manual Gateway setup now rejects port entries such as `1e3` or `0x1000` instead of silently saving a different port, while valid decimal ports remain unchanged. [#98689](https://github.com/openclaw/openclaw/pull/98689) Related [#98681](https://github.com/openclaw/openclaw/issues/98681). Thanks @qingminglong. 1425 `openclaw doctor` now warns when QMD session search is enabled without tran... `openclaw doctor` now warns when QMD session search is enabled without transcript export and provides commands and documentation to correct the missing recall setup. [#80947](https://github.com/openclaw/openclaw/pull/80947) Thanks @anyech. 1426 `openclaw doctor` now gives a missing-transcript preview command that actua... `openclaw doctor` now gives a missing-transcript preview command that actually shows the entries eligible for removal before users choose to enforce cleanup. [#83630](https://github.com/openclaw/openclaw/pull/83630) Thanks @yuanhanzhong. 1427 `openclaw doctor` now evaluates the default agent's actual per-agent bootst... `openclaw doctor` now evaluates the default agent's actual per-agent bootstrap limits, producing accurate truncation warnings and remediation guidance. [#84424](https://github.com/openclaw/openclaw/pull/84424) Thanks @kasangyong, @vincentkoc. 1428 Gateway-managed skill checks can now find commands installed through pnpm 1... Gateway-managed skill checks can now find commands installed through pnpm 11 and common npm-global layouts, reducing false missing-tool warnings and unnecessary reinstalls. [#85238](https://github.com/openclaw/openclaw/pull/85238) Thanks @shbernal, @vincentkoc. 1429 `openclaw doctor` on Windows now detects supported Chrome versions accurate... `openclaw doctor` on Windows now detects supported Chrome versions accurately instead of warning that a working installation could not be identified. [#87937](https://github.com/openclaw/openclaw/pull/87937) Thanks @mukundakatta. 1430 `openclaw doctor` no longer aborts when a configured agent workspace has no... `openclaw doctor` no longer aborts when a configured agent workspace has not been created yet, while real file operations still enforce workspace boundaries. [#89226](https://github.com/openclaw/openclaw/pull/89226) Thanks @sasan1200, @shifengwang333-ai. 1431 Gateway status, Doctor, and onboarding diagnostics now read large logs with... Gateway status, Doctor, and onboarding diagnostics now read large logs within fixed bounds and surface recent useful failures instead of stale noise. [#99407](https://github.com/openclaw/openclaw/pull/99407) Thanks @sunlit-deng. 1432 Terminal notes, Doctor output, and diagnostics now wrap long runs of CJK, f... Terminal notes, Doctor output, and diagnostics now wrap long runs of CJK, full-width, or emoji characters within the requested width instead of spilling across columns. [#96746](https://github.com/openclaw/openclaw/pull/96746) Thanks @ly-wang19. 1433 Default `doctor --lint` results now focus on actionable configuration and r... Default `doctor --lint` results now focus on actionable configuration and runtime problems, with optional backup and memory advice available only when requested. [#99249](https://github.com/openclaw/openclaw/pull/99249) Thanks @giodl73-repo. 1434 `openclaw doctor --fix` now completes successfully in locked-down environme... `openclaw doctor --fix` now completes successfully in locked-down environments when only shell-completion installation is blocked, while still reporting genuine write failures. [#99540](https://github.com/openclaw/openclaw/pull/99540) Related [#99237](https://github.com/openclaw/openclaw/issues/99237). Thanks @hunglp6d, @rballiance. 1435 `doctor --lint --all` can now explain the path or permission that would blo... `doctor --lint --all` can now explain the path or permission that would block a configuration repair before operators run `doctor --fix`. [#100093](https://github.com/openclaw/openclaw/pull/100093) Thanks @giodl73-repo. 1436 `openclaw health` now warns when gateway configuration hot reload has stopp... `openclaw health` now warns when gateway configuration hot reload has stopped, so operators know a restart is needed instead of unknowingly running stale settings. [#99267](https://github.com/openclaw/openclaw/pull/99267) Thanks @masatohoshino, @vincentkoc. 1437 Operators can inspect stale session write locks with `openclaw doctor --lin... Operators can inspect stale session write locks with `openclaw doctor --lint --json --only core/doctor/session-locks` and preview which locks a repair would remove or preserve. [#84366](https://github.com/openclaw/openclaw/pull/84366) Thanks @giodl73-repo. 1438 Optional Doctor lint can now report missing, unsafe, unwritable, cloud-sync... Optional Doctor lint can now report missing, unsafe, unwritable, cloud-synced, removable, volatile, or incomplete OpenClaw state storage with paths and repair guidance. [#95979](https://github.com/openclaw/openclaw/pull/95979) Thanks @giodl73-repo. 1439 An opt-in Doctor lint check now explains which configured plugin installati... An opt-in Doctor lint check now explains which configured plugin installation is broken and previews the repair before operators run the existing fix workflow. [#96171](https://github.com/openclaw/openclaw/pull/96171) Thanks @giodl73-repo. 1440 Operators can run `openclaw doctor --lint --all` to include every opt-in di... Operators can run `openclaw doctor --lint --all` to include every opt-in diagnostic check without changing the behavior of existing `doctor --lint` automation. [#96471](https://github.com/openclaw/openclaw/pull/96471) Thanks @giodl73-repo. 1441 Operators can run `openclaw doctor --lint --only core/doctor/gateway-health... Operators can run `openclaw doctor --lint --only core/doctor/gateway-health`, `--only core/doctor/gateway-daemon`, or `--all` for structured, credential-safe warnings about Gateway reachability and local service health without changing service state. [#97075](https://github.com/openclaw/openclaw/pull/97075) Thanks @giodl73-repo. 1442 Operators can use the focused auth-profile Doctor lint check to find expire... Operators can use the focused auth-profile Doctor lint check to find expired, missing, malformed, cooled-down, disabled, or legacy credentials with structured repair guidance. [#97125](https://github.com/openclaw/openclaw/pull/97125) Thanks @giodl73-repo. 1443 A focused memory-search Doctor lint check now reports provider, credential,... A focused memory-search Doctor lint check now reports provider, credential, backend, and QMD setup problems with structured paths and fixes. [#97137](https://github.com/openclaw/openclaw/pull/97137) Thanks @giodl73-repo. 1444 The workspace-status Doctor lint check now reports plugin drift, compatibil... The workspace-status Doctor lint check now reports plugin drift, compatibility, loading diagnostics, and recoverable TaskFlow state in machine-readable form. [#97358](https://github.com/openclaw/openclaw/pull/97358) Thanks @giodl73-repo. 1445 A focused device-pairing Doctor lint check now provides structured warnings... A focused device-pairing Doctor lint check now provides structured warnings and repair guidance for pending requests, stale authentication, missing scopes, and unreadable stores. [#97366](https://github.com/openclaw/openclaw/pull/97366) Thanks @giodl73-repo. 1446 Operators can request a structured Doctor lint check for configured channel... Operators can request a structured Doctor lint check for configured channels whose backing plugins are blocked, including the unmet requirement and suggested fix. [#97496](https://github.com/openclaw/openclaw/pull/97496) Thanks @giodl73-repo. 1447 A focused tool-result-cap Doctor lint check now identifies settings below m... A focused tool-result-cap Doctor lint check now identifies settings below model-aware defaults or above the runtime ceiling with actionable paths. [#97500](https://github.com/openclaw/openclaw/pull/97500) Thanks @giodl73-repo. 1448 Linux operators can use the systemd-linger Doctor lint check to learn when... Linux operators can use the systemd-linger Doctor lint check to learn when logout may stop the Gateway and get the exact `loginctl enable-linger` remedy. [#97514](https://github.com/openclaw/openclaw/pull/97514) Thanks @giodl73-repo. 1449 Doctor lint can now identify legacy fenced `HEARTBEAT Doctor lint can now identify legacy fenced `HEARTBEAT.md` templates and distinguish files suitable for automatic cleanup from those containing custom content. [#98400](https://github.com/openclaw/openclaw/pull/98400) Thanks @giodl73-repo. 1450 Doctor lint can now flag the combination of WhatsApp, a strained Gateway ev... Doctor lint can now flag the combination of WhatsApp, a strained Gateway event loop, and active local TUI sessions that is associated with delayed replies. [#98406](https://github.com/openclaw/openclaw/pull/98406) Thanks @giodl73-repo. 1451 Structured Doctor lint can now report stale global plugin-runtime symlinks,... Structured Doctor lint can now report stale global plugin-runtime symlinks, including the obsolete link, its target, and the `openclaw doctor --fix` cleanup command. [#98729](https://github.com/openclaw/openclaw/pull/98729) Thanks @giodl73-repo. 1452 Operators can use targeted Doctor lint to inspect legacy session transcript... Operators can use targeted Doctor lint to inspect legacy session transcripts and stale snapshot paths, preview the cleanup, and choose whether to apply it. [#95976](https://github.com/openclaw/openclaw/pull/95976) Thanks @giodl73-repo. 1453 WhatsApp and Telegram default-account routing warnings are now available th... WhatsApp and Telegram default-account routing warnings are now available through selectable structured Doctor lint while normal Doctor output remains unchanged. [#96147](https://github.com/openclaw/openclaw/pull/96147) Thanks @pick-cat, @vincentkoc. 1454 Optional Doctor lint can now identify stale or missing plugin registry data... Optional Doctor lint can now identify stale or missing plugin registry data, shadowed bundled plugins, stale install records, and broken OpenClaw peer links. [#96169](https://github.com/openclaw/openclaw/pull/96169) Thanks @giodl73-repo. 1455 Structured Doctor lint can now report low or critical disk space for the Op... Structured Doctor lint can now report low or critical disk space for the OpenClaw state directory, including the affected path, available space, requirement, and remediation. [#98391](https://github.com/openclaw/openclaw/pull/98391) Thanks @giodl73-repo. 1456 Plugin operators can run `doctor --lint --only core/doctor/legacy-plugin-ma... Plugin operators can run `doctor --lint --only core/doctor/legacy-plugin-manifests` or `--all` to identify legacy manifest keys and see the affected plugin, path, and repair command. [#98695](https://github.com/openclaw/openclaw/pull/98695) Thanks @giodl73-repo. 1457 Operators can use `openclaw doctor --lint --only core/doctor/legacy-plugin-... Operators can use `openclaw doctor --lint --only core/doctor/legacy-plugin-dependencies` or `--all` to find stale plugin dependency state and receive a path plus safe repair guidance without changing the installation. [#98725](https://github.com/openclaw/openclaw/pull/98725) Thanks @giodl73-repo. 1458 Channel setup warnings are now available as structured Doctor lint findings... Channel setup warnings are now available as structured Doctor lint findings with stable paths and repair guidance for operators and automation. [#99238](https://github.com/openclaw/openclaw/pull/99238) Thanks @giodl73-repo. 1459 `openclaw attach` now launches Claude Code with temporary access to the mai... `openclaw attach` now launches Claude Code with temporary access to the main or selected Gateway session, keeps credentials out of arguments, and revokes the grant when the session ends. [#96454](https://github.com/openclaw/openclaw/pull/96454) Thanks @anagnorisis2peripeteia, @obviyus. 1460 Owner-controlled agents can opt into `appServer.homeScope "user"` to inspect and safely fork the same Codex threads available in Desktop and the CLI. [#99821](https://github.com/openclaw/openclaw/pull/99821) 1461 `openclaw sessions --json` now includes available subagent lineage and runt... `openclaw sessions --json` now includes available subagent lineage and runtime details such as parent linkage, workspace, depth, role, timestamps, and status. [#87917](https://github.com/openclaw/openclaw/pull/87917) Related [#80286](https://github.com/openclaw/openclaw/issues/80286). Thanks @islandpreneur007, @zhangguiping-xydt. 1462 `status` and `status --json` now build session model labels with less unnec... `status` and `status --json` now build session model labels with less unnecessary normalization, improving readback speed for larger session sets and incident checks. [#87831](https://github.com/openclaw/openclaw/pull/87831) Thanks @acskamloops. 1463 `usage `usage.cost` and `sessions.usage` now reject a start date later than the end date with a clear `INVALID_REQUEST` instead of returning a misleading empty report. [#94096](https://github.com/openclaw/openclaw/pull/94096) Thanks @alix-007. 1464 Session cost summaries now estimate a real charge when a transcript records... Session cost summaries now estimate a real charge when a transcript records zero dollars despite token use and known model pricing. [c5260a3](https://github.com/openclaw/openclaw/commit/c5260a3c03b0444597f3dc4a80c1f003ca7c4b4a) Thanks @nianjiuzst. 1465 Session logs and cached cost views now preserve provider-reconciled zero-do... Session logs and cached cost views now preserve provider-reconciled zero-dollar totals while recalculating genuinely missing costs from stored provider and model details. [c45124a](https://github.com/openclaw/openclaw/commit/c45124ab8554d70c4564ae1b3a81fc65872ecb9d) 1466 `openclaw sessions tail --tail` now rejects counts too large to represent s... `openclaw sessions tail --tail` now rejects counts too large to represent safely instead of applying an imprecise history limit. [#99398](https://github.com/openclaw/openclaw/pull/99398) Thanks @qingminglong. 1467 A malformed transcript timestamp no longer corrupts session usage and cost... A malformed transcript timestamp no longer corrupts session usage and cost records with invalid values. [#99420](https://github.com/openclaw/openclaw/pull/99420) Thanks @krissding. 1468 Session maintenance warnings now say `1 minute`, `1 hour`, or `1 day` at ro... Session maintenance warnings now say `1 minute`, `1 hour`, or `1 day` at rounded boundaries instead of awkward values such as `60 seconds`. [#100096](https://github.com/openclaw/openclaw/pull/100096) Thanks @narahariraghava, @vincentkoc. 1469 Session maintenance warnings now show more accurate wait estimates near uni... Session maintenance warnings now show more accurate wait estimates near unit boundaries, so a roughly 90-second delay is not inflated to two minutes. [58d707f](https://github.com/openclaw/openclaw/commit/58d707fbed3400292b9d7bf8fe31e6480309a180) Thanks @vincentkoc. 1470 `openclaw logs --follow` can bridge a brief local Gateway outage with journ... `openclaw logs --follow` can bridge a brief local Gateway outage with journal output and automatically return to normal Gateway logs after recovery. [#88159](https://github.com/openclaw/openclaw/pull/88159) Thanks @anyech, @vincentkoc. 1471 Debug proxy capture now keeps oversized or endless response bodies from cra... Debug proxy capture now keeps oversized or endless response bodies from crashing the agent, while retaining useful status and header metadata. [#97551](https://github.com/openclaw/openclaw/pull/97551) Thanks @alix-007. 1472 The first Gateway status check after a restart now reports the selected mod... The first Gateway status check after a restart now reports the selected model's actual context window instead of briefly showing a generic 200k limit. [#97576](https://github.com/openclaw/openclaw/pull/97576) Thanks @turbotheturtle. 1473 `openclaw health` now surfaces permanently failed deliveries with queue cou... `openclaw health` now surfaces permanently failed deliveries with queue counts and oldest-failure age instead of reporting an all-green state. [#99842](https://github.com/openclaw/openclaw/pull/99842) Thanks @masatohoshino. 1474 Timing displays now roll rounded sub-second values over to `1s` instead of... Timing displays now roll rounded sub-second values over to `1s` instead of showing the awkward `1000ms`. [#100006](https://github.com/openclaw/openclaw/pull/100006) Thanks @qingminglong. 1475 `openclaw logs` now reports log-tail stream failures cleanly instead of cra... `openclaw logs` now reports log-tail stream failures cleanly instead of crashing, hanging, or leaving `journalctl` running. [#100850](https://github.com/openclaw/openclaw/pull/100850) Thanks @cxbasdev, @vincentkoc. 1476 Trimmed OpenClaw CLI logs now remain valid UTF-8 when the retained byte ran... Trimmed OpenClaw CLI logs now remain valid UTF-8 when the retained byte range begins inside an emoji or other multibyte character. [#101029](https://github.com/openclaw/openclaw/pull/101029) Thanks @ly85206559. 1477 Langfuse, OpenTelemetry, and Prometheus can now capture usage, cost, model,... Langfuse, OpenTelemetry, and Prometheus can now capture usage, cost, model, provider, timing, and session data for runs started through `/v1/responses` and `/v1/chat/completions`. [#96152](https://github.com/openclaw/openclaw/pull/96152) Thanks @rocke2020, @xialonglee. 1478 File-backed usage-bar templates now keep watcher and file-descriptor use bo... File-backed usage-bar templates now keep watcher and file-descriptor use bounded in long-running OpenClaw processes while still reloading templates when needed. [#98990](https://github.com/openclaw/openclaw/pull/98990) Thanks @chenyangjun-xy, @vincentkoc, @zhanglei99586. 1479 Compact `/status` no longer shows the ambiguous `Plugins OK` row, while warnings and detailed plugin diagnostics remain available. [#100143](https://github.com/openclaw/openclaw/pull/100143) 1480 Failed OpenClaw and plugin-harness traces now include useful redacted error... Failed OpenClaw and plugin-harness traces now include useful redacted error details in OpenTelemetry instead of only a generic failure label. [#101244](https://github.com/openclaw/openclaw/pull/101244) Thanks @amknight. 1481 OpenTelemetry trace viewers can now display captured tool results alongside... OpenTelemetry trace viewers can now display captured tool results alongside tool inputs in standard GenAI fields, making failed-run investigation more complete. [#101371](https://github.com/openclaw/openclaw/pull/101371) Thanks @amknight. 1482 `openclaw status --all` now keeps shortened channel issue messages readable... `openclaw status --all` now keeps shortened channel issue messages readable when an emoji falls at the display boundary. [#101503](https://github.com/openclaw/openclaw/pull/101503) Thanks @wm0018. 1483 OTLP traces, metrics, and logs now follow `HTTP_PROXY`, `HTTPS_PROXY`, and... OTLP traces, metrics, and logs now follow `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY`, keeping diagnostics exports on the configured network path. [#100616](https://github.com/openclaw/openclaw/pull/100616) Thanks @jesse-merhi. 1484 The bounded `openclaw hooks` commands now return control promptly after pri... The bounded `openclaw hooks` commands now return control promptly after printing their output, so terminals, scripts, and CI jobs no longer remain stuck. [#76922](https://github.com/openclaw/openclaw/pull/76922) Thanks @dorukardahan. 1485 Non-interactive `openclaw models list` and `openclaw models status` now exi... Non-interactive `openclaw models list` and `openclaw models status` now exit normally after printing their results, allowing scripts and SSH diagnostics to finish without an external timeout. [#77904](https://github.com/openclaw/openclaw/pull/77904) Thanks @dorukardahan, @vincentkoc. 1486 TUI links now leave malformed fragments and stray punctuation as plain text... TUI links now leave malformed fragments and stray punctuation as plain text while keeping valid parenthetical, IPv6, and line-wrapped URLs clickable at the correct target. [#100780](https://github.com/openclaw/openclaw/pull/100780) 1487 `openclaw docs` now rejects oversized search responses with a clear error b... `openclaw docs` now rejects oversized search responses with a clear error before they can destabilize the CLI or exhaust memory. [#98188](https://github.com/openclaw/openclaw/pull/98188) Thanks @cxbasdev. 1488 Several edge cases now preserve transcript and voice text, surface MCP fail... Several edge cases now preserve transcript and voice text, surface MCP failures, bound oversized responses, show current session time, choose the right Linux package manager, and use port 443 for secure Gateway links without an explicit port. [#100258](https://github.com/openclaw/openclaw/pull/100258) Thanks @connermo, @cxbasdev, @gfaerny, @hailory, @harjothkhara, @ly85206559, @mushuiyu886, @simon-xydt, @sunlit-deng, @uditdewan. 1489 Failed `openclaw --help` and `openclaw --version` startup now returns exit... Failed `openclaw --help` and `openclaw --version` startup now returns exit code 1 promptly instead of leaving the terminal process stuck. [#97807](https://github.com/openclaw/openclaw/pull/97807) Thanks @aniruddhaadak80, @maweibin. 1490 CLI tables now shorten only the actual home directory and its descendants,... CLI tables now shorten only the actual home directory and its descendants, so sibling paths such as `/home/alice2/project` no longer appear as misleading home-relative paths. [#98876](https://github.com/openclaw/openclaw/pull/98876) Related [#98872](https://github.com/openclaw/openclaw/issues/98872). Thanks @qingminglong. 1491 Message read, pinned-message, and search commands can now display more than... Message read, pinned-message, and search commands can now display more than 25 returned rows when a higher `--limit` is requested and warn when additional provider results remain. [#99089](https://github.com/openclaw/openclaw/pull/99089) Thanks @jerrytao-ai, @wm0018. 1492 `openclaw --help` now matches command-specific help and completions, with `... `openclaw --help` now matches command-specific help and completions, with `config patch` and `config schema` visible from the main command list. [#100670](https://github.com/openclaw/openclaw/pull/100670) Thanks @amirf194, @vincentkoc. 1493 Terminal-rendered links containing balanced parentheses now remain clickabl... Terminal-rendered links containing balanced parentheses now remain clickable through the complete intended URL instead of being shortened or misdirected. [#100697](https://github.com/openclaw/openclaw/pull/100697) Thanks @aniruddhaadak80, @zoowh. 1494 Generated shell completion now suggests accepted OpenClaw command aliases a... Generated shell completion now suggests accepted OpenClaw command aliases and continues completing their options and subcommands. [#99419](https://github.com/openclaw/openclaw/pull/99419) Thanks @amirf194, @jack-dev-ops, @vincentkoc. 1495 Terminal and setup documentation links now resolve correctly when relative... Terminal and setup documentation links now resolve correctly when relative paths begin with `http` or absolute HTTP schemes use uppercase letters. [#96439](https://github.com/openclaw/openclaw/pull/96439) Thanks @lin-hongkuan. 1496 Long IDs and scopes no longer push `openclaw commitments` columns out of al... Long IDs and scopes no longer push `openclaw commitments` columns out of alignment, keeping the table readable at a glance. [#95923](https://github.com/openclaw/openclaw/pull/95923) Thanks @parveshsaini. 1497 Built-in `openclaw nodes status`, `openclaw nodes list`, and related node c... Built-in `openclaw nodes status`, `openclaw nodes list`, and related node commands now start quickly without unnecessary plugin initialization, while plugin-provided node commands still load when requested. [#96702](https://github.com/openclaw/openclaw/pull/96702) Thanks @erhhung, @qijian-zhang, @zengwen-dt. 1498 Failed `openclaw devices approve` attempts now explain whether to approve a... Failed `openclaw devices approve` attempts now explain whether to approve a scope upgrade elsewhere or refresh the pending request ID and retry. [#98146](https://github.com/openclaw/openclaw/pull/98146) Thanks @romneyda. 1499 An invalid `openclaw nodes approve &lt An invalid `openclaw nodes approve <requestId>` now shows available pending IDs and the `openclaw nodes pending` recovery command instead of a raw client error. [#94452](https://github.com/openclaw/openclaw/pull/94452) Thanks @mushuiyu886. 1500 `openclaw pairing list` now gives a useful device-approval next step when n... `openclaw pairing list` now gives a useful device-approval next step when no chat DM pairing channels exist instead of displaying a broken empty-choice error. [#98142](https://github.com/openclaw/openclaw/pull/98142) Thanks @romneyda. 1501 Node status, list, and pending-pairing views now tolerate malformed saved v... Node status, list, and pending-pairing views now tolerate malformed saved values and show the usable node information instead of crashing. [#93930](https://github.com/openclaw/openclaw/pull/93930) Thanks @ly-wang19. 1502 Operators can upgrade the Gateway before N-1 subordinate nodes without losi... Operators can upgrade the Gateway before N-1 subordinate nodes without losing the normal update, restart, repair, status, and maintenance path for those nodes. [#101109](https://github.com/openclaw/openclaw/pull/101109) Thanks @jtczville. 1503 `openclaw agents list` now shows configured external channels even when the... `openclaw agents list` now shows configured external channels even when their plugin is missing and provides the appropriate install or `openclaw doctor --fix` guidance. [#95363](https://github.com/openclaw/openclaw/pull/95363) Thanks @hugenshen. 1504 `openclaw gateway status` now gives relevant credential, configuration, res... `openclaw gateway status` now gives relevant credential, configuration, restart, and log guidance when a running Gateway fails its probe instead of telling operators to wait for warm-up. [#98183](https://github.com/openclaw/openclaw/pull/98183) Thanks @masatohoshino. 1505 Remote node hosts can now connect to Gateways mounted at reverse-proxy path... Remote node hosts can now connect to Gateways mounted at reverse-proxy paths such as `/openclaw-gw`, including after daemon installation or reconnect. [#97679](https://github.com/openclaw/openclaw/pull/97679) Related [#97678](https://github.com/openclaw/openclaw/issues/97678). Thanks @wm0018. 1506 Linux operators now see when systemd has stopped restarting a repeatedly cr... Linux operators now see when systemd has stopped restarting a repeatedly crashing Gateway, and `openclaw gateway restart` can recover the latched failed service. [#98291](https://github.com/openclaw/openclaw/pull/98291) Thanks @masatohoshino. 1507 Control UI, pairing, setup-code, QR, and status links now prefer a reachabl... Control UI, pairing, setup-code, QR, and status links now prefer a reachable LAN address on hosts with VPNs, virtual adapters, WSL, Hyper-V, or multiple networks. [#98482](https://github.com/openclaw/openclaw/pull/98482) Thanks @joshavant. 1508 `openclaw gateway status --deep` can now identify Windows Firewall rules bl... `openclaw gateway status --deep` can now identify Windows Firewall rules blocking LAN devices and suggest practical rule, loopback, Tailscale, or SSH-tunnel remedies. [#98666](https://github.com/openclaw/openclaw/pull/98666) Thanks @joshavant. 1509 `gateway run --force` now ignores malformed listener PID records during por... `gateway run --force` now ignores malformed listener PID records during port cleanup instead of carrying invalid process state into recovery. [#98371](https://github.com/openclaw/openclaw/pull/98371) Thanks @lzyyzznl. 1510 Gateway busy-port diagnostics and forced cleanup now ignore malformed liste... Gateway busy-port diagnostics and forced cleanup now ignore malformed listener IDs, avoid phantom processes, and verify that a port is actually free before reporting recovery. [#98505](https://github.com/openclaw/openclaw/pull/98505) Thanks @qiuyuang. 1511 Windows now detects active Gateway listeners reliably from localized `netst... Windows now detects active Gateway listeners reliably from localized `netstat` output, improving port diagnostics and `gateway --force` cleanup without confusing established connections for listeners. [#100012](https://github.com/openclaw/openclaw/pull/100012) Thanks @qingminglong, @vincentkoc. 1512 A Gateway WebSocket 1006 disconnect now gives operators accurate connection... A Gateway WebSocket 1006 disconnect now gives operators accurate connection-loss guidance instead of implying that a healthy Gateway necessarily crashed. [#101219](https://github.com/openclaw/openclaw/pull/101219) Thanks @darren2030, @vincentkoc. 1513 Windows Gateway restarts no longer depend on the `findstr` check that could... Windows Gateway restarts no longer depend on the `findstr` check that could leave a visible or hung command window blocking the handoff. [#101366](https://github.com/openclaw/openclaw/pull/101366) Thanks @deepujain. 1514 `openclaw status`, `status --json`, and `status --all` now respect their ti... `openclaw status`, `status --json`, and `status --all` now respect their timeout on Linux when systemd is unresponsive instead of hanging indefinitely. [#94149](https://github.com/openclaw/openclaw/pull/94149) Related [#84698](https://github.com/openclaw/openclaw/issues/84698). Thanks @zengwen-dt, @zus-assistant. 1515 When a local Gateway is listening but unhealthy, `openclaw gateway status -... When a local Gateway is listening but unhealthy, `openclaw gateway status --deep` can surface a recent likely cause such as a full disk instead of only reporting a generic disconnect. [#95902](https://github.com/openclaw/openclaw/pull/95902) Thanks @vincentkoc, @wangbyg. 1516 Remote Gateway status checks now fall back to the configured SSH target whe... Remote Gateway status checks now fall back to the configured SSH target when local effective-config probing fails instead of crashing or stalling discovery. [#101160](https://github.com/openclaw/openclaw/pull/101160) Thanks @cxbasdev. 1517 Shell-completion repair during `openclaw doctor` and updates now skips expe... Shell-completion repair during `openclaw doctor` and updates now skips expensive plugin-command loading, avoiding unnecessary delays while full user-requested generation still includes plugin commands. [#76235](https://github.com/openclaw/openclaw/pull/76235) 1518 Pressing Ctrl+C during the installer upgrade doctor now stops the flow clea... Pressing Ctrl+C during the installer upgrade doctor now stops the flow cleanly and prevents an incomplete or failed installation from opening a stale dashboard. [#76386](https://github.com/openclaw/openclaw/pull/76386) Thanks @sebtardif. 1519 LaunchAgent-managed Gateways on permission-constrained macOS volumes now st... LaunchAgent-managed Gateways on permission-constrained macOS volumes now start the generated environment wrapper through `/bin/sh`, preventing immediate background-service exits. [#89967](https://github.com/openclaw/openclaw/pull/89967) Related [#87199](https://github.com/openclaw/openclaw/issues/87199). Thanks @joshdaynard, @zhangguiping-xydt. 1520 Windows command lookup now honors the caller's `PATHEXT`, allowing valid Po... Windows command lookup now honors the caller's `PATHEXT`, allowing valid PowerShell scripts and executables to resolve in containers, CI, and isolated environments. [#98093](https://github.com/openclaw/openclaw/pull/98093) Thanks @wendy-chsy. 1521 Windows Gateway setup now detects when Task Scheduler exits without startin... Windows Gateway setup now detects when Task Scheduler exits without starting a listener and can use the existing fallback launch without creating a duplicate if startup is merely late. [#76245](https://github.com/openclaw/openclaw/pull/76245) 1522 Local Docker source builds are less likely to run out of memory, and failur... Local Docker source builds are less likely to run out of memory, and failures that still exhaust memory now suggest the relevant build settings. [#98119](https://github.com/openclaw/openclaw/pull/98119) Related [#98118](https://github.com/openclaw/openclaw/issues/98118). Thanks @zyzo. 1523 First-run skill setup on minimal machines now groups missing Homebrew, uv,... First-run skill setup on minimal machines now groups missing Homebrew, uv, or Go prerequisites into one clear note while still installing dependencies that can succeed. [#99726](https://github.com/openclaw/openclaw/pull/99726) Thanks @fuller-stack-dev, @sedrak-hovhannisyan. 1524 Installers and runtime checks now reject Node 23 Installers and runtime checks now reject Node 23.0-23.10 early with supported-version guidance instead of leaving users with a broken OpenClaw CLI. [#99832](https://github.com/openclaw/openclaw/pull/99832) Thanks @fuller-stack-dev, @vincentkoc. 1525 The CLI and full-screen TUI now open with a clear recovery message when the... The CLI and full-screen TUI now open with a clear recovery message when their launch directory has been deleted instead of crashing before startup. [#93636](https://github.com/openclaw/openclaw/pull/93636) Thanks @ml12580. 1526 Windows users can launch globally installed Gemini CLI and Claude Code back... Windows users can launch globally installed Gemini CLI and Claude Code backends through their npm command shims without immediate spawn failures or mangled prompt arguments. [#101378](https://github.com/openclaw/openclaw/pull/101378) Thanks @wendy-chsy. 1527 Failed CLI installations now clean up their temporary Node staging director... Failed CLI installations now clean up their temporary Node staging directories and pnpm workspace rewrite files. [#103725](https://github.com/openclaw/openclaw/pull/103725) Thanks @sebtardif. 1528 Git installs now create an `openclaw` launcher that keeps using the intende... Git installs now create an `openclaw` launcher that keeps using the intended Node.js runtime even after the user's PATH changes. [be7198f](https://github.com/openclaw/openclaw/commit/be7198f6a2225dd988e707c4ef11c3cf002c14c3) 1529 `openclaw plugins list` now uses substantially less peak memory on fresh an... `openclaw plugins list` now uses substantially less peak memory on fresh and already-migrated packaged installs while preserving required migration behavior. [#103132](https://github.com/openclaw/openclaw/pull/103132) 1530 OpenClaw update checks now limit malformed or unexpectedly large npm regist... OpenClaw update checks now limit malformed or unexpectedly large npm registry responses before they can consume excessive memory. [#98508](https://github.com/openclaw/openclaw/pull/98508) Thanks @lzyyzznl. 1531 `openclaw update` on Windows now prevents the managed Gateway Scheduled Tas... `openclaw update` on Windows now prevents the managed Gateway Scheduled Task from relaunching during package replacement, avoiding partially updated or mixed-version processes. [#100757](https://github.com/openclaw/openclaw/pull/100757) Thanks @vincentkoc. 1532 Managed Gateway updates now allow active work to finish within the configur... Managed Gateway updates now allow active work to finish within the configured drain period before timing out the service handoff. [#99695](https://github.com/openclaw/openclaw/pull/99695) Thanks @zoowh. 1533 Extended-stable Gateways now show a periodic `openclaw update` hint when a... Extended-stable Gateways now show a periodic `openclaw update` hint when a newer exact package is verified, without changing the installation automatically. [#100438](https://github.com/openclaw/openclaw/pull/100438) Thanks @kevinslin. 1534 Restarting, updating, reinstalling, or repairing a macOS Gateway now preser... Restarting, updating, reinstalling, or repairing a macOS Gateway now preserves active SecretRef-backed channel credentials instead of leaving Telegram and other integrations unable to authenticate. [#99124](https://github.com/openclaw/openclaw/pull/99124) Thanks @mushuiyu886. 1535 Update and status checks now identify malformed npm metadata as invalid JSO... Update and status checks now identify malformed npm metadata as invalid JSON instead of returning only an opaque syntax error. [#100338](https://github.com/openclaw/openclaw/pull/100338) Thanks @cxbasdev. 1536 A failed Gateway replacement process during an update no longer causes an a... A failed Gateway replacement process during an update no longer causes an additional uncaught crash in the existing parent process. [#101489](https://github.com/openclaw/openclaw/pull/101489) Thanks @aniruddhaadak80, @momothemage, @vincentkoc. 1537 Windows update and doctor repair now move an owned legacy Startup gateway t... Windows update and doctor repair now move an owned legacy Startup gateway to Task Scheduler without leaving a stale process, dropping authentication, or removing the fallback too early. [#101213](https://github.com/openclaw/openclaw/pull/101213) Thanks @vincentkoc. 1538 `openclaw update` now targets the global Node installation that launched it... `openclaw update` now targets the global Node installation that launched it, avoiding false success when Homebrew, nvm, asdf, or Volta exposes another OpenClaw copy. [#101228](https://github.com/openclaw/openclaw/pull/101228) Thanks @buddyh. 1539 Windows backups now recover more reliably from live-write races by avoiding... Windows backups now recover more reliably from live-write races by avoiding repeated use of the same locked temporary archive and cleaning stale retry files. [#101449](https://github.com/openclaw/openclaw/pull/101449) Thanks @lilan0125, @vincentkoc. 1540 Large session histories now produce smaller ` Large session histories now produce smaller `.usage-cost-cache.json` files with less parsing and rewrite work, rebuilding automatically after upgrade. [#99714](https://github.com/openclaw/openclaw/pull/99714) Related [#99511](https://github.com/openclaw/openclaw/issues/99511). Thanks @dexhunter, @wayne524. 1541 `openclaw backup create` now tolerates disposable runtime files disappearin... `openclaw backup create` now tolerates disposable runtime files disappearing during a live backup, while continuing to protect durable files under the existing inclusion policy. [#98879](https://github.com/openclaw/openclaw/pull/98879) Related [#98865](https://github.com/openclaw/openclaw/issues/98865). Thanks @carterstebbins23-spec, @vincentkoc, @zengwen-dt. 1542 `openclaw backup create` on Windows now retries live-file archive races wit... `openclaw backup create` on Windows now retries live-file archive races with fresh temporary paths, reducing locked partial backups and leftover retry archives. [#101464](https://github.com/openclaw/openclaw/pull/101464) Thanks @lilan0125, @zoowh. 1543 When cron command output is truncated, operators can still recover the earl... When cron command output is truncated, operators can still recover the earlier login or setup instruction they need without exposing its raw secret through notifications. [#96393](https://github.com/openclaw/openclaw/pull/96393) Related [#96346](https://github.com/openclaw/openclaw/issues/96346). Thanks @nz365guy. 1544 Default cron failure alerts enabled with `openclaw cron edit &lt Default cron failure alerts enabled with `openclaw cron edit <job> --failure-alert` now survive Gateway restarts instead of silently disappearing after reload. [#96615](https://github.com/openclaw/openclaw/pull/96615) Thanks @liuhao1024. 1545 `openclaw doctor` now warns when cron jobs target channels whose plugins ar... `openclaw doctor` now warns when cron jobs target channels whose plugins are inactive, letting operators correct delivery before the next scheduled run fails. [#98184](https://github.com/openclaw/openclaw/pull/98184) Thanks @masatohoshino, @vincentkoc. 1546 Docker and bind-mount installations can finish legacy cron migration across... Docker and bind-mount installations can finish legacy cron migration across filesystem boundaries, with actionable warnings and duplicate-safe retries when cleanup cannot complete. [#98217](https://github.com/openclaw/openclaw/pull/98217) Thanks @masatohoshino. 1547 `openclaw doctor` now explains cron jobs that still look in flight after an... `openclaw doctor` now explains cron jobs that still look in flight after an interrupted Gateway run and how those leftover markers are cleared on the next start. [#98620](https://github.com/openclaw/openclaw/pull/98620) Thanks @masatohoshino. 1548 Doctor now warns when enabled cron jobs are stuck in repeated failures with... Doctor now warns when enabled cron jobs are stuck in repeated failures without configured alerts, while healthy and below-threshold jobs stay quiet. [#99606](https://github.com/openclaw/openclaw/pull/99606) Thanks @masatohoshino. 1549 `openclaw cron add` now rejects invalid `--no-output-timeout-seconds` and `... `openclaw cron add` now rejects invalid `--no-output-timeout-seconds` and `--output-max-bytes` values immediately instead of silently creating a command job without the requested limits. [#96516](https://github.com/openclaw/openclaw/pull/96516) Thanks @zhangguiping-xydt. 1550 Human-readable `cron list` and `cron show` output now reveals repeated fail... Human-readable `cron list` and `cron show` output now reveals repeated failure streaks such as `error (12x)` while leaving JSON status values unchanged. [#99602](https://github.com/openclaw/openclaw/pull/99602) Thanks @masatohoshino. 1551 Operators can opt into `core/doctor/legacy-cron-store` to find legacy cron... Operators can opt into `core/doctor/legacy-cron-store` to find legacy cron data that needs attention without the lint check changing any stored state. [#99211](https://github.com/openclaw/openclaw/pull/99211) Thanks @giodl73-repo. 1552 A normal Doctor lint run no longer invokes `crontab -l` for the optional le... A normal Doctor lint run no longer invokes `crontab -l` for the optional legacy WhatsApp check unless an operator explicitly selects it. [#99250](https://github.com/openclaw/openclaw/pull/99250) Thanks @giodl73-repo. 1553 Cron jobs with a valid future run exactly on a second boundary now keep tha... Cron jobs with a valid future run exactly on a second boundary now keep that scheduled time instead of being incorrectly treated as stale and rebased. [#81731](https://github.com/openclaw/openclaw/pull/81731) Thanks @vincentkoc, @yashkot007. 1554 Editing a recurring cron job no longer skips a run that is already due or s... Editing a recurring cron job no longer skips a run that is already due or shifts an unchanged interval schedule to the edit time. [#96159](https://github.com/openclaw/openclaw/pull/96159) Thanks @yetval. 1555 Clearing a saved Model or Thinking/Effort override in the Cron Control UI n... Clearing a saved Model or Thinking/Effort override in the Cron Control UI now truly restores inherited defaults, with `--clear-thinking` available from the CLI. [#96293](https://github.com/openclaw/openclaw/pull/96293) Related [#96287](https://github.com/openclaw/openclaw/issues/96287). Thanks @takamasa-aiso, @zengwen-dt. 1556 Failed `cron add`, `cron update`, and `cron remove` commands now leave the... Failed `cron add`, `cron update`, and `cron remove` commands now leave the running scheduler unchanged, so live jobs match the saved configuration and reported result. [#99960](https://github.com/openclaw/openclaw/pull/99960) Thanks @masatohoshino, @vincentkoc. 1557 Editing a scheduled job's message no longer accidentally breaks later CLI-b... Editing a scheduled job's message no longer accidentally breaks later CLI-backed runs, while explicit tool restrictions remain protected where they cannot be enforced. [#100203](https://github.com/openclaw/openclaw/pull/100203) Thanks @obviyus. 1558 Cron job updates can now remove a job-specific fallback model setting so sc... Cron job updates can now remove a job-specific fallback model setting so scheduled runs inherit the global defaults again without recreating the job. [#100801](https://github.com/openclaw/openclaw/pull/100801) Thanks @sunnyshu0925. 1559 `openclaw cron edit` now finds jobs more reliably and with less delay on Ga... `openclaw cron edit` now finds jobs more reliably and with less delay on Gateways that contain many scheduled jobs, including `--exact` and timeout-only edits. [#100836](https://github.com/openclaw/openclaw/pull/100836) Thanks @machine3at, @vincentkoc. 1560 Editing a cron payload with `--no-best-effort-deliver` no longer silently c... Editing a cron payload with `--no-best-effort-deliver` no longer silently changes the job's delivery mode to announcements. [#100846](https://github.com/openclaw/openclaw/pull/100846) Thanks @machine3at. 1561 Using `openclaw cron edit &lt Using `openclaw cron edit <id> --no-best-effort-deliver` on an older detached job no longer accidentally suppresses its completion announcement. [#101027](https://github.com/openclaw/openclaw/pull/101027) 1562 Agent and MCP cron requests using mixed-case command labels now fail closed... Agent and MCP cron requests using mixed-case command labels now fail closed instead of slipping past the restriction on shell-backed agent cron jobs. [#101350](https://github.com/openclaw/openclaw/pull/101350) Thanks @pgondhi987. 1563 Replies now correctly confirm reminders scheduled through commands such as... Replies now correctly confirm reminders scheduled through commands such as `openclaw cron add` instead of also claiming that no reminder was created. [#101807](https://github.com/openclaw/openclaw/pull/101807) Thanks @bryantegomoh, @vincentkoc. 1564 A timeout while one isolated cron job is setting up no longer restarts the... A timeout while one isolated cron job is setting up no longer restarts the Gateway or interrupts unrelated agent and scheduled work. [#96396](https://github.com/openclaw/openclaw/pull/96396) Thanks @849261680, @brycemurray, @velvet-shark. 1565 `openclaw tasks maintenance --apply` now preserves active cron session hist... `openclaw tasks maintenance --apply` now preserves active cron session history even when job IDs contain spaces, capitals, punctuation, or explicit session keys. [#96352](https://github.com/openclaw/openclaw/pull/96352) Thanks @ly-wang19, @vincentkoc. 1566 Isolated `agentTurn` cron jobs can recover from temporarily mismatched runt... Isolated `agentTurn` cron jobs can recover from temporarily mismatched runtime artifacts instead of failing at startup with a `sourceReplyDeliveryMode` error. [#85249](https://github.com/openclaw/openclaw/pull/85249) Thanks @jerry-xin. 1567 `openclaw tasks maintenance --apply` can now repair false lost-task records... `openclaw tasks maintenance --apply` can now repair false lost-task records when durable cron history proves the run completed successfully. [#86088](https://github.com/openclaw/openclaw/pull/86088) Thanks @altaywtf, @liaoandi. 1568 Scheduled agent jobs now warn when `ANNOUNCE_SKIP` suppresses a cron comple... Scheduled agent jobs now warn when `ANNOUNCE_SKIP` suppresses a cron completion, making missing reports and partial output easier to diagnose. [#90566](https://github.com/openclaw/openclaw/pull/90566) Related [#68561](https://github.com/openclaw/openclaw/issues/68561). Thanks @mibslee, @sahibzada-allahyar. 1569 Catch-up cron jobs deferred briefly after startup are no longer skipped mer... Catch-up cron jobs deferred briefly after startup are no longer skipped merely because an operator checks cron status before they fire. [#94022](https://github.com/openclaw/openclaw/pull/94022) Related [#93935](https://github.com/openclaw/openclaw/issues/93935). Thanks @richchen01, @vincentkoc, @yetval. 1570 Scheduled agent turns using `claude-cli` or another CLI backend now start n... Scheduled agent turns using `claude-cli` or another CLI backend now start normally, while explicitly unsupported tool restrictions still fail closed. [#95615](https://github.com/openclaw/openclaw/pull/95615) Thanks @anagnorisis2peripeteia, @obviyus. 1571 Timed-out or cancelled isolated cron runs now retain their provider, model,... Timed-out or cancelled isolated cron runs now retain their provider, model, and session details in `cron_run_logs`, making failed jobs easier to trace. [#95943](https://github.com/openclaw/openclaw/pull/95943) Related [#95873](https://github.com/openclaw/openclaw/issues/95873). Thanks @luke-renjoy, @zengwen-dt. 1572 A scheduled cloud-model job that opens a response but sends no content can... A scheduled cloud-model job that opens a response but sends no content can now move to a healthy fallback model before the entire run times out. [#96096](https://github.com/openclaw/openclaw/pull/96096) Thanks @849261680, @velvet-shark. 1573 CLI-backed workers from isolated cron jobs now exit after completion instea... CLI-backed workers from isolated cron jobs now exit after completion instead of accumulating and slowing the host and Gateway. [#97227](https://github.com/openclaw/openclaw/pull/97227) Thanks @vianne-droid, @xialonglee, @yusukeit0. 1574 Long cron failure alerts now preserve emoji and other supplementary Unicode... Long cron failure alerts now preserve emoji and other supplementary Unicode characters instead of ending with a broken replacement symbol. [#97298](https://github.com/openclaw/openclaw/pull/97298) Thanks @zenglingbiao. 1575 Heartbeat fallback failures no longer send noisy chat messages made only of... Heartbeat fallback failures no longer send noisy chat messages made only of repeated internal error placeholders. [#97364](https://github.com/openclaw/openclaw/pull/97364) Thanks @turbotheturtle. 1576 Scheduled jobs that permit `web_search` now report that no usable search pr... Scheduled jobs that permit `web_search` now report that no usable search provider is selected instead of completing with an unusable result. [#97677](https://github.com/openclaw/openclaw/pull/97677) Thanks @lilan0125, @riazrahaman. 1577 Scheduled commitment follow-ups now stay focused on their original conversa... Scheduled commitment follow-ups now stay focused on their original conversation instead of absorbing unrelated heartbeat instructions, queued context, or recovery work. [#98169](https://github.com/openclaw/openclaw/pull/98169) Thanks @bdjben. 1578 Scheduled jobs can deliver to a live chat without blocking replies or mixin... Scheduled jobs can deliver to a live chat without blocking replies or mixing background work into its transcript, and operators can clear stale childless cron tasks without cancelling active session-backed runs. [#98755](https://github.com/openclaw/openclaw/pull/98755) Related [#98121](https://github.com/openclaw/openclaw/issues/98121). Thanks @ethansk, @obviyus. 1579 Recurring cron jobs created for `current` or `session <id>` once again carry their selected conversation history into later runs, while `isolated` jobs still start clean. [#98947](https://github.com/openclaw/openclaw/pull/98947) Thanks @ethansk, @obviyus. 1580 Completed heartbeat tasks remain recorded when the quiet `HEARTBEAT_OK` ack... Completed heartbeat tasks remain recorded when the quiet `HEARTBEAT_OK` acknowledgment cannot be delivered, reducing repeated work and duplicate follow-up actions on the next heartbeat. [#100834](https://github.com/openclaw/openclaw/pull/100834) Thanks @machine3at, @vincentkoc. 1581 Browser CLI commands now accept `--browser-profile` before or after the sub... Browser CLI commands now accept `--browser-profile` before or after the subcommand, restoring existing remote-browser and WSL2 command patterns. [#94431](https://github.com/openclaw/openclaw/pull/94431) Thanks @ml12580. 1582 A stalled remote Chrome or WSL2 browser can no longer hold tab-list request... A stalled remote Chrome or WSL2 browser can no longer hold tab-list requests indefinitely; OpenClaw returns a bounded timeout and can reconnect on the next request. [#80147](https://github.com/openclaw/openclaw/pull/80147) Thanks @hemantsudarshan, @keaneyan. 1583 Remote-browser actions now recover from a closed or replaced selected tab b... Remote-browser actions now recover from a closed or replaced selected tab by retrying without the stale tab ID, matching local browser behavior. [#89086](https://github.com/openclaw/openclaw/pull/89086) Thanks @rhclaw. 1584 Updating `browser Updating `browser.profiles.*` connection details can now take effect without an unnecessary Gateway restart or interruption to active sessions. [#93827](https://github.com/openclaw/openclaw/pull/93827) Thanks @goutamadwant. 1585 Browser automation can now act on tabs by suggested ID, tab ID, label, or u... Browser automation can now act on tabs by suggested ID, tab ID, label, or unique prefix without false target-mismatch failures. [#96178](https://github.com/openclaw/openclaw/pull/96178) Thanks @zengwen-dt. 1586 Persistent managed-browser logins now survive ordinary Chrome and Gateway r... Persistent managed-browser logins now survive ordinary Chrome and Gateway restarts, reducing repeated sign-ins and MFA interruptions for unattended browser work. [#98284](https://github.com/openclaw/openclaw/pull/98284) Thanks @malashenia, @turbotheturtle. 1587 Browser extensions can reconnect with a newly rotated pairing token while B... Browser extensions can reconnect with a newly rotated pairing token while Browser control remains running, and old tokens continue to be rejected. [a703183](https://github.com/openclaw/openclaw/commit/a7031832ecd5bb9eba30ce844b1a059c9c3b5395) Thanks @vincentkoc. 1588 Remote browser CDP connections now accept URL-encoded Basic auth credential... Remote browser CDP connections now accept URL-encoded Basic auth credentials containing spaces, at signs, and other reserved characters. [#97972](https://github.com/openclaw/openclaw/pull/97972) Thanks @vectorpeak. 1589 Running `/new` or `/reset` in a direct message now closes that conversation... Running `/new` or `/reset` in a direct message now closes that conversation's managed browser tabs while leaving other people's tabs alone, even through a brief browser connection hiccup. [#100792](https://github.com/openclaw/openclaw/pull/100792) Thanks @fmls. 1590 Agents can now screenshot a selected background Chromium tab without waitin... Agents can now screenshot a selected background Chromium tab without waiting for the browser command to time out, though capture may bring that tab forward. [#100857](https://github.com/openclaw/openclaw/pull/100857) Thanks @spencer2211. 1591 Managed local browser pages can navigate normally under a restrictive `browser Managed local browser pages can navigate normally under a restrictive `browser.ssrfPolicy.hostnameAllowlist`, while remote CDP endpoints and disallowed destinations remain blocked. [#100986](https://github.com/openclaw/openclaw/pull/100986) Thanks @nianjiuzst, @sarinv. 1592 Browser automation attached to an existing Chrome session now stops with a... Browser automation attached to an existing Chrome session now stops with a bounded error when Chrome crashes or a request is cancelled, and later requests can reconnect cleanly. [#101454](https://github.com/openclaw/openclaw/pull/101454) Thanks @aniruddhaadak80. 1593 Browser Control users who are missing Playwright now receive a working docu... Browser Control users who are missing Playwright now receive a working documentation pointer for installing or repairing the required browser runtime. [d460635](https://github.com/openclaw/openclaw/commit/d460635185a499ffb96b3ca32df8a05d058c9145) 1594 Browser Control can now emulate no explicit color preference with `openclaw... Browser Control can now emulate no explicit color preference with `openclaw browser set media no-preference`, and invalid values list every supported choice. [9133118](https://github.com/openclaw/openclaw/commit/913311845ebdab6faf701ee73e07465f171274e7) 1595 Browser POST actions now complete on supported Node 24 Browser POST actions now complete on supported Node 24.16 and newer runtimes after JSON parsing while still cancelling when the client disconnects. [52044e1](https://github.com/openclaw/openclaw/commit/52044e134567ebe3598684b6f968027723dd86a5) Thanks @obviyus, @vincentkoc. 1596 CDP-backed browser navigation to CSV, PDF, and other attachment URLs now re... CDP-backed browser navigation to CSV, PDF, and other attachment URLs now returns a safely saved managed file with its URL and suggested filename. [#89416](https://github.com/openclaw/openclaw/pull/89416) Thanks @zhangguiping-xydt. 1597 Browser downloads now tell the agent the saved filename and path, helping i... Browser downloads now tell the agent the saved filename and path, helping it use the completed download instead of retrying the action. [#93307](https://github.com/openclaw/openclaw/pull/93307) Thanks @sunlit-deng. 1598 Oversized browser-control error responses can no longer consume excessive G... Oversized browser-control error responses can no longer consume excessive Gateway memory, while ordinary failures still provide useful diagnostics. [#98455](https://github.com/openclaw/openclaw/pull/98455) Thanks @wings1029. 1599 Browser `responsebody` requests for a short prefix of a large response now... Browser `responsebody` requests for a short prefix of a large response now avoid decoding a second full-size text copy while still returning the requested truncated content. [#98940](https://github.com/openclaw/openclaw/pull/98940) Thanks @pandah97. 1600 Malformed browser fill data supplied through `--fields` or `--fields-file`... Malformed browser fill data supplied through `--fields` or `--fields-file` now produces a clear actionable error and exits before any browser action starts. [#98861](https://github.com/openclaw/openclaw/pull/98861) Thanks @lsr911. 1601 Browser screenshots used privately for visual inspection are no longer atta... Browser screenshots used privately for visual inspection are no longer attached automatically to channel replies and are shared only when explicitly requested. [#101434](https://github.com/openclaw/openclaw/pull/101434) 1602 Browser uploads on re-rendering pages now recover more reliably and expose... Browser uploads on re-rendering pages now recover more reliably and expose the real stale-reference or action error instead of a generic timeout. [#101465](https://github.com/openclaw/openclaw/pull/101465) Thanks @diwakarrankawat, @m13v, @tigicion. 1603 Browser response bodies and page snapshots now stay valid and readable when... Browser response bodies and page snapshots now stay valid and readable when output is shortened near an emoji. [#101761](https://github.com/openclaw/openclaw/pull/101761) Thanks @mushuiyu886. 1604 Vision-capable models can now read rendered pages from scanned and image-on... Vision-capable models can now read rendered pages from scanned and image-only PDFs attached through chat channels. [#97354](https://github.com/openclaw/openclaw/pull/97354) Thanks @joshavant. 1605 `openclaw infer image describe` now tries configured fallback image models... `openclaw infer image describe` now tries configured fallback image models after an explicitly selected model fails and reports which model ultimately succeeded. [#98347](https://github.com/openclaw/openclaw/pull/98347) Thanks @momothemage. 1606 Multi-page scanned PDFs now keep later pages at a usable image size during... Multi-page scanned PDFs now keep later pages at a usable image size during fallback extraction, allowing vision models to read the full document. [#96390](https://github.com/openclaw/openclaw/pull/96390) Thanks @cls3389, @vincentkoc, @zengwen-dt. 1607 Requesting nonexistent PDF pages now returns a clear range error instead of... Requesting nonexistent PDF pages now returns a clear range error instead of accidentally sending the entire document to a native provider. [#97698](https://github.com/openclaw/openclaw/pull/97698) Thanks @zhangguiping-xydt. 1608 Fractional PDF page selections such as `1 Fractional PDF page selections such as `1.5` now fail immediately with a clear validation error instead of silently omitting requested content. [#99399](https://github.com/openclaw/openclaw/pull/99399) Thanks @qingminglong. 1609 Screenshot-style images returned by plugin tools over MCP now reach clients... Screenshot-style images returned by plugin tools over MCP now reach clients as usable results instead of causing the tool call to fail. [#90902](https://github.com/openclaw/openclaw/pull/90902) Thanks @k-schmidt, @mushuiyu886. 1610 After one generated video clip is ready, a different next clip can start im... After one generated video clip is ready, a different next clip can start immediately instead of waiting several extra minutes behind stale duplicate suppression. [#96018](https://github.com/openclaw/openclaw/pull/96018) Thanks @palomyates516-alt, @vincentkoc. 1611 `openclaw capability video generate` now returns a bounded, actionable erro... `openclaw capability video generate` now returns a bounded, actionable error when a provider URL serves an oversized video without `--output`. [#97549](https://github.com/openclaw/openclaw/pull/97549) Thanks @alix-007. 1612 Fetching an empty file with an image-style name now returns a clear saved-f... Fetching an empty file with an image-style name now returns a clear saved-file path instead of an unusable inline image result. [#99370](https://github.com/openclaw/openclaw/pull/99370) Thanks @2loch-ness6, @vincentkoc. 1613 File Transfer folder downloads now either produce a complete verified archi... File Transfer folder downloads now either produce a complete verified archive or report a clear read failure instead of crashing or returning partial data. [#101590](https://github.com/openclaw/openclaw/pull/101590) Thanks @sunlit-deng. 1614 Multi-attachment prompts now keep real captions while removing duplicate tr... Multi-attachment prompts now keep real captions while removing duplicate transport markers and placeholder-only text that could confuse the model. [#96431](https://github.com/openclaw/openclaw/pull/96431) Thanks @lin-hongkuan. 1615 GIF attachments are now recognized despite normal Content-Type parameters,... GIF attachments are now recognized despite normal Content-Type parameters, spaces, or mixed casing instead of falling through as another media type. [#96435](https://github.com/openclaw/openclaw/pull/96435) Thanks @lin-hongkuan. 1616 Valid inline image data URLs without trailing base64 padding are now accept... Valid inline image data URLs without trailing base64 padding are now accepted, while malformed image payloads remain blocked. [#96437](https://github.com/openclaw/openclaw/pull/96437) Thanks @lin-hongkuan, @vincentkoc. 1617 Video inputs near the configured size boundary are now accepted or rejected... Video inputs near the configured size boundary are now accepted or rejected according to their actual byte size, avoiding unexpected failures for files that are still within the limit. [#96519](https://github.com/openclaw/openclaw/pull/96519) Thanks @lin-hongkuan, @vincentkoc. 1618 Markdown frontmatter now preserves null-valued fields named `toString`, `co... Markdown frontmatter now preserves null-valued fields named `toString`, `constructor`, `valueOf`, or `hasOwnProperty` instead of silently dropping metadata from skills, hooks, or commands. [#99129](https://github.com/openclaw/openclaw/pull/99129) Thanks @vincentkoc, @zenglingbiao. 1619 Markdown beginning with text such as `---not` or `----` now remains ordinar... Markdown beginning with text such as `---not` or `----` now remains ordinary content instead of being mistaken for frontmatter and stripped. [#101795](https://github.com/openclaw/openclaw/pull/101795) Thanks @nianjiuzst. 1620 Workboard tasks can now use managed isolated worktrees, with CLI and Contro... Workboard tasks can now use managed isolated worktrees, with CLI and Control UI tools for creation, cleanup, restoration, and recovery snapshots when work cannot be removed safely. [#100535](https://github.com/openclaw/openclaw/pull/100535) 1621 Users can now start a chat in its own managed worktree from the Control UI... Users can now start a chat in its own managed worktree from the Control UI or mobile app, isolating parallel coding while preserving dirty work and cleaning safe idle checkouts automatically. [#100788](https://github.com/openclaw/openclaw/pull/100788) 1622 Agent commands with an invalid explicit `workdir`, including a literal `~`,... Agent commands with an invalid explicit `workdir`, including a literal `~`, now stop clearly instead of running from an unintended fallback directory. [#94441](https://github.com/openclaw/openclaw/pull/94441) Thanks @jesse-merhi, @renaudcerrato. 1623 SSH- and OpenShell-backed sandbox commands now clean up remote resources af... SSH- and OpenShell-backed sandbox commands now clean up remote resources after failed launches, preserve the correct plugin session and channel context, and return a normal tool error for malformed input instead of an internal WeakMap failure. [#96926](https://github.com/openclaw/openclaw/pull/96926) Thanks @jesse-merhi. 1624 OpenShell sandbox sessions now start with the intended workspace files in t... OpenShell sandbox sessions now start with the intended workspace files in the managed remote directory, avoiding missing-file and wrong-directory failures. [d9034da](https://github.com/openclaw/openclaw/commit/d9034da0a60600cb1d2e081cb80e619ff7d180c5) Thanks @vincentkoc. 1625 The optional common sandbox image now includes Node 24 and pnpm so document... The optional common sandbox image now includes Node 24 and pnpm so documented Node-based development tasks can run inside it. [eabc12b](https://github.com/openclaw/openclaw/commit/eabc12b7d66687f6829009c103c0f33114e2949e) Thanks @vincentkoc. 1626 OpenShell sandbox uploads now place workspace directories at the requested... OpenShell sandbox uploads now place workspace directories at the requested remote path so sandbox commands can reliably find their files. [#96303](https://github.com/openclaw/openclaw/pull/96303) Thanks @vincentkoc. 1627 Pending exec approval cards now describe only the approval state, and the f... Pending exec approval cards now describe only the approval state, and the foreground-fallback warning appears only after a command actually runs that way. [#101561](https://github.com/openclaw/openclaw/pull/101561) Thanks @vincentkoc. 1628 Timed-out commands on Windows are less likely to leave child processes runn... Timed-out commands on Windows are less likely to leave child processes running when `taskkill.exe` cannot start. [#101392](https://github.com/openclaw/openclaw/pull/101392) Thanks @aniruddhaadak80, @zengwen-dt. 1629 Failed shell-tool messages now separate the command the agent typed from fr... Failed shell-tool messages now separate the command the agent typed from framework labels and show the exit code, node, and working directory more clearly. [#97511](https://github.com/openclaw/openclaw/pull/97511) Thanks @aditya-vithaldas. 1630 Exec and finished background-session results now include signals, timeout f... Exec and finished background-session results now include signals, timeout flags, failure kinds, and exit reasons so users can tell why a command stopped. [#89104](https://github.com/openclaw/openclaw/pull/89104) Thanks @yu-xin-c. 1631 Windows `autoreview --engine copilot` runs now return a completed review re... Windows `autoreview --engine copilot` runs now return a completed review result even when temporary-directory cleanup is briefly delayed. [#97901](https://github.com/openclaw/openclaw/pull/97901) Thanks @paulcam206. 1632 Oversized local socket replies now fail promptly without consuming memory u... Oversized local socket replies now fail promptly without consuming memory until timeout, while large macOS commands still return completion status and bounded recent output. [#98130](https://github.com/openclaw/openclaw/pull/98130) Thanks @pick-cat. 1633 Timed-out, aborted, or output-limited extension commands now clean up their... Timed-out, aborted, or output-limited extension commands now clean up their child processes instead of leaving background work running after `api.exec()` returns. [#98340](https://github.com/openclaw/openclaw/pull/98340) Related [#98335](https://github.com/openclaw/openclaw/issues/98335). Thanks @ooiuuii. 1634 Emoji and other supplementary Unicode characters remain intact when long co... Emoji and other supplementary Unicode characters remain intact when long command output is shortened for polls, completion notices, or approval follow-ups. [#98721](https://github.com/openclaw/openclaw/pull/98721) Thanks @zengwen-dt. 1635 A set of failure-path fixes now keeps commands and maintenance tasks runnin... A set of failure-path fixes now keeps commands and maintenance tasks running through isolated errors, preserves terminal and model text, improves skill and approval diagnostics, and stops Android voice sessions cleanly after microphone loss. [#100440](https://github.com/openclaw/openclaw/pull/100440) Thanks @cxbasdev, @lavyatandel, @nankingjing, @nianjiuzst, @tzy-17, @wendy-chsy. 1636 Agent workflows can now survive transient stdout or stderr read failures fr... Agent workflows can now survive transient stdout or stderr read failures from helper processes instead of losing the whole OpenClaw process. [#100522](https://github.com/openclaw/openclaw/pull/100522) Thanks @cxbasdev, @vincentkoc. 1637 Docker sandbox commands now return an explicit failure when output cannot b... Docker sandbox commands now return an explicit failure when output cannot be read instead of crashing OpenClaw or reporting an incomplete result as successful. [#100523](https://github.com/openclaw/openclaw/pull/100523) Thanks @cxbasdev. 1638 Crestodian setup and local-tool checks no longer terminate OpenClaw when a... Crestodian setup and local-tool checks no longer terminate OpenClaw when a probed command encounters a rare output-stream read failure. [#100741](https://github.com/openclaw/openclaw/pull/100741) Thanks @lsr911. 1639 Stopping a chat through `chat Stopping a chat through `chat.abort` can now find and terminate its matching embedded run instead of reporting failure while the underlying tool process continues. [#101222](https://github.com/openclaw/openclaw/pull/101222) Thanks @zoowh. 1640 Broken child-process output, timeouts, and aborts during agent shell comman... Broken child-process output, timeouts, and aborts during agent shell commands are now contained instead of causing rare Gateway crashes. [#101370](https://github.com/openclaw/openclaw/pull/101370) Thanks @wings1029. 1641 Repeated failed or cancelled agent directory listings now release their can... Repeated failed or cancelled agent directory listings now release their cancellation listeners, avoiding listener buildup over time. [#101588](https://github.com/openclaw/openclaw/pull/101588) Thanks @lzw112. 1642 Codex session tools now honor their requested seconds-based timeout and ret... Codex session tools now honor their requested seconds-based timeout and return their own useful timeout status instead of ending early. [#100722](https://github.com/openclaw/openclaw/pull/100722) Thanks @carterstebbins23-spec, @cxbasdev. 1643 Cancelled ACP background tasks now appear as cancelled in task lists, summa... Cancelled ACP background tasks now appear as cancelled in task lists, summaries, and parent-run updates rather than being reported as successful. [#101245](https://github.com/openclaw/openclaw/pull/101245) Thanks @masatohoshino. 1644 Reliability fixes now reject unsafe cron and plugin inputs, preserve skill... Reliability fixes now reject unsafe cron and plugin inputs, preserve skill formatting, surface Gateway and memory failures, fail LSP startup sooner, and prevent stale Android camera results after cancellation. [#100399](https://github.com/openclaw/openclaw/pull/100399) Thanks @849261680, @anyech, @cxbasdev, @lin-hongkuan, @masatohoshino, @nankingjing, @qingminglong, @simon-xydt, @snotty, @xialonglee. 1645 A broad reliability pass now replaces stalled child-process work with clear... A broad reliability pass now replaces stalled child-process work with clear errors, improves sandbox diagnostics, bounds mobile calendar and voice state, normalizes cron fallbacks, and rejects unsafe provider responses. [#100483](https://github.com/openclaw/openclaw/pull/100483) Thanks @aniruddhaadak80, @cxbasdev, @jincheng-xydt, @morluto, @nianjiuzst, @pandah97, @versatagent, @xialonglee, @zenglingbiao, @zengwen-dt. 1646 Agent runs now stop cleanly when a `write`, `edit`, or `apply_patch` operat... Agent runs now stop cleanly when a `write`, `edit`, or `apply_patch` operation would make no change, preventing repeated false-progress retries while real mutations and valid sibling edits continue normally. [#97044](https://github.com/openclaw/openclaw/pull/97044) Thanks @vincentkoc, @zw-xysk. 1647 The diffs tool now renders default outputs faster, preserves highlighting f... The diffs tool now renders default outputs faster, preserves highlighting for pack-only languages, handles unchanged input clearly, and reports file-render and invalid-patch errors more accurately. [#100487](https://github.com/openclaw/openclaw/pull/100487) 1648 Failed code-mode tool attempts now show the error type, message, and locati... Failed code-mode tool attempts now show the error type, message, and location, giving the model and operator enough detail to diagnose or correct the problem. [#95906](https://github.com/openclaw/openclaw/pull/95906) Thanks @vincentkoc, @zengwen-dt. 1649 When the edit tool cannot match `oldText`, its error now points to likely n... When the edit tool cannot match `oldText`, its error now points to likely nearby lines and explains common indentation, escaping, and whitespace differences, reducing blind retries. [#97038](https://github.com/openclaw/openclaw/pull/97038) Thanks @aocogoal-gethub, @vincentkoc, @zoowh. 1650 Legacy task upgrades now restore persisted tasks automatically, preventing... Legacy task upgrades now restore persisted tasks automatically, preventing linked TaskFlows from falsely reporting them missing or requiring manual SQLite recovery. [#103946](https://github.com/openclaw/openclaw/pull/103946) Thanks @bek91, @theo674. 1651 Terminal task lists now shorten emoji-heavy summaries without leaving broke... Terminal task lists now shorten emoji-heavy summaries without leaving broken replacement characters in the row. [#101600](https://github.com/openclaw/openclaw/pull/101600) Thanks @maweibin. 1652 Progress summaries for inline scripts and generated files no longer present... Progress summaries for inline scripts and generated files no longer present heredoc content as extra shell commands that ran. [#99379](https://github.com/openclaw/openclaw/pull/99379) Thanks @zengwen-dt. 1653 Failed exact-match edits now show readable current-file context even when t... Failed exact-match edits now show readable current-file context even when truncation falls beside an emoji or other non-BMP character. [#99527](https://github.com/openclaw/openclaw/pull/99527) Thanks @mikasa0818. 1654 `web_fetch` now reaches provider fallback much faster for shell-style pages... `web_fetch` now reaches provider fallback much faster for shell-style pages with no locally extractable content, cutting the measured fresh-process delay from several seconds to about one. [#98559](https://github.com/openclaw/openclaw/pull/98559) Thanks @vincentkoc. 1655 `web_fetch` now handles malformed or adversarial HTML more predictably, red... `web_fetch` now handles malformed or adversarial HTML more predictably, reducing excessive processing and keeping hidden script-like text out of fallback output. [#102033](https://github.com/openclaw/openclaw/pull/102033) Thanks @pgondhi987. 1656 Agent-side `web_search` now sees the configured provider in the active runt... Agent-side `web_search` now sees the configured provider in the active runtime, so Gateway and channel sessions can keep using providers such as Brave without a restart. [#88684](https://github.com/openclaw/openclaw/pull/88684) Thanks @alexzhu0, @vincentkoc. 1657 Link understanding now keeps page fetching available for the slowest config... Link understanding now keeps page fetching available for the slowest configured fallback and applies `tools.links.timeoutSeconds` consistently regardless of model order. [#100731](https://github.com/openclaw/openclaw/pull/100731) Thanks @aniruddhaadak80, @cxbasdev. 1658 Recovered `web_fetch` spill files now keep emoji intact and report the actu... Recovered `web_fetch` spill files now keep emoji intact and report the actual safely written length when a long page exceeds the inline limit. [#101312](https://github.com/openclaw/openclaw/pull/101312) Thanks @alix-007. 1659 `web_fetch` now preserves emoji, mathematical symbols, extended Unicode, an... `web_fetch` now preserves emoji, mathematical symbols, extended Unicode, and intentionally escaped numeric entity text more faithfully. [#96268](https://github.com/openclaw/openclaw/pull/96268) Thanks @ly-wang19. 1660 DuckDuckGo results now preserve intentional entity notation such as `&lt DuckDuckGo results now preserve intentional entity notation such as `<` and `'` instead of silently changing titles, snippets, or URLs. [#96348](https://github.com/openclaw/openclaw/pull/96348) Thanks @ly-wang19, @vincentkoc. 1661 Canvas embed replies now retain their visible message text when a self-clos... Canvas embed replies now retain their visible message text when a self-closing embed shortcode is followed by an extra closing marker. [#96449](https://github.com/openclaw/openclaw/pull/96449) Thanks @ly-wang19. 1662 Bracketed labels in Markdown citations no longer make link understanding fe... Bracketed labels in Markdown citations no longer make link understanding fetch display-only URLs that the user did not intend to retrieve. [#96476](https://github.com/openclaw/openclaw/pull/96476) Thanks @ly-wang19, @vincentkoc. 1663 DuckDuckGo search pages containing malformed numeric HTML entities no longe... DuckDuckGo search pages containing malformed numeric HTML entities no longer crash parsing or inject broken Unicode into titles, URLs, and snippets, while valid emoji entities remain supported. [#96583](https://github.com/openclaw/openclaw/pull/96583) Thanks @llagy007, @weeli-009. 1664 When an installed `fd` or `rg` binary is unusable, agent search can now ins... When an installed `fd` or `rg` binary is unusable, agent search can now install a working copy and recover instead of failing repeatedly. [#96361](https://github.com/openclaw/openclaw/pull/96361) Thanks @miorbnli. 1665 A failed `find` search now returns one contained tool error and stops its `... A failed `find` search now returns one contained tool error and stops its `fd` process instead of risking an agent crash or orphaned search. [#101158](https://github.com/openclaw/openclaw/pull/101158) Thanks @cxbasdev. 1666 Tool Search now fails the affected call cleanly and terminates its unusable... Tool Search now fails the affected call cleanly and terminates its unusable child when the diagnostic stream breaks, rather than risking a stranded request or Gateway crash. [#101295](https://github.com/openclaw/openclaw/pull/101295) Thanks @cxbasdev. 1667 QMD command pipe failures now report a clean memory-operation error instead... QMD command pipe failures now report a clean memory-operation error instead of taking down the memory host. [#101402](https://github.com/openclaw/openclaw/pull/101402) Thanks @wings1029. 1668 The agent `find` tool now reports an interrupted or failed directory search... The agent `find` tool now reports an interrupted or failed directory search as an error instead of returning a partial match list as complete. [#99446](https://github.com/openclaw/openclaw/pull/99446) Thanks @zhangguiping-xydt. 1669 Shortened tool descriptions in catalogs and `/tools verbose` no longer spli... Shortened tool descriptions in catalogs and `/tools verbose` no longer split emoji or other Unicode characters into garbled replacement symbols. [#98644](https://github.com/openclaw/openclaw/pull/98644) Thanks @zengwen-dt. 1670 `openclaw mcp serve` and bare `openclaw acp` now begin with clean machine-p... `openclaw mcp serve` and bare `openclaw acp` now begin with clean machine-protocol output, preventing startup warnings from corrupting JSON-RPC for MCP and ACP clients. [#89997](https://github.com/openclaw/openclaw/pull/89997) Thanks @kenners22, @vincentkoc. 1671 When a bundled MCP server stops mid-session, users now get a prompt server-... When a bundled MCP server stops mid-session, users now get a prompt server-specific disconnect message and can clear the dead session by refreshing the catalog. [#98738](https://github.com/openclaw/openclaw/pull/98738) Thanks @masatohoshino, @vincentkoc. 1672 Malformed draft-2020-12 tool schemas from an MCP server now produce an acti... Malformed draft-2020-12 tool schemas from an MCP server now produce an actionable setup error that identifies the external schema and retains the underlying failure. [#89619](https://github.com/openclaw/openclaw/pull/89619) Thanks @vincentkoc. 1673 Prompt templates now preserve intentionally blank quoted arguments so later... Prompt templates now preserve intentionally blank quoted arguments so later positional placeholders receive the correct values. [#96405](https://github.com/openclaw/openclaw/pull/96405) Thanks @lin-hongkuan. 1674 OpenTelemetry latency dashboards now provide useful duration and context-si... OpenTelemetry latency dashboards now provide useful duration and context-size distributions for agent and harness work lasting well beyond 10 seconds, including multi-minute runs, without collector-side bucket customization. [#96592](https://github.com/openclaw/openclaw/pull/96592) Thanks @hcnode, @vincentkoc, @zhiling-chen-20230331. 1675 MCP tools now receive optional null values correctly instead of having them... MCP tools now receive optional null values correctly instead of having them changed into empty strings that can break valid calls. [#97212](https://github.com/openclaw/openclaw/pull/97212) Thanks @vincentkoc, @zw-xysk. 1676 Successful Codex thread-goal reads now appear as successful in model contex... Successful Codex thread-goal reads now appear as successful in model context, transcripts, and diagnostics instead of being recorded as failed tool calls. [#98659](https://github.com/openclaw/openclaw/pull/98659) Thanks @yetval. 1677 Message-tool calls with an invalid Gateway timeout now return an immediate... Message-tool calls with an invalid Gateway timeout now return an immediate validation error instead of appearing to stall. [#98652](https://github.com/openclaw/openclaw/pull/98652) 1678 Invalid plugin approval requests now show the actual validation problem ins... Invalid plugin approval requests now show the actual validation problem instead of misleading users with a Gateway-unavailable error. [#100337](https://github.com/openclaw/openclaw/pull/100337) Thanks @tzy-17. 1679 Oversized ClawHub packages, skills, ClawPacks, resolver archives, and GitHu... Oversized ClawHub packages, skills, ClawPacks, resolver archives, and GitHub-source downloads now stop with a clear size-limit error before they can exhaust Gateway memory. [#101176](https://github.com/openclaw/openclaw/pull/101176) 1680 Automatic session rotation is less likely to strand the next conversation w... Automatic session rotation is less likely to strand the next conversation when a context-engine plugin immediately reads or checkpoints its transcript. [#101192](https://github.com/openclaw/openclaw/pull/101192) 1681 Internal hook authors now receive a warning when a likely event-name typo w... Internal hook authors now receive a warning when a likely event-name typo would otherwise leave a hook silently inactive. [#99456](https://github.com/openclaw/openclaw/pull/99456) Thanks @masatohoshino. 1682 Tool-using Anthropic-family requests can now fail over to OpenAI without a... Tool-using Anthropic-family requests can now fail over to OpenAI without a 400 error caused by an incompatible tool format. [#101443](https://github.com/openclaw/openclaw/pull/101443) Thanks @chrisbaker2000. 1683 Natural-language corrections can now become the right pending Skill Worksho... Natural-language corrections can now become the right pending Skill Workshop improvement after successful or failed turns without repeating old feedback, duplicating `/learn`, or replacing proposal context. [#100576](https://github.com/openclaw/openclaw/pull/100576) Thanks @vincentkoc. 1684 Skill Workshop approval prompts now include the proposal details needed to... Skill Workshop approval prompts now include the proposal details needed to apply, reject, or quarantine a change, while unanswered requests stay safely pending and return a clear timeout message. [#100498](https://github.com/openclaw/openclaw/pull/100498) 1685 When users say things like "next time" or "remember to," OpenClaw can now o... When users say things like "next time" or "remember to," OpenClaw can now offer one reviewable Skill Workshop proposal without requiring autonomous capture or repeatedly prompting after dismissal. [#100692](https://github.com/openclaw/openclaw/pull/100692) 1686 Skill Workshop now explains when tool policy is hiding `skill_workshop` and... Skill Workshop now explains when tool policy is hiding `skill_workshop` and shows the exact `allow` or `alsoAllow` change needed to enable manual review calls. [#100654](https://github.com/openclaw/openclaw/pull/100654) Thanks @wangwllu. 1687 The CLI config documentation now clearly distinguishes normal JSON5 value p... The CLI config documentation now clearly distinguishes normal JSON5 value parsing from `--strict-json`, which accepts standard JSON and rejects JSON5-only syntax. [#80981](https://github.com/openclaw/openclaw/pull/80981) Thanks @addu2612. 1688 The macOS guide now gives users a clearer path from downloading the app thr... The macOS guide now gives users a clearer path from downloading the app through first-run setup, Gateway selection, and focused troubleshooting. [#97120](https://github.com/openclaw/openclaw/pull/97120) Thanks @romneyda. 1689 OpenClaw's public docs now use shorter, task-first instructions with correc... OpenClaw's public docs now use shorter, task-first instructions with corrected commands, configuration names, defaults, provider behavior, and troubleshooting steps. [#100142](https://github.com/openclaw/openclaw/pull/100142) 1690 Logbook users now have end-to-end guidance for setup, model routing, privac... Logbook users now have end-to-end guidance for setup, model routing, privacy choices, and troubleshooting missing capture or timeline results. [b6a7898](https://github.com/openclaw/openclaw/commit/b6a7898c7c7f43e4b984c6c62aaa685f6a206f33) 1691 Safe-restart guidance now states that the default wait can end after `gateway Safe-restart guidance now states that the default wait can end after `gateway.reload.deferralTimeoutMs` and explains how to configure an indefinite wait. [#95397](https://github.com/openclaw/openclaw/pull/95397) Thanks @zhangqueping. 1692 The agent configuration guide now identifies the current models selected by... The agent configuration guide now identifies the current models selected by the built-in `opus` and `gpt` aliases. [#96375](https://github.com/openclaw/openclaw/pull/96375) Thanks @niks999. 1693 Docker operators now have an official path to install, authenticate, verify... Docker operators now have an official path to install, authenticate, verify, and persist the `claude-cli` backend across container image upgrades. [#96380](https://github.com/openclaw/openclaw/pull/96380) Thanks @fffrank, @zaidazmi. 1694 OpenClaw's Anthropic and Claude CLI documentation now reflects the current... OpenClaw's Anthropic and Claude CLI documentation now reflects the current subscription-limit treatment for `claude -p` and related usage, with official references for billing and deployment decisions. [#96848](https://github.com/openclaw/openclaw/pull/96848) Thanks @fightingsleep, @tirion-p. 1695 The public onboarding docs now cover eleven existing non-interactive flags... The public onboarding docs now cover eleven existing non-interactive flags for token auth, Cloudflare AI Gateway, daemon, UI, hooks, and token output. [#97753](https://github.com/openclaw/openclaw/pull/97753) Thanks @vincentkoc, @wm0018. 1696 OpenClaw's mobile documentation now identifies the iOS and Android apps as... OpenClaw's mobile documentation now identifies the iOS and Android apps as official releases and provides consistent App Store, Google Play, and hosted iOS push-relay guidance. [#98843](https://github.com/openclaw/openclaw/pull/98843) Thanks @joshavant. 1697 Official OpenClaw docs now help operators and plugin authors handle credent... Official OpenClaw docs now help operators and plugin authors handle credentials safely, preflight cron jobs that use local-provider fallbacks, apply Talk timing defaults, configure MiniMax providers and models, and copy a complete minimal plugin package with the required dependency metadata. [#100182](https://github.com/openclaw/openclaw/pull/100182) 1698 Android node operators now have an end-to-end guide for securely mirroring... Android node operators now have an end-to-end guide for securely mirroring and controlling a remote device from macOS, including authorization, troubleshooting, and clean disconnection. [#100398](https://github.com/openclaw/openclaw/pull/100398) 1699 The onboarding reference now explains that bare `openclaw` starts onboardin... The onboarding reference now explains that bare `openclaw` starts onboarding for a missing config, opens Crestodian for an invalid config, and launches the agent TUI for a valid config. [d9dbee7](https://github.com/openclaw/openclaw/commit/d9dbee7676fb4a7fcd4617e9fe3bd26f7adf4452) 1700 ACP troubleshooting now names `PermissionPromptUnavailableError`, helping o... ACP troubleshooting now names `PermissionPromptUnavailableError`, helping operators recognize a non-interactive permission failure and find the right configuration fix. [b3a74cc](https://github.com/openclaw/openclaw/commit/b3a74ccc3aef9d670994baee3b0039e4783d82a2) 1701 The onboarding reference now gives accurate signal-cli, Gateway runtime, an... The onboarding reference now gives accurate signal-cli, Gateway runtime, and channel allowlist guidance, including Windows limits and the IDs expected for direct messages. [aaaa803](https://github.com/openclaw/openclaw/commit/aaaa8030bf4f139d43717731fd3402e06b248d48) 1702 Plugin and channel-status documentation now clarifies that a `MessageReceip... Plugin and channel-status documentation now clarifies that a `MessageReceipt` or durable `sent` result proves platform acceptance, not display or read confirmation on a recipient's device. [#90063](https://github.com/openclaw/openclaw/pull/90063) Thanks @pdurlej. 1703 The Discord setup guide now points users to the correct Developer settings... The Discord setup guide now points users to the correct Developer settings section for enabling Developer Mode and copying required IDs. [#97336](https://github.com/openclaw/openclaw/pull/97336) Thanks @naseemm123. 1704 The Discord setup guide now separates General Permissions from Text Permiss... The Discord setup guide now separates General Permissions from Text Permissions so bot access choices are easier to read correctly. [#97584](https://github.com/openclaw/openclaw/pull/97584) Thanks @slammajamma28. 1705 Telegram's error-reply documentation now lists the supported policies and c... Telegram's error-reply documentation now lists the supported policies and correct cooldown defaults, avoiding invalid `errorPolicy: "reply"` configurations. [#97635](https://github.com/openclaw/openclaw/pull/97635) Thanks @wm0018. 1706 The Feishu documentation no longer suggests the rejected `dmPolicy disabled` setting, reducing configuration failures copied from the guide. [#97640](https://github.com/openclaw/openclaw/pull/97640) Thanks @wm0018. 1707 Matrix documentation now explains progress streaming, room-specific mention... Matrix documentation now explains progress streaming, room-specific mention matching, per-room enablement, and bot-loop safeguards that operators can configure. [#98318](https://github.com/openclaw/openclaw/pull/98318) Thanks @vincentkoc, @wm0018. 1708 Telegram channel documentation now correctly states that an unset streaming... Telegram channel documentation now correctly states that an unset streaming mode uses partial previews and explains how to choose final-only replies. [#98453](https://github.com/openclaw/openclaw/pull/98453) Thanks @solodmd. 1709 The bundled `imsg` skill now guides agents toward the correct direct or gro... The bundled `imsg` skill now guides agents toward the correct direct or group conversation, stable targets, least-privilege actions, and confirmation before visible or sensitive changes. [#100105](https://github.com/openclaw/openclaw/pull/100105) Thanks @omarshahine. 1710 Plugin developers now receive clearer SDK deprecations and migration guidan... Plugin developers now receive clearer SDK deprecations and migration guidance for session-store and transcript-file helpers ahead of the planned SQLite transition. [#97494](https://github.com/openclaw/openclaw/pull/97494) Thanks @jalehman. 1711 Plugin authors now get clearer packaging guidance for runtime dependencies,... Plugin authors now get clearer packaging guidance for runtime dependencies, built artifacts, `npm-pack:` validation, and trusted official-plugin checks before publication. [#99962](https://github.com/openclaw/openclaw/pull/99962) Thanks @hxy91819. 1712 Official plugin package examples now agree on the required `typebox` runtim... Official plugin package examples now agree on the required `typebox` runtime and `openclaw` peer dependencies, reducing copy-and-paste setup failures. [#99973](https://github.com/openclaw/openclaw/pull/99973) 1713 The Codex and WhatsApp plugin references now identify their tools contract,... The Codex and WhatsApp plugin references now identify their tools contract, making supported plugin capabilities easier to match with OpenClaw workflows. [46ad3f9](https://github.com/openclaw/openclaw/commit/46ad3f9ae94cec1bfa94b14974a3d32b46921080) Thanks @vincentkoc. 1714 Generated documentation navigation now preserves complete headings with com... Generated documentation navigation now preserves complete headings with command placeholders such as `<id>` and `<deviceId>` instead of hiding required arguments. [#99099](https://github.com/openclaw/openclaw/pull/99099) Thanks @hxy91819.
Release

2026.6.11

2026.6.11

312 changes Open upstream ↗
01 Fixes newer Google Chat direct messages sometimes being treated like group... 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](https://github.com/openclaw/openclaw/pull/58993) Thanks @starhappysh, @vincentkoc. 02 Feishu voice replies from OpenClaw now show their duration in the chat bubb... 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](https://github.com/openclaw/openclaw/pull/89172) Related [#53798](https://github.com/openclaw/openclaw/issues/53798). Thanks @areslp, @fxz26284407, @kinrocw. 03 Discord and Telegram replies and mirrored chat history stay tied to the int... 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](https://github.com/openclaw/openclaw/pull/89911) Thanks @jalehman. 04 Background image, video, and music results now return to the chat that requ... 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](https://github.com/openclaw/openclaw/pull/89949) Related [#86034](https://github.com/openclaw/openclaw/issues/86034). Thanks @tianxiaochannel-oss88, @wangwllu. 05 Telegram answers now stay attached to the user's current question when they... 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](https://github.com/openclaw/openclaw/pull/90475) Thanks @moeedahmed. 06 QQBot group admins can choose how broadly slash commands are available, and... 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](https://github.com/openclaw/openclaw/pull/92154) Thanks @sliverp. 07 Heartbeat checks using reasoning-capable models now show the assistant's in... 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](https://github.com/openclaw/openclaw/pull/92356) Related [#92260](https://github.com/openclaw/openclaw/issues/92260). Thanks @jmpei, @tangtaizong666, @vincentkoc. 08 Telegram progress-mode chats now clear an old progress bubble before newer... 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](https://github.com/openclaw/openclaw/pull/93002) Related [#90753](https://github.com/openclaw/openclaw/issues/90753). Thanks @shadow-enthusiast, @zhangguiping-xydt. 09 iMessage command-and-link messages now stay together as one OpenClaw turn w... 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](https://github.com/openclaw/openclaw/pull/93143) Thanks @omarshahine. 10 Successful Discord replies sent through the message tool no longer trigger... Successful Discord replies sent through the message tool no longer trigger a misleading failure warning in affected `message_tool_only` source-channel turns. [#94072](https://github.com/openclaw/openclaw/pull/94072) Related [#93875](https://github.com/openclaw/openclaw/issues/93875). Thanks @chenyangjun-xy, @hoyanhan, @vincentkoc. 11 WhatsApp group conversations now preserve the right message and group conte... WhatsApp group conversations now preserve the right message and group context more reliably during retries, reconnects, and group changes. [#94338](https://github.com/openclaw/openclaw/pull/94338) Related [#7433](https://github.com/openclaw/openclaw/issues/7433). Thanks @mcaxtr, @octopuslabs-fl, @xialonglee. 12 Fixes OpenClaw sometimes replying to its own delayed iMessage echoes when s... Fixes OpenClaw sometimes replying to its own delayed iMessage echoes when stray leading characters keep the sent message from being recognized. [#94442](https://github.com/openclaw/openclaw/pull/94442) Thanks @ly-wang19. 13 Telegram webhook users can keep receiving DMs and group messages through br... Telegram webhook users can keep receiving DMs and group messages through brief channel restarts, configuration reloads, and recovery cycles without temporary message blackouts. [#94506](https://github.com/openclaw/openclaw/pull/94506) Related [#90254](https://github.com/openclaw/openclaw/issues/90254). Thanks @obviyus, @travellingsoldier85, @xialonglee. 14 Matrix E2EE gateways can stay online during long-running use instead of gra... 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](https://github.com/openclaw/openclaw/pull/94942) Related [#90455](https://github.com/openclaw/openclaw/issues/90455). Thanks @xzh-icenter, @yar-sh. 15 Telegram users now see the intended native reaction instead of leaked instr... 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](https://github.com/openclaw/openclaw/pull/94977) Related [#71140](https://github.com/openclaw/openclaw/issues/71140). Thanks @cuttingwater, @hugenshen. 16 Telegram progress updates for commands, searches, updates, and API activity... 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](https://github.com/openclaw/openclaw/pull/95007) Related [#95002](https://github.com/openclaw/openclaw/issues/95002). 17 Telegram conversations continued in WebChat now show one assistant reply pe... 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](https://github.com/openclaw/openclaw/pull/95069) Related [#94930](https://github.com/openclaw/openclaw/issues/94930). Thanks @heichaowo. 18 Google Chat now hides misleading internal failure banners when a tool resul... 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](https://github.com/openclaw/openclaw/pull/95084) Related [#90684](https://github.com/openclaw/openclaw/issues/90684). Thanks @jailbirt, @studentzhou-svg. 19 Bound multi-agent channel conversations now load the workspace files for th... 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](https://github.com/openclaw/openclaw/pull/95118) Related [#92903](https://github.com/openclaw/openclaw/issues/92903). Thanks @849261680, @axjing. 20 People sharing an OpenClaw gateway can now assign different models to indiv... 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](https://github.com/openclaw/openclaw/pull/95120) Related [#53638](https://github.com/openclaw/openclaw/issues/53638). Thanks @gandalf-at-lerian, @thomaszta, @xydigit-zt. 21 Telegram now shows that OpenClaw is still working during short initial prev... 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](https://github.com/openclaw/openclaw/pull/95183) Related [#95004](https://github.com/openclaw/openclaw/issues/95004). Thanks @obviyus. 22 Matrix users and operators now get a clear failure when a homeserver sends... 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](https://github.com/openclaw/openclaw/pull/95240) Thanks @alix-007. 23 Fixes delayed or missing Telegram and other queued channel replies in Kuber... 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](https://github.com/openclaw/openclaw/pull/95278) Related [#94571](https://github.com/openclaw/openclaw/issues/94571). Thanks @kaka-srp. 24 Telegram chats recover after one stuck message times out, allowing later me... 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](https://github.com/openclaw/openclaw/pull/95299) Related [#95248](https://github.com/openclaw/openclaw/issues/95248). Thanks @kriegerbangerz-ship-it, @mikasa0818, @obviyus. 25 When people switch between Telegram and another OpenClaw client in a shared... 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](https://github.com/openclaw/openclaw/pull/95390) Related [#95378](https://github.com/openclaw/openclaw/issues/95378). Thanks @maiduy708, @mikasa0818, @obviyus. 26 Fixes completed assistant messages appearing twice in Telegram, Discord, Sl... Fixes completed assistant messages appearing twice in Telegram, Discord, Slack, and other streamed chats after a multi-message reply. [#95432](https://github.com/openclaw/openclaw/pull/95432) Thanks @vincentkoc, @yetval. 27 WhatsApp replies now stay attached to the direct or group message being ans... 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](https://github.com/openclaw/openclaw/pull/95483) Thanks @mcaxtr. 28 Telegram rich-message replies now keep paragraphs, bullets, and status line... 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](https://github.com/openclaw/openclaw/pull/95532) Related [#95409](https://github.com/openclaw/openclaw/issues/95409). Thanks @amknight. 29 Mattermost operators who enable native slash commands can now use `/oc_queu... 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](https://github.com/openclaw/openclaw/pull/95546) Thanks @amknight. 30 Previously allowed messages keep reaching named accounts after legacy multi... 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](https://github.com/openclaw/openclaw/pull/95550) Thanks @amknight. 31 Mattermost users can keep talking in a thread without mentioning the bot ag... 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](https://github.com/openclaw/openclaw/pull/95552) Thanks @amknight. 32 Inbound Telegram messages now reach the configured OpenClaw session promptl... 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](https://github.com/openclaw/openclaw/pull/95577) Related [#86957](https://github.com/openclaw/openclaw/issues/86957). Thanks @freidrich-goldenflow, @liuwqgit. 33 QQBot users now receive complete markdown tables when valid separators use... 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](https://github.com/openclaw/openclaw/pull/95637) Thanks @ly-wang19. 34 Synology Chat users can now receive agent replies that take more than 120 s... 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](https://github.com/openclaw/openclaw/pull/95707) Thanks @sahibzada-allahyar, @vincentkoc. 35 Telegram forum-topic cron jobs now keep separately configured failure alert... 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](https://github.com/openclaw/openclaw/pull/95794) Thanks @vincentkoc. 36 Fixes WhatsApp group replies that could quote an older OpenClaw message ins... 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](https://github.com/openclaw/openclaw/pull/95914) Thanks @mcaxtr. 37 WhatsApp users can approve or deny prompts by reaction without the prompt s... 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](https://github.com/openclaw/openclaw/pull/95935) Thanks @mcaxtr. 38 Final reply processing now uses less CPU when OpenClaw checks whether block... 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](https://github.com/openclaw/openclaw/pull/96087) Thanks @vincentkoc. 39 Exec approval results from external channel plugins now return to the chann... 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](https://github.com/openclaw/openclaw/pull/96140) Related [#96103](https://github.com/openclaw/openclaw/issues/96103). Thanks @lansenger-pm, @vincentkoc, @yetval. 40 WhatsApp's final answer now stays quoted to the follow-up message a user ju... 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](https://github.com/openclaw/openclaw/pull/96220) Thanks @mcaxtr. 41 Nextcloud Talk bots now ignore ordinary file-share and lifecycle events wit... 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](https://github.com/openclaw/openclaw/pull/96243) Related [#81566](https://github.com/openclaw/openclaw/issues/81566). Thanks @arkyu2077, @rafaelmgbh, @vincentkoc. 42 Replies and message-tool delivery in Mattermost channels now use channel an... 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](https://github.com/openclaw/openclaw/pull/96244) Related [#95645](https://github.com/openclaw/openclaw/issues/95645). Thanks @arkyu2077, @iloveleon19, @vincentkoc. 43 MCP channel integrations now keep conversation lists, message reads, event... 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](https://github.com/openclaw/openclaw/commit/a39e548ede228aa1978bf9d509613cbed6db0c99) Thanks @vincentkoc. 44 Long-running streamed auto-replies are less likely to stop early or abort i... Long-running streamed auto-replies are less likely to stop early or abort inconsistently when an unusually large timeout is configured. [6c85b90](https://github.com/openclaw/openclaw/commit/6c85b90469f94955ef00c1609e1f1d6fd2cf4ca8) Thanks @vincentkoc. 45 Channel progress now shows a repeated status when work genuinely returns to... 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](https://github.com/openclaw/openclaw/commit/8a75c4dd5f3e625a22a7a08c6e1f368798c48111) 46 Completed channel replies no longer gain late progress notices, preventing... Completed channel replies no longer gain late progress notices, preventing stale status text from appearing after the answer is finished. [a594d2c](https://github.com/openclaw/openclaw/commit/a594d2ce73257326b7ab78adb3c4643245ec9431) Thanks @vincentkoc. 47 During streaming channel replies, progress messages now keep showing the la... During streaming channel replies, progress messages now keep showing the latest state instead of getting stuck on an older update. [e114001](https://github.com/openclaw/openclaw/commit/e114001ccafa83b8b366e095a9d7748dfc50c082) Thanks @vincentkoc. 48 Matrix forced resets now handle unavailable secret storage without a runtim... 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](https://github.com/openclaw/openclaw/commit/5c5a8a49d76954b53fefc2463bc7b1d6b960e8fc) Thanks @vincentkoc. 49 Configured channels now remain visible in `openclaw channels status --json`... 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](https://github.com/openclaw/openclaw/commit/a641c0d560fd15373e462829facf15fd6a466aeb) 50 Discord voice conversations now keep back-to-back assistant responses movin... 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](https://github.com/openclaw/openclaw/commit/88b64e4b869e696d99de7417fb52425e9ed67cbf) Thanks @vincentkoc. 51 Discord progress previews are less likely to stop before the final edits wh... Discord progress previews are less likely to stop before the final edits when an agent response has already started arriving. [86ea382](https://github.com/openclaw/openclaw/commit/86ea382121b00e73af4b4c329d0a2447592e4071) 52 Chats no longer show stray `NO_REPLY` text when the assistant means to stay... 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](https://github.com/openclaw/openclaw/commit/96c6f8022c2420826830b11f4353ce855ab2ac5c) 53 Telegram streaming replies now show each progress heading once, keeping too... Telegram streaming replies now show each progress heading once, keeping tool and search updates easier to scan. [013e33c](https://github.com/openclaw/openclaw/commit/013e33c6d3672a980550912442bb1ac5505918aa) Thanks @vincentkoc. 54 Telegram messages that get stuck after a long-running task, crash, or gatew... 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](https://github.com/openclaw/openclaw/pull/97543) Thanks @romneyda, @vincentkoc. 55 MiniMax text-to-speech and voice notes are less likely to fail because Open... 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](https://github.com/openclaw/openclaw/pull/73079) Thanks @efe-arv. 56 Gateway operators can again see provider, model, request status, and timing... 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](https://github.com/openclaw/openclaw/pull/89648) Related [#89300](https://github.com/openclaw/openclaw/issues/89300). Thanks @enominera, @xiaobao-k8s. 57 Models reached through Google, Mistral, OpenAI Responses, Azure OpenAI Resp... 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](https://github.com/openclaw/openclaw/pull/89716) Thanks @enominera, @masatohoshino. 58 Cron tool calls using Gemini models through OpenAI-compatible providers now... Cron tool calls using Gemini models through OpenAI-compatible providers now run without nullable fields triggering provider schema rejections. [#91559](https://github.com/openclaw/openclaw/pull/91559) Related [#91542](https://github.com/openclaw/openclaw/issues/91542). Thanks @pick-cat, @qiukui666. 59 Provider-qualified model IDs now honor their configured agent runtime polic... 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](https://github.com/openclaw/openclaw/pull/91724) Thanks @vincentkoc, @yu-xin-c. 60 The chat `/models` list and other plugin-aware model or provider selection... 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](https://github.com/openclaw/openclaw/pull/93356) Thanks @obuchowski. 61 Hosted Ollama Cloud users can keep only the models they explicitly configur... 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](https://github.com/openclaw/openclaw/pull/93956) Thanks @jason-allen-oneal. 62 Cron jobs can now retry or switch to a configured fallback model when a loc... 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](https://github.com/openclaw/openclaw/pull/94062) Related [#93931](https://github.com/openclaw/openclaw/issues/93931). Thanks @hugenshen. 63 Expired provider tokens no longer bury useful operator logs under repeated... 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](https://github.com/openclaw/openclaw/pull/94233) Related [#56979](https://github.com/openclaw/openclaw/issues/56979). Thanks @goutamadwant, @yanan1991. 64 Google Gemini 3 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](https://github.com/openclaw/openclaw/pull/94726) Related [#94723](https://github.com/openclaw/openclaw/issues/94723). Thanks @ajwan8998, @anguslogan01, @kevinat. 65 Dashboard child sessions now handle allowed provider-qualified model choice... Dashboard child sessions now handle allowed provider-qualified model choices consistently and give accurate recovery guidance when saved model state is stale. [#94752](https://github.com/openclaw/openclaw/pull/94752) Related [#94713](https://github.com/openclaw/openclaw/issues/94713). Thanks @gr4via. 66 Claude CLI users no longer get promises of completion updates that may neve... 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](https://github.com/openclaw/openclaw/pull/95008) Thanks @anagnorisis2peripeteia. 67 OpenClaw now rejects oversized provider catalog or JSON responses with a cl... OpenClaw now rejects oversized provider catalog or JSON responses with a clear error before buffering the entire response in memory. [#95218](https://github.com/openclaw/openclaw/pull/95218) Thanks @alix-007. 68 OpenRouter users can now select and run the advertised short DeepSeek V4 mo... 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](https://github.com/openclaw/openclaw/pull/95268) Related [#95198](https://github.com/openclaw/openclaw/issues/95198). Thanks @daniel-alejandro-t, @darren2030. 69 With `/reasoning on`, DeepSeek-style OpenAI-compatible models now show the... 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](https://github.com/openclaw/openclaw/pull/95283) Related [#95280](https://github.com/openclaw/openclaw/issues/95280). Thanks @marvinthebored, @vincentkoc, @zengwen-dt. 70 When a Codex subscription reaches its usage limit, OpenClaw now moves to co... 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](https://github.com/openclaw/openclaw/pull/95400) Thanks @jason-allen-oneal, @sallyom. 71 LM Studio users can now run quantized or multi-variant local models without... 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](https://github.com/openclaw/openclaw/pull/95401) Thanks @monkeyleet. 72 Google-backed embedded-agent runs now stop reading oversized or never-endin... 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](https://github.com/openclaw/openclaw/pull/95417) Thanks @alix-007. 73 OpenRouter model scans fail safely on oversized or malformed catalogs inste... OpenRouter model scans fail safely on oversized or malformed catalogs instead of risking excessive memory use that can destabilize OpenClaw. [#95418](https://github.com/openclaw/openclaw/pull/95418) Thanks @alix-007. 74 OpenRouter setups now reject oversized model catalogs before they can exhau... OpenRouter setups now reject oversized model catalogs before they can exhaust OpenClaw's memory, without caching or immediately refetching the failed response. [#95420](https://github.com/openclaw/openclaw/pull/95420) Thanks @alix-007, @sallyom. 75 Configured fallback models can now answer when Claude CLI runs out of credi... 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](https://github.com/openclaw/openclaw/pull/95508) Related [#95489](https://github.com/openclaw/openclaw/issues/95489). Thanks @mikasa0818, @riazrahaman, @sallyom. 76 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](https://github.com/openclaw/openclaw/pull/95682) Thanks @sunjae-k, @vincentkoc. 77 Follow-up answers from xAI reasoning models such as Grok Composer now prese... 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](https://github.com/openclaw/openclaw/pull/95686) Thanks @fuller-stack-dev, @geraint0923. 78 Vercel AI Gateway users can now run models chosen from the live catalog, in... 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](https://github.com/openclaw/openclaw/pull/95710) Thanks @vincentkoc. 79 Fixes manifest-defined providers turning valid model IDs into broken ones w... 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](https://github.com/openclaw/openclaw/pull/95744) Related [#95743](https://github.com/openclaw/openclaw/issues/95743). Thanks @parveshsaini. 80 First-run setup now opens the credential prompt for a newly installed exter... First-run setup now opens the credential prompt for a newly installed external provider instead of appearing to loop and leaving OpenAI selected. [#95792](https://github.com/openclaw/openclaw/pull/95792) Related [#95765](https://github.com/openclaw/openclaw/issues/95765). 81 Oversized or stalled provider catalogs now fail quickly with a clear error... 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](https://github.com/openclaw/openclaw/pull/95827) Thanks @alix-007. 82 Xiaomi Token Plan users can now use up to 128K output tokens with `mimo-v2 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](https://github.com/openclaw/openclaw/pull/95934) Thanks @idootop. 83 Tool-heavy model responses can stream with less overhead while repeated too... 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](https://github.com/openclaw/openclaw/pull/95957) Thanks @vincentkoc. 84 Token-usage accounting is more reliable for bundled ACPX users because Open... 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](https://github.com/openclaw/openclaw/pull/96124) Thanks @vincentkoc. 85 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](https://github.com/openclaw/openclaw/commit/11484f8a1483b7c42aa2971de2d88289fcef7046) 86 MiniMax image-understanding requests no longer fail before reaching the pro... 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](https://github.com/openclaw/openclaw/commit/4b6182ee2a250005e0c25edfeae4db6ec59b7cb8) Thanks @vincentkoc. 87 Codex runs now follow the current fast-mode choice instead of carrying over... 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](https://github.com/openclaw/openclaw/commit/77012f9807851c662e064d05097497a25ab13505) Thanks @vincentkoc. 88 Codex-backed conversations now return to normal routing after automatic fas... 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](https://github.com/openclaw/openclaw/commit/8afc1f770bbef30a4d2d9957ef26a685c508448c) 89 Fallback agent runs now honor each model's configured automatic fast-mode c... 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](https://github.com/openclaw/openclaw/commit/efd3172662ce023eb8d6568b689361536edf06dd) 90 Live model-switch retries now preserve the original fast-mode cutoff for lo... 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](https://github.com/openclaw/openclaw/commit/d990115d1972fdf4361884a29bbf8396f33e5cba) Thanks @vincentkoc. 91 Embedded agent runs now keep automatic fast mode working consistently throu... 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](https://github.com/openclaw/openclaw/commit/cf1b6fef4403bee7c206299efc4385a7fcb74375) Thanks @vincentkoc. 92 Fast-mode runs now keep their speed setting through model fallback retries... 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](https://github.com/openclaw/openclaw/commit/aa3797c8d0d74b4502d24852ce6baa70286f2f06) Thanks @vincentkoc. 93 Agent replies and scheduled cron runs now handle fast-mode fallback retries... 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](https://github.com/openclaw/openclaw/commit/14e448e0e13db9f194ea16bb98e0f846a67769fd) Thanks @vincentkoc. 94 Users no longer see a fast-mode reset notice while model fallback attempts... 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](https://github.com/openclaw/openclaw/commit/6eb72a830ece3e2b4c6c85e5a9c2b72b59e0dae9) 95 Users and operators now get clearer handling when a configured live model b... 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](https://github.com/openclaw/openclaw/commit/2405d029d437ee58ab94da800a5b213bc6bf4628) Thanks @vincentkoc. 96 Qwen and vLLM now preserve existing chat-template settings consistently whe... 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](https://github.com/openclaw/openclaw/commit/2ba9d6eabef9427a950bacc47f077200446cb865) Thanks @vincentkoc. 97 OpenAI-compatible proxy providers can handle thinking levels and legacy `re... 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](https://github.com/openclaw/openclaw/commit/35bafea757fab0386292951a3dc2a2d3514f370e) 98 Browser and Vite builds can now load the OpenAI ChatGPT Responses provider... 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](https://github.com/openclaw/openclaw/commit/8c8eb86fff6e843bd391808ceee249ac8c7f5fa5) Thanks @vincentkoc. 99 OpenRouter model scans now accept the same larger valid catalogs as runtime... 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](https://github.com/openclaw/openclaw/commit/ad3b2f4b8827cd73b4c1a6c8288569c0966276fe) Thanks @vincentkoc. 100 OpenAI Responses users, including affected Bedrock Mantle GPT-5 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](https://github.com/openclaw/openclaw/pull/92399) Related [#91959](https://github.com/openclaw/openclaw/issues/91959). Thanks @amersheeny, @daimingnj, @phoenixyy, @pigfoot. 101 Scheduled jobs and isolated sessions using opencode-go models now move stal... 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](https://github.com/openclaw/openclaw/pull/93965) Related [#93610](https://github.com/openclaw/openclaw/issues/93610). Thanks @forceconstant, @zhangguiping-xydt. 102 Affected agent conversations using OpenAI Responses can now recover and kee... 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](https://github.com/openclaw/openclaw/pull/84708) Thanks @anyech. 103 When a Codex-backed agent produces unusually large tool output, saved and r... 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](https://github.com/openclaw/openclaw/pull/87912) Thanks @adrianip0204. 104 Control UI conversations now stay visible and continue in the same session... 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](https://github.com/openclaw/openclaw/pull/89017) Related [#87700](https://github.com/openclaw/openclaw/issues/87700). Thanks @zhangguiping-xydt, @asicoe. 105 Bundled Codex and Copilot integrations now keep mirrored chat history and t... 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](https://github.com/openclaw/openclaw/pull/89518) Thanks @jalehman. 106 WebChat's current-session status now matches the conversation you are actua... 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](https://github.com/openclaw/openclaw/pull/89800) Related [#89773](https://github.com/openclaw/openclaw/issues/89773). Thanks @killo3967, @sweetcornna. 107 Your conversation is less likely to lose its context after you press stop d... 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](https://github.com/openclaw/openclaw/pull/89886) Related [#89868](https://github.com/openclaw/openclaw/issues/89868). Thanks @lykeion-dev, @openperf, @vincentkoc. 108 When cross-agent session access is blocked, OpenClaw now lists all required... 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](https://github.com/openclaw/openclaw/pull/90489) Related [#90443](https://github.com/openclaw/openclaw/issues/90443). Thanks @ramitrkar-hash, @sahibzada-allahyar, @vincentkoc. 109 `openclaw memory status` now shows an active light or REM dreaming phase in... `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](https://github.com/openclaw/openclaw/pull/93113) Related [#67868](https://github.com/openclaw/openclaw/issues/67868). Thanks @agentarclab, @mrossit. 110 Timed-out QMD memory searches now stop their background work when the agent... 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](https://github.com/openclaw/openclaw/pull/93394) Thanks @alix-007. 111 Repeated instructions sent after compaction now remain in the conversation,... Repeated instructions sent after compaction now remain in the conversation, preventing lost turns, orphaned replies, and malformed history that some providers reject. [#94328](https://github.com/openclaw/openclaw/pull/94328) Thanks @vincentkoc, @yetval. 112 Memory Wiki's Stale Pages report now leaves durable concept and synthesis p... 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](https://github.com/openclaw/openclaw/pull/94369) Thanks @sunnyshu0925, @vincentkoc. 113 Long embedded runs with recent progress are now less likely to be interrupt... 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](https://github.com/openclaw/openclaw/pull/94701) Thanks @imadal1n, @mrclawfield. 114 Ollama memory search now respects a configured smaller embedding dimension... Ollama memory search now respects a configured smaller embedding dimension and keeps indexes for different dimensions separate, avoiding incompatible vectors being mixed together. [#94811](https://github.com/openclaw/openclaw/pull/94811) Thanks @mushuiyu886. 115 Memory searches and targeted refreshes now stay connected to the correct Op... 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](https://github.com/openclaw/openclaw/pull/95087) Thanks @jalehman. 116 Long-running conversations with screenshots or other images now keep their... 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](https://github.com/openclaw/openclaw/pull/95128) Thanks @yetval. 117 Windows users can now run QMD-backed memory indexing and search through con... 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](https://github.com/openclaw/openclaw/pull/95274) Related [#92302](https://github.com/openclaw/openclaw/issues/92302). Thanks @ardooken, @ly85206559. 118 Usage footers selected with `/usage full` or `/usage tokens` now remain vis... 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](https://github.com/openclaw/openclaw/pull/95322) Thanks @litang9. 119 Follow-up replies, reactions, threaded messages, and status checks stay wit... 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](https://github.com/openclaw/openclaw/pull/95467) Thanks @yetval. 120 Long-running main conversations now keep their prior context when users ret... 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](https://github.com/openclaw/openclaw/pull/95472) Thanks @xydt-tanshanshan. 121 People with large session histories can list, preview, and find sessions wi... 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](https://github.com/openclaw/openclaw/pull/95699) Thanks @jalehman, @jzakirov. 122 Fixes delivered replies sometimes being saved to the wrong conversation his... 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](https://github.com/openclaw/openclaw/pull/95782) Related [#95781](https://github.com/openclaw/openclaw/issues/95781). Thanks @youngting520. 123 Saved session-memory summaries now leave out raw model tokens, tool-call bl... 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](https://github.com/openclaw/openclaw/pull/95791) Thanks @sweetsophia, @vincentkoc, @yb0y. 124 Long-running OpenAI sessions using Codex/ChatGPT OAuth can now compact with... 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](https://github.com/openclaw/openclaw/pull/95831) Related [#95693](https://github.com/openclaw/openclaw/issues/95693). Thanks @sallyom, @yui-tien. 125 Long, tool-heavy sessions now compact oversized conversations instead of ge... Long, tool-heavy sessions now compact oversized conversations instead of getting stuck when a large tool result appears at the end. [#95860](https://github.com/openclaw/openclaw/pull/95860) Related [#78478](https://github.com/openclaw/openclaw/issues/78478). Thanks @jw8957, @wzhgba, @yetval. 126 When `memory_search` is unavailable because the Node runtime lacks `node:sq... 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](https://github.com/openclaw/openclaw/pull/95916) Thanks @rrrrrredy, @vincentkoc. 127 Developers and operators inspecting a compacted Copilot session now get its... 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](https://github.com/openclaw/openclaw/pull/96049) Thanks @vincentkoc. 128 The `/stop` and abort commands now keep stopping active runs, clearing queu... 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](https://github.com/openclaw/openclaw/pull/96201) Thanks @jalehman. 129 Voice Wake upgrades now keep existing trigger phrases and routing rules wor... 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](https://github.com/openclaw/openclaw/commit/bdf81a825fa3ef66ad2c535c1eeb0bb4e31b6d1b) 130 Upgrades from older OpenClaw state layouts now preserve update notification... 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](https://github.com/openclaw/openclaw/commit/eb00d499d16feea600fceef92d575fa30f005649) Thanks @vincentkoc. 131 Plugin-channel conversations keep their intended session more reliably thro... 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](https://github.com/openclaw/openclaw/commit/9f888d95e082d50380a66db18ee2e32683e688e0) 132 Windows memory-backed session syncing now keeps using the intended transcri... Windows memory-backed session syncing now keeps using the intended transcript file even when path formatting differs. [b3b5b08](https://github.com/openclaw/openclaw/commit/b3b5b08e67a26efd648c7c7d879e5487223cd796) Thanks @vincentkoc. 133 Embedded agent runs with a missing or blank session key now stay attached t... 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](https://github.com/openclaw/openclaw/commit/911f853b7fc4d819e2175b001662a01eba30453d) Thanks @vincentkoc. 134 When a model guesses the wrong tool name, Tool Search and Code Mode now sho... 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](https://github.com/openclaw/openclaw/pull/93374) Related [#92273](https://github.com/openclaw/openclaw/issues/92273). Thanks @mushuiyu886, @poison, @vincentkoc. 135 Fixes assistant replies disappearing from webchat, Control UI, Feishu, and... 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](https://github.com/openclaw/openclaw/pull/95484) Related [#76729](https://github.com/openclaw/openclaw/issues/76729). Thanks @maweibin, @njuboy11, @vincentkoc. 136 OpenClaw memory features now keep active, reset, and deleted transcript cov... 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](https://github.com/openclaw/openclaw/pull/96162) Thanks @jalehman. 137 Gateway TLS setup now rejects blank certificate or key paths clearly or use... 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](https://github.com/openclaw/openclaw/pull/94054) Thanks @miorbnli. 138 Configured plugin policies keep blocking or rewriting sensitive tool calls... 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](https://github.com/openclaw/openclaw/pull/94545) Thanks @jesse-merhi. 139 Mobile operators with `operator 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](https://github.com/openclaw/openclaw/pull/95175) Thanks @joshavant. 140 Control UI users now get the patched DOMPurify release, reducing exposure t... 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](https://github.com/openclaw/openclaw/pull/95691) Thanks @vincentkoc. 141 "Always allow" approvals for plugin conversation bindings now carry over fr... "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](https://github.com/openclaw/openclaw/commit/ae41b009224b0a8e3a990912503258d4478fb4d0) Thanks @vincentkoc. 142 Matrix users now see that the active recovery key is required before a forc... 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](https://github.com/openclaw/openclaw/pull/95720) Related [#78396](https://github.com/openclaw/openclaw/issues/78396). Thanks @jteddy, @vincentkoc, @xialonglee. 143 Managed Slack deployments can now use a central router to send mentions and... 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](https://github.com/openclaw/openclaw/pull/94707) Thanks @pash-openai, @sjf-oa. 144 Raft External Agent operators can now wake an OpenClaw agent when a workspa... 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](https://github.com/openclaw/openclaw/pull/95497) Thanks @vincentkoc. 145 When `plugins 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](https://github.com/openclaw/openclaw/pull/68389) Related [#68352](https://github.com/openclaw/openclaw/issues/68352). Thanks @aym9999, @jirboy, @lyfuci, @pahuchi-joe, @zmxccxy. 146 Plugin trust warnings for first-time or fresh installs now include a ready-... 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](https://github.com/openclaw/openclaw/pull/78105) Related [#68780](https://github.com/openclaw/openclaw/issues/68780). Thanks @jirboy, @pahuchi-joe. 147 Codex migrations now work with standard global plugin installs because `ope... 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](https://github.com/openclaw/openclaw/pull/89612) Related [#89609](https://github.com/openclaw/openclaw/issues/89609). Thanks @mugabuga, @zerone0x. 148 Plugin installs and updates recover from stale OpenClaw-managed dependency... 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](https://github.com/openclaw/openclaw/pull/91786) Related [#91772](https://github.com/openclaw/openclaw/issues/91772). Thanks @amknight, @mkdelta221. 149 Channel plugin developers can now carry native sender and conversation iden... 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](https://github.com/openclaw/openclaw/pull/91903) Thanks @lanzhi-lee, @vincentkoc. 150 Plugin discovery now repeats fewer blocking filesystem checks during startu... 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](https://github.com/openclaw/openclaw/pull/93919) Related [#76209](https://github.com/openclaw/openclaw/issues/76209). Thanks @ml12580, @shenhonglong456-ai. 151 Plugin Gateway methods now work through `openclaw gateway call` after regis... 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](https://github.com/openclaw/openclaw/pull/94154) Related [#94127](https://github.com/openclaw/openclaw/issues/94127). Thanks @brycemurray, @pick-cat, @vincentkoc. 152 ClawHub skill discovery and install checks are less likely to stall or cras... 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](https://github.com/openclaw/openclaw/pull/95226) Thanks @alix-007. 153 Pinned official plugins no longer stay on an old release when operators fol... 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](https://github.com/openclaw/openclaw/pull/95541) Thanks @ooiuuii, @vincentkoc. 154 Managed npm plugin updates are less likely to break work on a running gatew... 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](https://github.com/openclaw/openclaw/pull/95589) Thanks @ooiuuii, @vincentkoc. 155 Official plugin cards for supported brands now show recognizable icons in C... 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](https://github.com/openclaw/openclaw/pull/95845) Thanks @patrick-erichsen. 156 Official plugin icons in ClawHub and other catalogs are no longer forced in... 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](https://github.com/openclaw/openclaw/pull/95987) Thanks @patrick-erichsen. 157 Docker users now have an official `openclaw/openclaw` Docker Hub mirror alo... 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](https://github.com/openclaw/openclaw/pull/97122) Thanks @vincentkoc. 158 Git-based OpenClaw installs now use the repository's pinned pnpm version ev... 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](https://github.com/openclaw/openclaw/commit/bd74a62118aa4774706359d9494116ded8c1f6e3) Thanks @vincentkoc. 159 ClawHub skill-card and update requests now complete or time out predictably... ClawHub skill-card and update requests now complete or time out predictably even when they receive an unusually large timeout value. [8cd0c11](https://github.com/openclaw/openclaw/commit/8cd0c11227f6f4096d089cd6108d6f2ae31252b7) Thanks @vincentkoc. 160 Windows users can complete source installs without a llama 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](https://github.com/openclaw/openclaw/commit/ea9065bc68dd4ff94495b85a7dcb4491cf41b67a) Thanks @vincentkoc. 161 More official channel, provider, and web-search plugins can now be installe... 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](https://github.com/openclaw/openclaw/pull/95683) Thanks @vincentkoc. 162 Telegram reply chains keep cached replies attached after context changes in... Telegram reply chains keep cached replies attached after context changes instead of failing when those cached replies are reused. [#82909](https://github.com/openclaw/openclaw/pull/82909) Thanks @lidge-jun. 163 Fixes Discord dropping an entire long reply with fenced code blocks when a... 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](https://github.com/openclaw/openclaw/pull/95661) Thanks @ly-wang19. 164 Slack operators can now store tokens and signing secrets as supported Secre... 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](https://github.com/openclaw/openclaw/commit/7da955fae4ca2083599aa33a1f93dbfff53cb187) Thanks @vincentkoc. 165 Channel capability checks now return a clear timeout when an integration st... Channel capability checks now return a clear timeout when an integration stops responding, keeping troubleshooting from hanging in a terminal or automation run. [8ecdb97](https://github.com/openclaw/openclaw/commit/8ecdb97b636e4c3fcc6d142d217327404ae06581) Thanks @vincentkoc. 166 After changing the default model, starting a fresh channel session with `/n... 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](https://github.com/openclaw/openclaw/pull/77339) Related [#77322](https://github.com/openclaw/openclaw/issues/77322). Thanks @mjamiv, @zaynl. 167 Behind HTTP or HTTPS proxies, Codex/OpenAI usage and quota checks in `openc... 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](https://github.com/openclaw/openclaw/pull/93943) Related [#78714](https://github.com/openclaw/openclaw/issues/78714). Thanks @tnzgit, @turbotheturtle. 168 `/status` now keeps the active model and how to clear a pinned choice on on... `/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](https://github.com/openclaw/openclaw/pull/95797) Thanks @solvely-colin. 169 Anthropic streaming responses now keep interleaved text, thinking, and tool... 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](https://github.com/openclaw/openclaw/pull/96013) Thanks @vincentkoc. 170 Memory-wiki status cards and bridge-backed source sync are less likely to f... 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](https://github.com/openclaw/openclaw/pull/94443) Related [#92134](https://github.com/openclaw/openclaw/issues/92134). Thanks @cknzraposo, @zengwen-dt. 171 Fixes recent-session resume opening a fresh conversation for users with lon... Fixes recent-session resume opening a fresh conversation for users with long workspace paths instead of returning to their existing transcript. [#94578](https://github.com/openclaw/openclaw/pull/94578) Related [#94577](https://github.com/openclaw/openclaw/issues/94577). Thanks @rohitjavvadi, @vincentkoc. 172 Memory Wiki now keeps user-written notes intact when an existing source pag... 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](https://github.com/openclaw/openclaw/pull/95614) Thanks @yetval. 173 Fixes Memory Wiki repeatedly copying its own generated source pages back in... 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](https://github.com/openclaw/openclaw/pull/95666) Related [#95657](https://github.com/openclaw/openclaw/issues/95657). Thanks @johannes0402, @turbotheturtle, @vincentkoc. 174 For operators using Active Memory with memory-core dreaming, nightly dreami... 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](https://github.com/openclaw/openclaw/pull/95721) Related [#78500](https://github.com/openclaw/openclaw/issues/78500). Thanks @vincentkoc, @vishutdhar, @xialonglee. 175 Agent sessions with many tool calls repair out-of-order results with less r... 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](https://github.com/openclaw/openclaw/pull/96014) Thanks @vincentkoc. 176 Windows qmd-backed memory work now stops all related processes after availa... 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](https://github.com/openclaw/openclaw/commit/830691b2010bd0406399adb8a2e97e0b043e2ca8) 177 When a configured or explicit remote gateway is slow but reachable, `opencl... 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](https://github.com/openclaw/openclaw/pull/89859) Related [#65355](https://github.com/openclaw/openclaw/issues/65355). Thanks @hellocli, @mushuiyu886. 178 Long or parallel internal subagent runs now avoid unnecessary live-preview... Long or parallel internal subagent runs now avoid unnecessary live-preview processing, while visible subagent sessions still show live updates and final responses. [#91906](https://github.com/openclaw/openclaw/pull/91906) Thanks @lanzhi-lee, @vincentkoc. 179 ACP conversations, especially Kiro-backed threads, now continue past the fi... 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](https://github.com/openclaw/openclaw/pull/93547) Related [#87830](https://github.com/openclaw/openclaw/issues/87830). Thanks @amersheeny, @chouzz. 180 When Linux memory pressure kills a child command or session, systemd-manage... 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](https://github.com/openclaw/openclaw/pull/93585) Thanks @snowzlm. 181 Canceling an OpenClaw run during tool work now ends it promptly instead of... Canceling an OpenClaw run during tool work now ends it promptly instead of starting another model turn or leaving the session locked. [#94412](https://github.com/openclaw/openclaw/pull/94412) Thanks @szsip239, @vincentkoc. 182 Scheduled OpenClaw jobs using cloud models now recover from silent, stuck m... 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](https://github.com/openclaw/openclaw/pull/94445) Thanks @bek91. 183 Gateway readiness checks now turn unhealthy during a restart drain, prevent... 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](https://github.com/openclaw/openclaw/pull/94915) Related [#78136](https://github.com/openclaw/openclaw/issues/78136). Thanks @markoub, @maxschachere, @vincentkoc. 184 Mac users can keep LaunchAgent-managed gateways running through OpenClaw up... 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](https://github.com/openclaw/openclaw/pull/95081) Related [#95057](https://github.com/openclaw/openclaw/issues/95057). Thanks @849261680, @yveslarose. 185 Codex-powered conversations in TUI, WebChat, and compatible streaming APIs... 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](https://github.com/openclaw/openclaw/pull/95404) Related [#95422](https://github.com/openclaw/openclaw/issues/95422). Thanks @agonza1, @vincentkoc. 186 After a gateway restart, users no longer see a misleading retry notice when... 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](https://github.com/openclaw/openclaw/pull/95431) Thanks @moeedahmed, @vincentkoc. 187 Long, tool-heavy agent sessions now retain prompt-cache savings as results... 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](https://github.com/openclaw/openclaw/pull/95624) Thanks @vincentkoc. 188 Gateway restarts no longer leave configured Codex, Copilot, or trusted plug... 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](https://github.com/openclaw/openclaw/pull/95652) Thanks @vincentkoc. 189 Long responses, busy tool streams, image-heavy requests, and memory recall... 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](https://github.com/openclaw/openclaw/pull/95697) Thanks @vincentkoc. 190 Operators can again add or update scheduled announcements for known channel... 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](https://github.com/openclaw/openclaw/pull/95754) Thanks @vincentkoc. 191 macOS users are less likely to see a false port-conflict failure when stopp... 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](https://github.com/openclaw/openclaw/pull/95886) Thanks @fuller-stack-dev. 192 Copilot-backed agents can now ask users a question and accept the answer th... 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](https://github.com/openclaw/openclaw/pull/96005) Thanks @vincentkoc. 193 Gateway restarts on systemd or container setups no longer leave old Codex o... 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](https://github.com/openclaw/openclaw/pull/96032) Thanks @t2wei, @vincentkoc. 194 Copilot-backed sessions now show plan updates as work unfolds, and their na... 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](https://github.com/openclaw/openclaw/pull/96062) Thanks @vincentkoc. 195 Connected agents such as OpenCode now start through OpenClaw even when thei... 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](https://github.com/openclaw/openclaw/pull/96068) Related [#95869](https://github.com/openclaw/openclaw/issues/95869). Thanks @sabatech-dev, @vincentkoc. 196 Plugins using `heartbeat_prompt_contribution` now deliver their heartbeat-s... 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](https://github.com/openclaw/openclaw/pull/96233) Thanks @azogheb, @vincentkoc. 197 Windows gateway cleanup and listener checks now handle UTF-16 WMIC command-... 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](https://github.com/openclaw/openclaw/commit/15c880aeff1f4e55964ad7204d14733a2d1362f7) Thanks @vincentkoc. 198 Long-context, tool-heavy agent sessions now keep prompt-cache reuse steadie... 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](https://github.com/openclaw/openclaw/commit/a60947fb3e92f45ea7eb2581da8877b10a8bebb2) Thanks @vincentkoc. 199 Long, tool-heavy agent sessions are less likely to bloat model requests as... 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](https://github.com/openclaw/openclaw/commit/2f3399989893e6af18be49fb810e58941d7a4a45) Thanks @vincentkoc. 200 Gateway restarts now use OpenClaw's durable state database for the handoff,... 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](https://github.com/openclaw/openclaw/commit/0ad48dad2c4747f255d5a156b94578f7d87386a1) 201 Gateway status, doctor, and restart diagnostics now retain recent restart d... 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](https://github.com/openclaw/openclaw/commit/a39a3b74de05f06227ede904a73c1b4687679d3e) Thanks @vincentkoc. 202 Gateway restarts and managed-service updates now keep the correct continuat... Gateway restarts and managed-service updates now keep the correct continuation message, avoid reusing stale handoff state, and mark failed update handoffs consistently. [514b336](https://github.com/openclaw/openclaw/commit/514b3365b54c8b3493eaf8a94198b7c04ea34aec) Thanks @vincentkoc. 203 Gateway-launched agents no longer lose owner-only OpenClaw tools during tas... 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](https://github.com/openclaw/openclaw/commit/c2ee9b0be8aeeadedffc8c6aaa9f5f291283fea5) Thanks @vincentkoc. 204 Malformed gateway restart requests now fail clearly without scheduling a re... Malformed gateway restart requests now fail clearly without scheduling a restart, preventing bad or accidental integration calls from unexpectedly restarting the gateway. [108d6d7](https://github.com/openclaw/openclaw/commit/108d6d7eca0000a736e28d198e77100f4d7774e5) Thanks @vincentkoc. 205 Stale node requests queued by the gateway now expire automatically, so old... Stale node requests queued by the gateway now expire automatically, so old work is less likely to linger and affect later activity. [f6d432e](https://github.com/openclaw/openclaw/commit/f6d432e545e2e2be91d17badc48354a0135e5294) 206 Plugin workflows are less likely to stall or overload the gateway when an i... 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](https://github.com/openclaw/openclaw/commit/b66b4504f87205dd8ba0393e763e23a4a6158a79) Thanks @vincentkoc. 207 Image descriptions now handle extremely large timeout settings consistently... Image descriptions now handle extremely large timeout settings consistently by capping them to a safe runtime limit instead of risking timer overflow. [88b21fc](https://github.com/openclaw/openclaw/commit/88b21fc30b4ac615b3d3870e483190bc832f9846) 208 Embedded agent sessions now wait reliably for another session to release it... 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](https://github.com/openclaw/openclaw/commit/4c736df975fed8e39f18db43bfaea9654b9ac0c7) Thanks @vincentkoc. 209 Queued commands with extremely large task timeout settings now time out rel... Queued commands with extremely large task timeout settings now time out reliably because OpenClaw caps the wait at the runtime's safe maximum. [1f6ae32](https://github.com/openclaw/openclaw/commit/1f6ae32cabb9d5ed308bb30715c287936ef483f1) Thanks @vincentkoc. 210 Fixes normalization-core exposing the wrong string-coercion entry point and... 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](https://github.com/openclaw/openclaw/commit/93ad39772590a34be3821d83709a5050c186fdf9) Thanks @vincentkoc. 211 Fast auto runs now deliver final replies more consistently, with progress-r... 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](https://github.com/openclaw/openclaw/commit/9e8ab083dd6b9df4dadf40ee523ff18ac1472bd3) Thanks @vincentkoc. 212 Agent sessions using OpenAI Responses now resume tool-based work without fa... 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](https://github.com/openclaw/openclaw/commit/b4bc1f20c9fca6d316561d42cbabdd793c67a6e7) Thanks @vincentkoc. 213 Completed plugin subagent and QA runs are no longer misreported as failures... 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](https://github.com/openclaw/openclaw/commit/d1b268f7f7f7309dd5db99728019218b4d453e18) Thanks @vincentkoc. 214 Fixes completed subagent tasks sometimes ending without an update, so users... Fixes completed subagent tasks sometimes ending without an update, so users receive the result or the parent agent's next step. [68a1e00](https://github.com/openclaw/openclaw/commit/68a1e00b73bd746f6fb577f4127fecb0ade9e228) Thanks @vincentkoc. 215 Generated images from a remote Codex app-server now arrive as attachments i... 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](https://github.com/openclaw/openclaw/pull/96212) Thanks @sjf-oa. 216 When a subagent finishes, its result now reaches the active parent run more... When a subagent finishes, its result now reaches the active parent run more reliably instead of appearing silent. [7fc4bbc](https://github.com/openclaw/openclaw/commit/7fc4bbc0bcbabc2aa99b1fd51e77099f2b26f4e1) Thanks @vincentkoc. 217 Trusted OpenClaw package sources now reject lookalike sibling paths, so tru... Trusted OpenClaw package sources now reject lookalike sibling paths, so trusting `/artifactory/openclaw` no longer also admits paths such as `/artifactory/openclaw-malicious`. [12c34fc](https://github.com/openclaw/openclaw/commit/12c34fc3a95121f5a15f01c3f971a1bc5b0fe6f9) Thanks @vincentkoc. 218 When a WebChat message fails before the agent starts, WebChat and Control U... 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](https://github.com/openclaw/openclaw/pull/84352) Thanks @jesse-merhi. 219 Fixes the Control UI session picker getting stuck behind hidden subagent se... 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](https://github.com/openclaw/openclaw/pull/89323) Related [#89249](https://github.com/openclaw/openclaw/issues/89249). Thanks @giodl73-repo, @originsecured-do. 220 When users reopen a Control UI conversation from History, their prompts now... 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](https://github.com/openclaw/openclaw/pull/93841) Related [#90241](https://github.com/openclaw/openclaw/issues/90241). Thanks @mushuiyu886, @pronzcw. 221 Control UI deployments behind a path prefix now keep manifest, favicon, and... 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](https://github.com/openclaw/openclaw/pull/94204) Related [#94157](https://github.com/openclaw/openclaw/issues/94157). Thanks @hugenshen, @xrow. 222 Android users can now open Health log and Skill rows in Settings for readab... 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](https://github.com/openclaw/openclaw/pull/95148) Thanks @tosko4. 223 Sent prompts no longer reappear in the Control UI composer after a send, so... 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](https://github.com/openclaw/openclaw/pull/95503) Related [#89466](https://github.com/openclaw/openclaw/issues/89466). Thanks @vincentkoc, @zhangguiping-xydt, @zhong18804784882. 224 Android users now get a cleaner Overview where connection status, the confi... 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](https://github.com/openclaw/openclaw/pull/95557) Thanks @joshavant, @solvely-colin. 225 Android users can now refresh and resolve gateway command approvals from th... 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](https://github.com/openclaw/openclaw/pull/95593) Thanks @solvely-colin. 226 iOS users now avoid surprise notification prompts and get clear guidance wh... 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](https://github.com/openclaw/openclaw/pull/95640) Thanks @joshavant. 227 Local TUI shutdowns now stay within safe timer limits even when `OPENCLAW_T... Local TUI shutdowns now stay within safe timer limits even when `OPENCLAW_TUI_LOCAL_RUN_SHUTDOWN_GRACE_MS` is set extremely high. [c21dcfc](https://github.com/openclaw/openclaw/commit/c21dcfc7c272201484514bbc096bd51ab112bd47) 228 Canvas A2UI now serves only the current app assets after each build, so out... 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](https://github.com/openclaw/openclaw/commit/a89e65c167f3280b047baff931f52e393875c892) Thanks @vincentkoc. 229 iOS push relay setup failures are easier to pinpoint because registration d... 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](https://github.com/openclaw/openclaw/commit/f2b8668a549b50339a96e47020a12615734640a9) Thanks @joshavant. 230 iOS devices are now enrolled for push notifications only after users accept... 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](https://github.com/openclaw/openclaw/commit/8efed50c4ed33105cfed9f2f96532fc9fe2d7e6d) Thanks @joshavant. 231 Fixes chat, voice, TUI, and forwarded sends sometimes appearing stuck or di... 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](https://github.com/openclaw/openclaw/pull/91049) Related [#91048](https://github.com/openclaw/openclaw/issues/91048). Thanks @nxmxbbd. 232 Restores the OpenAI/Codex usage quota in the expanded Control UI chat sideb... Restores the OpenAI/Codex usage quota in the expanded Control UI chat sidebar, so users can check their limits without leaving the conversation. [#94219](https://github.com/openclaw/openclaw/pull/94219) Related [#93041](https://github.com/openclaw/openclaw/issues/93041). Thanks @jazzroutine, @pick-cat. 233 iOS screens now use consistent OpenClaw accent and status colors across onb... iOS screens now use consistent OpenClaw accent and status colors across onboarding, settings, chat, approval prompts, voice permissions, widgets, and shared chat views. [#94627](https://github.com/openclaw/openclaw/pull/94627) Thanks @zats. 234 The Control UI can now create Early Morning jobs with the Silent preset in... 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](https://github.com/openclaw/openclaw/pull/95459) Related [#95073](https://github.com/openclaw/openclaw/issues/95073). Thanks @vincentkoc, @vporton, @zoowh. 235 At the million-token boundary, Control UI badges and usage readouts now sho... 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](https://github.com/openclaw/openclaw/pull/95485) Thanks @narahariraghava, @vincentkoc. 236 The Control UI Overview now counts and flags only enabled cron jobs that st... 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](https://github.com/openclaw/openclaw/pull/95723) Related [#95716](https://github.com/openclaw/openclaw/issues/95716). Thanks @voytas75, @zengwen-dt. 237 Control UI users now see shorter System, Light, and Dark theme tooltips, wh... 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](https://github.com/openclaw/openclaw/pull/95837) Thanks @hannesrudolph, @sannidhyasah. 238 Raw configuration no longer appears missing in Settings after switching fro... 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](https://github.com/openclaw/openclaw/pull/96145) Related [#94202](https://github.com/openclaw/openclaw/issues/94202). Thanks @sunlit-deng, @vporton. 239 New iOS users now reach OpenClaw's welcome and onboarding before iOS asks f... 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](https://github.com/openclaw/openclaw/pull/96181) Thanks @joshavant. 240 People installing or updating the official Yuanbao channel plugin through O... 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](https://github.com/openclaw/openclaw/pull/94470) Thanks @jase-283. 241 First-run onboarding can now install the bundled `gog` skill through Homebr... First-run onboarding can now install the bundled `gog` skill through Homebrew without failing on the removed third-party tap formula. [#95019](https://github.com/openclaw/openclaw/pull/95019) Related [#95017](https://github.com/openclaw/openclaw/issues/95017). Thanks @sedrak-hovhannisyan, @vincentkoc, @zengwen-dt. 242 Canvas, Discord, Slack, Voice Call, and WhatsApp users keep the same skill... 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](https://github.com/openclaw/openclaw/pull/95664) Thanks @vincentkoc. 243 ClawHub skill verification now accepts the same `@owner/<slug>` reference u... 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](https://github.com/openclaw/openclaw/pull/95992) Thanks @patrick-erichsen. 244 OpenClaw's install-time package-manager warning now identifies npm, Yarn, Y... 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](https://github.com/openclaw/openclaw/commit/11a2e03bd4deda748336553710cb6426d448d952) Thanks @vincentkoc. 245 Package URL installs now handle oversized download timeouts without failing... Package URL installs now handle oversized download timeouts without failing before available package data can be resolved. [c310f8c](https://github.com/openclaw/openclaw/commit/c310f8cfa4524453c7082bb5aab642c9decc6e99) 246 Plugin and CLI developers now see a clearer supported command-formatting AP... 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](https://github.com/openclaw/openclaw/commit/23b4f33195933ff4def4609d970f073293760683) 247 Windows ARM64 users now get matching ARM64 Node and MinGit downloads when r... Windows ARM64 users now get matching ARM64 Node and MinGit downloads when running the PowerShell installer through an x64-emulated shell. [fac091b](https://github.com/openclaw/openclaw/commit/fac091b39de230d9ed90e8412123126cf676004f) Thanks @vincentkoc. 248 Default OpenClaw installs no longer spend time building optional llama Default OpenClaw installs no longer spend time building optional llama.cpp support, avoiding native-build failures for users who did not enable it. [cc1b3a8](https://github.com/openclaw/openclaw/commit/cc1b3a8550dd9c29f581799934d140aaf5a84f1c) Thanks @vincentkoc. 249 OpenClaw's zsh tab-completion menu now displays option descriptions contain... 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](https://github.com/openclaw/openclaw/pull/64490) Thanks @edenkangdw. 250 After upgrading from older sandbox storage, operators now get a clear `open... 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](https://github.com/openclaw/openclaw/pull/84326) Thanks @giodl73-repo. 251 Operators can now use `doctor --lint` to spot stale legacy Gateway services... 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](https://github.com/openclaw/openclaw/pull/84340) Thanks @giodl73-repo. 252 macOS gateway operators now get a warning before reinstall, repair, or rest... 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](https://github.com/openclaw/openclaw/pull/90537) Related [#90518](https://github.com/openclaw/openclaw/issues/90518). Thanks @turbotheturtle, @vincentkoc. 253 Long, multiline, or code-heavy prompts can now be sent to `openclaw agent`... 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](https://github.com/openclaw/openclaw/pull/93351) Thanks @ooiuuii. 254 Fixes scheduled `doctor --fix --non-interactive` repairs restarting an alre... 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](https://github.com/openclaw/openclaw/pull/94148) Related [#78217](https://github.com/openclaw/openclaw/issues/78217). Thanks @esqandil, @zhangguiping-xydt. 255 `openclaw configure` and bare `openclaw config` now stop with clear subcomm... `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](https://github.com/openclaw/openclaw/pull/94238) Related [#93953](https://github.com/openclaw/openclaw/issues/93953). Thanks @nianjiuzst, @ruomuxydt. 256 Multi-agent operators can now use `openclaw gateway usage-cost` to view cos... 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](https://github.com/openclaw/openclaw/pull/94483) Thanks @ly-wang19. 257 Archived Workboard cards no longer clutter the default `openclaw workboard... Archived Workboard cards no longer clutter the default `openclaw workboard list` output, while `--include-archived` and JSON output still provide access when needed. [#94562](https://github.com/openclaw/openclaw/pull/94562) Related [#94555](https://github.com/openclaw/openclaw/issues/94555). Thanks @ecican, @vincentkoc, @zengwen-dt. 258 OpenClaw Doctor now gives accurate guidance for working isolated shell-prom... 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](https://github.com/openclaw/openclaw/pull/94784) Related [#94655](https://github.com/openclaw/openclaw/issues/94655). Thanks @altaywtf, @geekoagent, @zengwen-dt. 259 Fixes `openclaw doctor` showing a fix-required warning for healthy local GG... 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](https://github.com/openclaw/openclaw/pull/95393) Related [#92582](https://github.com/openclaw/openclaw/issues/92582). Thanks @mikasa0818, @neekolascmd, @vincentkoc. 260 On Windows, installer-created gateway tasks now run in the background witho... 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](https://github.com/openclaw/openclaw/pull/95480) Related [#89231](https://github.com/openclaw/openclaw/issues/89231). Thanks @cameronweller, @mikasa0818, @vincentkoc. 261 Agent channel bindings now reject malformed account specs such as `matrix:w... 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](https://github.com/openclaw/openclaw/pull/95572) Thanks @ly-wang19. 262 ClawHub skill updates now honor your configured install safety policy, and... 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](https://github.com/openclaw/openclaw/pull/95684) Thanks @vincentkoc. 263 Windows restart and gateway startup workflows are more reliable because Ope... 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](https://github.com/openclaw/openclaw/commit/7dd01d15c56da2ee50f55746ba725d708682fca9) Thanks @vincentkoc. 264 Windows gateway cleanup and listener checks are more reliable when PATH loo... 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](https://github.com/openclaw/openclaw/commit/e9b694ef9cd8b7528a76d85b8be2a830b296a5e1) Thanks @vincentkoc. 265 On Windows, OpenClaw startup and TUI Codex handoff now find `bun`, `codex`,... 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](https://github.com/openclaw/openclaw/commit/72b9bc730370e3b1155fb231621c2bc7b2c87b56) Thanks @vincentkoc. 266 Windows port diagnostics now use the intended system tools even when PATH e... 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](https://github.com/openclaw/openclaw/commit/c4facb2bb372e99037f497e2640ca7bdc5cbc5f6) Thanks @vincentkoc. 267 Windows daemon recovery is less likely to miss process detection or cleanup... 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](https://github.com/openclaw/openclaw/commit/2a140e6e6ae8c48edb5bd52d8d177915f0555d70) Thanks @vincentkoc. 268 OpenClaw now keeps config recovery markers, last-known-good snapshots, and... 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](https://github.com/openclaw/openclaw/commit/6daabd23f821c66154739de4b0f103e33343333c) Thanks @vincentkoc. 269 On Windows, Crabbox commands launched through Node package shims now receiv... 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](https://github.com/openclaw/openclaw/commit/54d24cd956ff91f4fa8c4924f17c06798c1e0359) Thanks @vincentkoc. 270 Windows-targeted Crabbox workflows are less likely to fail or fall back to... 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](https://github.com/openclaw/openclaw/commit/d48dcc664bc6e1106a61942a951745886f22d582) Thanks @vincentkoc. 271 Windows users can run `crabbox`, `git`, and other Node-backed tools through... Windows users can run `crabbox`, `git`, and other Node-backed tools through npm-installed command shims without Crabbox stopping before the tool opens. [77f4e45](https://github.com/openclaw/openclaw/commit/77f4e45c3518751b5f586eac193c4aee904f02d9) Thanks @vincentkoc. 272 `openclaw doctor` now checks profiles that omit tool policy settings withou... `openclaw doctor` now checks profiles that omit tool policy settings without treating the valid omission as an error. [03ba09b](https://github.com/openclaw/openclaw/commit/03ba09bfa8676832d55bdc7724e79d9980fdd2d7) 273 `openclaw doctor` no longer shows misleading tool-section warnings when it... `openclaw doctor` no longer shows misleading tool-section warnings when it cannot evaluate a custom preview profile. [420a0e6](https://github.com/openclaw/openclaw/commit/420a0e6fce4b2c5339e535e6b307f50df1c00bb2) Thanks @vincentkoc. 274 `openclaw doctor` now limits preview warnings to tool profiles it can evalu... `openclaw doctor` now limits preview warnings to tool profiles it can evaluate, avoiding misleading configured-grant warnings for unknown profiles. [541f7ff](https://github.com/openclaw/openclaw/commit/541f7ffc6558c0e59a8afca066a9f00884d39b65) Thanks @vincentkoc. 275 Windows users can install OpenClaw from source without dependency setup bei... Windows users can install OpenClaw from source without dependency setup being blocked by the installer forcing npm or pnpm scripts through `cmd.exe`. [1252378](https://github.com/openclaw/openclaw/commit/1252378018f899bfc110914bac7cba94b65b8930) Thanks @vincentkoc. 276 Isolated cron jobs using `deleteAfterRun` now remove their temporary sessio... 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](https://github.com/openclaw/openclaw/pull/84794) Related [#84707](https://github.com/openclaw/openclaw/issues/84707). Thanks @bottenbenny, @turbotheturtle. 277 Individual scheduled jobs can now use their own fallback models, run with f... 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](https://github.com/openclaw/openclaw/pull/93369) Related [#90302](https://github.com/openclaw/openclaw/issues/90302). Thanks @849261680, @walliiee. 278 Cron history now reliably finds entries whose job IDs include extra surroun... 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](https://github.com/openclaw/openclaw/pull/93567) Thanks @alix-007, @vincentkoc. 279 Adding or removing a cron job no longer causes another recurring job that i... Adding or removing a cron job no longer causes another recurring job that is already due to lose its pending run. [#94323](https://github.com/openclaw/openclaw/pull/94323) Thanks @yetval. 280 Word, PowerPoint, and Excel document reads and writes now use the intended ` 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](https://github.com/openclaw/openclaw/pull/95805) Related [#93326](https://github.com/openclaw/openclaw/issues/93326). Thanks @bhnan, @lzyyzznl, @vincentkoc, @xzh-icenter. 281 Browser automation users keep the same reference-rich snapshots, including... Browser automation users keep the same reference-rich snapshots, including useful branches in compact results, with less avoidable processing during snapshot generation. [#96072](https://github.com/openclaw/openclaw/pull/96072) Thanks @vincentkoc. 282 Fixes timed-out commands and interrupted core updates on Windows sometimes... 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](https://github.com/openclaw/openclaw/commit/a192b2ea52b3166a7d190bf5f60f3feb030306bb) Thanks @vincentkoc. 283 Windows users are less likely to see agent-managed tool installs fail while... 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](https://github.com/openclaw/openclaw/commit/a5fde9119c9c50685a392bff078a2f76a03d749d) 284 Windows setup and runtime checks now find required tools more reliably by u... 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](https://github.com/openclaw/openclaw/commit/d3b44442f6c8bedd765dc20a06316d3420b5d854) Thanks @vincentkoc. 285 SDK runs created with `timeoutMs 0` now keep the requested zero timeout without an unwanted client-side watchdog. [2bdcc83](https://github.com/openclaw/openclaw/commit/2bdcc8314d3fce9ee2d0300759cd6a1d9bb45a7d) Thanks @vincentkoc. 286 Stalled OpenClaw commands now stop reliably even when callers supply extrem... Stalled OpenClaw commands now stop reliably even when callers supply extremely large execution or idle-output timeouts. [1425bb3](https://github.com/openclaw/openclaw/commit/1425bb3a03189813787194c23b8a38518166005a) Thanks @vincentkoc. 287 Commands given extremely large timeout settings now use a safe maximum inst... Commands given extremely large timeout settings now use a safe maximum instead of failing because the runtime cannot schedule the requested wait. [66b94ba](https://github.com/openclaw/openclaw/commit/66b94ba577b8836a4afa7cb59cd1a749bf2a8d68) 288 Provider-specific tool allow/deny settings now align more consistently with... 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](https://github.com/openclaw/openclaw/commit/8f2882f94affbe5e89994ae175fdaf7304d7b392) 289 Larger OpenClaw configurations can initialize and generate UI hints more ef... Larger OpenClaw configurations can initialize and generate UI hints more efficiently, while sensitive fields continue to be marked the same way. [#55018](https://github.com/openclaw/openclaw/pull/55018) Thanks @huangyandi-red, @vincentkoc, @xdhuangyandi. 290 Config changes that still need a manual gateway restart now show a clear re... 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](https://github.com/openclaw/openclaw/pull/83041) Related [#46797](https://github.com/openclaw/openclaw/issues/46797). Thanks @stache73, @xuruiray. 291 Help for `doctor`, `gateway`, `models`, `plugins`, `sessions`, and `tasks`... 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](https://github.com/openclaw/openclaw/pull/89628) Thanks @yyzquwu. 292 OpenTelemetry trace backends such as Langfuse now show the actual provider/... OpenTelemetry trace backends such as Langfuse now show the actual provider/model name instead of "unknown" for slash-qualified model IDs. [#89981](https://github.com/openclaw/openclaw/pull/89981) Thanks @mycarrysun, @vincentkoc. 293 Malformed or older device-pairing records no longer stop `openclaw devices... Malformed or older device-pairing records no longer stop `openclaw devices list` from showing pending approval requests, while valid roles still appear normally. [#93504](https://github.com/openclaw/openclaw/pull/93504) Thanks @ly-wang19. 294 OpenClaw now rejects SSH targets with stray leading or trailing colons befo... 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](https://github.com/openclaw/openclaw/pull/93887) Thanks @miorbnli. 295 Users whose non-interactive setup fails its local gateway health check now... 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](https://github.com/openclaw/openclaw/pull/93994) Related [#93947](https://github.com/openclaw/openclaw/issues/93947). Thanks @bk-z1, @nianjiuzst. 296 Gateway health and probe checks now accept the same custom `--port` used to... 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](https://github.com/openclaw/openclaw/pull/94687) Related [#79100](https://github.com/openclaw/openclaw/issues/79100). Thanks @bryantegomoh, @ozthedivine. 297 `gateway --force` now detects IPv4-only processes occupying the gateway por... `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](https://github.com/openclaw/openclaw/pull/94949) Related [#94426](https://github.com/openclaw/openclaw/issues/94426). Thanks @sunlit-deng, @vincentkoc, @wangwllu. 298 `openclaw config validate` now accepts command-based MCP server setups that... `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](https://github.com/openclaw/openclaw/pull/95102) Related [#95082](https://github.com/openclaw/openclaw/issues/95082). Thanks @ken-jo, @lzyyzznl. 299 CLI image edits can now return multiple variants in one command with `--cou... 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](https://github.com/openclaw/openclaw/pull/95300) Thanks @ly-wang19. 300 `openclaw sessions export-trajectory` now finds sessions that other session... `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](https://github.com/openclaw/openclaw/pull/95570) Related [#95568](https://github.com/openclaw/openclaw/issues/95568). Thanks @youngting520. 301 Fixes `infer inspect --name <id> --json` showing flags that the matching CL... 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](https://github.com/openclaw/openclaw/pull/95719) Thanks @ly-wang19, @vincentkoc. 302 People inspecting very large or out-of-order sessions can open usage detail... 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](https://github.com/openclaw/openclaw/pull/96019) Thanks @vincentkoc. 303 Operators can now set up the auth monitor, systemd timer, and Termux widget... 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](https://github.com/openclaw/openclaw/commit/af3e509ab823dac5f91b16915ee7067b369656a3) Thanks @vincentkoc. 304 Native Windows crabbox hydration now selects the required Windows daemon jo... 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](https://github.com/openclaw/openclaw/commit/d5d9a8256d6bc2ff8d699152923357bd61c606c1) Thanks @vincentkoc. 305 People setting a local agent avatar can avoid missing images by keeping wor... 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](https://github.com/openclaw/openclaw/pull/78884) Related [#65312](https://github.com/openclaw/openclaw/issues/65312). Thanks @wangjieweb3-design, @nyx-nocturna. 306 OpenClaw's default agent instructions now ask agents to check for suitable... 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](https://github.com/openclaw/openclaw/pull/86608) Thanks @cablackmon. 307 Plugin authors can now use the documented `targetSessionKey` on `subagent_e... 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](https://github.com/openclaw/openclaw/pull/95191) Related [#95186](https://github.com/openclaw/openclaw/issues/95186). Thanks @ken-jo, @mahaohao-ch. 308 ClawHub skill links in OpenClaw docs and showcase cards now open the canoni... 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](https://github.com/openclaw/openclaw/pull/95972) Thanks @patrick-erichsen. 309 SDK applications now receive `tool 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](https://github.com/openclaw/openclaw/pull/95383) Thanks @ly-wang19. 310 Fixes cron add and update requests being rejected when recognized job field... 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](https://github.com/openclaw/openclaw/pull/95674) Related [#95407](https://github.com/openclaw/openclaw/issues/95407). Thanks @nassiel, @zw-xysk. 311 Codex subagent monitoring handles large sets of child agents and transcript... 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](https://github.com/openclaw/openclaw/pull/96085) Thanks @vincentkoc. 312 Fixes native Windows crabbox hydration getting stuck or missing handoffs wh... 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](https://github.com/openclaw/openclaw/commit/f354889efa1c8bafca9304767afba2c270add549) Thanks @vincentkoc.
Release

2026.6.10

2026.6.10

30 changes Open upstream ↗
01 Adds [`/fast auto`](https //docs.openclaw.ai/tools/thinking) so short conversational calls can start quickly, while longer or fallback work returns to normal mode with the effective state still visible. [PR #85104](https://github.com/openclaw/openclaw/pull/85104), [Issue #85087](https://github.com/openclaw/openclaw/issues/85087). Thanks @alexph-dev and @vincentkoc. 02 Shows the effective automatic fast-mode state in status instead of reducing... Shows the effective automatic fast-mode state in status instead of reducing it to on/off, and avoids carrying a cleared Codex service-tier choice into later runs. [8845f2f](https://github.com/openclaw/openclaw/commit/8845f2fd6143becc37110ab5021dd5e1517f0cdc). Thanks @vincentkoc. 03 Keeps automatic fast-mode timing consistent when a turn switches to a fallb... Keeps automatic fast-mode timing consistent when a turn switches to a fallback model. [075091d](https://github.com/openclaw/openclaw/commit/075091d0cab94053ff094268efc0acb225d514f4). Thanks @vincentkoc. 04 Keeps the original fast-mode timing and progress behavior when a live model... Keeps the original fast-mode timing and progress behavior when a live model switch retries a turn. [d1e190f](https://github.com/openclaw/openclaw/commit/d1e190fbe822ad6ae4e660ce376b60ec9fdb0fba). Thanks @vincentkoc. 05 Keeps automatic fast-mode progress and reset behavior distinct from explici... Keeps automatic fast-mode progress and reset behavior distinct from explicit fast mode after a run switches modes. [20aec98](https://github.com/openclaw/openclaw/commit/20aec985545db7a24ea066e5bff1c47b789cbded). Thanks @vincentkoc. 06 Shows the effective fast-mode value in connected-agent sessions instead of... Shows the effective fast-mode value in connected-agent sessions instead of the configured value, so status reflects what the session is actually using. [9509aa0](https://github.com/openclaw/openclaw/commit/9509aa063c0ef3e32be1516fcb0c23606b6d5c7b). Thanks @vincentkoc. 07 Keeps the effective automatic fast-mode setting visible through fallback tr... Keeps the effective automatic fast-mode setting visible through fallback transitions in connected-agent sessions. [7f5423c](https://github.com/openclaw/openclaw/commit/7f5423ca97174a3f16c211db54a6c96e5b3a6089). Thanks @vincentkoc. 08 Keeps automatic fast-mode timing and progress consistent when reply and [sc... Keeps automatic fast-mode timing and progress consistent when reply and [scheduled-agent runs](https://docs.openclaw.ai/automation/cron-jobs) retry or switch models. [6c29f88](https://github.com/openclaw/openclaw/commit/6c29f88913796bfe05696556cd82246670b126f0). Thanks @vincentkoc. 09 Keeps fast-mode cleanup and status consistent when a run switches between f... Keeps fast-mode cleanup and status consistent when a run switches between fallback models. [c4694f8](https://github.com/openclaw/openclaw/commit/c4694f84ffd52064f89609098cc4f8570fb72e1b). Thanks @vincentkoc. 10 Shows the automatic fast-mode reset only when fallback work is finished, so... Shows the automatic fast-mode reset only when fallback work is finished, so status messages match the end of the transition. [f4d93c8](https://github.com/openclaw/openclaw/commit/f4d93c855bff6930f5e5d739b95e0c2612ec4899). Thanks @vincentkoc. 11 Shows reset and delivery progress at the right time when auto-reply or othe... Shows reset and delivery progress at the right time when auto-reply or other follow-up runs retry or leave automatic fast mode. [684e440](https://github.com/openclaw/openclaw/commit/684e44013778bd47d159e64b2595e4d09a92ebea). Thanks @vincentkoc. 12 Prevents the next turn after a [scheduled message](https //docs.openclaw.ai/automation/cron-jobs) from losing what was delivered or whether delivery failed, so replies can use that context without exposing cron details in the channel. [PR #93580](https://github.com/openclaw/openclaw/pull/93580). Thanks @jalehman and @scotthuang. 13 Prevents streamed channel progress from dropping a repeated status that rep... Prevents streamed channel progress from dropping a repeated status that represents a separate step, so each meaningful step remains visible in the draft. [2d42e52](https://github.com/openclaw/openclaw/commit/2d42e52ac5513e0bd824b8a0e069db83e04bc056). Thanks @vincentkoc. 14 Prevents keyed streamed progress from staying on an older status, so viewer... Prevents keyed streamed progress from staying on an older status, so viewers see the latest state instead of stale text. [8bb6472](https://github.com/openclaw/openclaw/commit/8bb6472c4de2eea06f1ba31d6ed679e2ac4581b0). Thanks @vincentkoc. 15 Treats Zhipu/GLM overload responses as overloads, so a configured fallback... Treats Zhipu/GLM overload responses as overloads, so a configured fallback is selected for the right reason instead of following the wrong failover path. [PR #93241](https://github.com/openclaw/openclaw/pull/93241), [Issue #93211](https://github.com/openclaw/openclaw/issues/93211). Thanks @0xghost42 and @zhengli0922. 16 Prevents Telegram, Slack, and Discord `/think` menus for live Ollama models... Prevents Telegram, Slack, and Discord `/think` menus for live Ollama models from hiding supported levels, so users can choose valid reasoning settings without guessing. [PR #94067](https://github.com/openclaw/openclaw/pull/94067), [Issue #93835](https://github.com/openclaw/openclaw/issues/93835). Thanks @civiltox and @openperf. 17 Expands [`zai/glm-5.2` thinking choices](https //docs.openclaw.ai/tools/thinking) beyond binary on/off and sends high or max requests as the intended Z.AI reasoning effort. [PR #94136](https://github.com/openclaw/openclaw/pull/94136). Thanks @borclaw. 18 Prevents bundled [Z.ai GLM-5 models](https //docs.openclaw.ai/providers/zai) from falling through to OpenAI and producing misleading API-key errors, so they use Z.AI by default. [PR #94461](https://github.com/openclaw/openclaw/pull/94461), [Issue #94269](https://github.com/openclaw/openclaw/issues/94269). Thanks @chrysb and @pandah97. 19 Adds GLM-5.2 and Kimi K2.7 Code to the [OpenCode Go catalog](https //docs.openclaw.ai/providers/opencode-go) with current limits, so users can select the models from OpenClaw. [66f84a9](https://github.com/openclaw/openclaw/commit/66f84a9bf1082de26f92b2b3741cc2f34aba34fa). Thanks @samson1357924. 20 Corrects `kimi-k2 Corrects `kimi-k2.7-code` capability listings so OpenCode Go users are not offered unsupported video prompts when the model accepts text and images. [715dc71](https://github.com/openclaw/openclaw/commit/715dc718fc5a2a5d6f7e9ec16e0269382b726e83). 21 Prevents first-run setup from skipping the selected provider's credential p... Prevents first-run setup from skipping the selected provider's credential prompt after plugin installation, so onboarding continues with that provider instead of falling back to OpenAI. [PR #95792](https://github.com/openclaw/openclaw/pull/95792), [Issue #95765](https://github.com/openclaw/openclaw/issues/95765). Thanks @snowzlmbot. 22 Adds a durable [session-transcript SDK contract](https //docs.openclaw.ai/plugins/sdk-runtime) so plugins can read, append, publish, and lock the intended transcript without treating [legacy file paths](https://docs.openclaw.ai/plugins/sdk-subpaths) as identity. [PR #95030](https://github.com/openclaw/openclaw/pull/95030). Thanks @jalehman. 23 Prevents a shared direct-message [session](https //docs.openclaw.ai/concepts/session) from carrying the previous [channel's identity](https://docs.openclaw.ai/channels/channel-routing) after a switch, so status, reactions, threads, and message references target the current channel. [PR #95328](https://github.com/openclaw/openclaw/pull/95328), [Issue #95325](https://github.com/openclaw/openclaw/issues/95325). Thanks @gorkem2020, @jalehman, and @zengwen-dt. 24 Keeps empty prompts separate from hook-added context during compaction or s... Keeps empty prompts separate from hook-added context during compaction or session reuse in [Copilot and Codex sessions](https://docs.openclaw.ai/plugins/copilot), so prompt boundaries remain consistent. [PR #94838](https://github.com/openclaw/openclaw/pull/94838). Thanks @vincentkoc. 25 Keeps [approval-sensitive Gateway and plugin tools](https //docs.openclaw.ai/plugins/hooks) protected when connected extensions change, so configured safeguards continue to apply. [PR #94545](https://github.com/openclaw/openclaw/pull/94545). Thanks @jesse-merhi. 26 Prevents authenticated package-source tokens from being sent to an allowed... Prevents authenticated package-source tokens from being sent to an allowed redirect on another origin, while the valid redirected download still completes. [b0df6dc](https://github.com/openclaw/openclaw/commit/b0df6dc10eb5b9e9fdca93063a16316f8589954e). 27 Prevents [Docker](https //docs.openclaw.ai/install/docker) and [Podman](https://docs.openclaw.ai/install/podman) setup from running unbounded on hosts where GNU timeout is installed as `gtimeout`, so image pulls, builds, and detached startup receive the intended guard. [62b2e9e](https://github.com/openclaw/openclaw/commit/62b2e9ef14b4be6fd396621c8e5e248331f08695). 28 Prevents cleared [Codex service tiers](https //docs.openclaw.ai/tools/thinking) from being persisted as explicit stale state, so resumed or switched conversations use the normal default instead. [cd32d9f](https://github.com/openclaw/openclaw/commit/cd32d9ff91caf84c0ead38796ef096cdc5bea06e). Thanks @vincentkoc. 29 Restores [ClawHub discovery](https //docs.openclaw.ai/plugins/reference/stepfun) for the [StepFun provider](https://docs.openclaw.ai/providers/stepfun) plugin, so operators can install it through either ClawHub or npm. [ecb82f1](https://github.com/openclaw/openclaw/commit/ecb82f1be93024be23c1b191ebea92c63230b6c0). Thanks @vincentkoc. 30 Keeps core [`openclaw doctor`](https //docs.openclaw.ai/gateway/doctor) diagnostics in their normal order before extension checks, making lint and repair output easier to follow. [PR #86627](https://github.com/openclaw/openclaw/pull/86627). Thanks @giodl73-repo.
Release

2026.6.9

2026.6.9

435 changes Open upstream ↗
01 **Richer Telegram delivery ** Telegram now sends rich HTML, preserves rich markdown and sticker paths, renders progress drafts and command output more faithfully, normalizes HTML tables safely, and keeps mentions and spooled handlers on the right delivery path. (#93286, #93164, #93124, #93364, #93130, #93002, #93088, #93281, #94891, #94856) Thanks @obviyus, @vincentkoc, @goutamadwant, @kesslerio, @NianJiuZst, @SweetSophia, @Marvinthebored, @aaajiao, @zhangguiping-xydt, @zhangqueping, and @jairrab. 02 **More dependable agent recovery ** retries, terminal outcomes, usage after compaction, session history repair, and reply reconciliation now keep more interrupted or partial turns moving toward a visible final result. (#92191, #93073, #93228, #93084, #93469, #93291, #90943) Thanks @ai-hpc, @lml2468, @fuller-stack-dev, @Hollychou924, @leno23, @de1tydev, @425072024, @wuwahe3, @drvoss, @yetval, @sandieman2, and @vincentkoc. 03 **A stronger Codex integration ** Codex gains automatic plugin approvals, GPT-5.3 Spark OAuth routing, remote-node `exec` as a dynamic tool, and more reliable app-server teardown and terminal outcomes. (#92625, #89133, #93654, #91767, #93287) Thanks @kevinslin, @VACInc, @vincentkoc, @JPKay-AI, and @aliahnaf2013-max. 04 **Standalone official provider plugins ** external provider packages are now first-class npm releases, externally installed channel plugins load at Gateway startup, and StepFun is available from npm and ClawHub. (#93470) Thanks @sunlit-deng, @cxdnicole, and @vincentkoc. 05 **More capable web and native clients ** the Control UI adds a session workspace rail and extension health, iOS adds Watch controls, and Android shows chat context. (#92856, #91952, #93387, #92837) Thanks @Solvely-Colin, @jalehman, @joshavant, and @Tosko4. 06 **More useful search and skills ** Codex Hosted Search is available, key-free search providers remain deliberate opt-ins, and ClawHub skill installs retain verified source provenance. (#93446, #93616, #93283, #93506) Thanks @fuller-stack-dev, @davemorin, @momothemage, @nmccready-tars, and @vincentkoc. 07 Providers and auth add Codex Hosted Search, improve Gemini CLI OAuth behind proxies, and keep external provider onboarding on current choices and package metadata. (#93446, #92815) Thanks @fuller-stack-dev, @yetval, @EvetteYoung, and @vincentkoc. 08 Plugins and installs externalized official providers publish as independent npm packages, Gateway discovers installed channel plugins at startup, and StepFun installs from npm or ClawHub. (#93470) Thanks @sunlit-deng, @cxdnicole, and @vincentkoc. 09 Dashboard and mobile add a session workspace rail, plugin health in status, compact cron lists, and iOS Watch controls. (#92856, #91952, #93395, #93387) Thanks @Solvely-Colin, @jalehman, @yu-xin-c, @centralpc, @joshavant, and @vincentkoc. 10 Codex, observability, and skills add automatic plugin approvals and SecretRefs, preserve ClawHub skill provenance, add OpenTelemetry log export, and expose remote-node execution to Codex when a node is connected. (#92625, #94324, #93283, #94561, #93654) Thanks @kevinslin, @kevinlin-openai, @momothemage, @nmccready-tars, @jesse-merhi, @vincentkoc, and @JPKay-AI. 11 QA and release engineering QA scenarios now use YAML, with broader profile evidence and release coverage for the plugin and channel matrix. Thanks @vincentkoc. 12 **PR #92154** fix(qqbot) gate private group commands and close strict command visibility gaps. Thanks @sliverp. 13 **PR #90463** refactor add session accessor seam with gateway consumer. Thanks @jalehman. 14 **PR #88656** Drop reasoning-only length turns from replay **PR #88656** Drop reasoning-only length turns from replay. Thanks @abel-zer0. 15 **PR #92856** feat(webui) add session workspace rail. Thanks @Solvely-Colin. 16 **PR #92845** docs(browser-control) document OPENCLAW_EAGER_BROWSER_CONTROL_SERVER requirement. Related #92841. Thanks @liuhao1024 and @jeugregg. 17 **PR #82366** fix use passive periodic sqlite wal checkpoints. Related #81715. Thanks @honor2030 and @KrasimirKralev. 18 **PR #92815** fix(google) route Gemini CLI OAuth through the env proxy (#46184). Thanks @yetval and @EvetteYoung. 19 **PR #91331** fix(mattermost) merge progress preview lines by identity. Related #89761. Thanks @iloveleon19 and @leonthe8th and @vincentkoc. 20 **PR #92909** fix(tui) keep spinner active when toggling tools. Related #49763. Thanks @ZengWen-DT and @Zeng-wen and @vincentkoc and @CrimsonDump. 21 **PR #92904** fix(elevenlabs) use current TTS model ids. Thanks @vortexopenclaw and @vincentkoc. 22 **PR #92642** fix #86872 Subagent run reports success but fails to write output file. Thanks @zhangguiping-xydt and @vincentkoc and @zapper35. 23 **PR #89122** refactor route command session reads through seam. Thanks @jalehman. 24 **PR #90943** fix(reply) deliver final reply when queued follow-up claims session; scope dedupe to routed thread. Thanks @sandieman2 and @vincentkoc. 25 **PR #92894** fix(skills) keep managed prompt paths readable. Related #92875. Thanks @kesslerio and @sallyom. 26 **PR #39617** fix reload config in slash command routing so dmScope is respected. Related #39605. Thanks @Ciward. 27 **PR #92191** fix(agents) retry thinking-only errored turns. Related #91953. Thanks @ai-hpc and @lml2468. 28 **PR #92891** fix(memory) clean stale reindex temp files. Related #92874. Thanks @ZengWen-DT and @Zeng-wen and @vincentkoc and @potterdigital. 29 **PR #93005** Add OpenRouter Fusion guidance and prompt context **PR #93005** Add OpenRouter Fusion guidance and prompt context. Related #92984. Thanks @sallyom. 30 **PR #88792** fix(state) harden sqlite path caching. Thanks @vincentkoc. 31 **PR #93022** fix(gateway) repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49. 32 **PR #93020** fix(telegram) cool down transient sendChatAction failures. Related #56096. Thanks @Boulea7 and @sumaiazaman and @Pick-cat and @cal-rufus. 33 **PR #93002** fix(telegram) clear progress drafts before visible tool output. Thanks @zhangguiping-xydt. 34 **PR #89160** fix(agents) detect truncated API responses to prevent silent session hang. Related #89051. Thanks @joelnishanth and @ArthurusDent. 35 **PR #93009** fix(agents) make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv. 36 **PR #92991** fix(agents) tolerate missing attribution baseUrl. Related #92974. Thanks @samrusani and @Haderach-Ram. 37 **PR #92913** fix(opencode-go) register model catalog to fix context window detection. Related #92912. Thanks @kumaxs. 38 **PR #89129** refactor route bundled plugin session callers through seam. Thanks @jalehman. 39 **PR #93084** fix(agents) preserve fresh usage after compaction. Related #50795. Thanks @Hollychou924 and @leno23 and @de1tydev and @425072024 and @vincentkoc and @wuwahe3. 40 **PR #92869** fix #90333 [Bug]: Discord image build aborts at step 66 — openclaw-build-messaging-plugins.py exits 1. Thanks @zhangguiping-xydt and @vincentkoc and @chriskosys. 41 **PR #93011** fix(gateway) accept file-only input on /v1/responses (parity with image-only). Thanks @yetval and @vincentkoc. 42 **PR #92915** Convert QA scenarios to YAML files **PR #92915** Convert QA scenarios to YAML files. Thanks @RomneyDa. 43 **PR #91767** Fix one-shot Codex app-server teardown **PR #91767** Fix one-shot Codex app-server teardown. Thanks @aliahnaf2013-max. 44 **PR #92625** feat(codex) add auto plugin approvals. Thanks @kevinslin. 45 **PR #91587** test(qa) add qa run --qa-profile and unified output summary/evidence. Thanks @RomneyDa. 46 **PR #93104** test(reply) seed channel fixtures for dedupe tests. Thanks @RomneyDa. 47 **PR #93107** test(reply) preserve telegram dedupe fallback. Thanks @RomneyDa. 48 **PR #92954** fix(memory) accept local default model path migration. Thanks @mushuiyu886 and @vincentkoc. 49 **PR #90936** fix(agents) do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon. 50 **PR #90812** fix(voice-call) preserve live Twilio streams in stale reaper. Related #79121. Thanks @Takhoffman and @sahibzada-allahyar and @donkeykong91. 51 **PR #93094** fix(whatsapp) bound socket operations. Thanks @mcaxtr. 52 **PR #91629** fix(scripts) add database-first legacy store guard. Related #91628. Thanks @galiniliev. 53 **PR #93124** fix(telegram) render progress drafts as rich previews. Thanks @Marvinthebored. 54 **PR #93109** test(qa) embed profile scorecard evidence. Thanks @RomneyDa. 55 **PR #87298** test add temp directory helper guidance. Thanks @hxy91819. 56 **PR #92318** fix(cron) require explicit message target proof. Thanks @hxy91819. 57 **PR #93137** fix(imessage) honor disabled reply actions. Related #92142. Thanks @omarshahine and @dprev. 58 **PR #93134** fix(feishu) pass card_msg_content_type to get full card content (fixes #78289). Thanks @liuhao1024 and @vincentkoc and @longdoubled7. 59 **PR #93138** fix(agents) preserve literal current session resolution. Thanks @liuhao1024 and @vincentkoc. 60 **PR #91225** fix #83830 [Bug]: Dreaming diary repeats "first day" narrative every sweep — same early memories dominate snippets. Thanks @mushuiyu886 and @YinLiuLiu66. 61 **PR #93153** simplify QA evidence profile and mappings/coverage shape **PR #93153** simplify QA evidence profile and mappings/coverage shape. Thanks @RomneyDa. 62 **PR #93164** fix(telegram) preserve rich markdown line breaks. Thanks @vincentkoc. 63 **PR #93119** fix accept mixed source/dist bundled roots. Related #87730. Thanks @arkyu2077 and @vincentkoc and @jasonftl. 64 **PR #93130** fix(telegram) preserve sticker media paths. Related #83748. Thanks @goutamadwant and @vincentkoc and @aaajiao. 65 **PR #93073** fix(agents) retry empty post-tool final turns. Thanks @fuller-stack-dev. 66 **PR #91784** fix(voice-call) require realtime websocket path boundary. Thanks @jason-allen-oneal. 67 **PR #89133** Restore GPT-5 **PR #89133** Restore GPT-5.3 Codex Spark OAuth routing. Thanks @VACInc. 68 **PR #91996** refactor prune unused iOS code. Thanks @zats. 69 **PR #90231** fix #69443 [Bug] Subagent RPC callback to WeChat session key routed to main session instead. Thanks @zhangguiping-xydt and @sliverp and @chen11221. 70 **PR #89920** fix(matrix) replace recovered command progress lines. Thanks @bdjben and @jesse-merhi. 71 **PR #93159** fix(tui) keep parent stdin paused after exit. Thanks @fuller-stack-dev. 72 **PR #93201** fix(auto-reply) clear pending-final state before honoring post-send abort (#89115). Thanks @amknight and @danashburn. 73 **PR #93228** fix(agents) replace prose terminal classifiers. Thanks @fuller-stack-dev. 74 **PR #93231** fix(status) correct pinned model clear hint. Thanks @hxy91819. 75 **PR #92428** fix(qqbot) keep markdown table chunks valid. Thanks @sliverp. 76 **PR #93220** fix(status) avoid stale session context windows. Thanks @hxy91819. 77 **PR #91957** perf(sessions) share one enumeration across archive retention sweeps. Thanks @amknight. 78 **PR #93281** fix(telegram) recover pid-reused ingress claims. Thanks @obviyus. 79 **PR #93287** fix(codex) preserve terminal outcome ordering. 80 **PR #93182** fix(memory) clean rollback-journal reindex temp sidecar on NFS stores. Thanks @Alix-007. 81 **PR #93283** Persist ClawHub skill install provenance **PR #93283** Persist ClawHub skill install provenance. Related #92077. Thanks @momothemage and @nmccready-tars. 82 **PR #88872** fix attribute spawned task runs to child agent. Related #66670. Thanks @Alix-007 and @Neomail2. 83 **PR #92837** fix(android) show live chat context usage. Thanks @Tosko4. 84 **PR #93325** fix(cli) harden official plugin recovery. Thanks @vincentkoc. 85 **PR #93286** feat(telegram) send rich messages as rich html. Thanks @obviyus. 86 **PR #92910** fix(memory-core) safely refresh qmd index during collection repair. 87 **PR #93329** fix(cli) allow zero Discord timeout duration. Related #93327. Thanks @rohitjavvadi. 88 **PR #91625** fix(cron) add cron edit --clear-model to clear a job's model override. Thanks @ly-wang19. 89 **PR #91691** [AI] fix(memory) prevent empty-string expectedModel in resolveMemory…. Thanks @xydt-tanshanshan. 90 **PR #93006** fix(tui) keep stderr visible when local shell stdout fills the output cap. Thanks @Alix-007. 91 **PR #93001** fix(daemon) prefer stderr over stale stdout in gateway restart diagnostics. Thanks @Alix-007. 92 **PR #91117** refactor remove dead code and improve string concatenation. Thanks @Pommelle. 93 **PR #90893** fix(models) mask paste-token input in CLI auth prompt. Thanks @anurag-bg-neu. 94 **PR #90571** fix(configure) mask gateway password input in CLI wizard prompt. Thanks @anurag-bg-neu. 95 **PR #91768** fix(ios) respect chat header safe area. Thanks @zats. 96 **PR #93245** fix(cron) resolve lastRunStatus in cron list/show human output. Thanks @ly-wang19. 97 **PR #78765** fix(tui) avoid inserting spaces into long CJK text. Thanks @hpt. 98 **PR #91776** fix(ios) refresh permission rows after grants. Thanks @zats. 99 **PR #92817** fix(cron) trust agent output when channel is unresolved without explicit delivery. Related #90664. Thanks @fsdwen and @dertbv. 100 **PR #93297** fix(control-ui) respect agents.defaults.timeFormat for timestamps. Related #58147. Thanks @ZengWen-DT and @Zeng-wen and @TommoT2. 101 **PR #93364** Fix Telegram rich progress command output **PR #93364** Fix Telegram rich progress command output. Thanks @obviyus. 102 **PR #91952** feat(status) surface plugin health. Thanks @jalehman. 103 **PR #75025** fix(heartbeat) refresh stale Current time line on every helper call (#44993). Thanks @MoerAI and @mclee1975. 104 **PR #90992** docs(windows) fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0 idle-termination. Thanks @spencer2211. 105 **PR #86544** fix(cli) show Gemini CLI runtime auth status. Related #79585. Thanks @giodl73-repo and @fabricefoy. 106 **PR #88945** fix(plugins) serialize binding approval saves. Related #64065. Thanks @Alix-007 and @lihaokun. 107 **PR #90115** fix(gateway) pass managed inbound PDFs through chat.send. Related #90097. Thanks @harjothkhara and @joeykrug. 108 **PR #74613** docs(cli) add agent selector to CLI backend quick start. Related #68940. Thanks @vyctorbrzezowski and @drmarcopapa. 109 **PR #89121** refactor add transcript reader seam. Thanks @jalehman. 110 **PR #84434** fix(cli) disable ScheduleWakeup/CronCreate in --print claude runs. Thanks @SkyWolfDreamer. 111 **PR #66985** fix(agents) resolve requestedNode to canonical ID before boundNode comparison. Related #87213. Thanks @mujiannan. 112 **PR #91488** fix(reply) project preflight compaction gate by next-input size on fresh tokens. Thanks @yetval. 113 **PR #93353** fix(plugins) require owner for plugin writes. Thanks @eleqtrizit. 114 **PR #91499** fix(cron) preserve scheduled turn tool policy [AI]. Thanks @mmaps. 115 **PR #90412** fix(sessions) cache warm transcript reads to avoid per-turn re-parse. Related #83943. Thanks @Alix-007 and @yyds-xxxx. 116 **PR #93118** fix(gateway) guard fast-path startup migrations. Related #93032. Thanks @openperf and @Haderach-Ram. 117 **PR #93355** fix(ci) verify performance workflow downloads. Thanks @eleqtrizit. 118 **PR #93358** fix(outbound) guard cross-context message mutations. Thanks @eleqtrizit. 119 **PR #93362** fix(flock) bind allow-always to wrapped command. Thanks @eleqtrizit. 120 **PR #92578** refactor(whatsapp) add inbound admission foundation. Thanks @mcaxtr. 121 **PR #89547** Control Telegram group history context **PR #89547** Control Telegram group history context. Thanks @mmaps. 122 **PR #89201** refactor add transcript runtime identity contract. Thanks @jalehman. 123 **PR #93357** fix(plugins) enforce install policy in wrappers. Thanks @eleqtrizit. 124 **PR #93156** fix(doctor) import default-agent auth profiles into sqlite. Related #93145. Thanks @Pick-cat and @sallyom and @Tazio7. 125 **PR #93179** Add slim evidence mode for QA profile evidence **PR #93179** Add slim evidence mode for QA profile evidence. Thanks @RomneyDa. 126 **PR #93349** fix(control-ui) keep workboard card titles visible in overflowing columns (fixes #91717). Thanks @Pick-cat and @NicoBoom13. 127 **PR #93324** fix(cli) accept --no-color after subcommands. Thanks @ooiuuii. 128 **PR #89621** Return Google Chat thread metadata from message sends **PR #89621** Return Google Chat thread metadata from message sends. Thanks @franco-viotti. 129 **PR #82458** fix(infra) drop duplicated "restart" word in restart-sentinel summary. Thanks @jameswniu. 130 **PR #85471** Suppress cron announce control replies **PR #85471** Suppress cron announce control replies. Related #85421. Thanks @TurboTheTurtle and @leatherneck-33. 131 **PR #85316** fix(auth) keep alias-compatible auth-profile overrides instead of clearing them. Thanks @SkyWolfDreamer. 132 **PR #89260** fix(doctor) separate platform-incompatible skills from missing requirements. Related #89232. Thanks @Alix-007 and @CameronWeller. 133 **PR #90846** fix(media) stop pruning media on write; let the configured timer do it. Thanks @lundog. 134 **PR #88062** fix(logging) avoid stalled warnings for active model calls. Thanks @litang9. 135 **PR #93308** fix(discord) reject malformed realtime consult calls. Thanks @khoek. 136 **PR #93334** fix(whatsapp) notify user when trailing media send fails instead of silent drop. Thanks @rushindrasinha. 137 **PR #92575** fix(sessions) preserve user behavior overrides across daily/idle rollover (#92562) [AI-assisted]. Thanks @harjothkhara and @civiltox. 138 **PR #89124** refactor route auto-reply sessions through session seam. Thanks @jalehman. 139 **PR #93431** fix stabilize transcript cache and CLI env isolation. Thanks @shakkernerd. 140 **PR #93412** fix(discord) suppress tool progress for message-tool replies. Thanks @mgunnin and @vincentkoc. 141 **PR #93409** fix(whatsapp) stop markdownToWhatsApp dropping code spans followed by a digit. Thanks @rushindrasinha. 142 **PR #93295** fix(memory) swap rollback-journal sidecar during atomic reindex. Thanks @Alix-007. 143 **PR #93076** fix(whatsapp) preserve auth on terminal disconnects. Thanks @mcaxtr. 144 **PR #93435** fix(agents) bound autoreview scope. Thanks @vincentkoc. 145 **PR #93279** fix(telegram) restore readable default text sends. Related #93263. Thanks @NianJiuZst and @SweetSophia. 146 **PR #93429** fix(line) cap carousel column text at 60 chars when a title or image is set. Thanks @harjothkhara and @vincentkoc. 147 **PR #93428** fix(agents) resolve configured default model in runEmbeddedAgent (fixes #93419). Thanks @zenglingbiao and @vincentkoc and @danielgerlag. 148 **PR #93427** fix(tui) show activity indicator for system-injected runs. Related #51825. Thanks @ZengWen-DT and @vincentkoc and @Zeng-wen and @AlethiaQuizForge. 149 **PR #90003** feat(policy) cover exec approvals artifact. Thanks @giodl73-repo. 150 **PR #93448** fix(guards) allow auth profile sqlite reader. Thanks @amknight. 151 **PR #93424** fix(mattermost) keep message tool replies in threads. Thanks @amknight and @vincentkoc. 152 **PR #93418** fix(telegram) forward Bot API 10.1 rich_message content to agent. Related #93410. Thanks @xzh-icenter and @vincentkoc and @0pen7ech. 153 **PR #93175** test(qa) taxonomy profiles: includeAllCategories for release profile, update some coverage. Thanks @RomneyDa. 154 **PR #93456** fix(agents) handle string assistant message content. Thanks @vincentkoc. 155 **PR #93441** fix(outbound) ignore schema-padded poll metadata on send. Related #43015. Thanks @weichengdeng and @charzhou. 156 **PR #93443** fix(gateway) block internal HTTP session overrides. Thanks @RichardCao. 157 **PR #93454** fix(sqlite) disable WAL on network filesystems. Thanks @vincentkoc. 158 **PR #90275** test make install-safe-path symlink tests compatible with Windows. Thanks @aniruddhaadak80. 159 **PR #93464** fix(qa) suppress empty WhatsApp debug artifacts. Thanks @vincentkoc. 160 **PR #90861** fix(cli) preserve sessions_yield over MCP. Related #77426. Thanks @zhangguiping-xydt and @jarvisagimuspicard-hub. 161 **PR #90946** fix(infra) preserve inherited gateway PID across reparent during cleanup. Thanks @amittell. 162 **PR #92220** fix(media) extract large managed inbound PDFs via media-understanding. Related #90096, #90097. Thanks @amknight and @joeykrug. 163 **PR #91208** fix #91047 Plugin session-extension registry not pinned; sessions.pluginPatch fails after agent/subagent plugin-load churn. Thanks @mushuiyu886 and @teamadams. 164 **PR #92111** fix(update) restart managed gateway when update handoff fails after stop. Related #92088. Thanks @yetval and @ofan. 165 **PR #93238** fix(agents) honor disabled envelope timestamps at model boundary. Thanks @osolmaz. 166 **PR #93343** fix(codex) de-duplicate commentary notes across the raw response lane. Related #93296. Thanks @Marvinthebored and @Peetiegonzalez. 167 **PR #93361** fix(openshell) pin mirror remote mutations. Thanks @eleqtrizit. 168 **PR #93354** fix(discord) block cross-provider guild admin actions. Thanks @eleqtrizit. 169 **PR #92178** fix(gateway) normalize malformed paired access lists. Related #90654. Thanks @wangmiao0668000666 and @EmilioNicolas. 170 **PR #85254** perf(plugins) thread prepared manifestPlugins through runtime model-id normalize chain. Thanks @zeroaltitude. 171 **PR #93489** Add ClawHub content rights docs to sidebar **PR #93489** Add ClawHub content rights docs to sidebar. Thanks @Patrick-Erichsen. 172 **PR #93466** [AI] fix(feishu) guard against missing inbound in channelRuntime fallback. Thanks @xydt-tanshanshan. 173 **PR #93460** fix(cli) honor --log-level in route-first commands. Related #93457. Thanks @ooiuuii. 174 **PR #93495** fix(cron) clear delivery routing fields from cron edit. Thanks @ly-wang19 and @vincentkoc. 175 **PR #93494** docs point PR landing at maintainer workflow. Thanks @fuller-stack-dev and @vincentkoc. 176 **PR #93487** fix(ui) add agent selector to skills page. Related #78553. Thanks @goutamadwant and @vincentkoc and @xiaobu1112. 177 **PR #93488** fix(discord) apply tool status emojis immediately to avoid override by thinking reactions. Related #92715. Thanks @lzyyzznl and @vincentkoc and @darealgege. 178 **PR #93055** fix(ui) restore provider usage pill in desktop chat composer [AI]. Thanks @harjothkhara. 179 **PR #83156** fix(matrix) accept bracketed display-name mentions. Related #83142. Thanks @wdx-agent-io and @wdongxv. 180 **PR #93333** fix(auto-reply) redact secrets in /debug show and /debug set output. Thanks @Alix-007. 181 **PR #88496** fix(auto-reply) redact secrets in config show output. Related #65623. Thanks @jason-allen-oneal and @coygeek. 182 **PR #93105** fix(doctor) repair null agents.list[].workspace values. Related #77718. Thanks @xydigit-sj and @slideshow-dingo. 183 **PR #73923** fix(ui) preserve gateway token during safe websocket url edits. Related #41545. Thanks @wsyjh8. 184 **PR #88970** fix #85871 [Bug]: Heartbeat scheduler silently fails to fire on 5.20 and all 5.x versions (regression from 4.23). Thanks @zhangguiping-xydt and @vincentkoc and @carlbjson. 185 **PR #93511** fix(imessage) normalize leading NUL echo-cache prefixes. Thanks @vincentkoc and @drvoss. 186 **PR #92594** [Bug] ollama-cloud runtime fails DNS lookup for ai.ollama.com, while ollama/<model>:cloud works. Related #92391. Thanks @zhangguiping-xydt and @vincentkoc and @kvzsolt. 187 **PR #93512** build(docs) finish PowerShell-safe docs formatting. Related #44293. Thanks @vincentkoc and @yil337 and @aniruddhaadak80. 188 **PR #93513** fix(skills) refresh persisted snapshots after restart. Thanks @vincentkoc and @fif911 and @skadauke. 189 **PR #93517** fix(skills) quote skill-creator template description. Thanks @vincentkoc and @parubets. 190 **PR #73976** fix(memory) use per-keyword FTS search in hybrid mode #39484. Thanks @joshuakeithpa-sudo. 191 **PR #93520** fix(workspace) store setup state outside workspace dot-dir. Thanks @vincentkoc and @1qh. 192 **PR #93521** fix(onboard) skip Homebrew prompt on unsupported platforms. Related #68893. Thanks @vincentkoc and @yurivict. 193 **PR #93522** fix(feishu) send post mentions as native at elements. Thanks @vincentkoc and @gavin-ali and @YizukiAme and @Panniantong. 194 **PR #93496** fix(gateway) rotate already-stale generated transcript filename on /reset. Thanks @harjothkhara and @vincentkoc. 195 **PR #93471** fix(cron) preserve aborted isolated-run failure. Thanks @BhargavSatya and @vincentkoc. 196 **PR #93473** fix(memory) report skipped QMD embedding probe. Related #77645. Thanks @TurboTheTurtle and @vincentkoc and @aderius. 197 **PR #93498** fix(ui) preserve CJK IME composition. Related #86035. Thanks @Zhaoqj2016 and @vincentkoc. 198 **PR #93088** fix(telegram) bind bot mentions to assistant identity. Thanks @kesslerio and @vincentkoc. 199 **PR #93499** fix(nodes) return screen snapshots as media. Related #90126. Thanks @zenglingbiao and @vincentkoc and @JeffSteinbok. 200 **PR #93506** fix(skills) trust verified ClawHub source provenance. Thanks @vincentkoc. 201 **PR #93525** agents notify chat exec empty-success completions. Thanks @vincentkoc and @wenkang-xie. 202 **PR #93446** feat add Codex hosted web search. Thanks @fuller-stack-dev. 203 **PR #92883** fix(security) audit open dm tool exposure. Related #55612. Thanks @yu-xin-c and @vincentkoc and @cjg20ss. 204 **PR #93476** fix(mattermost) preserve Codex progress preview. Related #88766. Thanks @goutamadwant and @vincentkoc and @KelTech-Services. 205 **PR #93395** feat(cron) add compact list responses. Related #93366. Thanks @yu-xin-c and @vincentkoc and @centralpc. 206 **PR #93527** fix(cron) preserve model overrides for text payloads. Thanks @vincentkoc and @liaoandi. 207 **PR #90487** fix harden ChatGPT Responses missing content-type streams. Thanks @anyech and @vincentkoc. 208 **PR #93528** fix(gateway) tolerate transient pre-hello clean closes. Thanks @vincentkoc and @ruanrrn. 209 **PR #93529** fix(auto-reply) allow message tool for group attachments. Related #43146. Thanks @vincentkoc and @Robcis. 210 **PR #93291** fix(reply) preserve pending thread evidence when reconciling partial send results. Thanks @yetval and @vincentkoc. 211 **PR #90572** fix(feishu) drop self-authored receive echoes. Thanks @baskduf. 212 **PR #93455** fix(cli) accept --log-level after subcommands. Thanks @ooiuuii and @vincentkoc. 213 **PR #93452** fix(bedrock) strip inference profile prefix from model ID in embedding adapter. Related #79212. Thanks @LiuwqGit and @vincentkoc and @aleck31. 214 **PR #89799** fix(cli) skip compile cache on early Node 24.x to avoid startup deadlock. Related #86550. Thanks @zhangguiping-xydt and @vincentkoc and @renyuliang000. 215 **PR #93469** fix(agents) drop partialJson streaming artifacts from session history repair. Thanks @drvoss and @vincentkoc. 216 **PR #93463** fix(codex) log app-server compaction completion. Related #83932. Thanks @goutamadwant and @vincentkoc and @aounakram. 217 **PR #93562** fix(tui) refresh after external session reset. Related #38966. Thanks @vincentkoc and @wsyjh8 and @yizhanzjz. 218 **PR #93470** fix(plugins) load externally-installed channel plugins at gateway startup. Related #93219. Thanks @sunlit-deng and @vincentkoc and @cxdnicole. 219 **PR #88796** fix(discord) resolve guildId from session channel for search actions. Related #88790. Thanks @SebTardif and @vincentkoc and @mugabuga. 220 **PR #93194** fix(agents) preserve prompt-released session metadata. Related #93193. Thanks @snowzlm. 221 **PR #89483** fix(gateway) project failed agent turns in chat history. Related #89197. Thanks @IWhatsskill and @vincentkoc and @yangiit. 222 **PR #93434** fix avoid parent group allowlist false positive. Related #92684. Thanks @kingrubic and @vincentkoc and @motteman. 223 **PR #93449** fix(feishu) dedupe redelivered text by stable retry identity. Related #46778. Thanks @ZengWen-DT and @vincentkoc and @kingcuty. 224 **PR #93407** AGT-80 AGT-81 Fix Discord ingress ack ordering **PR #93407** AGT-80 AGT-81 Fix Discord ingress ack ordering. Thanks @mgunnin and @vincentkoc. 225 **PR #93439** fix(agents) honor embedded run default model. Related #93419. Thanks @harjothkhara and @vincentkoc and @danielgerlag. 226 **PR #93565** fix(cli) summarize cleanup dry-run by label. Related #76826. Thanks @AgentArcLab and @vincentkoc and @renatomaluhy. 227 **PR #93509** fix(skills) clear orphaned idempotency pointer on corrupt-metadata re-begin. Thanks @Alix-007 and @vincentkoc. 228 **PR #93274** Clarify plugin channel config additional-property errors **PR #93274** Clarify plugin channel config additional-property errors. Thanks @zhangguiping-xydt and @vincentkoc. 229 **PR #93555** fix(read) route text decoding through shared Windows codepage fallba…. Thanks @zhanxingxin1998 and @vincentkoc. 230 **PR #93314** fix(skills) preserve ClawHub origin provenance on readback. Thanks @Alix-007 and @vincentkoc. 231 **PR #93573** fix(acp) keep bridge sessions out of stale ACP classification [AI-assisted]. Related #38907. Thanks @eldar702 and @vincentkoc and @ninaopenclaw. 232 **PR #93398** fix(cron) emit isolated model usage diagnostics. Related #92338. Thanks @849261680 and @vincentkoc and @niks999. 233 **PR #93367** Fix SSH sandbox remote directory args **PR #93367** Fix SSH sandbox remote directory args. Related #93344. Thanks @dmorn and @vincentkoc. 234 **PR #93574** fix(feishu) suppress log noise for bot_p2p_chat_entered_v1 event [AI-assisted]. Related #42351. Thanks @eldar702 and @vincentkoc and @sunking0223. 235 **PR #93269** Fix tokenjuice bash results without details **PR #93269** Fix tokenjuice bash results without details. Thanks @moeedahmed and @vincentkoc. 236 **PR #93575** fix(telegram) hydrate group reply-chain media into model context [AI-assisted]. Thanks @eldar702 and @vincentkoc. 237 **PR #93261** fix(plugins) resolve provider policy surface for plugin-owned CLI backends. Related #93259. Thanks @BitmapAsset and @vincentkoc. 238 **PR #93303** fix(whatsapp) bound stalled read-receipt socket operations. Thanks @Alix-007 and @vincentkoc. 239 **PR #93242** fix(mattermost) keep bare @mention with empty body instead of dropping it. Related #93205. Thanks @iloveleon19 and @vincentkoc. 240 **PR #93606** fix(ui) clear stale Talk error when session transitions to non-error state (fixes #88176). Thanks @liuhao1024 and @vincentkoc and @BrianClaw1955. 241 **PR #93607** perf(tasks) memoize reconcileInspectableTasks for same-tick calls (fixes #73531). Thanks @liuhao1024 and @vincentkoc and @slideshow-dingo. 242 **PR #93612** fix(gateway) compute sessions.usage aggregate totals from all sessions, not just the limited page (fixes #76496). Thanks @liuhao1024 and @vincentkoc and @bobsahur-robot. 243 **PR #93615** fix(telegram) recover lone active spooled handler on timeout (#84158). Thanks @0xghost42 and @vincentkoc and @crash2kx. 244 **PR #93616** Keep key-free web search providers opt-in **PR #93616** Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc. 245 **PR #93298** fix #93044 control-ui webchat double-renders agent replies when dmScope=main. Thanks @zhangguiping-xydt and @vincentkoc and @cfmilam. 246 **PR #93618** fix(feishu) filter temporary card-action-c-\* IDs from reply target to prevent Invalid open_message_id errors (fixes #56818). Thanks @liuhao1024 and @vincentkoc and @SwordImmortal. 247 **PR #93387** feat(ios) add watch action surface. Thanks @Solvely-Colin and @joshavant. 248 **PR #93648** fix(doctor) archive superseded plugin install index conflicts. Related #90418. Thanks @vincentkoc and @ramitrkar-hash. 249 **PR #93649** fix(qwen) place DashScope image prompts in user content. Related #92688. Thanks @vincentkoc and @Yachiyo404. 250 **PR #93650** fix(update) avoid per-Node npm prefixes during self-update. Related #80387. Thanks @vincentkoc and @yaanfpv. 251 **PR #93653** fix(skill-workshop) skip helper sessions during auto-capture. Thanks @vincentkoc and @zhangguiping-xydt. 252 **PR #93654** fix(codex) expose remote node exec as a Codex dynamic tool. Related #92141. Thanks @vincentkoc and @JPKay-AI. 253 **PR #93662** fix(discord) protect mention aliases in code fences. Thanks @vincentkoc and @rohitjavvadi. 254 **PR #93663** fix(clawdock) open dashboard on published port without starting deps. Related #77344. Thanks @vincentkoc and @dhoman. 255 **PR #93670** fix(browser) recover stale managed Chrome CDP listener. Related #41750. Thanks @vincentkoc and @rohitjavvadi and @kissman911. 256 **PR #93672** fix(commands) preserve multiline slash skill args. Related #79155. Thanks @vincentkoc and @web3blind. 257 **PR #93674** fix(browser) accept top-level act fields with nested requests. Related #38762. Thanks @vincentkoc and @angelusbr and @Lumos-789. 258 **PR #93678** fix(plugins) allow Dreaming sidecar through restrictive memory allowlists. Related #92536. Thanks @vincentkoc and @pradeep7127 and @resYuto. 259 **PR #93306** fix(status) ignore stale context after model switch. Thanks @hxy91819. 260 **PR #93666** fix(control-ui) copy code blocks over plain HTTP via clipboard fallback. Related #93628. Thanks @Pick-cat and @pjq2926. 261 **PR #93629** fix(reply) preserve unsent text-only finals after block pipeline streamed partial content (fixes #81078). Thanks @liuhao1024 and @Jackten. 262 **PR #93690** fix(telegram) dispatch MEDIA directives as attachments. Related #77702. Thanks @vincentkoc and @butttersbot. 263 **PR #93693** fix(gateway) ignore stale sudo scope for root user services. Related #81410. Thanks @vincentkoc and @Ericksza. 264 **PR #93646** fix(agents) return string assistant content in getLastAssistantText. Thanks @Alix-007 and @vincentkoc. 265 **PR #93687** fix(i18n) retain Codex error tails in logs. Thanks @hxy91819. 266 **PR #93630** fix(heartbeat) bootstrap plugin session targets. Thanks @ZengWen-DT and @vincentkoc. 267 **PR #93658** fix(wizard) preserve existing default model during setup auth choice [AI-assisted]. Related #64129. Thanks @ml12580 and @vegapunk9527. 268 **PR #93671** fix(respawn) rewrite pnpm versioned entry paths to stable wrapper (fixes #52313). Thanks @liuhao1024 and @vincentkoc and @RichardCao. 269 **PR #93698** Fix Telegram rich progress detail updates **PR #93698** Fix Telegram rich progress detail updates. Thanks @obviyus. 270 **PR #93656** fix(gateway) send approval route notices with write scope. Related #93563. Thanks @mushuiyu886 and @vincentkoc and @clawbot247-commits. 271 **PR #93665** fix(gateway) surface codex app-server returned failures. Thanks @litang9 and @vincentkoc. 272 **PR #93727** fix(context-engine) avoid turn-maintenance lane livelock. Related #77340. Thanks @vincentkoc and @baghvn and @Veda-openclaw. 273 **PR #93681** fix(llm) handle string assistant content on the OpenAI-compatible completion path. Thanks @Alix-007. 274 **PR #93722** chore(release) update appcast for 2026.6.8. Thanks @vincentkoc. 275 **PR #93677** fix(google-meet) declare realtime provider secret inputs. Related #81891. Thanks @goutamadwant and @vincentkoc and @chachi-max. 276 **PR #92947** fix(qqbot) deliver cron auto-TTS voice by trusting OpenClaw temp root. Related #92816. Thanks @ZengWen-DT and @Zeng-wen and @lewiswu1209. 277 **PR #93679** fix(whatsapp) extract GIF metadata and distinguish gifPlayback in media placeholders (fixes #49099). Thanks @liuhao1024 and @vincentkoc and @bugkill3r. 278 **PR #93688** fix(minimax) check base_resp envelope errors in TTS provider. Related #76904. Thanks @dwc1997 and @najef1979-code. 279 **PR #93714** fix isolate async model resolution mock from sync mock in flaky test. Related #92117. Thanks @lsr911 and @wangwllu. 280 **PR #93705** test(macos) cover root command dispatch. Related #83879. Thanks @markoub and @vincentkoc and @davinci282828. 281 **PR #93711** Keep command text in progress drafts **PR #93711** Keep command text in progress drafts. Thanks @keshavbotagent and @vincentkoc. 282 **PR #93712** fix scope assistant avatar override to agent ID. Related #90890. Thanks @lsr911 and @vincentkoc and @najef1979-code. 283 **PR #93725** fix(usage) prune stale usage cache temp files. Related #78939. Thanks @markoub and @Tramsrepus. 284 **PR #93726** fix(typing) start typing on reasoning deltas in thinking mode before visible text. Related #79681. Thanks @xialonglee and @novaflash82. 285 **PR #93716** fix(discord) propagate timeout through channel capabilities diagnostics. Related #77040. Thanks @xialonglee and @vincentkoc and @unicebondoc. 286 **PR #93729** fix(ollama) preserve configured API during discovery. Related #93710. Thanks @zhangguiping-xydt and @vincentkoc and @obnoxious2011-cmd. 287 **PR #93719** fix pin plugin workspace dir for sessions.list to avoid O(rows) memo busting. Related #90814. Thanks @lsr911 and @vincentkoc and @k-l-lambda. 288 **PR #93732** fix(agents) preserve re-sent user prompt during compaction transcript rotation. Thanks @yetval. 289 **PR #93738** fix break plugin registry type import cycle. Thanks @giodl73-repo. 290 **PR #93740** fix(sessions) release retained locks after takeover. Thanks @TurboTheTurtle. 291 **PR #93745** fix(usage) reject invalid explicit dates in usage RPC date parsing. Thanks @harjothkhara and @vincentkoc. 292 **PR #93746** fix(ui) populate realtime talk provider and transport options from talk.catalog. Thanks @shushushv and @vincentkoc. 293 **PR #93751** fix(ios) fix quick setup sheet layout design. Thanks @zats. 294 **PR #93749** fix(compaction) ignore stale persisted totalTokens in preflight gate. Thanks @yetval. 295 **PR #93753** fix correct tautological uppercase check in tool description summarizer. Thanks @GautamKumarOffical. 296 **PR #89123** refactor route transcript writers through session seam. Thanks @jalehman. 297 **PR #93758** feat(memory) apply outputDimensionality truncation to local GGUF embeddings (fixes #58765). Thanks @liuhao1024 and @vincentkoc and @losz5000. 298 **PR #93754** feat(inbound-meta) expose per-turn source modality. Related #50482. Thanks @liuhao1024 and @vincentkoc and @JTOrca. 299 **PR #93767** fix(reasoning-tags) strip MiniMax `mm:` namespaced reasoning tags. Thanks @DrHack1 and @vincentkoc. 300 **PR #93772** fix(feishu) recover CJK filenames from JSON file_name field (fixes #81103). Thanks @liuhao1024 and @vincentkoc and @pjuneye. 301 **PR #93773** fix(ui) scope Skill Workshop proposals to selected agent. Related #93760. Thanks @TurboTheTurtle and @vincentkoc and @hannesrudolph. 302 **PR #88750** feat(context-engine) pass runtime settings into lifecycle. Thanks @ragesaq and @jalehman. 303 **PR #93763** fix(agents) use neutral billing copy for subscription auth. Related #80877. Thanks @eldar702 and @vincentkoc and @22kyasue. 304 **PR #93818** List all ClawHub docs in sidebar **PR #93818** List all ClawHub docs in sidebar. Thanks @Patrick-Erichsen. 305 **PR #93779** fix(webchat) skip textarea resize during IME composition to eliminate typing lag. Related #90800. Thanks @joelnishanth and @vincentkoc and @w10497-create. 306 **PR #93786** fix(plugins) treat refreshable catalogs as requiring runtime discovery (fixes #93775). Thanks @liuhao1024 and @St0rmz1. 307 **PR #93791** fix(memory) await search-sync before returning results to prevent stale index (fixes #52115). Thanks @liuhao1024 and @vincentkoc and @FicheallADa. 308 **PR #93780** fix(google) keep parallel Gemini tool responses in the turn after the model. Thanks @yetval and @vincentkoc. 309 **PR #93789** fix(agents) make lane suspension consistent across cooldown-precheck and embedded-runner paths. Related #93036. Thanks @joelnishanth and @vincentkoc and @kumaxs. 310 **PR #93798** fix(status) show 0 (not ?) for fresh-session context tokens. Related #93771. Thanks @Alix-007 and @vincentkoc and @anarchia-99. 311 **PR #93810** fix(cron) preserve startup overflow catch-up deferrals in start() maintenance pass. Thanks @yetval. 312 **PR #93811** Strip UTF-8 BOM when reading SKILL **PR #93811** Strip UTF-8 BOM when reading SKILL.md in quick_validate. Thanks @HrachShah. 313 **PR #93803** fix(ui) preserve WebChat visible messages across session switches. Related #80855. Thanks @LiuwqGit and @vincentkoc and @viagarsuker. 314 **PR #93792** fix(android) wait for node capability approval before onboarding. Thanks @Solvely-Colin and @vincentkoc. 315 **PR #93796** fix(feishu) paginate wiki node and space listing (#37626). Thanks @ZengWen-DT and @vincentkoc and @ritou11. 316 **PR #93797** fix(browser) use openTab return value to prevent wsUrl race in ensureTabAvailable (fixes #63343). Thanks @liuhao1024 and @vincentkoc and @OpenCodeEngineer. 317 **PR #93806** fix(reasoning-tags) strip MiniMax mm: tags on silent-reply and streaming paths missed by #93767. Thanks @Alix-007 and @vincentkoc. 318 **PR #93691** refactor add gateway sessions.create lifecycle seam. Thanks @jalehman. 319 **PR #88748** fix(gemini) bridge OAuth profiles into CLI runtime. Related #88742. Thanks @jason-allen-oneal. 320 **PR #93857** fix(deps) remediate Dependabot alerts. Thanks @vincentkoc. 321 **PR #93874** fix(slack) recognize MiniMax mm: namespaced reasoning tags in monitor preview. Thanks @Alix-007. 322 **PR #93832** feat(providers) add ClawRouter managed proxy. Thanks @vincentkoc. 323 **PR #93880** fix(macos) preserve approvals migration data. Thanks @vincentkoc. 324 **PR #93903** fix(cron) reject invalid absolute timestamps. Thanks @Alix-007 and @vincentkoc. 325 **PR #93879** fix(update) use configured npm registry for update metadata. Related #79140. Thanks @vincentkoc and @sixerLiu. 326 **PR #93924** revert(providers) remove ClawRouter provider. Thanks @vincentkoc. 327 **PR #93955** fix(telegram) surface rich-message disabled state. Thanks @obviyus. 328 **PR #93881** fix(agents) route BTW through canonical Codex runtime. Related #88902. Thanks @vincentkoc and @TurboTheTurtle and @khalil-omer. 329 **PR #90192** fix(feishu) fetch quoted content before empty-message guard. Related #90177. Thanks @bladin and @sliverp and @lkxlaz. 330 **PR #93237** Fix Mattermost open DM validation **PR #93237** Fix Mattermost open DM validation. Thanks @amknight. 331 **PR #93945** feat(diagnostics) add SIEM security events. Thanks @vincentkoc. 332 **PR #87487** fix(cli) clarify mcp list registry scope. Related #65209. Thanks @Alix-007 and @slideshow-dingo. 333 **PR #24661** feat(cohere) add provider plugin. Thanks @vincentkoc. 334 **PR #93532** Expose verified ClawHub source in skill verify output **PR #93532** Expose verified ClawHub source in skill verify output. Thanks @momothemage. 335 **PR #93538** feat(codex) support app-server network proxy profiles. Thanks @vincentkoc. 336 **PR #93938** fix(telegram) guard UTF-16 surrogate pairs in outbound chunkers. Related #93921. Thanks @Nas01010101 and @vincentkoc. 337 **PR #94104** feat(agents) trace compaction summarization model calls. Thanks @amknight. 338 **PR #94108** Fix package Telegram temp root **PR #94108** Fix package Telegram temp root. Thanks @obviyus. 339 **PR #94113** Fix Telegram package output mount **PR #94113** Fix Telegram package output mount. Thanks @obviyus. 340 **PR #89062** feat(docker) support offline setup reruns. Related #70443. Thanks @Alix-007 and @safrano9999. 341 **PR #93929** fix(secrets) explicitly pass BWS_SERVER_URL to resolver for self-hosted instances. Related #93851. Thanks @Pandah97 and @vincentkoc and @AdoShan. 342 **PR #90057** Polish Workboard operations view **PR #90057** Polish Workboard operations view. Thanks @fuller-stack-dev. 343 **PR #89396** fix(doctor) drop inert legacy cron notify when cron.webhook is unset. Related #44460. Thanks @Alix-007. 344 **PR #94138** fix(session) prevent stale finalizer from recreating deleted session rows. Related #40840. Thanks @xialonglee and @vincentkoc and @AL-knows. 345 **PR #93739** refactor add session patch projection seam. Thanks @jalehman. 346 **PR #94178** fix(workspace) skip optional bootstrap files when workspace setup is already completed. Related #83593. Thanks @dwc1997 and @jsompis. 347 **PR #93363** fix(feishu) enforce account tool family gates. Thanks @eleqtrizit. 348 **PR #93813** fix(codex) keep message registered for internal turns. Related #93750. Thanks @jalehman and @hannesrudolph. 349 **PR #93659** refactor add session reset delete lifecycle seam. Thanks @jalehman. 350 **PR #93852** ci(release) harden release controls. Thanks @vincentkoc. 351 **PR #94203** feat(codex) support remote app-server plugins. Thanks @kevinslin. 352 **PR #94263** chore migrate claw-score skill. Thanks @RomneyDa and @kevinslin. 353 **PR #93695** refactor add compact trim lifecycle seam. Thanks @jalehman. 354 **PR #93114** test fold lifecycle and package proof into QA Lab. Thanks @RomneyDa. 355 **PR #93181** test fold otel smoke into qa e2e. Thanks @RomneyDa. 356 **PR #93178** test fold gateway smoke into qa e2e. Thanks @RomneyDa. 357 **PR #94276** qa-lab support script-backed evidence scenarios. Thanks @Solvely-Colin and @RomneyDa. 358 **PR #94282** Support owner-qualified ClawHub skill installs **PR #94282** Support owner-qualified ClawHub skill installs. Thanks @Patrick-Erichsen. 359 **PR #93704** refactor add session cleanup lifecycle seam. Thanks @jalehman. 360 **PR #94296** fix require all taxonomy coverage ids for a feature - AND not OR. Thanks @RomneyDa. 361 **PR #92016** fix(plugins) compose live hook registry view for tool-call hooks. Related #91918. Thanks @amknight and @vokaplok. 362 **PR #89596** fix(policy) recognize declared tool allowlists. Thanks @giodl73-repo. 363 **PR #93713** fix route deleted-agent session purge through lifecycle seam. Thanks @jalehman. 364 **PR #84172** fix(exec) rebuild command authorization on the Tree-sitter command planner. Thanks @jesse-merhi. 365 **PR #94332** docs add ClawHub namespace claims to sidebar. Thanks @Patrick-Erichsen. 366 **PR #86360** fix(codex) honor bound agent exec host policy. Thanks @jesse-merhi. 367 **PR #73162** fix(slack) remove socket reconnect attempt cap so gateway stays connected indefinitely. Related #72808. Thanks @suboss87 and @tleyden. 368 **PR #94156** fix expose OpenAI image quality and moderation CLI options. Thanks @lastguru-net and @fuller-stack-dev. 369 **PR #94350** feat externalize GMI provider plugin. Thanks @Patrick-Erichsen and @vincentkoc. 370 **PR #94543** fix(gateway) bound config.get middleware results. Related #94265. Thanks @vincentkoc and @v-s-gusev. 371 **PR #91409** fix(update) run plugin convergence after RPC git updates. Thanks @masatohoshino. 372 **PR #94556** chore(extensions) bump tokenjuice to 0.8.1. Thanks @vincentkoc. 373 **PR #94580** fix(ci) stabilize update run gates. 374 **PR #94394** fix(infra) probe 127.0.0.1 in ensurePortAvailable to detect IPv4-only occupants. Related #94379. Thanks @Pandah97 and @wangwllu. 375 **PR #94421** fix(agents) preserve active compaction retries. Related #94391. Thanks @dexiosmb. 376 **PR #94428** fix(feishu) preserve replies before error finals. Related #94360. Thanks @xunx33. 377 **PR #93735** refactor add restart recovery lifecycle seam. Thanks @jalehman. 378 **PR #94591** docs(release) backfill complete contribution records. Thanks @vincentkoc. 379 **PR #94588** fix(cron) retry isolated setup timeouts. Thanks @aaroneden. 380 **PR #94082** fix(cron) prevent lane timeout during long tool execution. Related #94033. Thanks @ajwan8998 and @JingWang-Star996. 381 **PR #94551** feat(firecrawl) add keyless scrape support. Thanks @vincentkoc and @developersdigest. 382 **PR #94619** test(ci) stabilize timeout-sensitive shards. Thanks @vincentkoc. 383 **PR #94048** fix(telegram) set richMessages default to false explicitly in schema. Related #93770, #93794. Thanks @Monkey-wusky and @obviyus and @Nardoa375 and @laurenceputra. 384 **PR #94118** [codex] Fix Telegram rich local Markdown link hrefs **PR #94118** [codex] Fix Telegram rich local Markdown link hrefs. Related #94117. Thanks @dankarization and @obviyus. 385 **PR #94646** refactor(sqlite) land database-first memory and proxy alignment. Thanks @vincentkoc. 386 **PR #94658** test(sqlite) use shared temp directory helper. Thanks @vincentkoc. 387 **PR #92135** fix(openai-embedding) preserve openai/ prefix for non-native base URLs. Related #92124. Thanks @xialonglee and @Kambrian. 388 **PR #93737** refactor add session maintenance transaction seam. Thanks @jalehman. 389 **PR #93685** refactor(auto-reply) add lifecycle storage seams. Thanks @jalehman. 390 **PR #94349** fix(agents) preserve pending subagent completion announces. Related #93323. Thanks @sallyom and @oiGaDio. 391 **PR #93174** test fold channel message flows into qa e2e. Thanks @RomneyDa. 392 **PR #94093** Prevent Codex thread rotation from losing next-step context **PR #94093** Prevent Codex thread rotation from losing next-step context. Thanks @VACInc. 393 **PR #53920** fix(scripts) avoid mutating tracked auth-monitor template during setup. Thanks @JackWuGlobal. 394 **PR #94702** Standardize QA coverage IDs on dotted names **PR #94702** Standardize QA coverage IDs on dotted names. Thanks @RomneyDa. 395 **PR #81825** fix(skills/1password) stop forcing tmux for desktop app auth (#52540). Thanks @koshaji and @tylerbittner. 396 **PR #94725** fix(doctor) warn on volatile SQLite state. Thanks @vincentkoc. 397 **PR #88551** fix(agents) skip auth gate for CLI-owned transport. Thanks @yu-xin-c. 398 **PR #88581** feat(commands) add /name to rename the current session from chat. Thanks @BSG2000. 399 **PR #94324** feat(codex) support app-server SecretRefs. Thanks @kevinlin-openai and @kevinslin. 400 **PR #90882** fix add self-knowledge docs rule to system prompt. Related #90713. Thanks @SutraHsing. 401 **PR #94684** fix #80507 show dry-run output for message send/poll. Thanks @lzyyzznl and @YB0y. 402 **PR #93823** fix(whatsapp) keep opening text chunk when first media fails on multi-chunk reply. Thanks @yetval. 403 **PR #89203** refactor route SDK session compatibility through seam. Thanks @jalehman. 404 **PR #94453** fix default cron runMode to "due" instead of "force" (#94270). Thanks @jincheng-xydt and @sallyom and @davectr. 405 **PR #94746** fix(note) prevent clack from re-breaking copy-sensitive tokens. Related #94730. Thanks @xzh-icenter and @berkgungor. 406 **PR #89904** refactor route sdk session compatibility through accessor. Thanks @jalehman. 407 **PR #86719** fix(skills) retarget stale plugin skill symlinks. Related #85925. Thanks @stevenepalmer and @shakkernerd. 408 **PR #94337** fix(tui) show 0 not ? for fresh-session context tokens in footer. Thanks @mushuiyu886. 409 **PR #94539** fix(android) group settings by intent. Thanks @Tosko4. 410 **PR #92383** fix(gateway) never return an empty chat.history transcript. Thanks @Hidetsugu55. 411 **PR #92574** test(browser) cover action-input CLI request bodies. Related #83877. Thanks @yu-xin-c and @davinci282828. 412 **PR #92873** test(diffs) add viewerState, toolbar toggle, shadow root, and hydrateProps tests (fixes #83915). Thanks @liuhao1024 and @davinci282828. 413 **PR #94257** fix(sessions) preserve Media\* index alignment when reading user-turn fields. Thanks @Nas01010101. 414 **PR #94756** fix(codex) bound turn/start text when context budget is non-positive. Related #94748. Thanks @Nas01010101. 415 **PR #94729** fix(skills/trello) add curl to requires.bins to match body examples (fixes #94727). Thanks @liuhao1024 and @berkgungor. 416 **PR #94790** feat(slack) log INFO receipt for inbound app_mention events. Related #94691. Thanks @ZengWen-DT and @BryceMurray. 417 **PR #81696** fix guard tool event callbacks (AI-assisted). Thanks @enjoylife1243. 418 **PR #94809** chore forward-port alpha release fixes. 419 **PR #94612** fix(macos) open NSOpenPanel for embedded Control UI file inputs (#94468). Thanks @bbblending and @DINGDANGMAOUP. 420 **PR #89806** fix(feishu) avoid axios interceptor internals. Related #83913. Thanks @sweetcornna and @davinci282828. 421 **PR #91923** fix(ios) clean up notification settings state. Thanks @zats. 422 **PR #91345** fix suggest close CLI commands. Related #83999. Thanks @glenn-agent and @HannesOberreiter. 423 **PR #94561** Add stdout diagnostics OTEL log exporter **PR #94561** Add stdout diagnostics OTEL log exporter. Thanks @jesse-merhi. 424 **PR #91013** fix(gateway) ignore stale abort markers for fresh chat events. Related #91012. Thanks @nxmxbbd. 425 **PR #89279** fix(tasks) deliver ACP completions to bound Discord threads. Related #84022. Thanks @anyech and @h-mascot. 426 **PR #91656** test(cron) expand parseAbsoluteTimeMs test coverage to 39 cases. Related #91654. Thanks @SpecialLeon. 427 **PR #94810** fix(telegram) classify sendChatAction 401 by structured error_code, not bare substring match. Related #94787. Thanks @ZOOWH and @parveshsaini. 428 **PR #94737** fix(reply) clarify provider internal error copy. Thanks @snowzlmbot. 429 **PR #94868** fix(channels) preserve command progress detail. Thanks @vincentkoc. 430 **PR #94891** fix(telegram) send progress previews as html text. Thanks @obviyus. 431 **PR #94683** fix(outbound) keep direct-only targets out of group sessions. Related #92384. Thanks @scotthuang and @haiwei01. 432 **PR #92477** fix migrate watch app to single-target app (Xcode 27+ compat). Thanks @zats and @joshavant. 433 **PR #94812** test(perf) compare saved CLI startup benchmarks. Thanks @FelixIsaac. 434 **PR #94856** fix(telegram) normalize all HTML tables before entity-escaping in rich messages. Related #94317. Thanks @zhangqueping and @jairrab. 435 **PR #91685** fix(cron) refuse keyless implicit isolated cron delivery inherited from shared agent-main bucket. Thanks @nxmxbbd.
Release

2026.6.8

2026.6.8

204 changes Open upstream ↗
01 **Richer channel delivery ** Telegram and WhatsApp are less brittle: Telegram renders structured text with tables, lists, expandable blockquotes, preserved intentional line breaks, and CLI-backed replies, while WhatsApp now honors configured ACP bindings. (#92679, #93164, #84082, #89421, #92513) Thanks @obviyus, @vincentkoc, @jzakirov, @spacegeologist, @TurboTheTurtle, @mcaxtr, @myrzka, and @dmorn. 02 **More reliable agent runs ** account-scoped DM sends, generated media completions, auto-reply message-tool final replies, reset archive fallback reads, restart shutdown aborts, yielded subagent pauses, and session identity prompts all stay on the correct recovery path. (#92788, #91246, #92879, #91357, #92631, #92468) Thanks @yetval, @TurboTheTurtle, @masatohoshino, @CadanHu, @vincentkoc, @ooiuuii, @openperf, @zhangguiping-xydt, @QQSHI13, @kumaxs, and @aleps001. 03 **Safer model routing ** new GLM-5.2 and Claude Haiku 4.5 catalog support arrives with normalized provider IDs, managed SecretRef auth, bounded model browsing, and safer OpenAI/Anthropic tool-schema recovery. (#92796, #90116, #92627, #90686, #92247, #92941) Thanks @arkyu2077, @liuhao1024, @lijenhsin, @rohitjavvadi, @samson910022, @maaron34, @syfvb, and @samson1357924. 04 **Useful usage footers ** `/usage` and reply payload hooks now have a native full footer renderer, default template, fixed-decimal formatting, credential-aware limits, better partial-count handling, and warnings for broken templates instead of silent bad output. (#92657, #89835, #89629) Thanks @Marvinthebored. 05 **Predictable web search defaults ** key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search remain explicit opt-ins rather than surprising automatic fallbacks. (#93616) Thanks @davemorin and @vincentkoc. 06 **Calmer UI and mobile sessions ** workspace files start collapsed, WebChat backscroll survives streaming, the desktop session picker remains interactive, reset arguments survive dispatch, and iOS reconnects stale foreground Gateways. (#92779, #92622, #92705, #91353, #92552) Thanks @shakkernerd, @TurboTheTurtle, @NianJiuZst, @zhouhe-xydt, @Solvely-Colin, @MaBeitian, @vincentkoc, @Chang2020618, and @DrtyMorty. 07 **Resilient memory and state ** oversized OpenAI embedding batches split before 431s, QMD search stays available in transient mode, SQLite avoids WAL on NFS volumes, and full reindexes preserve rollback/cache recovery. (#92650, #92618, #92639, #91247, #92881) Thanks @mushuiyu886, @BrettHamlin, @zhbcher, @TurboTheTurtle, @Takhoffman, @849261680, @TSHOGX, @vincentkoc, and @AFabyTWE. 08 Providers/models add GLM-5.2 support and Claude Haiku 4.5 catalog entries while keeping provider-qualified model IDs normalized across OpenRouter and Google Vertex paths. (#92796, #90116, #92627, #91218) Thanks @arkyu2077, @liuhao1024, @bymle, @maaron34, @lijenhsin, @davemorin, and @vincentkoc. 09 Web search keep key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search as explicit opt-ins instead of selecting them automatically when no API-backed provider is configured. (#93616) Thanks @davemorin and @vincentkoc. 10 Channel plugins ship Telegram rich-message delivery and WhatsApp ACP binding support, including preserved intentional line breaks, rich prompt handoff to CLI backends, and transport fixtures for richer drafts. (#92679, #93164, #92513) Thanks @obviyus, @TurboTheTurtle, @vincentkoc, @mcaxtr, and @dmorn. 11 Agent commands support `/btw` in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162) Thanks @joshavant, @Pandah97, @marcospaulo, @davemorin, and @vincentkoc. 12 Usage hooks add built-in full footer rendering, default footer templates, per-turn usage state, credential-aware limits, and fixed-decimal formatting for usage-bar templates. (#92657, #89835, #89629) Thanks @Marvinthebored. 13 **PR #92144** fix(cron) report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766. Thanks @liuhao1024 and @AaronFaby. 14 **PR #92175** fix(channel) harden local setup trust. Thanks @hxy91819. 15 **PR #91528** fix #73837 stop after failed Node package installs. Thanks @mushuiyu886 and @ItsMeForLua. 16 **PR #91561** fix(wizard) report keyless web_search providers as ready, not missing a key. Thanks @NormallyGaussian. 17 **PR #92073** fix handle explicit silent assistant replies. Related #92038. Thanks @sallyom and @vultusv. 18 **PR #91311** Allow Skill Workshop apply through trusted skill symlinks **PR #91311** Allow Skill Workshop apply through trusted skill symlinks. Thanks @abnershang. 19 **PR #88245** refactor(whatsapp) introduce inbound message contexts. Thanks @mcaxtr. 20 **PR #92212** refactor move workspace skill writes to lifecycle. Thanks @shakkernerd. 21 **PR #92248** Remove ClawHub owner preflight **PR #92248** Remove ClawHub owner preflight. Thanks @Patrick-Erichsen. 22 **PR #91617** test(sqlite) add state perf query plan harness. Related #91616. Thanks @galiniliev. 23 **PR #91626** fix(daemon) keep status readable on unsupported services. Related #25621. Thanks @mushuiyu886 and @kucharskim. 24 **PR #92295** fix(cron) preserve tz and staggerMs when --cron replaces expression. Related #92291. Thanks @liuhao1024 and @dcapclaw. 25 **PR #92087** fix(docker) bundle QA Lab runtime in the image. Thanks @jesse-merhi. 26 **PR #92004** fix(telegram) classify streaming preview edit failures instead of killing the draft. Thanks @obviyus. 27 **PR #91997** fix(telegram) survive getUpdates conflicts in isolated polling ingress. Thanks @obviyus. 28 **PR #92387** fix(anthropic-vertex) stop re-marking cache_control on transport-budgeted payloads. Related #91982. Thanks @openperf and @Takhoffman and @danieljimz. 29 **PR #92229** Fix doctor preview channel SecretRef resolution **PR #92229** Fix doctor preview channel SecretRef resolution. Related #91939. Thanks @joshavant and @Niriakot. 30 **PR #92225** Fix disabled heartbeat one-shot cron retries **PR #92225** Fix disabled heartbeat one-shot cron retries. Related #91775. Thanks @joshavant and @A1fred-AI. 31 **PR #92265** Fix configured DeepSeek model transport inheritance **PR #92265** Fix configured DeepSeek model transport inheritance. Related #92148. Thanks @joshavant and @marcoraepple-sys. 32 **PR #92226** Fail closed for CLI-backed /btw fallback **PR #92226** Fail closed for CLI-backed /btw fallback. Related #92168. Thanks @joshavant and @wangwllu. 33 **PR #92231** Fix suppressed heartbeat commitment delivery **PR #92231** Fix suppressed heartbeat commitment delivery. Related #91948. Thanks @joshavant and @bizzle12368239. 34 **PR #92280** fix(agents) classify structured unsupported model errors. Related #92118. Thanks @joshavant and @pikaqqqqqq. 35 **PR #92276** Fix OTLP log trace correlation **PR #92276** Fix OTLP log trace correlation. Related #91865. Thanks @joshavant and @sinzin91. 36 **PR #92282** fix(update) hand off Linux service auto-updates. Related #91823. Thanks @joshavant and @hanyizuo. 37 **PR #92235** fix resolve managed SecretRef provider auth. Related #92097. Thanks @joshavant and @LINSUISHENG034. 38 **PR #92293** Fix provider static model fallback resolution **PR #92293** Fix provider static model fallback resolution. Related #92009. Thanks @joshavant and @mattsfraser. 39 **PR #92343** fix(agent) continue after source message tool replies. Related #92169. Thanks @joshavant and @elyalvarado. 40 **PR #92350** fix(codex) preserve memory prompt registration. Thanks @rubencu and @sallyom. 41 **PR #92290** fix clarify gateway SecretRef auth diagnostics. Related #91815. Thanks @joshavant and @mattsfraser. 42 **PR #92286** fix repair rejected Anthropic thinking replay. Related #91983. Thanks @joshavant and @reginaldomarcilon. 43 **PR #92281** Fix Telegram spooled buffered replay **PR #92281** Fix Telegram spooled buffered replay. Related #92129. Thanks @joshavant and @riseandshinefutures. 44 **PR #47493** fix(doctor) show per-step progress spinners during update. Thanks @amersheeny. 45 **PR #92416** fix(outbound) honor top-level image param as send media source (#92407). Thanks @xydigit-sj and @ichirokyoto. 46 **PR #92508** fix(sandbox) render CLI skill prompts from materialized paths. Thanks @brokemac79. 47 **PR #92540** chore fix esbuild production audit failure. Thanks @RomneyDa. 48 **PR #91484** Add QA evidence artifact output **PR #91484** Add QA evidence artifact output. Thanks @RomneyDa. 49 **PR #91500** Add QA scorecard taxonomy validation **PR #91500** Add QA scorecard taxonomy validation. Thanks @RomneyDa. 50 **PR #84082** fix(telegram) allow expandable blockquotes. Thanks @jzakirov. 51 **PR #92554** feat(moonshot) add Kimi K2.7 Code support. 52 **PR #92396** fix(moonshot) backfill reasoning_content on assistant tool-call replay messages. Related #71491. Thanks @xialonglee and @RoseKongPS. 53 **PR #92566** Fix lifecycle timeout cleanup after leader exit **PR #92566** Fix lifecycle timeout cleanup after leader exit. Thanks @RomneyDa. 54 **PR #92311** ci split plugin ClawHub publishing paths. Thanks @Patrick-Erichsen. 55 **PR #92216** fix(gateway) mirror hidden commentary-phase assistant events. Thanks @ragesaq. 56 **PR #87596** fix(moonshot) rewrite duplicate native Kimi tool_call ids on replay. Related #51593. Thanks @Pluviobyte and @Faaab84. 57 **PR #88993** Expose paged channel action results **PR #88993** Expose paged channel action results. Thanks @fuller-stack-dev. 58 **PR #90326** fix(fireworks) resolve catalog model params from plugin.json via core. Thanks @obuchowski. 59 **PR #86629** fix(doctor) warn for untrusted external Discord plugin. Related #83212. Thanks @brokemac79 and @ooiuuii and @cdeyoung67. 60 **PR #90242** fix(providers) skip unreadable Mistral tool schemas. Thanks @vincentkoc. 61 **PR #92498** fix(reply) mirror same-channel Slack final replies. Related #92489. Thanks @TurboTheTurtle and @TalkingHeadsJed. 62 **PR #92083** fix(channels) default boundary logger for swallowed progress-draft start errors. Thanks @hansraj316. 63 **PR #92564** fix(agents) isolate invalid plugin model catalogs [AI-assisted]. Related #92553. Thanks @tangtaizong666 and @fxstein. 64 **PR #89827** docs UX-013 — design system documentation. Thanks @BunsDev. 65 **PR #89615** feat(ui) hide empty workboard columns. Thanks @BunsDev. 66 **PR #89822** fix(a11y) B-1+B-2+B-3 — contrast, focus states, minimum font sizes. Thanks @BunsDev. 67 **PR #92618** fix #92218 memory_search tool disabled with QMD backend. Thanks @mushuiyu886 and @zhbcher. 68 **PR #92608** docs(gateway) add uptime monitoring guidance to health check docs (fixes #55768). Thanks @liuhao1024 and @faahim. 69 **PR #92605** fix(docs) pin Windows Hub download links to v2026.6.5. Related #92470. Thanks @lzyyzznl and @arjkul. 70 **PR #92593** #92589 fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters. Thanks @zhangqueping and @jovi2014-cyber. 71 **PR #92606** Run Vitest and Playwright scenarios from qa suite **PR #92606** Run Vitest and Playwright scenarios from qa suite. Thanks @RomneyDa. 72 **PR #89629** feat(hooks) per-turn usageState on reply_payload_sending. Thanks @Marvinthebored. 73 **PR #89835** feat(usage) native templated /usage full footer renderer. Thanks @Marvinthebored. 74 **PR #92247** fix(models) bound /models and models list catalog loading. Related #91809. Thanks @samson910022 and @samson1357924 and @syfvb. 75 **PR #92646** fix require admin for HTTP model overrides. Thanks @steipete-oai. 76 **PR #90686** fix(gateway) honor profile auth for SecretRef model entries. Related #90685. Thanks @rohitjavvadi. 77 **PR #92651** fix require admin for HTTP session kills. Thanks @steipete-oai. 78 **PR #92652** test(models) stabilize plugin auth marker fixtures. 79 **PR #89438** fix(slack) warn when channels map is keyed by name instead of channel ID. Related #81665. Thanks @Alix-007 and @cjalden. 80 **PR #92631** fix(agents) pause yielded subagent runs whose terminal also signals abort. Related #92448. Thanks @openperf and @vincentkoc and @aleps001. 81 **PR #92622** fix(ui) preserve WebChat backscroll during streaming. Related #92386. Thanks @TurboTheTurtle and @vincentkoc and @DrtyMorty. 82 **PR #92627** fix(openrouter) strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611). Thanks @liuhao1024 and @lijenhsin. 83 **PR #92146** fix(cron) preserve yielded media completions. Related #92120. Thanks @IWhatsskill and @nailujac. 84 **PR #90116** fix add Claude Haiku 4.5 static catalog entries. Related #90088. Thanks @arkyu2077 and @maaron34. 85 **PR #91137** fix(channels) keep contributed message-tool schema properties optional. Related #67852. Thanks @lundog and @RewardsPal. 86 **PR #75393** fix(copilot) disable eager tool streaming for Claude 4.5. Related #75348. Thanks @Kailigithub and @finchinslc. 87 **PR #92628** fix #73713 surface nested embedding fetch failures. Thanks @mushuiyu886 and @crsnpalmer-art. 88 **PR #92510** fix(gateway) reject unknown OpenAI agent selectors. Related #92504. Thanks @zhangguiping-xydt and @ryanhelms. 89 **PR #91453** fix #91420 [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none. Thanks @zhangguiping-xydt and @CarotaWealth. 90 **PR #92468** fix #92453 add session identity to runtime prompt. Thanks @zhangguiping-xydt and @QQSHI13. 91 **PR #89943** fix(slack) emit message_sent hook on outbound delivery (mirror Telegram). Related #89942. Thanks @rishitamrakar. 92 **PR #92668** fix(docs) finalize i18n postprocess before skip. Thanks @hxy91819. 93 **PR #92673** fix split image setup and request timeout semantics. Thanks @hxy91819. 94 **PR #92162** #92069 fix(cli): usage errors exit 0. Thanks @Pandah97 and @marcospaulo. 95 **PR #91185** fix(browser) remove dead requireRef import and void expression in register.navigation.ts. Related #83878. Thanks @whiteyzy and @davinci282828. 96 **PR #90706** fix(OpenAI Responses) disable item id replay for storeless providers. Related #89728. Thanks @snowzlm. 97 **PR #90247** fix(disk-space) promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245. Thanks @jbetala7. 98 **PR #92657** feat(usage) ship built-in /usage full footer. Thanks @Marvinthebored. 99 **PR #90464** perf(terminal) reuse ANSI scanner during truncation. Thanks @yyzquwu. 100 **PR #91281** fix(feishu) clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911. Thanks @whiteyzy and @davinci282828. 101 **PR #92639** fix(memory) keep memory_search in transient qmd mode. Related #92464. Thanks @TurboTheTurtle and @Takhoffman and @BrettHamlin. 102 **PR #91287** fix(cron) de-duplicate main-session systemEvent in heartbeat model input. Related #44922. Thanks @ZengWen-DT and @GSL-R. 103 **PR #91246** Fix webchat media completion handoff **PR #91246** Fix webchat media completion handoff. Related #91003. Thanks @TurboTheTurtle and @kumaxs. 104 **PR #91353** fix(ui) preserve /reset soft args in Control UI dispatch. Related #91316. Thanks @zhouhe-xydt and @MaBeitian. 105 **PR #92679** feat(telegram) send rich message text. Thanks @obviyus. 106 **PR #92705** fix(ui) restore sidebar session picker interactivity above desktop workbench. Related #92707. Thanks @NianJiuZst and @vincentkoc. 107 **PR #91218** fix(google) strip provider prefix from Vertex model path. Thanks @bymle. 108 **PR #92669** feat support /btw in CLI-backed sessions. Thanks @joshavant. 109 **PR #91357** fix(gateway) mark active main sessions before restart shutdown aborts. Related #91355. Thanks @ooiuuii. 110 **PR #91066** fix(parallel) send openclaw-parallel User-Agent on free Search MCP requests. Thanks @NormallyGaussian. 111 **PR #90658** fix(ui) preserve dashboard session parent lineage when session list is stale. Related #90623. Thanks @luoyanglang and @lily-oc. 112 **PR #92552** fix(ios) force stale foreground gateway reconnects. Thanks @Solvely-Colin. 113 **PR #89421** fix(telegram) expose thread create CLI remap. Related #81581. Thanks @spacegeologist and @myrzka. 114 **PR #92779** fix start workspace files collapsed. Related #90359. Thanks @shakkernerd and @Chang2020618. 115 **PR #91247** fix(state) avoid sqlite wal on nfs state volumes. Related #90491. Thanks @849261680 and @AFabyTWE. 116 **PR #92773** fix(tui) show resolved canonical model ref in /model confirmation. Thanks @NarahariRaghava. 117 **PR #92752** fix(diagnostics) keep recovery scheduling out of the stuck-session warning backoff. Related #92742. Thanks @gnanam1990 and @Takhoffman and @zhuyankarl. 118 **PR #92735** fix(markdown-core) treat Infinity chunk limit as unbounded, not 1. Related #92734. Thanks @yhterrance. 119 **PR #92695** docs(config) correct maxConcurrent default in agent-defaults type comments (AI-assisted). Thanks @ArielSmoliar. 120 **PR #92766** clarify before_install hook scope **PR #92766** clarify before_install hook scope. Related #91593. Thanks @sallyom and @Trump-last. 121 **PR #92677** docs(nodes) add openclaw.json config example to Nodes overview. Related #92662. Thanks @liuhao1024 and @Casper-Mars. 122 **PR #92513** Honor WhatsApp configured ACP bindings **PR #92513** Honor WhatsApp configured ACP bindings. Related #92449. Thanks @TurboTheTurtle and @mcaxtr and @dmorn. 123 **PR #92650** fix #92465 split OpenAI 431 embedding batches. Thanks @mushuiyu886 and @BrettHamlin. 124 **PR #92796** feat(providers) add GLM-5.2 support. 125 **PR #92788** fix(sessions) derive channel from account-scoped DM session keys in send-policy. Thanks @yetval. 126 **PR #92590** Docker image ships an extraneous stale openclaw in /app/node_... **PR #92590** Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551. Thanks @lzyyzznl and @fxstein. 127 **PR #92393** chore(deps) bump the swift-deps group across 1 directory with 3 updates. 128 **PR #92476** fix(agents) preserve compatible CLI session runtime pins. Thanks @yu-xin-c. 129 **PR #92483** fix(matrix) validate CLI numeric option ranges. Related #92482. Thanks @rohitjavvadi. 130 **PR #92490** fix(canvas) validate CLI numeric options. Related #92487. Thanks @rohitjavvadi. 131 **PR #92802** fix(ui) reflow composer beside workspace rail. Thanks @Solvely-Colin and @shakkernerd. 132 **PR #91059** fix(configure) mask gateway token input in CLI wizard prompt. Thanks @anurag-bg-neu. 133 **PR #91143** fix(ports) only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142. Thanks @jbetala7. 134 **PR #91110** fix(tavily) keep web_search contract executable. Related #91096. Thanks @extrasmall0 and @xucongyuan98-sys. 135 **PR #91181** fix(daemon) strip schtasks backslash prefix when matching gateway task name. Related #90494. Thanks @425072024 and @Darnellicious. 136 **PR #91187** fix(cron) isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991. Thanks @openperf and @cx306806112. 137 **PR #92807** fix(heartbeat) route outbound mirror to isolated session key. Thanks @agent-merkava. 138 **PR #92745** fix(memory) explain skipped short-term recall hits. Related #92706. Thanks @mushuiyu886 and @armarinho. 139 **PR #92488** fix(gateway) forward image-only input on /v1/responses (parity with chat completions). Thanks @s554097550 and @cursoragent. 140 **PR #92604** fix(status) avoid cumulative usage for context percent. Related #83526. Thanks @ashishpatel26 and @darconadalabarga. 141 **PR #92810** fix reject unvalidated voice media streams. Thanks @steipete-oai. 142 **PR #92800** fix(telegram) answer callback queries before sequentialize delays them. Related #42156. Thanks @liuhao1024 and @Diaspar4u. 143 **PR #92547** fix(nodes) surface pending reapproval diagnostics. Thanks @fuller-stack-dev. 144 **PR #92690** fix(doctor) avoid false-positive legacy cron store warning when store was already migrated (fixes #92683). Thanks @liuhao1024 and @motteman. 145 **PR #92806** fix(telegram) skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671). Thanks @liuhao1024 and @vincentkoc and @leandroirani933-ctrl. 146 **PR #92778** fix(macos) defer isOverflowing mutation to break SwiftUI render loop (fixes #43480). Thanks @liuhao1024 and @vincentkoc and @gdiab. 147 **PR #92795** fix(gateway) use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009). Thanks @liuhao1024 and @vincentkoc and @ltxy12138-ai. 148 **PR #92746** fix(gateway) preserve active runs during plugin finalization. Thanks @scotthuang and @vincentkoc. 149 **PR #92820** UI localize Logs tab labels. Thanks @rubensfox20. 150 **PR #92825** fix(telegram) preserve command callbacks while prefixing generic callback data. Related #54909. Thanks @hnshah and @timt80. 151 **PR #90889** fix cap session context overrides by model window. Related #39857. Thanks @xdanger. 152 **PR #92830** fix(copilot) strip replayed thinking blocks. Related #81520. Thanks @giodl73-repo and @warcold. 153 **PR #92834** feat(browser) extend --labels overlay to full-page and element captures. Thanks @hxy91819 and @FMLS and @cursoragent. 154 **PR #92836** fix(discord) raise thread title timeout and tokens to fit reasoning models. Thanks @hanamizuki. 155 **PR #92095** fix #92039 [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink. Thanks @zhangguiping-xydt and @dinorastoder. 156 **PR #92801** fix(stale) exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564). Thanks @liuhao1024 and @brokemac79. 157 **PR #89736** fix(status) render sub-1000 token counts as plain integers. Related #89735. Thanks @jbetala7 and @vincentkoc. 158 **PR #92792** fix(agents) catch malformed image blocks in sanitizeContentBlocksImages. Thanks @LowCode191 and @vincentkoc. 159 **PR #92555** ci gate stable releases on Windows companion assets. Thanks @fuller-stack-dev. 160 **PR #91824** fix(agents) add usage guidance to sessions_spawn tool description (fixes #91814). Thanks @zenglingbiao and @vincentkoc and @cattails-lgao. 161 **PR #92840** fix(feishu) await HTTP server shutdown during monitor cleanup. Related #48183. Thanks @alex-xuweilong and @ai-nurmamat. 162 **PR #91632** feat add tool search directory mode. Thanks @fuller-stack-dev. 163 **PR #92823** fix(qqbot) surface failed media sends. Thanks @zhangguiping-xydt and @vincentkoc. 164 **PR #92849** fix(tailscale) preserve parse errors for malformed JSON. Thanks @franciscomaestre. 165 **PR #92045** Fix diagnostics OTEL runtime install trust **PR #92045** Fix diagnostics OTEL runtime install trust. Thanks @efpiva. 166 **PR #92853** fix(acp) accept MCP date protocolVersion in ACP server. Related #56102. Thanks @bugkill3r and @moliveto. 167 **PR #92854** fix(hooks) reject slug-generator error payloads. Thanks @Cypherm. 168 **PR #92855** fix(ui) repair iOS Safari chat viewport handling. Thanks @macdao. 169 **PR #91586** fix(update) continue after package doctor warnings. Thanks @fuller-stack-dev. 170 **PR #92862** fix(feishu) target typing reaction on inbound message. Thanks @huiwen01. 171 **PR #92861** fix(lobster) surface workflow path errors. Related #68101. Thanks @vvitovec and @MPC7500. 172 **PR #69975** fix(cli) clarify --tz help text for offset-less --at values. Related #59456. Thanks @rrrrrredy. 173 **PR #90682** fix(openai) preserve opaque reasoning transcript fields. Related #90093. Thanks @toruvieI and @richardmqq. 174 **PR #92373** fix(anthropic) strip thinking blocks from history when thinking is disabled (fixes #92360). Thanks @liuhao1024 and @notnaji. 175 **PR #87346** fix(anthropic) merge consecutive assistant turns in turn validation. Related #87329. Thanks @Jefsky and @travellingsoldier85. 176 **PR #92896** fix(anthropic) quarantine invalid direct tool schemas. Thanks @vincentkoc. 177 **PR #90739** fix(active-memory) preserve verbose recall summaries. Related #90454. Thanks @brokemac79 and @nocode-ananas. 178 **PR #92558** Simplify QA scorecard mapping shape **PR #92558** Simplify QA scorecard mapping shape. Thanks @RomneyDa. 179 **PR #92876** fix(memory-wiki) stop flagging raw source pages as malformed. Thanks @vincentkoc. 180 **PR #92908** fix(providers) quarantine unreadable Anthropic payload tools. Thanks @vincentkoc. 181 **PR #92881** fix(memory) preserve reindex rollback recovery. Thanks @TSHOGX and @vincentkoc. 182 **PR #92921** fix(openai) quarantine unreadable tool schemas. Thanks @vincentkoc. 183 **PR #92550** Fold Telegram RTT sampling into live QA evidence **PR #92550** Fold Telegram RTT sampling into live QA evidence. Thanks @RomneyDa. 184 **PR #92824** fix(media) route OAuth image defaults through Codex. Related #87168. Thanks @bek91. 185 **PR #92928** fix(openai) guard post-hook tool payloads. Thanks @vincentkoc. 186 **PR #92814** fix(feishu) re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837). Thanks @liuhao1024 and @vincentkoc and @cwlong163-afk. 187 **PR #89055** fix restart gateway after isolated cron setup timeout. Thanks @ghitafilali. 188 **PR #90574** fix(openai) omit gpt-5.5 tool reasoning effort. Thanks @BSG2000. 189 **PR #92941** fix(openai) recover invalid reasoning signatures. 190 **PR #92914** fix(agents) clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412. Thanks @openperf and @oiGaDio. 191 **PR #92573** fix preserve config-selected subagent model overrides. Related #92486. Thanks @arkyu2077 and @PatrickTrent. 192 **PR #92852** fix(gateway) fall back to polling when config watcher exhausts inotify retries. Related #92851. Thanks @danbao. 193 **PR #92362** fix(gateway) build row metadata context for single session lists. Thanks @anyech. 194 **PR #92897** fix(memory-wiki) tolerate public artifacts without agent ids. Related #92207. Thanks @yu-xin-c and @qq230849622-a11y. 195 **PR #92002** fix(lmstudio) deliver thinking "off" to binary-thinking models. Related #91913. Thanks @nxmxbbd and @mlaihk. 196 **PR #92738** Forward suppressed-source progress for message-tool channel r... **PR #92738** Forward suppressed-source progress for message-tool channel replies. Thanks @ragesaq. 197 **PR #92916** #92201 Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized. Thanks @mmyzwl and @CarlCapital. 198 **PR #90936** fix(agents) do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon. 199 **PR #93009** fix(agents) make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv. 200 **PR #92318** fix(cron) require explicit message target proof. Thanks @hxy91819. 201 **PR #93022** fix(gateway) repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49. 202 **PR #93159** fix(tui) keep parent stdin paused after exit. Thanks @fuller-stack-dev. 203 **PR #93616** Keep key-free web search providers opt-in **PR #93616** Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc. 204 **PR #93164** fix(telegram) preserve rich markdown line breaks. Thanks @vincentkoc.
Release

2026.6.7

2026.6.7

66 changes Open upstream ↗
01 **Durable channel replies ** Telegram polling and preview failures recover instead of ending a stream, Slack keeps delivered replies in the transcript, and top-level image sends retain their intended media source. (#92281, #92498, #92416) Thanks @joshavant, @TurboTheTurtle, @xydigit-sj, @ichirokyoto, @TalkingHeadsJed, and @riseandshinefutures. 02 **More dependable provider sessions ** SecretRef-backed profiles, configured DeepSeek transports, static model fallback, Anthropic thinking replay, and Codex prompt memory all recover cleanly instead of leaving a turn unusable. (#92265, #92235, #92293, #92286, #92350) Thanks @joshavant, @rubencu, @sallyom, @marcoraepple-sys, @LINSUISHENG034, @mattsfraser, and @reginaldomarcilon. 03 **Kimi K2.7 Code support ** the provider catalog now includes the new Kimi coding model, with replay handling that preserves its reasoning content across tool turns. (#92554, #92396) Thanks @xialonglee and @RoseKongPS. 04 **Safer operations ** SQLite-backed cron status, disabled heartbeat retries, Linux service updates, and external-plugin diagnosis now expose clearer, actionable state to operators. (#92144, #92225, #92282, #86629) Thanks @liuhao1024, @joshavant, @brokemac79, @AaronFaby, @cdeyoung67, @ooiuuii, @shakkernerd, @A1fred-AI, and @hanyizuo. 05 **Guarded skill installs ** Skill Workshop support-file targets now go through trusted lifecycle writes instead of unbounded filesystem updates, while ClawHub package checks stay on the current release path. (#91311) Thanks @abnershang. 06 Skills and plugin workflows now permit trusted Skill Workshop support-file... Skills and plugin workflows now permit trusted Skill Workshop support-file targets only through guarded lifecycle writes, and package publishing uses the current ClawHub plugin checks. (#91311) Thanks @abnershang and @vincentkoc. 07 Providers add Kimi K2.7 Code support. (#92554) 08 **PR #92144** fix(cron) report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766. Thanks @liuhao1024 and @AaronFaby. 09 **PR #92175** fix(channel) harden local setup trust. Thanks @hxy91819. 10 **PR #91528** fix #73837 stop after failed Node package installs. Thanks @mushuiyu886 and @ItsMeForLua. 11 **PR #91561** fix(wizard) report keyless web_search providers as ready, not missing a key. Thanks @NormallyGaussian. 12 **PR #92073** fix handle explicit silent assistant replies. Related #92038. Thanks @sallyom and @vultusv. 13 **PR #91311** Allow Skill Workshop apply through trusted skill symlinks **PR #91311** Allow Skill Workshop apply through trusted skill symlinks. Thanks @abnershang. 14 **PR #88245** refactor(whatsapp) introduce inbound message contexts. Thanks @mcaxtr. 15 **PR #92212** refactor move workspace skill writes to lifecycle. Thanks @shakkernerd. 16 **PR #92248** Remove ClawHub owner preflight **PR #92248** Remove ClawHub owner preflight. Thanks @Patrick-Erichsen. 17 **PR #91617** test(sqlite) add state perf query plan harness. Related #91616. Thanks @galiniliev. 18 **PR #91626** fix(daemon) keep status readable on unsupported services. Related #25621. Thanks @mushuiyu886 and @kucharskim. 19 **PR #92295** fix(cron) preserve tz and staggerMs when --cron replaces expression. Related #92291. Thanks @liuhao1024 and @dcapclaw. 20 **PR #92087** fix(docker) bundle QA Lab runtime in the image. Thanks @jesse-merhi. 21 **PR #92004** fix(telegram) classify streaming preview edit failures instead of killing the draft. Thanks @obviyus. 22 **PR #91997** fix(telegram) survive getUpdates conflicts in isolated polling ingress. Thanks @obviyus. 23 **PR #92387** fix(anthropic-vertex) stop re-marking cache_control on transport-budgeted payloads. Related #91982. Thanks @openperf and @Takhoffman and @danieljimz. 24 **PR #92229** Fix doctor preview channel SecretRef resolution **PR #92229** Fix doctor preview channel SecretRef resolution. Related #91939. Thanks @joshavant and @Niriakot. 25 **PR #92225** Fix disabled heartbeat one-shot cron retries **PR #92225** Fix disabled heartbeat one-shot cron retries. Related #91775. Thanks @joshavant and @A1fred-AI. 26 **PR #92265** Fix configured DeepSeek model transport inheritance **PR #92265** Fix configured DeepSeek model transport inheritance. Related #92148. Thanks @joshavant and @marcoraepple-sys. 27 **PR #92226** Fail closed for CLI-backed /btw fallback **PR #92226** Fail closed for CLI-backed /btw fallback. Related #92168. Thanks @joshavant and @wangwllu. 28 **PR #92231** Fix suppressed heartbeat commitment delivery **PR #92231** Fix suppressed heartbeat commitment delivery. Related #91948. Thanks @joshavant and @bizzle12368239. 29 **PR #92280** fix(agents) classify structured unsupported model errors. Related #92118. Thanks @joshavant and @pikaqqqqqq. 30 **PR #92276** Fix OTLP log trace correlation **PR #92276** Fix OTLP log trace correlation. Related #91865. Thanks @joshavant and @sinzin91. 31 **PR #92282** fix(update) hand off Linux service auto-updates. Related #91823. Thanks @joshavant and @hanyizuo. 32 **PR #92235** fix resolve managed SecretRef provider auth. Related #92097. Thanks @joshavant and @LINSUISHENG034. 33 **PR #92293** Fix provider static model fallback resolution **PR #92293** Fix provider static model fallback resolution. Related #92009. Thanks @joshavant and @mattsfraser. 34 **PR #92343** fix(agent) continue after source message tool replies. Related #92169. Thanks @joshavant and @elyalvarado. 35 **PR #92350** fix(codex) preserve memory prompt registration. Thanks @rubencu and @sallyom. 36 **PR #92290** fix clarify gateway SecretRef auth diagnostics. Related #91815. Thanks @joshavant and @mattsfraser. 37 **PR #92286** fix repair rejected Anthropic thinking replay. Related #91983. Thanks @joshavant and @reginaldomarcilon. 38 **PR #92281** Fix Telegram spooled buffered replay **PR #92281** Fix Telegram spooled buffered replay. Related #92129. Thanks @joshavant and @riseandshinefutures. 39 **PR #47493** fix(doctor) show per-step progress spinners during update. Thanks @amersheeny. 40 **PR #92416** fix(outbound) honor top-level image param as send media source (#92407). Thanks @xydigit-sj and @ichirokyoto. 41 **PR #92508** fix(sandbox) render CLI skill prompts from materialized paths. Thanks @brokemac79. 42 **PR #92540** chore fix esbuild production audit failure. Thanks @RomneyDa. 43 **PR #91484** Add QA evidence artifact output **PR #91484** Add QA evidence artifact output. Thanks @RomneyDa. 44 **PR #91500** Add QA scorecard taxonomy validation **PR #91500** Add QA scorecard taxonomy validation. Thanks @RomneyDa. 45 **PR #84082** fix(telegram) allow expandable blockquotes. Thanks @jzakirov. 46 **PR #92554** feat(moonshot) add Kimi K2.7 Code support. 47 **PR #92396** fix(moonshot) backfill reasoning_content on assistant tool-call replay messages. Related #71491. Thanks @xialonglee and @RoseKongPS. 48 **PR #92566** Fix lifecycle timeout cleanup after leader exit **PR #92566** Fix lifecycle timeout cleanup after leader exit. Thanks @RomneyDa. 49 **PR #92311** ci split plugin ClawHub publishing paths. Thanks @Patrick-Erichsen. 50 **PR #92216** fix(gateway) mirror hidden commentary-phase assistant events. Thanks @ragesaq. 51 **PR #87596** fix(moonshot) rewrite duplicate native Kimi tool_call ids on replay. Related #51593. Thanks @Pluviobyte and @Faaab84. 52 **PR #88993** Expose paged channel action results **PR #88993** Expose paged channel action results. Thanks @fuller-stack-dev. 53 **PR #90326** fix(fireworks) resolve catalog model params from plugin.json via core. Thanks @obuchowski. 54 **PR #86629** fix(doctor) warn for untrusted external Discord plugin. Related #83212. Thanks @brokemac79 and @ooiuuii and @cdeyoung67. 55 **PR #90242** fix(providers) skip unreadable Mistral tool schemas. Thanks @vincentkoc. 56 **PR #92498** fix(reply) mirror same-channel Slack final replies. Related #92489. Thanks @TurboTheTurtle and @TalkingHeadsJed. 57 **PR #92083** fix(channels) default boundary logger for swallowed progress-draft start errors. Thanks @hansraj316. 58 **PR #92564** fix(agents) isolate invalid plugin model catalogs [AI-assisted]. Related #92553. Thanks @tangtaizong666 and @fxstein. 59 **PR #89827** docs UX-013 — design system documentation. Thanks @BunsDev. 60 **PR #89615** feat(ui) hide empty workboard columns. Thanks @BunsDev. 61 **PR #89822** fix(a11y) B-1+B-2+B-3 — contrast, focus states, minimum font sizes. Thanks @BunsDev. 62 **PR #92618** fix #92218 memory_search tool disabled with QMD backend. Thanks @mushuiyu886 and @zhbcher. 63 **PR #92608** docs(gateway) add uptime monitoring guidance to health check docs (fixes #55768). Thanks @liuhao1024 and @faahim. 64 **PR #92605** fix(docs) pin Windows Hub download links to v2026.6.5. Related #92470. Thanks @lzyyzznl and @arjkul. 65 **PR #92593** #92589 fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters. Thanks @zhangqueping and @jovi2014-cyber. 66 **PR #92606** Run Vitest and Playwright scenarios from qa suite **PR #92606** Run Vitest and Playwright scenarios from qa suite. Thanks @RomneyDa.
Release

2026.6.6

2026.6.6

210 changes Open upstream ↗
01 **Tighter security boundaries ** transcript, sandbox, MCP, browser, channel, and exec-approval paths now fail closed around unsafe access, timed-out approvals, and malformed boundary input. (#91529, #91618, #91741, #91750, #89938) Thanks @joshavant, @pgondhi987, @mmaps, @eleqtrizit, @drobison00, @vincentkoc, and @devinkuhn. 02 **Reliable Telegram delivery ** account-scoped topics route to the correct agent, streamed text survives tool calls, callbacks and draft chunks stay coherent, and unauthorized DM text does not enter cache or prompt context. (#91189, #88682, #90212, #91478, #91915) Thanks @codysai001, @alexzhu0, @snowzlm, @obviyus, @sallyom, @AbdelftahZowail, @producedbysavant, @shakkernerd, @vincentkoc, and @BSG2000. 03 **iMessage stays connected ** always-on inbound recovery, durable echo markers, block streaming, idle approval discovery, and outbound transport now survive restarts and idle periods. (#91335, #91449, #88969, #91783) Thanks @omarshahine, @jmissig, @dwonshin, @colmbrogan, @vincentkoc, and @TurboTheTurtle. 04 **Better browser and MCP connectivity ** existing browser sessions, CDP/WebSocket discovery, default-profile URLs, OAuth/SSE transport, and tool schemas now connect through clearer, safer paths. (#91422, #89851, #91736, #91451) Thanks @pgondhi987, @anagnorisis2peripeteia, @eleqtrizit, @LiuwqGit, @lifuyue, @marcusbsorensen, @cursoragent, @vincentkoc, @849261680, and @mgrandau. 05 **Faster first replies ** Control UI startup no longer waits on broad model loading, while cached metadata, lazy slash-command work, and first-event tracing make slow initial responses visible. (#91531, #91538, #91568, #91583) Thanks @vincentkoc and @BSG2000. 06 **Broader provider support ** OpenRouter OAuth and Claude Fable 5 land alongside correct Codex compaction ownership, local-model execution, normalized tool progress, and Gemma 4 reasoning replay. (#91830, #91882, #91590, #88630, #91696) Thanks @Patrick-Erichsen, @joshavant, @bdjben, @Coder-Wangyankun, @vincentkoc, @bfox55, @shakkernerd, and @NOVA-Openclaw. 07 CLI progress emit Claude CLI commentary progress events and bridge inter-tool commentary into channel progress without exposing internal protocol scaffolding. (#89834, #90883) Thanks @anagnorisis2peripeteia, @AbdelftahZowail, @kentuscn, and @vincentkoc. 08 Observability allow trusted diagnostics channels to capture tool input/output content, add first-assistant-event traces, and warn on slow initial replies. (#91256, #91568, #91583) Thanks @amknight, @mjunaidca, and @vincentkoc. 09 Plugins/ClawHub dogfood reusable package publishing, let dry runs skip publish approval, allow declared installed trusted hooks, report managed plugin version drift, and warn instead of failing on retired Skill Workshop configuration. (#91574, #91591, #90004, #90927, #90838) Thanks @Patrick-Erichsen, @brokemac79, @lonexreb, @rogerallen1, @vincentkoc, and @ryanhelms. 10 Memory/providers move the local llama.cpp runtime into its provider plugin, batch embeddings across files, persist the agent model catalog cache, and keep QMD JSON search one-shot while filtering stale REM recall previews. (#91324, #89138, #90457, #91837, #91851) Thanks @osolmaz, @mushuiyu886, @ai-hpc, @TurboTheTurtle, @jalehman, @hartmark, @vincentkoc, @rudi193-cmd, @Peilsender, and @xpysgdhr. 11 Channels/mobile add the QQBot group mention toggle, improve iPad and iPhone control surfaces, and expose the active connection host in the TUI footer. (#91423, #91557, #89909) Thanks @cxyhhhhh, @Solvely-Colin, @baskduf, @joshavant, @sliverp, and @deuxksy. 12 Performance prewarm TUI runtime plugins, deduplicate plugin auto-enable fanout, trim dense text-delta snapshots, and reuse prepared startup model metadata. (#90782, #89978, #91580, #91531) Thanks @RomneyDa, @ai-hpc, @vincentkoc, and @JakeBiggs. 13 **PR #91335** fix(imessage) always-on inbound recovery and dedupe. Related #89237. Thanks @omarshahine and @vincentkoc and @dwonshin. 14 **PR #91189** fix(telegram) route account-scoped topic agents. Thanks @codysai001. 15 **PR #88682** Preserve Telegram streamed text blocks between tool calls **PR #88682** Preserve Telegram streamed text blocks between tool calls. Related #87326. Thanks @alexzhu0 and @AbdelftahZowail. 16 **PR #91390** fix clarify provider quota errors. Thanks @hxy91819. 17 **PR #90883** fix(cli) bridge inter-tool commentary events to channel progress. Thanks @anagnorisis2peripeteia. 18 **PR #91419** docs preserve channel brand terms in Chinese i18n. Thanks @hxy91819. 19 **PR #87105** fix(gateway) share approval runtime socket token. Thanks @fuller-stack-dev. 20 **PR #80082** fix(android) avoid dataSync FGS for persistent node. Thanks @davelutztx. 21 **PR #91442** docs preserve LINE across localized docs glossaries. Thanks @hxy91819. 22 **PR #88768** fix(codex) normalize dynamic tool progress results. Thanks @bdjben. 23 **PR #91422** fix(browser) neutralize media directives in browser output [AI]. Thanks @pgondhi987. 24 **PR #89834** feat(cli) emit commentary progress events from Claude CLI parser. Related #87326. Thanks @anagnorisis2peripeteia and @AbdelftahZowail. 25 **PR #85679** fix(agents) drop stale exec approval followups after session rebind. Related #59349. Thanks @openperf and @two3pro. 26 **PR #91450** fix(reply-queue) remove the drained item by reference instead of front index. Thanks @yetval. 27 **PR #89151** fix(delivery) suppress Codex/Harmony internal protocol artifacts from user-facing channels. Related #88128. Thanks @joelnishanth and @reslp. 28 **PR #90678** fix(cron) recover no-deliver tool warnings. Thanks @ai-hpc. 29 **PR #91449** fix(imessage) honor block streaming config. Thanks @jmissig and @omarshahine. 30 **PR #91508** Revert "docs add maturity scorecard mirror". Thanks @kevinslin. 31 **PR #91364** build(deps) bump github.com/steipete/peekaboo from 3.3.0 to 3.4.0 in /apps/macos in the swift-deps group. 32 **PR #91368** build(deps) bump actions/github-script from 8 to 9. 33 **PR #91512** chore add taxonomy file. Thanks @kevinslin. 34 **PR #91369** build(deps) bump actions/cache from 4 to 5. 35 **PR #91367** build(deps) bump the actions group with 2 updates. 36 **PR #91365** build(deps) bump the android-deps group in /apps/android with 3 updates. 37 **PR #91496** chore bump Codex app-server to 0.137.0. Thanks @RomneyDa. 38 **PR #90666** fix(cron) cancel active cron task runs. Thanks @ai-hpc. 39 **PR #90927** fix(doctor) report managed plugin version drift. Related #90891. Thanks @brokemac79. 40 **PR #91531** perf(control-ui) reuse startup model metadata. Thanks @vincentkoc. 41 **PR #91538** perf(control-ui) avoid startup catalog wait. Thanks @vincentkoc. 42 **PR #91507** feat canonicalize Codex protocol JSON asset ordering. Thanks @RomneyDa. 43 **PR #91550** fix bound native hook relay lifetime. Related #90993. Thanks @joshavant and @clem-git. 44 **PR #89588** fix(telegram) restore /compact on generic message ingress. Related #89525. Thanks @joelnishanth and @cursoragent and @bomberluke37-prog. 45 **PR #91529** Fix transcript image redaction **PR #91529** Fix transcript image redaction. Related #90760. Thanks @joshavant and @devinkuhn. 46 **PR #91551** Fix config **PR #91551** Fix config.patch explicit array replacement. Thanks @joshavant. 47 **PR #91568** perf(control-ui) trace first assistant event. Thanks @vincentkoc. 48 **PR #85823** fix(whatsapp) route captured replies through successor controller after restart. Thanks @itsuzef and @mcaxtr. 49 **PR #91574** feat dogfood reusable ClawHub package publish. Thanks @Patrick-Erichsen. 50 **PR #91583** perf(control-ui) warn on slow first replies. Thanks @vincentkoc. 51 **PR #89659** fix(feishu) retry on send rate-limit errors (230020/230006). Related #70879. Thanks @ladygege and @marshallm-create and @sliverp and @AxelHu. 52 **PR #91547** Fix Docker store seed target packages **PR #91547** Fix Docker store seed target packages. Related #91035. Thanks @sallyom and @laurenceputra. 53 **PR #91578** fix make docs i18n frontmatter translation resilient. Thanks @hxy91819. 54 **PR #91567** fix(openai) require api-key auth for realtime voice. Related #90456. Thanks @joshavant and @sergiopesch. 55 **PR #91591** fix let ClawHub dry runs skip publish approval. Thanks @Patrick-Erichsen. 56 **PR #91598** perf(control-ui) lazy load slash commands. Thanks @vincentkoc. 57 **PR #91580** fix(agents) trim dense text delta snapshots. Related #86599. Thanks @vincentkoc and @JakeBiggs. 58 **PR #91425** fix(memory-lancedb) guard memory recall output [AI]. Thanks @pgondhi987. 59 **PR #88969** fix(imessage) persist echo markers before send. Thanks @colmbrogan. 60 **PR #91566** Fix stale main session startup recovery **PR #91566** Fix stale main session startup recovery. Related #90525. Thanks @joshavant and @Tony-ooo. 61 **PR #91324** fix(memory) move local llama.cpp runtime to provider plugin. Related #88705. Thanks @osolmaz and @Peilsender. 62 **PR #91637** docs include plugin prerelease in release validation approval. 63 **PR #91649** fix(line) canonicalize trailing-slash webhook paths. 64 **PR #91423** feat(qqbot) add /bot-group-allways command to toggle mention requirement. Thanks @cxyhhhhh and @sliverp. 65 **PR #91642** fix(docs) continue partial i18n batches after file errors. Thanks @hxy91819. 66 **PR #91661** chore(plugin-sdk) refresh API baseline hash. 67 **PR #91665** docs fix release CI Android dispatch guidance. 68 **PR #89138** fix #88009 [Feature]: batched memory embedding should batch over files. Thanks @mushuiyu886 and @jalehman and @hartmark. 69 **PR #91679** fix(plugin-sdk) align Discord component edit facade types. Thanks @vincentkoc. 70 **PR #91686** fix(discord) restore runtime timeout compatibility exports. Thanks @vincentkoc. 71 **PR #90212** fix(agents) deliver native /compact replies through source suppression. Thanks @snowzlm. 72 **PR #91618** fix expand unsafe host env denylist. Thanks @pgondhi987. 73 **PR #91615** fix block rustup toolchain env overrides [AI]. Thanks @pgondhi987. 74 **PR #89851** fix(gateway) support Streamable HTTP MCP transport on loopback server. Thanks @anagnorisis2peripeteia. 75 **PR #91619** fix block git protocol env controls [AI]. Thanks @pgondhi987. 76 **PR #91684** fix(mattermost) keep default replies in existing threads. Thanks @jacobtomlinson. 77 **PR #90457** fix(models) persist agent catalog cache. Thanks @ai-hpc. 78 **PR #91709** fix(status) restore Codex synthetic usage line. Related #91694. Thanks @brokemac79. 79 **PR #89909** fix(tui) show connection host in footer. Related #56276. Thanks @baskduf and @deuxksy. 80 **PR #89978** perf(config) dedupe plugin auto-enable fanout work. Thanks @ai-hpc. 81 **PR #91219** fix(gateway) skip deleted-agent guard for ACP harness session keys. Thanks @scotthuang. 82 **PR #90782** perf(tui) prewarm runtime plugins before first send. Thanks @RomneyDa. 83 **PR #90838** fix(config) warn for retired skill-workshop plugin entry instead of failing validation (#90244). Thanks @lonexreb and @rogerallen1. 84 **PR #91753** docs clarify Matrix plugin upgrade repair. Thanks @RomneyDa. 85 **PR #91755** docs align Feishu DM policy defaults. Thanks @RomneyDa. 86 **PR #91745** fix(discord) require sender for moderation actions [AI]. Thanks @eleqtrizit. 87 **PR #85950** docs clarify trusted-proxy Control UI scope behavior. Related #80063. Thanks @nielskaspers and @longstoryscott. 88 **PR #91746** fix(msteams) require admin for group actions. Thanks @eleqtrizit. 89 **PR #91256** feat(diagnostics-otel) capture tool input/output content via trusted channel. Thanks @amknight. 90 **PR #91749** fix(gateway) restrict non-owner loopback tools. Thanks @eleqtrizit. 91 **PR #91748** fix(elevated) reject group ids as senders. Thanks @eleqtrizit. 92 **PR #91752** fix(codex) guard sandbox http requests. Thanks @eleqtrizit. 93 **PR #91763** fix require ACP metadata for deleted-agent bypass. Thanks @shakkernerd. 94 **PR #91751** fix(mcp) harden stdio env filtering. Thanks @eleqtrizit. 95 **PR #91765** Clarify env-var executable behavior reports in SECURITY **PR #91765** Clarify env-var executable behavior reports in SECURITY.md. Thanks @jacobtomlinson. 96 **PR #91480** fix(ui) require user intent for chat sessions. Related #89760. Thanks @TurboTheTurtle and @Takhoffman and @zdwalter. 97 **PR #91777** docs remove superpowers spec draft. Thanks @Patrick-Erichsen. 98 **PR #91773** fix(mcp) lowercase SSE event-source header keys to prevent duplicate Authorization (401). Thanks @Takhoffman. 99 **PR #91741** Validate sandbox bind parent paths [AI] **PR #91741** Validate sandbox bind parent paths [AI]. Thanks @mmaps. 100 **PR #88530** fix(imessage) skip idle approval discovery scans. Thanks @colmbrogan and @omarshahine. 101 **PR #91780** fix(ui) drain restored chat queue after session switch. Thanks @tmimmanuel. 102 **PR #91750** fix(search) enforce native web search tool policy. Thanks @eleqtrizit. 103 **PR #91757** fix(config) clarify retired skill workshop plugin warning. Thanks @RomneyDa. 104 **PR #91787** fix(doctor) keep TTS legacy migration on supported paths. 105 **PR #91783** fix(imessage) harden outbound send transport. Related #84329. Thanks @omarshahine and @TurboTheTurtle. 106 **PR #91785** fix(imessage) surface inbound startup diagnostics. Thanks @omarshahine. 107 **PR #91590** Fix context-engine compaction ownership for Codex sessions **PR #91590** Fix context-engine compaction ownership for Codex sessions. Thanks @joshavant. 108 **PR #91557** Improve iPad and iPhone control surfaces **PR #91557** Improve iPad and iPhone control surfaces. Thanks @Solvely-Colin and @joshavant. 109 **PR #91666** chore(deps) bump useblacksmith/setup-docker-builder from 1.8.0 to 1.9.0 in the actions group. 110 **PR #91819** docs link ClawHub plugin validation fixes guide. Thanks @Patrick-Erichsen. 111 **PR #88630** fix(codex) avoid guardian review for local models. Thanks @vincentkoc. 112 **PR #91830** feat add OpenRouter OAuth to onboarding. Thanks @Patrick-Erichsen. 113 **PR #91842** fix(plugin-sdk) refresh API baseline hash. 114 **PR #91614** fix(gateway) surface headless LaunchAgent state. Thanks @fuller-stack-dev. 115 **PR #91851** fix(memory-core) filter stale recall entries in REM harness preview. Thanks @vincentkoc. 116 **PR #91859** fix(ci) disable memory slot in release smoke config. Thanks @vincentkoc. 117 **PR #90004** [plugin sdk] Allow declared installed trusted hooks **PR #90004** [plugin sdk] Allow declared installed trusted hooks. Related #87735. Thanks @brokemac79 and @ryanhelms. 118 **PR #91837** fix(memory-core) keep QMD JSON search one-shot. Related #91821. Thanks @TurboTheTurtle and @xpysgdhr. 119 **PR #91871** Remove bundled channel contract fallbacks **PR #91871** Remove bundled channel contract fallbacks. Thanks @obviyus. 120 **PR #91879** fix(ci) include ACPX in shared live-test image. 121 **PR #91840** Fix stale visible reply recovery **PR #91840** Fix stale visible reply recovery. Related #90535. Thanks @joshavant and @Jerry-Xin. 122 **PR #91876** Fix Telegram callback API handling **PR #91876** Fix Telegram callback API handling. Thanks @obviyus. 123 **PR #91874** Share channel draft chunking resolver **PR #91874** Share channel draft chunking resolver. Thanks @obviyus. 124 **PR #91599** fix(update) expose plugin convergence repair. Thanks @fuller-stack-dev. 125 **PR #91581** fix(update) recover package gateway restart after refresh failure. Thanks @fuller-stack-dev. 126 **PR #91904** fix(telegram) use SDK dispatch dedupe. Thanks @obviyus. 127 **PR #90263** fix(discord) hydrate reply context metadata. Thanks @fuller-stack-dev. 128 **PR #91478** block unauthorized Telegram DM text from prompt context **PR #91478** block unauthorized Telegram DM text from prompt context. Related #91209. Thanks @sallyom and @producedbysavant. 129 **PR #91915** fix(telegram) audit follow-ups — block-mode chunk config, dedupe bucket cleanup, grammy contract trust. Thanks @obviyus. 130 **PR #91361** fix(compaction) lower default timeout from 900s to 180s, preserve explicit config. Related #91358. Thanks @wangmiao0668000666 and @velvet-shark and @olveww-dot. 131 **PR #91791** fix(sandbox) use materialized skill paths in startup prompts. Related #91761. Thanks @brokemac79 and @vincentkoc and @gbb-netizen. 132 **PR #91736** Support existing-session browser CDP endpoints **PR #91736** Support existing-session browser CDP endpoints. Related #56118. Thanks @lifuyue and @mgrandau. 133 **PR #91747** fix(browser) validate discovered CDP websocket URLs. Thanks @eleqtrizit. 134 **PR #91882** feat(anthropic) support Claude Fable 5 adaptive thinking. Related #91805. Thanks @NOVA-Openclaw. 135 **PR #91884** fix(memory) keep ignored-name QMD roots watchable. Thanks @vincentkoc. 136 **PR #91740** fix(auth) verify SQLite auth migration before cleanup. Thanks @fuller-stack-dev and @velvet-shark. 137 **PR #91451** fix(mcp) repair OAuth redirect, errors, and unicode schema patterns. Related #91433. Thanks @LiuwqGit and @cursoragent and @vincentkoc and @marcusbsorensen. 138 **PR #91978** fix(gateway) arm qmd startup maintenance. Thanks @vincentkoc. 139 **PR #90426** fix(talk) show OpenAI Realtime WebRTC assistant transcripts. Thanks @shushushv and @vincentkoc. 140 **PR #91696** fix(agents) preserve reasoning_content replay for Gemma 4 openai-completions models. Related #91645. Thanks @Coder-Wangyankun and @bfox55. 141 **PR #89938** Fail closed on exec approval timeout **PR #89938** Fail closed on exec approval timeout. Thanks @drobison00. 142 **PR #91895** fix(webchat) finalize provider failure lifecycle. Related #91730. Thanks @TurboTheTurtle and @sallyom and @nikhilmaddirala. 143 **PR #80143** fix(browser) honor cdpUrl for user default profile. Related #48042. Thanks @HemantSudarshan and @Max-Resilient. 144 **PR #91688** fix(cron) reject cron expressions that have no reachable run time. Thanks @yetval and @vincentkoc. 145 **PR #91737** fix(cron) use final-call usage for session token totals. Related #91716. Thanks @MonkeyLeeT and @vincentkoc and @yetval. 146 **PR #89605** fix(process) return timeout code for killed commands. Thanks @ai-hpc. 147 **PR #80013** perf(usage-cost-cache) throttle full-cache rewrites during refresh. Thanks @zeroaltitude. 148 **PR #76731** Fix mobile Control UI chat layout **PR #76731** Fix mobile Control UI chat layout. Thanks @Solvely-Colin. 149 **PR #83738** fix(cron) capture originating session/agent on the cron wake tool call. Thanks @anagnorisis2peripeteia. 150 **PR #85196** Redact tool output secrets **PR #85196** Redact tool output secrets. Thanks @amknight. 151 **PR #92007** fix(security) block build tool env overrides. Thanks @eleqtrizit. 152 **PR #91891** fix preserve non-oneOf protocol schema array order. Thanks @RomneyDa. 153 **PR #91754** fix(macos) hide unsupported Voice Wake controls. Related #89575. Thanks @RomneyDa and @cwhyhy. 154 **PR #92049** test(ci) restore upgrade survivor session fixture. Thanks @vincentkoc. 155 **PR #89670** fix keep skill toggles keyed by skill identity. Related #89661. Thanks @s-moffett. 156 **PR #91934** fix(state) tolerate chmod failures when opening the state database. Related #91919. Thanks @truffle-dev and @david-garcia-garcia. 157 **PR #92051** fix(fal) parse raw completed queue results. Related #91989. Thanks @harjothkhara and @oswaldyeo. 158 **PR #92047** fix(agents) prefer explicit sessions_send keys. Related #64699. Thanks @vincentkoc and @sunxq1017-hash. 159 **PR #92020** fix(memory-core) check SQLite plugin state for dreaming ingestion audit after JSON migration (fixes #92017). Thanks @zenglingbiao and @JUMPUNDER. 160 **PR #92032** fix(mcp) always log channel-bridge notification failures. Thanks @hansraj316. 161 **PR #92033** fix(gateway) log swallowed background-task finalization errors. Thanks @hansraj316. 162 **PR #92022** fix(sessions) derive channel from direct-chat session keys in send-policy. Thanks @hansraj316. 163 **PR #91163** fix(xai) clarify x_search query guidance. Thanks @rubencu. 164 **PR #90121** fix(memory) write dream fallback without subagent runtime. Thanks @a-m-a-r-a. 165 **PR #91215** fix(ui) show prompt progress while sending. Related #91199. Thanks @zhangguiping-xydt and @vincentkoc and @Monniasza. 166 **PR #92029** fix(tools) surface unsupported-signal in anyOf availability. Thanks @hansraj316. 167 **PR #92034** perf(agents) memoize XML attribute regex in DSML stream parser. Thanks @hansraj316. 168 **PR #92026** perf(agents) sanitize compaction messages once for token estimation. Thanks @hansraj316. 169 **PR #91351** fix(opencode-go) add qwen plus tiered pricing. Related #91238. Thanks @849261680 and @vincentkoc and @samson910022. 170 **PR #92027** fix(gateway) recover config hot-reload after watcher errors. Thanks @hansraj316. 171 **PR #91471** feat(cron) add readable ISO time fields to `cron runs` JSON output. Thanks @FMLS and @cursoragent. 172 **PR #91711** bug: fix(agents): classify harness provider mismatch as format error (#91710). Thanks @a-tokyo. 173 **PR #91292** fix(models) keep bundled provider catalog when configured base URL is blank (#91270). Thanks @yetval and @vincentkoc and @resYuto. 174 **PR #91720** bug: fix(openai): remove chatgpt-responses transport override from gpt-5.3-codex catalog entry. Related #91710. Thanks @a-tokyo. 175 **PR #91305** fix(control-ui) make Control UI bootstrap config endpoint base-path-relative (#66946). Thanks @Alix-007 and @vincentkoc and @yndwx01. 176 **PR #92056** fix(exec) honor state dir approvals. Thanks @vincentkoc. 177 **PR #91897** fix(memory) self-heal missing index identity by initializing provider during sync. Thanks @xydt-tanshanshan and @vincentkoc. 178 **PR #91802** fix(diagnostics) release wedged session lane when stuck-session recovery aborts a run with queued session work. Related #91700. Thanks @openperf and @infocus13. 179 **PR #92030** fix(cron) structural top-of-hour match in stagger heuristic. Thanks @hansraj316 and @vincentkoc. 180 **PR #92055** fix(media) resolve state-relative inbound attachments. Thanks @sercada and @vincentkoc. 181 **PR #91962** fix(agent) dampen Discord stale thread replies. Thanks @RomneyDa. 182 **PR #90912** fix(agents) honor configured CLI resume timeouts. Thanks @ai-hpc and @vincentkoc. 183 **PR #91296** fix hand off supervised git updates. Thanks @abnershang. 184 **PR #91950** fix(web_fetch) sanitize URL whitespace from LLM tool call arguments (fixes #91651). Thanks @zenglingbiao and @vincentkoc and @akang1798. 185 **PR #77367** fix(discord) scope command-deploy cache by application id. Related #77359. Thanks @lonexreb and @sallyom and @igmarketing. 186 **PR #91976** feat(auto-reply) durable inter-tool commentary via verbose standalone progress (supersedes #89850/#89890). Thanks @anagnorisis2peripeteia. 187 **PR #90128** fix(sessions) preserve user /model override across daily/idle session rollover (#90119). Thanks @Marvinthebored. 188 **PR #92084** fix(clickclack) allow explicit enable through plugin allowlist. 189 **PR #92092** fix(auto-reply) stop dropping claude-cli narration when commentary lane is off. Thanks @ragesaq. 190 **PR #92123** #92109 [Bug]: EmbeddedAttemptSessionTakeoverError caused by Btrfs ctimeNs instability. Thanks @lzyyzznl and @vincentkoc and @recruits. 191 **PR #92136** fix(feishu) reply inside P2P direct-message threads. Thanks @LiaoyuanNing and @vincentkoc. 192 **PR #92121** fix(memory) preserve live SQLite index during swaps. Related #91216. Thanks @xydt-tanshanshan and @chrisreddington. 193 **PR #90173** fix(agents) stabilize a2a prompt cache context. Thanks @Sunjae-k and @sunjae-1. 194 **PR #91974** fix(cli-runner) scope claude-cli queue to live-session owner identity (#91946). Thanks @wangwllu. 195 **PR #92053** fix(thinking) apply Claude profile to anthropic-messages catalog rows. Related #91975. Thanks @wangwllu. 196 **PR #41991** Google show detailed Gemini CLI OAuth extraction failures. Thanks @bgmbgm94. 197 **PR #92074** fix(qqbot) flush tool output before silent non-streaming final. Thanks @sliverp. 198 **PR #89508** fix(models) clarify provider model registration hint. Related #89192. Thanks @sweetcornna and @aaajiao. 199 **PR #89085** fix(agents) keep migrated session entry ids unique on v1 upgrade. Thanks @yetval. 200 **PR #89552** fix(discord) clean migrated thread binding state. Thanks @SYU8384. 201 **PR #89448** fix(cron) reject durations that overflow to a non-finite value. Related #83906. Thanks @Alix-007 and @davinci282828. 202 **PR #89319** fix(doctor) warn on unsupported hook entry loaders. Related #89309. Thanks @leno23 and @vincentkoc and @CameronWeller. 203 **PR #91966** fix(config) stop config.patch replacePaths index suffix from widening array consent. Thanks @yetval and @vincentkoc. 204 **PR #92127** fix(plugins) rescan storm in "/models" call (regression shipped since v2026.5.18). Thanks @obuchowski. 205 **PR #91657** fix(ollama) use provider thinking default in SDK session factory. Related #91428. Thanks @openperf and @vincentkoc and @anijatsu. 206 **PR #91742** fix(memory) abort orphaned embedding work when memory_search times out. Related #91718. Thanks @dreamhunter2333 and @vincentkoc and @NOVA-Openclaw. 207 **PR #89091** fix(memory-core) retry narrative message reads. Thanks @bennewell35. 208 **PR #92150** fix(release) gate beta publish on plugin verification. Thanks @vincentkoc. 209 **PR #92158** fix(cli) validate gateway RPC timeout inputs. Thanks @ruanrrn and @comeran. 210 **PR #91911** fix(agents) retry same model across short rate-limit windows. Thanks @lanzhi-lee.
Release

2026.6.5

2026.6.5

155 changes Open upstream ↗
01 **Safer channel output ** QQBot strips model reasoning and thinking scaffolding before native delivery, so users see the final answer rather than raw internal markup. (#89913, #90132) Thanks @openperf, @dygg2001, @Takhoffman, and @vincentkoc. 02 **MCP results no longer poison sessions ** `resource_link`, audio, malformed images, and future non-text blocks are normalized before provider conversion, avoiding Anthropic 400s and broken follow-up history. (#90710, #90728) Thanks @RanSHammer, @849261680, and @Takhoffman. 03 **Anthropic extended thinking recovers after restarts ** prompt-cache expiry and early-signature failures wait for a real message start, so they reach the existing retry path rather than ending a turn. (#90667, #90697) Thanks @openperf, @MIHHHMIH, @Takhoffman, @vincentkoc, @itsuzef, and @mcaxtr. 04 **Parallel web search is bundled ** API-key discovery, guarded endpoint handling, cache-safe session IDs, onboarding, and documentation make it a first-class search provider. (#85158) Thanks @NormallyGaussian. 05 **Better Matrix and Vertex reliability ** Matrix voice notes and threaded conversations retain their context, while Google Vertex ADC models regain static catalog and runtime resolution. (#78016, #90415, #90506, #90609) Thanks @849261680, @frankdierolf, and @paulogogs. 06 **Safer upgrades and restarts ** cron JSON stores migrate before runtime, service env placeholders stop masking secrets, and macOS avoids unnecessary direct-Gateway reconnect churn. (#90072, #90208, #90668, #90815) Thanks @MonkeyLeeT, @sallyom, @vrurg, @wlassalle724, @jalehman, @Takhoffman, @zhangguiping-xydt, @joshavant, and @vincentkoc. 07 Search/providers add the Parallel bundled web-search plugin, registration contracts, onboarding integration, and guarded `api.parallel.ai/v1/search` support. (#85158) Thanks @NormallyGaussian and @vincentkoc. 08 Matrix/channels add voice-message preflight and thread-aware read/reply behavior. (#78016, #90415) Thanks @frankdierolf. 09 Skills/ClawHub install ClawHub skills backed by GitHub repositories through the resolved install API, download the pinned GitHub commit, keep install-policy checks, and report install telemetry after success. (#90478) Thanks @Patrick-Erichsen, @vincentkoc, @itsuzef, and @mcaxtr. 10 Google Chat/channels add native approval card actions and click handling so Google Chat approvals use platform-native cards instead of generic message flow. 11 Mobile Android provider/model screens now surface expiring, unavailable, unresolved, and attention states more clearly, while iOS settings and Talk tabs keep diagnostics, gateway rows, attachment labels, and unavailable Talk controls reachable. Thanks @joshavant and @shakkernerd. 12 Memory QMD search can use the new rerank toggle, and memory adapter status uses the resolved default model identity when checking plain status. (#61834) Thanks @kouka-t0yohei and @vincentkoc. 13 QQBot add `/bot-group-allways on|off` slash command (with named-account and default-account support) to toggle whether group messages require an `@mention` before the bot replies, and clear the runtime config snapshot after the write so the new account-level `defaultRequireMention` takes effect immediately without restart. (#91423) Thanks @cxyhhhhh, @joshavant, @vincentkoc, @itsuzef, @mcaxtr, and @jacobtomlinson. 14 **PR #89102** refactor(auth) store auth profiles in SQLite. 15 **PR #90028** docs clarify legacy openai-codex auth. Thanks @jalehman. 16 **PR #89600** Fix Workboard status persistence **PR #89600** Fix Workboard status persistence. Related #88592. Thanks @BunsDev and @kzclaw. 17 **PR #90067** fix(workboard) isolate stale lifecycle bulk patches. Thanks @BunsDev. 18 **PR #88585** Pin official npm plugin install records **PR #88585** Pin official npm plugin install records. Thanks @zhuisDEV. 19 **PR #90053** fix hide Skill Workshop revision handoff from chat. Thanks @shakkernerd. 20 **PR #90123** fix(auto-reply) count message tool sends as delivery. Thanks @mcaxtr. 21 **PR #87965** fix(whatsapp) restart channel when a per-account config field changes so disabled accounts are torn down. Related #87951. Thanks @MukundaKatta and @mcaxtr and @borntobefree2-cmyk. 22 **PR #90145** fix protect global agent config defaults [AI]. Thanks @pgondhi987. 23 **PR #90147** Rate limit node pairing requests [AI] **PR #90147** Rate limit node pairing requests [AI]. Thanks @pgondhi987. 24 **PR #89732** fix guard MCP HTTP redirects [AI]. Thanks @pgondhi987. 25 **PR #90181** fix(feishu) preserve streaming card content. Related #90164. Thanks @mushuiyu886 and @sliverp and @wjm7220. 26 **PR #90058** fix(docker) qualify base image refs for podman short-name mode. Thanks @mrunalp and @sallyom. 27 **PR #89488** fix stabilize Anthropic cache marker through tool loops. Thanks @Marvinthebored. 28 **PR #89505** fix(acp) re-add opt-in parent commentary progress. Related #89501. Thanks @100yenadmin. 29 **PR #90341** fix(acp) default parent commentary in progress mode. Thanks @obviyus. 30 **PR #90351** fix(message-tool) stabilize send idempotency keys. Thanks @jesse-merhi. 31 **PR #90375** refactor remove Feishu runtime dedupe JSON fallback. 32 **PR #90385** refactor move MS Teams state migration to doctor. 33 **PR #90287** fix(ci) scope PR merge diff checks to first parent. Thanks @hxy91819. 34 **PR #90436** Add NVIDIA Nemotron 3 Ultra default **PR #90436** Add NVIDIA Nemotron 3 Ultra default. Thanks @jacobtomlinson. 35 **PR #90205** fix tolerate missing streamed response content type. Thanks @jalehman. 36 **PR #90163** fix(agents) strip stale compaction thinking signatures before Anthropic replay. Related #90108. Thanks @openperf and @dexiosmb. 37 **PR #90486** fix(whastapp) bound connection startup waits. Thanks @mcaxtr and @MMMMSSSS8899. 38 **PR #90488** fix service env placeholder collection **PR #90488** fix service env placeholder collection. Thanks @sallyom. 39 **PR #90478** feat install GitHub-backed ClawHub skills. Thanks @Patrick-Erichsen. 40 **PR #90304** feat(memory) support qmd query rerank toggle. Related #61834. Thanks @osolmaz and @kouka-t0yohei. 41 **PR #90532** Fix main CI guard drift **PR #90532** Fix main CI guard drift. Thanks @RomneyDa. 42 **PR #90534** fix(mattermost) anchor slash state on globalThis (#68113). Thanks @Takhoffman and @ly85206559 and @infoanton. 43 **PR #89502** feat(googlechat) add native approval cards. Thanks @kevinslin. 44 **PR #90317** Add Codex multi-agent config migration coverage **PR #90317** Add Codex multi-agent config migration coverage. Thanks @ooiuuii. 45 **PR #90319** Add Codex session route migration coverage **PR #90319** Add Codex session route migration coverage. Thanks @ooiuuii. 46 **PR #90132** fix(qqbot) sanitize outbound text to strip reasoning/thinking content. Related #89913. Thanks @openperf and @Takhoffman and @dygg2001. 47 **PR #89874** fix(agents) detect unsigned thinking-only stall when reasoning payload inflates payloadCount. Related #89787. Thanks @openperf and @Takhoffman and @ArthurusDent. 48 **PR #90594** fix(android) align provider readiness with available models. Thanks @Tosko4. 49 **PR #90576** fix(sessions) reconcile stale terminal main transcripts. Related #60542. Thanks @ferminquant and @kAIborg24. 50 **PR #90405** Fix ClickClack toolsAllow reply dispatch **PR #90405** Fix ClickClack toolsAllow reply dispatch. Thanks @mmaps. 51 **PR #90415** feat(matrix) handle voice preflight and threads. Related #78016. Thanks @frankdierolf. 52 **PR #90208** fix(cron) auto-migrate legacy cron store. Related #90072. Thanks @MonkeyLeeT and @jalehman and @wlassalle724. 53 **PR #85791** fix(gateway) dedupe probe warnings by gateway identity. Thanks @giodl73-repo. 54 **PR #90632** fix(context-engine) forward isHeartbeat to afterTurn (fixes #89302). Thanks @zenglingbiao and @jalehman and @huangxun375-stack. 55 **PR #90250** docs prefer web_fetch in weather skill. Thanks @fuller-stack-dev. 56 **PR #85158** feat(parallel) add Parallel as a bundled web_search provider. Thanks @NormallyGaussian. 57 **PR #86205** fix(tui) stabilize optimistic user messages across history reloads, runId reassignment, and abort. Thanks @RomneyDa. 58 **PR #86483** chore(deps) bump the swift-deps group across 1 directory with 3 updates. 59 **PR #90601** chore(deps) bump the actions group across 1 directory with 4 updates. 60 **PR #81757** chore(deps) bump github.com/apple/swift-testing from 6.3.1 to 6.3.2 in /apps/swabble in the swift-deps group across 1 directory. 61 **PR #86481** chore(deps) bump the android-deps group across 1 directory with 9 updates. 62 **PR #74980** build(deps) bump docker/login-action from 3.6.0 to 4.1.0. 63 **PR #90717** fix(agents) re-probe single-provider primary during cooldown. Related #90702. Thanks @849261680 and @brtkwr. 64 **PR #90609** fix(google) preserve Vertex ADC catalog auth. Related #90506. Thanks @849261680 and @paulogogs. 65 **PR #90775** fix refresh prompt fence after compaction writes. Related #90729. Thanks @jalehman and @johnib. 66 **PR #90027** test(codex) pin completion-idle timeout thread reset. Thanks @harjothkhara. 67 **PR #89566** fix(telegram) suppress post-final tool error noise. Thanks @keshavbotagent. 68 **PR #90607** fix(voice-call) track Twilio streams after connect. Related #81122. Thanks @sahibzada-allahyar and @Takhoffman and @donkeykong91. 69 **PR #90728** fix(agents) coerce non-text/image MCP tool-result blocks to text (fixes #90710). Thanks @849261680 and @Takhoffman and @RanSHammer. 70 **PR #90697** fix(llm) defer Anthropic stream start event until after message_start. Related #90667. Thanks @openperf and @Takhoffman and @MIHHHMIH. 71 **PR #90816** fix(memory) resolve adapter default model in plain status identity check. Related #90413. Thanks @849261680 and @Takhoffman and @colinmac-boop. 72 **PR #90815** fix #90668 [Bug]: macOS node mode can silently self-reconnect in a healthy direct gateway session. Thanks @Takhoffman and @zhangguiping-xydt and @vrurg. 73 **PR #90793** Fix OpenAI audio auth to use API keys **PR #90793** Fix OpenAI audio auth to use API keys. Thanks @Glucksberg and @sallyom. 74 **PR #90790** fix(codex) preserve completed replies after client close. Related #90771. Thanks @brokemac79 and @jalehman. 75 **PR #90820** fix(codex) report completion timeout diagnostics. Thanks @kevinslin. 76 **PR #90845** fix(imessage) frame rpc stdout on LF only. Related #89830. Thanks @omarshahine and @mmartoccia. 77 **PR #90813** fix(uninstall) refuse to remove current working directory during cleanup. Related #90806. Thanks @xydigit-sj and @sallyom and @brandondube. 78 **PR #90336** fix(memory) fail fast when embeddings provider is unavailable. Related #89691. Thanks @osolmaz and @joeykrug. 79 **PR #90914** fix(talk) resolve realtime provider secret refs. Thanks @ngutman. 80 **PR #88771** fix(agents) stream phased text deltas incrementally. Thanks @vincentkoc. 81 **PR #87856** fix(agents) count streamed model deltas incrementally. Thanks @vincentkoc. 82 **PR #88882** test(gateway) add small model live profile. Thanks @vincentkoc. 83 **PR #90919** [codex] Add iOS Apple Review demo mode **PR #90919** [codex] Add iOS Apple Review demo mode. Thanks @ngutman. 84 **PR #90954** fix(cron) require HTTP context for server_error retry classification. Related #90947. Thanks @Nas01010101. 85 **PR #90854** fix(build) copy export-html assets to dist/export-html matching runtime path (fixes #90843). Thanks @zenglingbiao and @Tank-x3. 86 **PR #90922** docs improve plugin inventory layout. Thanks @joshp123. 87 **PR #89652** fix(plugins) load owning plugin for configured memory embedding provider at startup. Related #89651. Thanks @joeykrug. 88 **PR #90811** fix(agents) stabilize user-turn serialization across turns to preserve prompt cache. Related #90810. Thanks @Marvinthebored and @jalehman. 89 **PR #90853** fix(imessage) send TTS audio as voice messages. Thanks @omarshahine. 90 **PR #90995** fix(release) use monthly patch versions. Thanks @vincentkoc. 91 **PR #91030** fix store device-pair notify state in sqlite. 92 **PR #91034** fix store acpx process state in sqlite. 93 **PR #90849** feat(parallel) add free Parallel Search MCP as the zero-config default web_search provider. Thanks @NormallyGaussian. 94 **PR #91056** fix store memory-core dreams state in sqlite. 95 **PR #89918** fix(vertex) route eu/us multi-region to .rep.googleapis.com host. Related #89891. Thanks @alkor2000 and @Wimcomander. 96 **PR #91058** fix(gemini) accept empty grounding metadata. Related #88528. Thanks @TarsTriggerBot. 97 **PR #91072** refactor(memory-wiki) store source sync state in sqlite. 98 **PR #91073** fix(openrouter) reconcile streamed generation cost. Related #68066. Thanks @chrispatil. 99 **PR #91032** docs(imessage) require DisableLibraryValidation on modern macOS; document macOS 26 injection gates. Thanks @omarshahine. 100 **PR #87933** fix(agents) suppress DeepSeek thinking for Foundry aliases. Related #90520. Thanks @MukundaKatta and @wlassalle724. 101 **PR #91037** fix(config) allow thinkingLevelMap in persisted model schema. Related #91011. Thanks @wsyjh8 and @chrisreddington. 102 **PR #89832** fix(config) allow requiresReasoningContentOnAssistantMessages in ModelCompatSchema. Related #89660. Thanks @KrasimirKralev and @kyKKK. 103 **PR #91088** refactor(matrix) store sync cache in sqlite. 104 **PR #90138** fix(minimax) exempt M3 from thinking-disabled wrapper. Thanks @IamVNIE. 105 **PR #91053** refactor store Zalo hosted media in plugin state. 106 **PR #91098** fix(test) type overflow resolver mock. Thanks @RomneyDa. 107 **PR #81277** fix(google) handle compressed Vertex ADC token refresh responses. Thanks @liaoandi. 108 **PR #91100** refactor(matrix) store crypto sidecars in sqlite. 109 **PR #90260** fix(agents) decode xai and venice tool-call arguments exactly once. Thanks @yetval. 110 **PR #90593** fix preserve LM Studio Responses tool arguments. Related #90585. Thanks @849261680 and @ceo-nada. 111 **PR #89109** fix(agents) block message-tool spam loops defeated by volatile message ids. Related #89090. Thanks @openperf and @wujiaming88. 112 **PR #90429** Fix LM Studio wizard prompter binding **PR #90429** Fix LM Studio wizard prompter binding. Thanks @christineyan4. 113 **PR #90780** perf(qqbot) narrow tool discovery cold load. Thanks @RomneyDa. 114 **PR #90504** fix(codex) preserve post-tool reasoning liveness. Thanks @fuller-stack-dev. 115 **PR #91113** fix align Xiaomi completions replay compat. Related #91106. Thanks @KrasimirKralev. 116 **PR #91108** refactor(memory-wiki) store import runs in sqlite. 117 **PR #91118** fix preserve Foundry Responses reasoning replay ids. Related #91033. Thanks @chrisreddington. 118 **PR #91125** fix strip Google provider prefix from Gemini paths. Related #71932. Thanks @soumoucookie. 119 **PR #90056** fix(doctor) merge disjoint openai-codex model entries into canonical openai provider. Related #90047. Thanks @openperf and @holgergruenhagen. 120 **PR #91127** refactor store sandbox registry in sqlite. 121 **PR #91131** fix migrate legacy agent registry schema via doctor. 122 **PR #91119** fix(outbound) keep Discord runtime adapters resolvable. Related #90162. Thanks @TurboTheTurtle and @thewilloftheshadow and @hoyanhan. 123 **PR #91128** fix(qqbot) migrate group tool policy config. 124 **PR #91133** refactor(plugin-sdk) persist dedupe state in sqlite. 125 **PR #90612** fix(agents) dispatch subagent spawn in process. Thanks @lanzhi-lee. 126 **PR #87323** fix(infra/agents) session-routing guard for coalesced gateway restart continuations (#86742). Thanks @openperf and @songshikang0111. 127 **PR #91101** fix(inbound-meta) apply head+tail body truncation to ReplyChain and ReplyToBody JSON paths (fixes #91042). Thanks @zenglingbiao and @wangwllu. 128 **PR #91201** feat(ios) clarify talk realtime fallback. Thanks @ngutman. 129 **PR #91233** fix(agents) prevent ReDoS in background-session name derivation. Thanks @Takhoffman and @yetval. 130 **PR #90798** fix(agents) materialize sandbox skills for rw sandboxes. Related #90410. Thanks @brokemac79 and @gbb-netizen. 131 **PR #91248** fix preserve live Ollama catalog metadata. Related #90315. Thanks @civiltox. 132 **PR #91041** fix(imessage) self-explaining private-API failures and dedicated send timeout. Thanks @omarshahine. 133 **PR #90029** feat add live provider model catalog helper. Thanks @fuller-stack-dev. 134 **PR #90752** feat(android) add theme mode selection. Thanks @Tosko4 and @joshavant. 135 **PR #90261** fix gate owner-only HTTP tools. Thanks @pgondhi987 and @joshavant. 136 **PR #90022** fix(codex) quarantine unreadable dynamic tools. Thanks @vincentkoc. 137 **PR #88822** fix(agents) compact lean local tool catalogs. Thanks @vincentkoc. 138 **PR #89350** fix(agents) guard prompt cache tool names. Thanks @vincentkoc. 139 **PR #91241** fix(outbound) preserve retries for budget-deferred deliveries. Thanks @849261680 and @Takhoffman. 140 **PR #91124** fix(agents) do not refresh lastUsedAt on MCP lease release. Related #91075. Thanks @openperf and @Takhoffman and @Atlas-crete. 141 **PR #90858** fix(imessage) gate split-send coalescing on imsg metadata. Thanks @omarshahine. 142 **PR #91235** fix(codex) preserve native subagent completion results. Related #91120. Thanks @849261680 and @Takhoffman and @jinon86. 143 **PR #91230** fix(cron) preserve isolated agent turn payload message. Related #91228. Thanks @849261680 and @Takhoffman and @AgentXaGent. 144 **PR #90480** feat(whatsapp) expand live QA coverage. Thanks @mcaxtr. 145 **PR #89712** feat(cron) support command jobs. Thanks @mbelinky. 146 **PR #90937** fix(gateway) preserve stale channel restart diagnostics. Related #90901. Thanks @snowzlm and @Takhoffman and @Tony-ooo. 147 **PR #91231** fix(anthropic) drop reasoning_content replay signatures. Related #91205. Thanks @849261680 and @Takhoffman and @bobgitmcgrath. 148 **PR #90897** fix #90452 Regression: Heartbeat exec completion still shows generic fallback text instead of actual output. Thanks @mushuiyu886 and @Takhoffman and @bizzle12368239. 149 **PR #91322** refactor move session metadata to SQLite. 150 **PR #91529** Fix transcript image redaction **PR #91529** Fix transcript image redaction. Related #90760. Thanks @joshavant and @devinkuhn. 151 **PR #91551** Fix config **PR #91551** Fix config.patch explicit array replacement. Thanks @joshavant. 152 **PR #85823** fix(whatsapp) route captured replies through successor controller after restart. Thanks @itsuzef and @mcaxtr. 153 **PR #89659** fix(feishu) retry on send rate-limit errors (230020/230006). Related #70879. Thanks @ladygege and @marshallm-create and @sliverp and @AxelHu. 154 **PR #91547** Fix Docker store seed target packages **PR #91547** Fix Docker store seed target packages. Related #91035. Thanks @sallyom and @laurenceputra. 155 **PR #91423** feat(qqbot) add /bot-group-allways command to toggle mention requirement. Thanks @cxyhhhhh.
Release

2026.6.2

2026.6.2

66 changes Open upstream ↗
01 **Governed plugin and skill installs ** the old dangerous-code scanner gives way to an operator install policy with clearer doctor, CLI, ClawHub, package, archive, source, upload, and marketplace recovery paths. (#89516) Thanks @joshavant and @vincentkoc. 02 **Safer channel delivery ** Telegram, Feishu, Discord, WhatsApp, and outbound sends now handle transcript mirroring, streamed finals, admin writeback, approval allowlists, poll modifiers, and setup state without corrupting delivery. (#88973, #89626, #89812, #89035, #89814, #89813, #89601) Thanks @pgondhi987, @Petru2224, @zhangguiping-xydt, @ppmuzyk, @codezz, @takhoffman, @vincentkoc, @harjothkhara, @obviyus, @glenn-agent, @kesslerio, and @leiJack-lo. 03 **Steadier chat and operator UI ** visible stream text, completed sends, Workboard keyboard navigation, dialog accessibility, lazy usage views, and Android companion flows retain their state through normal interaction. (#89801, #89777) Thanks @vincentkoc. 04 **Stricter safety checks ** config, policy, shell snapshots, exec prechecks, script limits, and Gateway startup reject malformed or unsafe input before it becomes runtime state. (#89701, #87074, #81488, #87056, #89480) Thanks @RomneyDa, @giodl73-repo, @mmaps, @drobison00, @vincentkoc, and @q1387154-spec. 05 **More reliable Gateway and model sessions ** session locks, abandoned Codex startup, ACP handoffs, custom-provider fanout, provider aliases, prompt caching, and memory checks recover without leaving a run wedged. (#89811, #89244) Thanks @RomneyDa, @takhoffman, @spencer2211, and @vincentkoc. 06 Plugins/security replace dangerous-code scanner enforcement with operator install policy, install-policy context, doctor checks, install/update CLI wiring, ClawHub metadata paths, and package/archive/source/upload lifecycle coverage. (#89516) Thanks @joshavant and @vincentkoc. 07 Policy add data-handling conformance checks and reject unsupported policy keys. (#87056, #87074) Thanks @giodl73-repo. 08 Telegram/channels show commentary and reasoning in progress drafts, share progress draft compositors across channel plugins, and keep Telegram polling stop/reset boundaries cheaper and more reliable. 09 UI/mobile add Workboard keyboard movement controls, tighten Workboard card operations, and improve Android companion-first shell UX. Thanks @vincentkoc. 10 **PR #88922** fix(google) forward stop sequences to Gemini generationConfig. Thanks @coder999999999. 11 **PR #89460** fix(models) preserve provider prompt cache boundaries. Related #89386. Thanks @Enominera. 12 **PR #89478** fix restore Skill Workshop view switcher. Thanks @shakkernerd. 13 **PR #76741** fix(kimi) strip anthropic cache markers. Related #76612. Thanks @BryanTegomoh and @vliuyt. 14 **PR #89480** fix recover suspicious gateway startup configs. Related #89331. Thanks @q1387154-spec. 15 **PR #87056** Policy add data handling conformance checks. Thanks @giodl73-repo. 16 **PR #81488** Harden node exec approval precheck env [AI] **PR #81488** Harden node exec approval precheck env [AI]. Thanks @mmaps and @drobison00. 17 **PR #89356** Add accessible Workboard movement controls **PR #89356** Add accessible Workboard movement controls. Thanks @BunsDev. 18 **PR #87074** fix(policy) reject unsupported policy keys. Thanks @giodl73-repo. 19 **PR #89601** fix(outbound) stop schema-padded poll modifiers from blocking send. Thanks @codezz and @Takhoffman. 20 **PR #88963** perf(telegram) avoid broad reset-boundary scan. Thanks @MonkeyLeeT. 21 **PR #89125** Suppress internal agent failure traces before channel delivery **PR #89125** Suppress internal agent failure traces before channel delivery. Thanks @fuller-stack-dev. 22 **PR #89701** fix(exec) reject corrupt shell snapshots. Thanks @RomneyDa. 23 **PR #89705** fix allowlist pending agent sqlite scaffold. Thanks @RomneyDa. 24 **PR #89704** Share channel progress draft compositor **PR #89704** Share channel progress draft compositor. Thanks @obviyus. 25 **PR #89708** perf(control-ui) coalesce chat metadata startup. Thanks @vincentkoc. 26 **PR #89337** fix report gateway health auth diagnostics. Related #89711. Thanks @RomneyDa. 27 **PR #88685** Render dashboard chat history incrementally **PR #88685** Render dashboard chat history incrementally. Related #87345. Thanks @alexzhu0 and @2xmncvcx92-dotcom. 28 **PR #89740** fix(gateway) stabilize webchat prompt cache affinity. Related #89139. Thanks @vincentkoc and @Enominera. 29 **PR #89191** fix(webchat) show sessions_send handoffs as forwarded. Related #89161. Thanks @849261680 and @Xj49688-lgtm. 30 **PR #89723** fix(auto-reply) surface fatal channel errors. Thanks @fuller-stack-dev. 31 **PR #89727** fix #87699 [Bug]: [BUG] UI shows agent "running" after conversation ends — requires manual page refresh every time. Thanks @zhangguiping-xydt and @csck-luoy. 32 **PR #88786** fix #71992 [Bug]: Control UI webchat duplicates every assistant reply on 2026.4.21 — regression from #5964/#39469. Thanks @zhangguiping-xydt and @rzhnrhjr6j-cloud and @astoreyai and @kAIborg24. 33 **PR #89530** fix(ui) preserve visible chat stream text. Related #67035. Thanks @osolmaz and @q7793527. 34 **PR #87072** feat(telegram) opt-in interleaved progress lane. Thanks @anagnorisis2peripeteia. 35 **PR #89771** perf(ui) start chat refresh before bootstrap. Thanks @vincentkoc. 36 **PR #89777** perf(ui) label delayed chat sends in telemetry. Thanks @vincentkoc. 37 **PR #89786** perf(gateway) overlap chat catalog startup. Thanks @vincentkoc. 38 **PR #89793** test(ui) cover control chat send timing phases. Thanks @vincentkoc. 39 **PR #89801** perf(ui) surface chat ACK server timing. Thanks @vincentkoc. 40 **PR #89355** Harden Workboard modal and drawer accessibility **PR #89355** Harden Workboard modal and drawer accessibility. Thanks @BunsDev. 41 **PR #89802** docs(web) document chat ACK timing metadata. Thanks @vincentkoc. 42 **PR #89391** fix(android) improve companion-first shell UX. Thanks @Tosko4. 43 **PR #89811** fix(agents) release session write lock if fence read throws on prompt release. Thanks @Takhoffman and @spencer2211. 44 **PR #89808** perf(ui) trace chat send server milestones. Thanks @vincentkoc. 45 **PR #89813** fix(telegram) isolate verbose status after streamed finals. Related #89540. Thanks @Takhoffman and @kesslerio. 46 **PR #89814** fix(feishu) wire setup runtime setter. Related #88024. Thanks @Takhoffman and @glenn-agent and @leiJack-lo. 47 **PR #85961** fix #85807 retain Telegram preview after generation race. Thanks @zhangguiping-xydt and @samson1357924. 48 **PR #89035** fix #88773 [Bug]: Telegram DM exec requires approval despite allowlist + ask:off — works in webchat, not in Telegram. Thanks @zhangguiping-xydt and @obviyus and @ppmuzyk. 49 **PR #88634** fix(telegram) prevent preview duplication in partial and block streaming modes. Related #87624. Thanks @jmao0001 and @tuckyapps. 50 **PR #89812** fix(outbound) keep channel send durable when transcript mirror fails (#89626). Thanks @Takhoffman and @harjothkhara and @Petru2224. 51 **PR #88973** fix(telegram) require admin for target writeback [AI]. Thanks @pgondhi987 and @vincentkoc. 52 **PR #89449** refactor(gateway) share duplicated test helpers. Thanks @vincentkoc. 53 **PR #88832** fix(telegram) slow polling restart storms. Thanks @TurboTheTurtle. 54 **PR #89960** test(channels) fix guardrail regex lint. Thanks @RomneyDa. 55 **PR #89244** fix(memory) warn after startup watcher pressure check. Thanks @RomneyDa. 56 **PR #89516** Add operator install policy and remove dangerous-code install... **PR #89516** Add operator install policy and remove dangerous-code install scanners. Thanks @joshavant. 57 **PR #90024** chore(release) update appcast for 2026.6.1. 58 **PR #89613** docs document auth profile failure policy contract. 59 **PR #89548** fix(agents) classify read-only shell commands as non-mutating. Thanks @Glucksberg. 60 **PR #89939** fix keep stream-to-parent spawns registered. Thanks @scotthuang. 61 **PR #88964** fix(agents) repair context-engine tool-result pairing. Related #88561. Thanks @MonkeyLeeT and @Finn-jiejie. 62 **PR #82219** fix(codex) accept first-party OpenAI plugin marketplaces (bundled and primary-runtime). Related #82216. Thanks @yaanfpv. 63 **PR #89998** revert(codex) revert first-party marketplace allowlist. Thanks @kevinslin. 64 **PR #89176** fix(browser) honor tab timeout for Chrome MCP. Related #88213. Thanks @MonkeyLeeT and @lamkan0210. 65 **PR #90043** fix restore Skill Workshop current chat toggle. Thanks @shakkernerd. 66 **PR #81422** fix(update) surface plugin channel fallbacks. Thanks @BKF-Gitty.
Release

2026.6.1

2026.6.1

145 changes Open upstream ↗
01 **Resilient agent and Codex runs ** interrupted tool calls, stale session bindings, compaction handoffs, auth-profile failover, reasoning-tag cleanup, yielded subagents, and generated-media delivery all recover without leaving work stranded. (#85798, #87484, #88182, #89220) Thanks @RomneyDa, @neeravmakwana, @joshavant, @omarshahine, @vincentkoc, @bgmbgm94, and @ksiyuna-claw. 02 **Reliable channel and mobile delivery ** WhatsApp, iMessage, Discord state, QQBot, and iOS Talk now preserve replies, typing, session state, QR-login recovery, and realtime connections across normal restart and transport failure paths. (#88183, #88866, #88948, #89015, #88231) Thanks @mcaxtr, @omarshahine, @sliverp, @Jensenwgd, @ngutman, @vincentkoc, and @alfredjbclaw. 03 **Faster Control UI chat ** startup, local drafts, incremental stream rendering, transcript caching, first connect, and post-send cleanup no longer compete with the active conversation. (#88952, #88960, #88998, #89030, #89106) Thanks @vincentkoc and @sallyom. 04 **Governed skills and plugins ** Skill Workshop proposals, disabled-skill snapshots, support-file approvals, plugin contracts, and external package boundaries are clearer and safer for operators. (#79173, #82326, #89336) Thanks @zeus1959, @sallyom, @RomneyDa, @maverikva, @vincentkoc, and @shakkernerd. 05 **Richer operator coordination ** Workboard goals, task-backed runs, and SQLite-backed plugin state make multi-agent work and installed-plugin discovery survive reloads cleanly. (#87469, #88794) Thanks @vincentkoc. 06 **More dependable providers ** Google defaults, provider IDs, model catalogs, OAuth/device-code flows, media timers, and reasoning output now stay valid across hosted and local runtimes. (#88512, #88781, #89343, #89379, #89400) Thanks @1052326311, @charles-openclaw, @zz327455573, @849261680, @xzh-xydt, @azgardtek, @google, @mrbrl, @nyuDSA, @vincentkoc, and @cjalden. 07 Skills let the `skill_workshop` agent tool apply, reject, and quarantine explicit proposals through the guarded review flow. Thanks @shakkernerd and @vincentkoc. 08 Skills let proposals carry approved support files under standard skill folders, with scanner, hash, and rollback safeguards. Thanks @shakkernerd and @vincentkoc. 09 Skills let pending proposals be revised in place with versioned, dated proposal frontmatter before approval. Thanks @shakkernerd. 10 Skills add Skill Workshop with pending proposals, CLI/Gateway review actions, rollback metadata, and the `skill_workshop` agent tool. Thanks @shakkernerd and @vincentkoc. 11 Skill Workshop add the Control UI navigation, styled dashboard, proposal today view, revision dialog, file preview modal, searchable preview files, reusable session handoff, and localized strings. Thanks @vincentkoc and @shakkernerd. 12 Plugins externalize Tokenjuice as the official `@openclaw/tokenjuice` plugin with npm and ClawHub publish metadata. 13 Plugins externalize the GitHub Copilot agent runtime as the official `@openclaw/copilot` plugin with npm and ClawHub publish metadata. 14 iOS add hosted push relay defaults, realtime Talk playback, and a guarded WebSocket ping path for more reliable mobile sessions. (#88096, #88105, #88231) Thanks @ngutman. 15 iOS support native iPad display layouts. 16 Android add installed-app inspection commands, notification picker helpers, and updated-system-app classification. 17 Workboard add orchestration primitives and agent coordination tools for multi-agent planning and run tracking. (#87469) 18 Workboard wire task-backed board runs and show task comments in the edit modal. 19 Code mode add internal namespaces for scoped agent/global sessions and exact namespace tool dispatch. (#88043) 20 Gateway support Tailscale Serve service names for local service routing. 21 Control UI add a Dreaming-tab agent selector and propagate the selected agent through Dreaming status, diary, and diary actions. (#78748) Thanks @stevenepalmer, @vincentkoc, and @ttomiczek. 22 Control UI add calmer chat composer controls, local draft typing state, and first-output latency instrumentation for active chat entry. (#88772, #88998) Thanks @vincentkoc. 23 Plugins add a SecretRef provider integration manifest contract. (#82326) Thanks @sallyom. 24 Plugin SDK add typed presentation command actions and the bounded `resolve_exec_env` hook for plugin-provided exec environment contributions. (#88721) Thanks @vincentkoc. 25 Plugins persist the plugin install index in SQLite so installed package lookup survives reloads with less filesystem scanning. (#88794) Thanks @vincentkoc. 26 Providers add MiniMax M3 model support. (#88860) 27 Tools/media allow validated host-local text document media sends while keeping unsafe plain-text media sends blocked. (#79658) Thanks @simplyclever914. 28 Doctor add disk space health checks and stabilize post-upgrade JSON probes. Thanks @vincentkoc. 29 Channels store inbound queues in SQLite and migrate iMessage monitor state to SQLite-backed tracking. (#88797) Thanks @vincentkoc. 30 Skills add the core skills index and centralize skills runtime loading, status, filtering, and prompt formatting. Thanks @shakkernerd. 31 **PR #88995** perf(ui) guard chat composer controls. Thanks @vincentkoc. 32 **PR #88998** perf(ui) keep chat draft local while typing. Thanks @vincentkoc. 33 **PR #89012** perf(ui) trace chat first output latency. Thanks @vincentkoc. 34 **PR #89019** perf(ui) speed up first global chat sends. Thanks @vincentkoc. 35 **PR #86953** fix(plugins) block untrusted workspace setup-only channel loads. Thanks @hxy91819 and @SebTardif. 36 **PR #89030** perf(control-ui) prioritize first connect startup. Thanks @vincentkoc. 37 **PR #89058** perf(control-ui) hydrate chat startup state. Thanks @vincentkoc. 38 **PR #89106** fix(ui) clear chat composer after send. Related #89108. Thanks @sallyom. 39 **PR #88974** fix bound remote media reference reads [AI]. Thanks @pgondhi987. 40 **PR #88966** fix allow admins to approve dependency guard. Thanks @RomneyDa. 41 **PR #89169** fix(ci) restore dist cache before artifact builds. Thanks @RomneyDa. 42 **PR #85798** fix(agents) actionable copy for exhausted auth-profile failover. Thanks @RomneyDa. 43 **PR #88689** Keep JSON CLI output clean during startup **PR #88689** Keep JSON CLI output clean during startup. Related #88602. Thanks @alexzhu0 and @toruvieI. 44 **PR #85351** fix(memory) retry transient FileProvider-backed reads. Related #85252. Thanks @NianJiuZst and @richardmqq. 45 **PR #89188** fix(memory-core) reduce Linux watcher fan-out. Related #89182. Thanks @RomneyDa. 46 **PR #88734** docs refresh ClawHub showcase cards. Thanks @vyctorbrzezowski. 47 **PR #89212** test reset gateway timers at test boundaries. Thanks @RomneyDa. 48 **PR #89181** fix(agents) dispatch auth failures by type. Thanks @RomneyDa. 49 **PR #89180** enhance(slack) route plugin approvals through native UI. Thanks @kevinslin. 50 **PR #89185** fix(memory) warn on gateway watcher FD risk. Related #71335. Thanks @RomneyDa and @chrisabad. 51 **PR #89135** fix(ui) render skill workshop tab. Thanks @Solvely-Colin. 52 **PR #89246** Revert "fix(memory) warn on gateway watcher FD risk". Thanks @RomneyDa. 53 **PR #88948** Keep iMessage typing active during tool work **PR #88948** Keep iMessage typing active during tool work. Related #75847. Thanks @omarshahine and @alfredjbclaw. 54 **PR #89220** fix(agents) avoid duplicate generated media fallback. Thanks @omarshahine. 55 **PR #88946** Fix live model inference edge cases **PR #88946** Fix live model inference edge cases. Related #44870, #63685, #74305, #83192, #83810, #84109, #84688, #84697, #84804, #85806, #85918, #86808, #87381, #87740, #87768, #88039, #88439, #88456, #88833, #88918, #89008, #89241, #89242. Thanks @86jkuncle and @behroozbc and @SimSef and @tassiocamara and @chac4l and @alfredpennyworthtc-netizen and @shichuzhu and @mz1009-web and @devinallen-07 and @garyd9 and @silvesterxm and @jsompis and @xiaoxuesheng123467 and @TitanBob2026 and @guzzijones and @fenglanhua and @Nassiel and @ge0el and @pigfoot and @yetval and @joshgaskin and @shadow-enthusiast. 56 **PR #89305** fix(agents) bypass stale auth for plugin harnesses. Related #85105. Thanks @saphoroth. 57 **PR #89297** docs add ClawHub CLI page. Thanks @Wang-Yeah623 and @Takhoffman. 58 **PR #89318** fix(auto-reply) guard missing dispatcher getFailedCounts without weakening the SDK type. Related #89116. Thanks @Takhoffman and @Alix-007 and @Bigzhangbig. 59 **PR #89321** fix honor channel model overrides in agent ingress. Related #60078. Thanks @davidbordenwi. 60 **PR #89328** Fix backup verifier for root-relative hardlink targets **PR #89328** Fix backup verifier for root-relative hardlink targets. Thanks @abnershang. 61 **PR #87907** fix(memory) validate memory index identity. Related #83333. Thanks @osolmaz and @jacka-L. 62 **PR #89347** fix repair model provider edge cases. Related #80347, #88357, #45269. Thanks @wherewolf87 and @bottenbenny and @Alfred-claw28. 63 **PR #89336** Fix private llm-core leaks in plugin SDK declarations **PR #89336** Fix private llm-core leaks in plugin SDK declarations. Thanks @RomneyDa. 64 **PR #89015** fix(qqbot) allow RFC2544 benchmark range for token fetch (#88984). Thanks @sliverp and @Jensenwgd. 65 **PR #89046** feat(android) add installed apps node command. Thanks @Tosko4. 66 **PR #88315** feat(agents) generalized native compaction ownership for CLI backends. Thanks @anagnorisis2peripeteia. 67 **PR #89075** fix(memory-core) keep startup cron retries quiet. Related #75889. Thanks @Takhoffman and @bennewell35 and @highfly-hi. 68 **PR #89049** fix(idle-timeout) honor provider timeout for no-timeout runs. Thanks @lanzhi-lee. 69 **PR #89047** fix hide sessions_spawn timeout overrides. Thanks @lanzhi-lee. 70 **PR #89036** fix(cron) reject blank delivery targets. Thanks @lanzhi-lee. 71 **PR #89354** fix redact trajectory exports consistently. Thanks @pgondhi987. 72 **PR #88101** fix(codex) trace app-server thread lifecycle timing. Related #84640. Thanks @ai-hpc and @crash2kx. 73 **PR #89243** fix guard in-band macOS LaunchAgent stop. Related #89174. Thanks @bek91. 74 **PR #87339** fix(discord) accumulate reasoning progress deltas. Related #83983. Thanks @giodl73-repo and @xueqingli1. 75 **PR #89298** fix(diagnostics) re-queue pending messages after stuck-session recovery aborts ghost run. Related #89208. Thanks @LiLan0125 and @ketos-jona. 76 **PR #88821** trace Correlate channel message diagnostics into one trace. Related #88811. Thanks @bek91. 77 **PR #89411** fix detect shrinkwrapped npm installs. Related #87732. Thanks @jasonftl. 78 **PR #87749** fix(messages) preserve inbound audio for message-tool TTS. Related #87708. Thanks @ai-hpc and @nikodim-ai. 79 **PR #84431** Treat soft plugin repair warnings as nonfatal **PR #84431** Treat soft plugin repair warnings as nonfatal. Related #83889. Thanks @TurboTheTurtle and @davinci282828. 80 **PR #78005** feat(status) detect externalized plugin version drift in --deep. Thanks @hussein1362. 81 **PR #89050** fix(sessions) preserve corrupt-header transcripts. Related #89037. Thanks @charles-openclaw and @yetval. 82 **PR #84314** fix QQBot credential backups bypass gateway state isolation. Related #84313. Thanks @coygeek. 83 **PR #89281** fix repeat doctor state migration repairs. Thanks @RomneyDa. 84 **PR #87952** fix(update) pin post-core plugin compatibility to the downgraded core version (#87914). Thanks @MukundaKatta and @giodl73-repo and @Niriakot. 85 **PR #89417** refactor tighten agent harness surfaces. 86 **PR #89400** fix(google) add missing gemini-3.1-flash-lite to google-vertex catalog. Related #89390. Thanks @xzh-xydt and @nyuDSA. 87 **PR #88699** fix(codex) clear stale context-engine projection after overflow retry. Related #88355. Thanks @SebTardif and @100yenadmin. 88 **PR #89379** fix(providers) use native reasoning mode for Gemini instead of tagged. Related #69220. Thanks @849261680 and @mrbrl. 89 **PR #84266** Surface unresolved OAuth sidecar auth failures **PR #84266** Surface unresolved OAuth sidecar auth failures. Related #84252. Thanks @TurboTheTurtle. 90 **PR #88879** feat(plugin-sdk) add resolve_exec_env hook. Thanks @lanzhi-lee. 91 **PR #89432** fix(qqbot) migrate state stores to sqlite kv. 92 **PR #89436** fix(llm) gate OpenAI-compatible reasoning output. Thanks @zz327455573. 93 **PR #87703** fix(agents) run before_agent_finalize for embedded agents. Related #87585. Thanks @ai-hpc and @lileilei-camera. 94 **PR #89440** fix(llm) keep OpenAI-compatible reasoning streams active. Related #84384. Thanks @teknolojay. 95 **PR #88976** fix(mistral) enable prompt cache key compat. Related #83709. Thanks @Alix-007 and @Net-Sentinel. 96 **PR #87379** fix audit and repair hooks token reuse with Gateway auth. Related #87376. Thanks @coygeek. 97 **PR #89701** fix(exec) reject corrupt shell snapshots. Thanks @RomneyDa. 98 **PR #89601** fix(outbound) stop schema-padded poll modifiers from blocking send. Thanks @codezz and @Takhoffman. 99 **PR #89731** fix backport gateway health credential handling. Thanks @RomneyDa. 100 **PR #87484** fix(agents) clear legacy auto fallback pins. Related #87467. Thanks @neeravmakwana and @bgmbgm94. 101 **PR #88182** Fix subagent DM completion delivery after yield **PR #88182** Fix subagent DM completion delivery after yield. Related #88042. Thanks @joshavant and @ksiyuna-claw. 102 **PR #88183** fix(whatsapp) retry QR login 408 timeouts. Thanks @mcaxtr. 103 **PR #88866** Persist Discord thread bindings in SQLite **PR #88866** Persist Discord thread bindings in SQLite. 104 **PR #88231** fix(ios) guard websocket ping continuation. Thanks @ngutman. 105 **PR #88952** perf(ui) cache chat transcript renders. Thanks @vincentkoc. 106 **PR #88960** perf(ui) record pending send paint timing. Thanks @vincentkoc. 107 **PR #79173** fix skip disabled skill snapshot env overrides. Related #79072. Thanks @zeus1959 and @maverikva. 108 **PR #82326** Add plugin manifest contract for SecretRef provider integrations **PR #82326** Add plugin manifest contract for SecretRef provider integrations. Thanks @sallyom. 109 **PR #87469** feat add core session goals. 110 **PR #88794** Persist plugin install index in SQLite **PR #88794** Persist plugin install index in SQLite. 111 **PR #88512** fix resolve google provider default API to google-generative-ai. Related #88480. Thanks @1052326311 and @azgardtek. 112 **PR #88781** fix(models) strip remaining provider self prefixes. Related #88770. Thanks @charles-openclaw and @cjalden. 113 **PR #88096** feat(ios) default to hosted push relay. Thanks @ngutman. 114 **PR #88105** feat(ios) add talk tab realtime playback. Thanks @ngutman. 115 **PR #88043** feat add internal code mode namespaces. 116 **PR #78748** fix(ui) add agent selector to dreaming tab. Related #63558. Thanks @stevenepalmer and @ttomiczek. 117 **PR #88772** feat calm composer controls. 118 **PR #88721** feat(plugin-sdk) add typed presentation command actions. 119 **PR #88860** feat(minimax) add MiniMax M3 support. 120 **PR #79658** Allow validated TXT/JSON/YAML media sends **PR #79658** Allow validated TXT/JSON/YAML media sends. Thanks @simplyclever914. 121 **PR #88797** Migrate iMessage monitor state to SQLite **PR #88797** Migrate iMessage monitor state to SQLite. 122 **PR #88724** fix persist ACP metadata in SQLite. 123 **PR #88730** fix(codex) stream final answer partials. Related #88405. Thanks @crash2kx. 124 **PR #88314** fix #76284 [Bug]: openclaw agents add blocked — cannot add Jon/Atlas as separate agents. Thanks @zhangguiping-xydt and @RicardoUKMX. 125 **PR #88896** fix harden CLI and plugin edge cases. 126 **PR #88764** fix(update) recognize manual-update launchd jobs. Related #88736. Thanks @TurboTheTurtle and @deonkretch. 127 **PR #77237** Preserve managed npm plugin root when install validation bloc... **PR #77237** Preserve managed npm plugin root when install validation blocks update. Thanks @zhuisDEV. 128 **PR #88767** fix(plugin-sdk) isolate provider catalog projection failures. Thanks @vincentkoc. 129 **PR #88807** fix(plugins) isolate web provider factory failures. Thanks @vincentkoc. 130 **PR #88285** Move cron persistence to SQLite **PR #88285** Move cron persistence to SQLite. 131 **PR #88294** fix(cron) include job name when reading single-job run history. Thanks @kip-claw. 132 **PR #85931** fix(memory) serialize qmd update writes across processes to stop SQLITE_BUSY. Related #66339. Thanks @openperf and @SakenW. 133 **PR #88129** fix keep live OpenClaw session locks during cleanup. 134 **PR #88136** fix(agents) centralize terminal run outcome precedence. Related #87444. Thanks @ssdatye. 135 **PR #88141** fix route generated media completions through requester agent. 136 **PR #88162** fix(agents) extend terminal outcome projections. 137 **PR #88229** fix(agents) normalize sessions_send message aliases. Related #88146. Thanks @zhangguiping-xydt and @jsonmez. 138 **PR #74715** fix(ui) show Communication Notifications tab. Thanks @VladyslavLevchuk. 139 **PR #87896** fix(feishu) fallback when accepted turns send no visible reply. Thanks @ArthurNie. 140 **PR #88749** fix(channels) recover failed progress draft starts. Related #83115. Thanks @SebTardif. 141 **PR #88803** fix(reply) preserve sessions_send external routes. Related #88044. Thanks @MonkeyLeeT and @Lvan185. 142 **PR #88820** fix(diagnostics) clear embedded-run activity when recovery declares lane idle. Related #88660. Thanks @openperf and @Iman-Sharif. 143 **PR #88288** fix(config) skip state-dir dotenv values that are unresolved shell references. Related #88274. Thanks @Alix-007 and @mathias15010. 144 **PR #88305** fix(browser) isolate Chrome MCP pending attach aborts. Related #88304. Thanks @rohitjavvadi. 145 **PR #74089** fix(openai/tts) handle [[tts:speed]] directive in OpenAI speech provider (#12163). Thanks @stainlu and @useramuser.
Release

2026.5.31

2026.5.31

409 changes Open upstream ↗
01 **Faster Control UI chat ** transcript rendering, draft persistence, pending-send paint, scrolling, and first-message work no longer block one another while a conversation is active. (#88952, #88960, #88998) Thanks @vincentkoc. 02 **More reliable agent recovery ** fallback auth state, legacy Codex app-server auth, stale bootstrap history, and streamed reasoning cleanup recover cleanly instead of carrying stale turn state forward. (#87484, #88924) Thanks @neeravmakwana, @vincentkoc, @bgmbgm94, and @kdonthar. 03 **Clearer cron and channel history ** external `sessions_send` routes, single-job history, and channel reply state retain the right destination and job context through restarts. (#88294, #88803) Thanks @kip-claw, @MonkeyLeeT, @vincentkoc, and @Lvan185. 04 **Better operator coordination ** core session goals and durable plugin-install state make long-running work easier to inspect and resume after reloads. (#87469, #88794) Thanks @vincentkoc. 05 **Safer mobile reconnects ** iOS realtime sessions retain their WebSocket continuation instead of failing a healthy Talk connection, with hosted push/realtime paths kept aligned. (#88231) Thanks @ngutman and @vincentkoc. 06 Workboard task details, Android notification app selection, and Dreaming ca... Workboard task details, Android notification app selection, and Dreaming candidate scoring gained broader operator controls. 07 Control UI now streams stable Markdown blocks and records more chat respons... Control UI now streams stable Markdown blocks and records more chat responsiveness signals to guide first-reply performance work. Thanks @vincentkoc. 08 **PR #87469** feat add core session goals. 09 **PR #88129** fix keep live OpenClaw session locks during cleanup. 10 **PR #88133** Fix heartbeat default run timeout **PR #88133** Fix heartbeat default run timeout. Related #87438. Thanks @ovrsr. 11 **PR #88132** fix move compaction planning off the event loop. Related #86358. Thanks @Mithril1991. 12 **PR #88137** fix ci mainline checks **PR #88137** fix ci mainline checks. Thanks @RomneyDa. 13 **PR #88140** perf centralize skills indexing and visibility. Thanks @shakkernerd. 14 **PR #82326** Add plugin manifest contract for SecretRef provider integrations **PR #82326** Add plugin manifest contract for SecretRef provider integrations. Thanks @sallyom and @joshavant. 15 **PR #88141** fix route generated media completions through requester agent. 16 **PR #87770** refactor share native approval route gates. Thanks @kevinslin. 17 **PR #88156** Refactor SQLite state base and plugin migration **PR #88156** Refactor SQLite state base and plugin migration. 18 **PR #87781** fix(codex) prevent false completion stalls during native streams. Thanks @keshavbotagent. 19 **PR #88136** fix(agents) centralize terminal run outcome precedence. Related #87444. Thanks @ssdatye. 20 **PR #88155** test(infra) avoid max fake-timer jumps. Thanks @RomneyDa. 21 **PR #88160** test(unit-fast) isolate fake-timer files. Thanks @RomneyDa. 22 **PR #84535** fix(gateway) resolve message actions against runtime config. Related #84530. Thanks @funmerlin and @joshavant. 23 **PR #88107** feat only include the current changelog section in tarball. Thanks @RomneyDa. 24 **PR #88130** fix(agents) preserve Codex auth for compaction fallback. Related #86820. Thanks @kopl-blip. 25 **PR #84814** fix(agents) classify embedded provider business denials for fallback. Related #48680. Thanks @Takhoffman and @yu-xin-c and @lovensky1992-wk. 26 **PR #88178** feat(workboard) add orchestration primitives. 27 **PR #88162** fix(agents) extend terminal outcome projections. 28 **PR #88182** Fix subagent DM completion delivery after yield **PR #88182** Fix subagent DM completion delivery after yield. Related #88042. Thanks @joshavant and @ksiyuna-claw. 29 **PR #88191** Fix Codex raw image generation media projection **PR #88191** Fix Codex raw image generation media projection. Related #87948. Thanks @joshavant and @mazetsoligarh-cell. 30 **PR #88134** fix(imessage) preserve SMS approval reply routes. Thanks @kevinslin. 31 **PR #88161** Fix restart sentinel internal continuations **PR #88161** Fix restart sentinel internal continuations. Related #87792. Thanks @joshavant and @chrispydizzle. 32 **PR #88199** ci extend platform checkout fetch timeout. Thanks @RomneyDa. 33 **PR #87796** feat(ci) autoscrub dependency lockfile-only PR changes. Thanks @RomneyDa. 34 **PR #88200** Refactor task state onto shared SQLite **PR #88200** Refactor task state onto shared SQLite. 35 **PR #88083** fix(agent) preserve media task success on delivery miss. Thanks @obviyus. 36 **PR #88127** perf(test) fix explicit-file Vitest wrapper hangs. Thanks @RomneyDa. 37 **PR #88183** fix(whatsapp) retry QR login 408 timeouts. Thanks @mcaxtr. 38 **PR #84234** fix(cli-runner) write-side flush gate + orphan-tool-use invalidator. Thanks @adele-with-a-b. 39 **PR #88231** fix(ios) guard websocket ping continuation. Thanks @ngutman. 40 **PR #88117** refactor extract LLM core packages. 41 **PR #88248** fix show chat errors as visible messages. 42 **PR #88250** refactor(agents) type media completion delivery misses. 43 **PR #88207** Fix Codex native thread overflow rotation **PR #88207** Fix Codex native thread overflow rotation. Thanks @fuller-stack-dev. 44 **PR #88109** refactor extract media generation core package. 45 **PR #88247** feat add hosted model providers. 46 **PR #88259** feat(workboard) add board ops recovery metadata. 47 **PR #87788** fix(codex) move skills list and memory pointer to collaboration instructions. Thanks @lastguru-net. 48 **PR #88262** fix(codex) stop injecting mirrored history into prompts. 49 **PR #88177** fix(codex) prevent post-tool edit stream timeouts. Thanks @keshavbotagent. 50 **PR #88265** refactor extract markdown core package. 51 **PR #88279** refactor move terminal core into package. 52 **PR #86179** feat Add Xiaomi Token Plan provider support. Related #86169. Thanks @NianJiuZst and @openclaws420. 53 **PR #88211** fix(plugins) resolve ${ENV_VAR} references in plugin config before handoff. Related #88195. Thanks @Marvinthebored and @Peetiegonzalez. 54 **PR #88284** fix(agents) harden autoreview Windows harness. Thanks @vincentkoc. 55 **PR #88260** Persist subagent registry in SQLite **PR #88260** Persist subagent registry in SQLite. 56 **PR #88217** refactor unify OpenAI provider identity. 57 **PR #88297** refactor extract media understanding common package. 58 **PR #88299** fix(gateway) recover channels after reload stop timeout. Thanks @obviyus. 59 **PR #88326** perf(cli) reduce room-event Claude cache churn. Thanks @obviyus. 60 **PR #88310** fix(test) include workflow lint target in routing expectation. Thanks @vincentkoc. 61 **PR #88225** fix(ui) stop pulsing completed stream segments. Thanks @scotthuang. 62 **PR #88298** fix classify ws pre-handshake close as benign. Related #88257. Thanks @akrimm702 and @survivor998. 63 **PR #88338** feat(workboard) persist orchestration metadata in sqlite. 64 **PR #88266** refactor extract model catalog core package. 65 **PR #88235** feat(ios) refresh app store metadata. Thanks @ngutman. 66 **PR #85258** fix(qqbot) deliver partial tool progress. Related #66509. Thanks @samzong and @vincentkoc and @gabrielduartesignart. 67 **PR #88349** Add per-agent SQLite cache store **PR #88349** Add per-agent SQLite cache store. 68 **PR #88135** fix(codex) refresh stale managed runtime plugin. Related #87650. Thanks @brokemac79 and @thoth-ctl. 69 **PR #68844** fix(outbound) pack newline-mode paragraphs up to limit. Thanks @kesslerio. 70 **PR #88236** fix(plugins) ignore helper files in extension roots. Related #88198. Thanks @mushuiyu886 and @mmhzlrj. 71 **PR #86089** [Fix] Deliver restart recovery replies **PR #86089** [Fix] Deliver restart recovery replies. Related #69249. Thanks @samzong and @slideshow-dingo. 72 **PR #88375** refactor route model catalog imports to core package. 73 **PR #85511** feat(ui) add collapsible toggle for recent sessions in sidebar. Related #85510. Thanks @NianJiuZst. 74 **PR #80560** fix(tui) distinguish /new and /reset command descriptions. Related #49517. Thanks @KhanCold and @KaysonYeh. 75 **PR #88229** fix(agents) normalize sessions_send message aliases. Related #88146. Thanks @zhangguiping-xydt and @jsonmez. 76 **PR #88387** refactor(matrix) move ephemeral state to plugin sqlite. 77 **PR #86755** test(tasks) cover task domain view mappers. Thanks @leno23. 78 **PR #76355** fix(install) show progress during npm install in non-interactive mode. Related #82305. Thanks @SebTardif. 79 **PR #77279** fix(media) dedupe identical path/url in inbound media-note formatter (#47587). Thanks @MoerAI and @yzjJosh. 80 **PR #82824** fix(gateway) explain ignored config-triggered restart when restart command is disabled. Thanks @wAngByg. 81 **PR #85979** fix(discord) omit undefined component registry fields [AI]. Thanks @funmerlin. 82 **PR #76091** Fix Discord reply typing lifecycle **PR #76091** Fix Discord reply typing lifecycle. Thanks @zhuisDEV. 83 **PR #88232** fix(models) prefer exact configured provider refs before aliases. Related #88218. Thanks @stevenepalmer and @herculeanfit1. 84 **PR #88276** fix(feishu) stream plain replies as cards. Thanks @qiangu. 85 **PR #80037** Expose resolved subagent model metadata **PR #80037** Expose resolved subagent model metadata. Thanks @guanbear. 86 **PR #78288** Agents/exec show target node name in exec tool transparency messages. Related #77719. Thanks @JiataiWang and @civiltox. 87 **PR #88408** feat expand workboard orchestration metadata. 88 **PR #87920** feat(gateway) forward OpenAI stop sequences through chat completions. Thanks @Lellansin. 89 **PR #87886** fix(skill-creator) sort files for deterministic .skill package order. Related #37748. Thanks @coder999999999 and @shuofengzhang. 90 **PR #88399** Improve MCP operability **PR #88399** Improve MCP operability. 91 **PR #88398** refactor move model catalog refs into core package. 92 **PR #88328** feat add Skill Workshop and skill research. Thanks @shakkernerd. 93 **PR #88271** fix(export-html) guard msg.content and result.content filter/iteration paths against non-array values. Related #88255. Thanks @Alix-007 and @survivor998. 94 **PR #88429** ci keep harness changes on fast checks. 95 **PR #88430** fix(scripts) quiet minimal runtime asset copies. Thanks @vincentkoc. 96 **PR #88321** fix(codex) keep app-server continuation turns alive. Related #88196, #88331. Thanks @abnershang and @aounakram. 97 **PR #88435** refactor move model catalog normalization into core package. 98 **PR #88226** fix(llm) repair \u escapes that lack four hex digits in streaming JSON. Thanks @coder999999999. 99 **PR #88380** fix(ui) keep chat model selected after session switch. Related #86597. Thanks @brokemac79 and @xuli500177. 100 **PR #88285** Move cron persistence to SQLite **PR #88285** Move cron persistence to SQLite. 101 **PR #87915** fix(build) avoid stale agent-core dts warnings. Thanks @keshavbotagent. 102 **PR #68669** fix(agents) dedupe subagent browser session cleanup wrapper with dispatch flag. Related #68668. Thanks @Feelw00. 103 **PR #88411** refactor(msteams) persist conversation and poll stores in sqlite. 104 **PR #88303** Skip browser cleanup when browser is disabled **PR #88303** Skip browser cleanup when browser is disabled. Thanks @poison. 105 **PR #88416** Refactor subagent thread binding into core **PR #88416** Refactor subagent thread binding into core. 106 **PR #83956** feat(cli) add sessions tail progress view. Related #83441. Thanks @spacegeologist and @ndj888. 107 **PR #71648** fix(mcp) bound pendingClaudePermissions / pendingApprovals via TTL sweeper + close clear. Related #71646. Thanks @Feelw00. 108 **PR #88346** refactor extract web content core package. 109 **PR #71280** test(gateway) avoid brittle shutdown timer assertion. Thanks @hansolo949. 110 **PR #80686** fix(agents) extend session-write-lock payload-less orphan grace from 5s to 30s. Thanks @wAngByg. 111 **PR #88067** fix(responses) drop orphaned assistant msg\_\* id when reasoning is dropped (#88019). Thanks @BSG2000. 112 **PR #88417** [codex] Route denied exec approval followups to sessions **PR #88417** [codex] Route denied exec approval followups to sessions. Related #88167. Thanks @brokemac79 and @jhartman00. 113 **PR #85996** fix #85782 surface terminal TUI lifecycle errors. Thanks @zhangguiping-xydt and @vincentkoc and @shakkernerd. 114 **PR #88445** refactor source model catalog types from core. 115 **PR #88444** Classify release dependency ownership metadata **PR #88444** Classify release dependency ownership metadata. 116 **PR #82415** Fix /acp spawn cwd inheritance for target agent workspaces **PR #82415** Fix /acp spawn cwd inheritance for target agent workspaces. Thanks @summerview1997. 117 **PR #88448** refactor simplify sqlite cron persistence. 118 **PR #88268** fix #88214 [Feature]: Dashboard sidebar Recent sessions should filter by currently selected agent. Thanks @zhangguiping-xydt and @wujitianya. 119 **PR #86642** feat pass structured provider error signals to hooks. Thanks @fuller-stack-dev. 120 **PR #63840** fix(slack) preserve thread context for Agents & Assistants DM root messages. Related #63659. Thanks @zozo123 and @dev-ithitchhiker. 121 **PR #86924** fix scrub serialized tool-call text from replies. Thanks @fuller-stack-dev. 122 **PR #87093** fix promote serialized tool calls via repair package. Thanks @fuller-stack-dev. 123 **PR #88452** chore(release) update appcast for 2026.5.28. 124 **PR #88043** feat add internal code mode namespaces. 125 **PR #78748** fix(ui) add agent selector to dreaming tab. Related #63558. Thanks @stevenepalmer and @ttomiczek. 126 **PR #88455** Refactor cron migrations under doctor **PR #88455** Refactor cron migrations under doctor. 127 **PR #87929** fix(cron) preserve plugin delivery targets. Related #87905. Thanks @TurboTheTurtle and @xmoxmo. 128 **PR #87390** fix(ci) ignore fenced headings in proof parser. Thanks @MonkeyLeeT. 129 **PR #85248** fix(gateway) strip spurious tool call blocks when provider signals stop. Related #85161. Thanks @Jerry-Xin and @syncword. 130 **PR #83660** fix(browser) allow upload from inbound media directory. Related #83544. Thanks @spacegeologist and @scorpiord. 131 **PR #88467** feat improve MCP operator workflows. 132 **PR #84247** Refactor browser screenshot vision through shared media under... **PR #84247** Refactor browser screenshot vision through shared media understanding. Thanks @scotthuang. 133 **PR #88464** Move Workboard to relational SQLite **PR #88464** Move Workboard to relational SQLite. 134 **PR #88451** refactor unify OpenAI provider identity. 135 **PR #88459** refactor extract normalization core package. 136 **PR #84670** [codex] fix webchat full-message reader for truncated history **PR #84670** [codex] fix webchat full-message reader for truncated history. Related #84651. Thanks @NianJiuZst and @100yenadmin. 137 **PR #88462** fix(heartbeat) advance stale scheduler deferrals. Related #79380. Thanks @jorgemarmor. 138 **PR #88461** refactor(cron) split service timer helpers. 139 **PR #88427** fix(auth) bound inherited oauth expiry. 140 **PR #88458** fix clarify generated media reply prompts. 141 **PR #88421** [codex] Fix Telegram DM topic session routing **PR #88421** [codex] Fix Telegram DM topic session routing. Related #80212. Thanks @brokemac79 and @SergeyKerj. 142 **PR #88113** fix(commands) make /skill load workspace skills. Related #88056. Thanks @MonkeyLeeT and @shakkernerd. 143 **PR #85904** fix(slack) keep DM thread turns out of active steering. Thanks @guanbear. 144 **PR #88395** build(OpenClawKit) make ElevenLabsKit (talk/TTS) an optional package trait. Thanks @mochiexists and @atlascodesai. 145 **PR #88469** refactor(telegram) persist plugin state in sqlite. 146 **PR #88406** Fix iMessage startup watch replay **PR #88406** Fix iMessage startup watch replay. Thanks @obviyus. 147 **PR #87179** fix(discord) deliver same-session channel replies. Related #87157. Thanks @stevenepalmer and @neo-jacked-in. 148 **PR #88115** docs remove divider comments. 149 **PR #88319** fix(agents) skip below-target CLI compaction failures. Thanks @frankekn. 150 **PR #88552** Remove channel test isolation hack **PR #88552** Remove channel test isolation hack. 151 **PR #86176** Fix Telegram media message edits **PR #86176** Fix Telegram media message edits. Related #86161. Thanks @TurboTheTurtle and @crowneglobal. 152 **PR #88476** feat add Twilio SMS channel. 153 **PR #83992** fix(webchat) preserve refresh-visible history and composer state. Related #83344. Thanks @spacegeologist and @zachisfine. 154 **PR #88496** fix(auto-reply) redact secrets in config show output. Related #65623. Thanks @jason-allen-oneal and @coygeek. 155 **PR #88536** feat improve MCP operator controls. 156 **PR #84290** Doctor expose UI freshness health findings. Thanks @giodl73-repo. 157 **PR #88539** refactor(telegram) keep topic thread mapping plugin-local. 158 **PR #80391** fix(scripts) timeout crabbox wrapper sanity checks. Thanks @ejames-dev. 159 **PR #85990** Prefer Talk source-reply final text **PR #85990** Prefer Talk source-reply final text. Related #85275. Thanks @TurboTheTurtle and @BsnizND. 160 **PR #65914** fix(memory) respect qmd status timeout and skip checkpoint exports. Thanks @shawnduggan. 161 **PR #88555** feat(workboard) add worker dispatch CLI. 162 **PR #88018** fix(infra) guard against overwriting corrupt target session store during migration. Related #88017. Thanks @Feelw00. 163 **PR #88185** fix(cron) accept sub-second --at datetimes resolved in a timezone. Thanks @coder999999999. 164 **PR #88378** fix(xiaomi) support MiMo voicedesign TTS. Thanks @GimingRao. 165 **PR #70864** feat add scoped mention pattern policy. Thanks @patrick-slimelab. 166 **PR #87998** fix(agents) route per-turn media task hints below the cache boundary. Related #85203. Thanks @nxmxbbd and @AV500group. 167 **PR #75181** test(plugins) cover Link agent wallet bundle shape. Thanks @stainlu. 168 **PR #88347** fix(agents) strip malformed arg-value suffixes. Related #48780. Thanks @vincentkoc and @koden588-blip. 169 **PR #88578** docs document scoped mention patterns. 170 **PR #81808** chore(lint) enable object-shorthand. Thanks @tanshanshan. 171 **PR #70789** fix(ui) fix tool result pairing for sequential same-name tool calls. Related #70746. Thanks @chinar-amrutkar and @tarvis0523. 172 **PR #88011** fix(logging) align diagnostic recovery in-flight dedup keys. Related #88010. Thanks @Feelw00. 173 **PR #88574** Fix silent internal aborts after tool-use turns **PR #88574** Fix silent internal aborts after tool-use turns. Thanks @obviyus. 174 **PR #82219** fix(codex) accept first-party OpenAI plugin marketplaces (bundled and primary-runtime). Related #82216. Thanks @yaanfpv. 175 **PR #83719** feat(dreaming) add report-only shadow trial runner. Thanks @iFiras-Max1. 176 **PR #87772** fix(reply) deliver plugin binding replies. Related #87721. Thanks @MonkeyLeeT and @wingleungron. 177 **PR #74493** fix(cli) identity-only auth-epoch hashing for token credentials (#74312). Thanks @stainlu and @aderius. 178 **PR #88534** refactor extract media and ACP core packages. 179 **PR #79447** fix(model-auth) resolve per-entry apiKey profile ID references. Related #67423. Thanks @kinjitakabe and @presidenzo. 180 **PR #88577** fix(sms) diagnose Twilio webhook setup. 181 **PR #84628** [AI-assisted] fix(plugins) scope startup metadata manifest reads. Related #70533. Thanks @IWhatsskill and @jpippo364. 182 **PR #88582** Refactor cron SQLite runtime paths **PR #88582** Refactor cron SQLite runtime paths. 183 **PR #88595** perf speed up chat hydration and add 3D workboard. 184 **PR #75005** fix(media) allow explicit synthetic auth for media providers. Related #74644. Thanks @sqsge and @mozi1924. 185 **PR #75128** fix(boot) wrap BOOT.md in internal-runtime-context, strip from message-tool args (#53732). Thanks @stainlu and @alvaro630. 186 **PR #88599** fix(memory) retry transient embedding failures. Related #44166, #71784. Thanks @MrGeDiao and @kevinheinrichs. 187 **PR #88466** fix(gateway) guide dashboard auth after service repair. Related #88290. Thanks @sallyom and @drarturryzhov-boop. 188 **PR #88463** fix(ui) keep transient chat errors out of page headers. Thanks @sallyom. 189 **PR #88474** [AI-assisted] fix(gateway) avoid restarts for auth cooldown reloads. Related #88443. Thanks @IWhatsskill and @MrMaturin. 190 **PR #88603** fix(media) use typed auth for no-auth media providers. Related #74644. Thanks @mozi1924. 191 **PR #88605** refactor make OpenAI Codex legacy doctor-only. 192 **PR #88440** Retry stale CLI sessions inside runner lifecycle **PR #88440** Retry stale CLI sessions inside runner lifecycle. Related #77089. Thanks @brokemac79 and @clawdbotv2. 193 **PR #88393** fix(browser) document stable tab references. Thanks @FMLS and @hxy91819. 194 **PR #88340** fix(agents) classify expired thinking signatures. Related #88020. Thanks @Takhoffman and @BryanTegomoh and @bryanbaer. 195 **PR #88607** fix(devices) refresh paired device last-seen metadata. Related #81169. Thanks @vyctorbrzezowski and @deminson. 196 **PR #88613** fix queue subagent completion handoffs. 197 **PR #88609** refactor move plugin state stores to SQLite. 198 **PR #79363** fix(exec) allow known safe shell builtins in allowlist mode. Related #46056. Thanks @kinjitakabe and @aukei. 199 **PR #88617** fix(agents) preserve reasoning replay from model metadata. Related #88068. Thanks @syncword. 200 **PR #77953** fix(auto-reply) honor per-model thinking params. Thanks @tynamite. 201 **PR #88626** refactor(openai) confine legacy codex repair to doctor. 202 **PR #87887** fix(hooks) isolate slug-generator failures from shared auth profile (#71709). Thanks @openperf and @nikolaykazakovvs-ux. 203 **PR #88281** fix(tasks) reclaim ACP zombie runs blocking gateway restart. Related #88205. Thanks @openperf and @subaochen. 204 **PR #88619** refactor unify subagent handoffs into agent steering queue. 205 **PR #88004** fix(tui) skip history reload when final event has displayable output. Related #87922. Thanks @SebTardif and @darconadalabarga. 206 **PR #87962** fix(webchat) suppress stale active session row racing a completed turn (#87875). Thanks @MukundaKatta and @TunMax. 207 **PR #88050** fix(tui) use middle truncation for paths and commands in tool display. Related #87936. Thanks @SebTardif and @Joel-Claw. 208 **PR #86463** fix(auto-reply) warn on substantive private message-tool finals. Thanks @yaoyi1222. 209 **PR #88554** docs clarify Android token comments. 210 **PR #87959** fix(tui) preserve pending local runs during session sync. Thanks @nao860226-rgb and @vincentkoc. 211 **PR #82224** feat(codex) add portable Codex command pickers. Thanks @yaanfpv. 212 **PR #88637** chore bump OpenClaw version to 2026.5.31. 213 **PR #88587** fix(agents) normalize prefixed Anthropic fallback model ids (#88560). Thanks @TurboTheTurtle and @cjalden. 214 **PR #88351** fix(doctor) diagnose malformed provider catalogs. Thanks @vincentkoc. 215 **PR #88618** refactor expand acp core package. 216 **PR #87538** fix(agents) model-scope cooldown for transport timeout (#87462). Thanks @openperf and @fenglanhua. 217 **PR #88623** fix(agents) release session lock on manual abort. Related #88600. Thanks @williammu. 218 **PR #88588** fix(agents) avoid synthetic tool results during parallel races (#88168). Thanks @TurboTheTurtle and @jhartman00. 219 **PR #88636** feat add MCP code-mode namespace. 220 **PR #88558** fix(gateway) enforce OpenAI tool_choice required/function contracts. Thanks @Lellansin. 221 **PR #88628** fix scope plugin tools and async media starts. 222 **PR #84007** fix(agents) inherit subagent thinking defaults. Related #55790. Thanks @stevenepalmer and @vrurg. 223 **PR #81795** Fix Control UI agent thinking defaults **PR #81795** Fix Control UI agent thinking defaults. Related #81760. Thanks @jbetala7 and @caiming0331. 224 **PR #74418** fix(agents) recognize params.thinking=false and "disabled"/"none" as thinking=off. Related #74374. Thanks @yelog and @simmssun-hashh. 225 **PR #88583** fix(gateway) reject pre-reset run lifecycle events from clobbering the rotated session row. Related #88538. Thanks @openperf and @tianxiaochannel-oss88. 226 **PR #88612** fix(models) keep auth login out of main config. Related #88565. Thanks @corleonexie-maker. 227 **PR #88655** fix(gateway) reject stale lifecycle session updates. Related #88538. Thanks @tianxiaochannel-oss88. 228 **PR #88658** fix(agents) report stale session locks without cleanup. 229 **PR #88661** ci stabilize Testbox changed checks. 230 **PR #88641** feat add exec shell snapshot cache. 231 **PR #84232** fix(messages) use best-effort for implicit tool-only source replies. Related #84078. Thanks @tianxiaochannel-oss88. 232 **PR #88381** fix(agents) preserve runtime tools in lean mode. Thanks @vincentkoc. 233 **PR #88527** fix(discord) ping mention-bearing final replies under live preview (#88360). Thanks @openperf and @hughbeyond. 234 **PR #88659** refactor clean up ACP package metadata and helpers. 235 **PR #88652** fix(codex) restore bounded recovery continuity. Related #88352, #88354. Thanks @100yenadmin. 236 **PR #82739** fix(macos) prevent duplicate menu bar icons. Thanks @afalk42. 237 **PR #87975** fix(slack) avoid forced threads for replyToMode off. Thanks @lawrencetran. 238 **PR #86397** fix(discord) PluralKit DM pairing identity + `direct` peer regex (#86332). Thanks @Sanjays2402. 239 **PR #88601** fix(sms) cover native proof follow-ups. Thanks @clawSean. 240 **PR #88670** fix(agents) retry transient stale session locks. 241 **PR #80996** Fix Google Chat message tool thread replies **PR #80996** Fix Google Chat message tool thread replies. Related #80995. Thanks @franco-viotti. 242 **PR #88549** fix(memory-core) reclaim orphaned dreaming sessions with surviving transcripts. Related #88322. Thanks @Alix-007 and @TheDenStudios. 243 **PR #88557** fix(terminal) clamp wide graphemes in narrow table cells. Related #88556. Thanks @jbetala7. 244 **PR #87904** fix route iMessage DM media through attachment handoff. Related #87597. Thanks @HOYALIM and @omarshahine and @TurboTheTurtle. 245 **PR #88547** feat(github-copilot) add Claude Opus 4.8 to default model catalog. Thanks @saju01. 246 **PR #88428** fix(discord) route thread bindings to plugin owners. Related #64199. Thanks @SYU8384 and @hoh-dev-bot. 247 **PR #85612** fix(slack) keep one draft message in progress mode. Thanks @mycarrysun. 248 **PR #88500** fix release abandoned provider streams. Related #67461. Thanks @samzong and @jakedwyer. 249 **PR #85691** fix(doctor) auto-repair stale session snapshot paths on --fix. Related #85689. Thanks @ggzeng. 250 **PR #86737** fix(ios) subscribe to per-session transcripts so group chats update in real time (#80231). Thanks @yetval and @jm7v7fgpdy-sketch. 251 **PR #88642** fix(whatsapp) suppress spurious typing indicator on silent tool-only runs. Related #450. Thanks @Bluetegu and @thesash. 252 **PR #88635** fix(secrets) treat Codex app-server marker as non-secret. Thanks @vortexopenclaw. 253 **PR #88525** feat(deepseek) show provider balance in usage status. Thanks @litang9. 254 **PR #88563** fix(agents) resolve exact static-catalog models for plugin-harness cold start (#88510). Thanks @yetval and @wlassalle724. 255 **PR #87818** fix(ollama) yield during dense stream processing. Thanks @vincentkoc and @udaymanish6. 256 **PR #88665** refactor move delivery queues to SQLite. 257 **PR #88676** fix(auto-reply) add memory flush failure tracking with retry exhaustion. Thanks @Jerry-Xin. 258 **PR #88672** fix(plugins) reuse current metadata snapshot in provider hot paths. Thanks @masatohoshino. 259 **PR #88678** feat add typed MCP code-mode API. 260 **PR #77882** fix(feishu) gate bitable tools by tools config. Thanks @glfruit. 261 **PR #59172** fix(cli) extend holiday tagline dates through 2030. Thanks @alkor2000. 262 **PR #88252** fix(agents) avoid full stream replay on text deltas. Thanks @vincentkoc. 263 **PR #59500** fix extend CA bundle auto-injection to all 8 Node version managers. Related #59494. Thanks @alkor2000. 264 **PR #87855** fix(telegram) handle ENOENT race in spool drain recovery rename. Related #87847. Thanks @SebTardif and @ppanphper. 265 **PR #88677** refactor clean up ACP translator and manager tests. 266 **PR #88715** perf(plugins) avoid duplicate provider hook load probes. 267 **PR #88675** refactor move plugin state slices to sqlite. 268 **PR #88153** fix(agents) count stream deltas incrementally. Thanks @vincentkoc. 269 **PR #87698** fix(gateway) emit subagent_ended hook for api.runtime.subagent.run() (#59164). Thanks @sweetcornna and @Amyssjj. 270 **PR #81692** fix(doctor) detect stale gateway service version metadata. Thanks @wAngByg. 271 **PR #87549** fix(agents) validate context engine assemble result shape. Related #75541. Thanks @Pluviobyte and @tyyim. 272 **PR #88720** refactor extract ACP translator session updates. 273 **PR #85666** fix #85124 skip Anthropic API keys for usage status. Thanks @zhangguiping-xydt and @rqlangley. 274 **PR #88722** refactor make Telegram message cache SQLite-only. 275 **PR #88724** fix persist ACP metadata in SQLite. 276 **PR #86917** fix(session-store) rewrite generated transcript paths on rollover. Thanks @Sunjae-k and @sunjae-1. 277 **PR #84419** fix(session) prefer real tool result over synthetic error in transcript repair. Thanks @Jerry-Xin. 278 **PR #88725** refactor extract ACP manager runtime handle cache. 279 **PR #88721** feat(plugin-sdk) add typed presentation command actions. 280 **PR #79658** Allow validated TXT/JSON/YAML media sends **PR #79658** Allow validated TXT/JSON/YAML media sends. Thanks @simplyclever914. 281 **PR #87618** fix(daemon) detect system-scope systemd gateway units on Linux (#87577). Thanks @yetval and @fisherman86-ai. 282 **PR #84988** Refresh Node Docker base image digests **PR #84988** Refresh Node Docker base image digests. Related #84981. Thanks @LibraHo. 283 **PR #85931** fix(memory) serialize qmd update writes across processes to stop SQLITE_BUSY. Related #66339. Thanks @openperf and @SakenW. 284 **PR #78793** fix(approvals) interpolate request id into "Reply with:" line. Thanks @itsuzef. 285 **PR #88730** fix(codex) stream final answer partials. Related #88405. Thanks @crash2kx. 286 **PR #80801** fix(auth) force re-login flag, remediation hint, and session-scoped fallback skip cache. Thanks @MertBasar0. 287 **PR #88729** refactor extract ACP runtime handle ensure flow. 288 **PR #79040** fix(gateway) guard buildGroupDisplayName behind group/channel chatType. Related #55354. Thanks @sebuh-infsol and @toruvieI. 289 **PR #77952** fix(discord) bound REST entity cache to prevent unbounded Map growth. Related #77975. Thanks @fede-kamel. 290 **PR #88733** refactor extract ACP runtime resume state. 291 **PR #77924** fix(memory-core) preserve phase signals on read errors. Related #77881. Thanks @bennewell35 and @SimbaKingjoe. 292 **PR #88314** fix #76284 [Bug]: openclaw agents add blocked — cannot add Jon/Atlas as separate agents. Thanks @zhangguiping-xydt and @RicardoUKMX. 293 **PR #77394** fix(agents) sanitize raw HTTP 401 provider errors in user-visible replies (#56197). Thanks @jeffrey701 and @lokamir. 294 **PR #88739** refactor extract ACP turn runner. 295 **PR #77998** fix(skills) clear workspaceVersions entry when skills watcher is disabled. Related #77997. Thanks @fede-kamel. 296 **PR #77527** fix(gateway) rate-limit pre-auth bootstrap-token verify to prevent mutex DoS. Related #77978. Thanks @fede-kamel. 297 **PR #88744** refactor extract ACP close session flow. 298 **PR #88731** refactor migrate voice-call call logs through doctor. 299 **PR #87522** fix force preflight compaction before oversized agent turns. Related #87234. Thanks @ArthurNie. 300 **PR #75061** fix preserve workspaces during state-only uninstall. Related #75052. Thanks @Jason-Bai and @XueJourney. 301 **PR #79465** Fix ACP command bypass for channel text commands **PR #79465** Fix ACP command bypass for channel text commands. Thanks @RoeeJ. 302 **PR #88747** refactor extract ACP runtime option commands. 303 **PR #74715** fix(ui) show Communication Notifications tab. Thanks @VladyslavLevchuk. 304 **PR #88691** feat(gateway) support Tailscale Serve service names. Related #88629. Thanks @charles-openclaw and @resYuto. 305 **PR #88749** fix(channels) recover failed progress draft starts. Related #83115. Thanks @SebTardif. 306 **PR #88029** fix(agents) atomic auth.json write to prevent credential lockout on crash. Related #88028. Thanks @Feelw00. 307 **PR #85277** fix(openai) avoid stale Responses message id replay. Thanks @latensified. 308 **PR #79173** fix skip disabled skill snapshot env overrides. Related #79072. Thanks @zeus1959 and @maverikva. 309 **PR #88752** refactor split ACP manager session flows. 310 **PR #79149** fix(ci) guard workflow template injection. Related #68428. Thanks @WT-WSL and @visionik. 311 **PR #74089** fix(openai/tts) handle [[tts:speed]] directive in OpenAI speech provider (#12163). Thanks @stainlu and @useramuser. 312 **PR #88763** feat add code-mode MCP API files. 313 **PR #87896** fix(feishu) fallback when accepted turns send no visible reply. Thanks @ArthurNie. 314 **PR #88761** [codex] Surface disabled Codex plugin routes in doctor lint **PR #88761** [codex] Surface disabled Codex plugin routes in doctor lint. Related #88751. Thanks @brokemac79 and @jalehman. 315 **PR #88759** fix repair providerless Codex session overrides. Thanks @earlvanze. 316 **PR #88740** fix(hooks) pass media metadata to internal message_received hook. Thanks @SebTardif. 317 **PR #88695** fix(agents) wait for cron media completions. Related #88001. Thanks @nailujac. 318 **PR #88762** fix(ui) show Workboard comments in edit modal. Thanks @MonkeyLeeT. 319 **PR #88765** fix(agents) publish owned announcement session writes. Related #88703. Thanks @TurboTheTurtle and @neo-hu. 320 **PR #59196** feat(doctor) add disk space health check for state directory. Thanks @alkor2000. 321 **PR #79260** feat(doctor) add --post-upgrade --json mode for plugin-compat findings. Thanks @arniesaha. 322 **PR #88486** fix(diagnostics) carry session UUID on interactive dispatch events. Thanks @arniesaha. 323 **PR #84904** fix avoid replaying Responses item ids when store is disabled. Thanks @zhanghang02. 324 **PR #82828** fix(daemon) preserve container service env across regen. Thanks @wAngByg. 325 **PR #88755** fix(agents) expose session status route context. Related #84544. Thanks @nxmxbbd and @lykeion-dev. 326 **PR #88781** fix(models) strip remaining provider self prefixes. Related #88770. Thanks @charles-openclaw and @cjalden. 327 **PR #88131** fix(logging) refresh file log hostname per write. Related #87258. Thanks @lonexreb and @mmhzlrj. 328 **PR #88667** fix #81214 [Bug]: OpenClaw 2026.5.7 subagent regression. Thanks @zhangguiping-xydt and @GreyWolfRon. 329 **PR #88764** fix(update) recognize manual-update launchd jobs. Related #88736. Thanks @TurboTheTurtle and @deonkretch. 330 **PR #88727** fix(feishu) preserve long streaming replies. Related #88631. Thanks @MonkeyLeeT and @Leorand-dev. 331 **PR #88512** fix resolve google provider default API to google-generative-ai. Related #88480. Thanks @1052326311 and @Xin and @azgardtek. 332 **PR #88756** feat add Skill Workshop Control UI. Thanks @shakkernerd. 333 **PR #88610** fix suppress raw provider errors in channel delivery. Related #69737. Thanks @jason-allen-oneal and @alexisperumal. 334 **PR #88808** perf hydrate chat history session metadata. 335 **PR #88735** fix(agents) harden runtime tool schema quarantine. Thanks @vincentkoc. 336 **PR #88221** fix(nostr) decode npub allowFrom entries to hex correctly. Thanks @DocNR and @hypoxicdrive. 337 **PR #88772** feat calm composer controls. 338 **PR #88388** fix(agents) guard transport payload sanitizer against non-string input. Related #60113. Thanks @Pluviobyte and @cursoragent and @wujiaming88. 339 **PR #88149** fix(agents) cap bootstrap snapshot cache. Thanks @yozakura-ava. 340 **PR #88545** fix(memory-core) stop dream diary fallback from leaking raw staging fragments. Related #88391. Thanks @Alix-007 and @Carme99. 341 **PR #88289** fix(microsoft-foundry) skip DeepSeek V4 thinking params on Foundry fallback. Thanks @silvesterxm. 342 **PR #88209** fix(subagents) roll formatTokenShort over to "m" at 1000k. Thanks @coder999999999. 343 **PR #88008** fix(tasks) persist task store before in-memory mutation to prevent sqlite divergence. Related #88007. Thanks @Feelw00. 344 **PR #88306** fix(gateway) hide phantom agent store rows from sessions.list. Related #57376. Thanks @Alix-007 and @smarchetti. 345 **PR #88760** fix(doctor) report runtime tool schema errors. Thanks @vincentkoc. 346 **PR #88495** fix(imessage) tolerate sub-second self-chat reflection skew. Thanks @colmbrogan. 347 **PR #88797** Migrate iMessage monitor state to SQLite **PR #88797** Migrate iMessage monitor state to SQLite. 348 **PR #87981** fix(cron) retire MCP runtimes on isolated cron timeout and dispose. Related #87821. Thanks @Jerry-Xin and @zachisfine. 349 **PR #88410** fix(gateway) harden MCP loopback tool schemas. Thanks @vincentkoc. 350 **PR #88100** fix(doctor) quiet tool policy removal audits. Related #87798. Thanks @giodl73-repo and @oalansilva. 351 **PR #88804** fix(agents) preserve stop-finished OpenAI tool calls. Related #88791. Thanks @MonkeyLeeT and @kiagentkronos-cell. 352 **PR #88802** test(agents) cover nonfatal trajectory flush timeout. Related #88520. Thanks @TurboTheTurtle and @novac42code. 353 **PR #88819** fix(workboard) wire task-backed board runs. Thanks @vincentkoc. 354 **PR #88608** fix(minimax) use account OAuth device endpoints. Thanks @MatthewSchleder. 355 **PR #88794** Persist plugin install index in SQLite **PR #88794** Persist plugin install index in SQLite. 356 **PR #88827** Add Vertex API key model config regression coverage **PR #88827** Add Vertex API key model config regression coverage. Related #88816. Thanks @TurboTheTurtle and @randompup. 357 **PR #77237** Preserve managed npm plugin root when install validation bloc... **PR #77237** Preserve managed npm plugin root when install validation blocks update. Thanks @zhuisDEV. 358 **PR #88288** fix(config) skip state-dir dotenv values that are unresolved shell references. Related #88274. Thanks @Alix-007 and @mathias15010. 359 **PR #87848** fix(status) resolve gateway auth secrets for deep audit. Related #87815. Thanks @ai-hpc and @kAIborg24. 360 **PR #88807** fix(plugins) isolate web provider factory failures. Thanks @vincentkoc. 361 **PR #88518** fix(plugins) isolate cached tool runtime siblings. Thanks @vincentkoc. 362 **PR #88851** Persist OpenRouter model cache in SQLite **PR #88851** Persist OpenRouter model cache in SQLite. 363 **PR #88485** fix(agents) guard vanished workspaces. Related #88333. Thanks @TurboTheTurtle and @HT-Moh. 364 **PR #88825** perf streamline chat startup metadata. 365 **PR #88723** fix(doctor) respect explicit PI runtime policy. Related #88706. Thanks @toruvieI. 366 **PR #88365** fix(infra) bridge WSL clipboard through shell. Related #88080. Thanks @vincentkoc and @YaneCheung. 367 **PR #88785** fix restore backgrounded in-flight runs on TUI switch-back via gateway snapshot. Thanks @williamliu-ai. 368 **PR #87992** feat(ios) support native iPad display. Thanks @EmpX2025. 369 **PR #88846** fix preserve no-policy native hook fallback. Thanks @woodym-dotcom. 370 **PR #81264** fix(installer) align Node version floor with package engine. Thanks @kiranmagic7. 371 **PR #87838** test(agents) include Ollama in small live model matrix. Thanks @vincentkoc. 372 **PR #88860** feat(minimax) add MiniMax M3 support. 373 **PR #88305** fix(browser) isolate Chrome MCP pending attach aborts. Related #88304. Thanks @rohitjavvadi. 374 **PR #88814** fix(ci) repair current main checks. Thanks @vincentkoc. 375 **PR #88855** fix(microsoft-foundry) satisfy extension lint. Thanks @RomneyDa. 376 **PR #88824** test consolidate plugin registration contracts. Thanks @RomneyDa. 377 **PR #88847** test(ui) remove stylesheet grep tests. Thanks @RomneyDa. 378 **PR #88704** fix(memory) rehydrate daily list promotions. Related #87854. Thanks @MonkeyLeeT and @KingYiKa. 379 **PR #88848** test(agents) use neutral tool schema fixtures. Thanks @vincentkoc. 380 **PR #88817** fix(agents) return schema lookup misses in-band. Related #88813. Thanks @ksj3421 and @cjalden. 381 **PR #88866** Persist Discord thread bindings in SQLite **PR #88866** Persist Discord thread bindings in SQLite. 382 **PR #88801** fix(hooks) expose inbound reply metadata before dispatch. Related #88521. Thanks @TurboTheTurtle and @hoyanhan. 383 **PR #88865** docs clarify diffs language pack additions. Thanks @RomneyDa. 384 **PR #88849** docs continue inline comment pass. 385 **PR #87077** fix(ui) bypass service worker for top-level navigations. Thanks @nayrosk. 386 **PR #88394** fix(plugins) fail closed on trusted policy errors. Thanks @vincentkoc. 387 **PR #88758** docs(imessage) document SSH wrapper TCC send failure. Related #79289. Thanks @TurboTheTurtle. 388 **PR #88859** fix(mattermost) route send attachments through upload. Related #87930. Thanks @vincentkoc and @NewCoffee7477. 389 **PR #88830** feat(dreaming) score candidates with shadow trial results. Thanks @iFiras-Max1. 390 **PR #88803** fix(reply) preserve sessions_send external routes. Related #88044. Thanks @MonkeyLeeT and @Lvan185. 391 **PR #88294** fix(cron) include job name when reading single-job run history. Thanks @kip-claw. 392 **PR #88896** fix harden CLI and plugin edge cases. 393 **PR #88767** fix(plugin-sdk) isolate provider catalog projection failures. Thanks @vincentkoc. 394 **PR #88892** feat(ui) improve Workboard task details. Thanks @vincentkoc. 395 **PR #88806** fix(memory-lancedb) reject envelope metadata sludge (incl. marker-free shapes). Thanks @amittell. 396 **PR #88921** fix(ui) keep first control chat sends responsive. Thanks @vincentkoc. 397 **PR #87484** fix(agents) clear legacy auto fallback pins. Related #87467. Thanks @neeravmakwana and @bgmbgm94. 398 **PR #88904** fix(android) add notification app picker. Thanks @Tosko4. 399 **PR #88820** fix(diagnostics) clear embedded-run activity when recovery declares lane idle. Related #88660. Thanks @openperf and @Iman-Sharif. 400 **PR #88897** refactor(copilot) compact sessions through SDK state. 401 **PR #88924** fix(agents) strip streamed reasoning tags. Related #88741. Thanks @kdonthar. 402 **PR #88937** fix(ui) render pending sends in chat thread. Thanks @vincentkoc. 403 **PR #88949** fix(ui) scroll pending sends into view. Thanks @vincentkoc. 404 **PR #88952** perf(ui) cache chat transcript renders. Thanks @vincentkoc. 405 **PR #88960** perf(ui) record pending send paint timing. Thanks @vincentkoc. 406 **PR #88972** perf(ui) debounce chat draft persistence. Thanks @vincentkoc. 407 **PR #88978** perf(ui) skip closed slash menu rerenders. Thanks @vincentkoc. 408 **PR #88982** fix(test) wait for telegram timer flushes. Thanks @vincentkoc. 409 **PR #88989** perf(ui) guard chat transcript rerenders. Thanks @vincentkoc.
Release

2026.5.28

2026.5.28

21 changes Open upstream ↗
01 Agent and Codex runtime recovery is steadier subagents keep cwd/workspace separation, hook context stays prompt-local, session locks release on timeout abort while live OpenClaw locks survive cleanup, stale restart continuations are avoided, and Codex app-server/helper failures no longer tear down shared runtime state. (#87218, #86875, #87409, #87399, #87375, #88129) 02 Channel delivery and session identity got safer across outbound plugin hook... Channel delivery and session identity got safer across outbound plugin hooks, Matrix room ids, iMessage reactions/approvals, Slack final replies, Discord recovered tool warnings, runtime-config message actions, WhatsApp profile auth roots, Telegram polling, and Microsoft Teams service URL trust checks. (#73706, #75670, #87366, #87451, #87334, #84535, #82492, #83304, #87160) 03 Mobile and chat surfaces got a broader refresh the iOS Pro UI, hosted push relay default, realtime Talk tab playback, Gateway chat transport, onboarding, Talk permissions, WebChat reconnect delivery, and session picker behavior now preserve more state across reconnects and empty searches. (#87367, #87531, #87682, #88096, #88105) Thanks @ngutman and @BunsDev. 04 Browser, channel, and automation inputs are stricter Browser tool timeouts, viewport/tab indices, Gateway ports, cron retry handling, Discord component ids, schema array refs, Telegram callback pages, and channel progress callbacks now reject malformed values earlier and preserve the intended delivery context. (#82887) 05 Provider, media, and document coverage expands with Claude Opus 4 Provider, media, and document coverage expands with Claude Opus 4.8, Fal Krea image schemas, NVIDIA featured models, MiniMax streaming music responses, encrypted PDF extraction, voice model catalogs, GitHub Copilot agent runtime support, and a Codex Supervisor plugin path for delegated Codex workflows. (#87845, #87890, #80775, #84764, #87751, #87794) 06 CLI, auth, doctor, and provider paths fail faster and recover more clearly:... CLI, auth, doctor, and provider paths fail faster and recover more clearly: malformed numeric/version options are rejected, workspace dotenv provider credentials are ignored, heartbeat defaults, OAuth/token lifetimes, and local service startup requests are bounded, agent auth health labels are clearer, legacy `api_key` auth profiles migrate to canonical form, and restart guidance is actionable. (#87398, #86281, #87361, #88133, #83655, #87559, #88088, #85924) Thanks @vincentkoc and @giodl73-repo. 07 Plugin and Gateway hot paths do less repeated work while preserving cache c... Plugin and Gateway hot paths do less repeated work while preserving cache correctness for install records, config JSON parsing, tool search catalogs, session stores, manifest model rows, auto-enabled plugin config, browser tokens, viewer assets, and release-split external plugin packages. (#86699) 08 Release, QA, and E2E validation now bound more log, artifact, harness, and... Release, QA, and E2E validation now bound more log, artifact, harness, and cross-OS waits so failing lanes produce proof instead of hanging or false-greening. 09 Status show active subagent details in status output. 10 Diffs split the default language pack and expand default Diffs language coverage while keeping the host floor aligned. (#87370, #87372) Thanks @RomneyDa. 11 ClawHub add plugin display names plus skill verification and trust surfaces. (#87354, #86699) Thanks @thewilloftheshadow and @Patrick-Erichsen. 12 iOS refresh the dev app with Pro Command, Chat, Agents, Settings, hosted push relay defaults, and realtime Talk playback wired to gateway sessions, diagnostics, chat, and realtime Talk. (#87367, #88096, #88105) Thanks @Solvely-Colin and @ngutman. 13 Docs clarify Codex computer-use setup, paste-token stdin auth setup, macOS gateway sleep troubleshooting, native Codex hook relay recovery, container model auth, install deployment cards, device-token admin gating, CLI setup flow compatibility, Notte cloud browser CDP setup, and backport targets. (#87313, #63050, #87685) Thanks @bdjben, @liaoandi, and @thewilloftheshadow. 14 PDF/tools use ClawPDF for PDF extraction, support encrypted PDF extraction, and surface MCP structured content in agent tool results. (#87670, #87751) 15 Providers add Claude Opus 4.8 support, Fal Krea image model schemas, NVIDIA featured model catalogs, MiniMax streaming music responses, and provider-backed voice model catalogs. (#87845, #87890, #80775, #84764, #87794) Thanks @eleqtrizit and @vincentkoc. 16 Codex/GitHub add the GitHub Copilot agent runtime and the Codex Supervisor plugin package. 17 Plugins externalize GitHub Copilot and Tokenjuice as official install-on-demand plugins with npm and ClawHub publish metadata. 18 Workboard add agent coordination tools for tracking and handing off active agent work. 19 Discord show commentary in progress drafts so live Discord runs expose useful in-progress context. (#85200) 20 Plugin SDK add a reply payload sending hook for plugins that need to deliver channel-owned replies and flatten package types for SDK declarations. (#82823, #87165) Thanks @piersonr and @RomneyDa. 21 Policy add policy comparison, ingress-channel conformance, and sandbox-posture conformance checks. (#85572, #85744, #86768)
Release

2026.5.27

2026.5.27

9 changes Open upstream ↗
01 Safer local/runtime boundaries OpenClaw now rejects unsafe command wrappers, malformed CLI numeric options, unsafe Node runtime env overrides, no-auth Tailscale exposure, and non-admin device-role pairing approvals before they can affect live runs. (#87308, #87305, #87292, #87146) 02 Matrix and auto-reply delivery are steadier mention previews stay inert, final mention replies deliver normally, shared-DM notices are awaited, MXID parsing ignores filenames, and reasoning-prefixed `NO_REPLY` responses stay suppressed. 03 Provider and agent reliability improved across OpenAI-compatible embeddings... Provider and agent reliability improved across OpenAI-compatible embeddings, cached token usage, Anthropic/Codex/Claude runtime state, unsupported tool-schema quarantine, heartbeat templates, and session fallback errors. (#85269, #82062, #85416, #86855) 04 Plugin and package release paths got tighter Pixverse ships as an external video plugin with region selection, package exclusions and shrinkwrap inventory match the published npm shape, and release/package smoke commands fail bounded instead of hanging. 05 Gateway hot paths do less rediscovery by reusing current plugin metadata fi... Gateway hot paths do less rediscovery by reusing current plugin metadata fingerprints, stable plugin index fingerprints, read-only session metadata, active working stores, status fast paths, and auth/env snapshots. (#86439) 06 Memory add a core OpenAI-compatible embedding provider for local and hosted OpenAI-style endpoints, with config, doctor, and docs support. (#85269) Thanks @dutifulbob. 07 Plugin SDK mark memory-specific embedding provider registration as deprecated compatibility and surface non-bundled usage in plugin compatibility diagnostics. (#85072) Thanks @mbelinky. 08 Pixverse add video generation provider support, API region selection, and external plugin publishing. 09 Plugins expose approval action metadata for plugin-driven approval surfaces.
Release

2026.5.26

2026.5.26

31 changes Open upstream ↗
01 Faster Gateway and replies startup avoids repeated plugin, channel, session, usage-cost, warning, scheduled-service, and filesystem scans; visible replies separate user-facing sends from slower follow-up work; Gateway runtime/session caches churn less under load. 02 Transcripts are core transcript-backed meeting summaries, source-provider chunks, cleaned user turns, media provenance, Codex mirrors, WebChat replies, and CLI/TUI replay now use one more reliable transcript path. 03 More channels are production-ready Telegram keeps typing/progress context and forum topics, iMessage handles attachment roots, remote media staging, and duplicate local Messages sources, WhatsApp restores group/media behavior, Discord improves voice playback and model picking, and Signal/iMessage/WhatsApp get reaction approvals. 04 Better voice and Talk realtime Talk runs can be inspected, steered, cancelled, or followed up from Web UI and Discord voice; wake-name handling is more tolerant without letting ambient speech trigger agents. 05 Safer content boundaries Browser snapshot reads honor SSRF policy, system-event text cannot spoof nested prompt markers, fetched file text is wrapped as external content, ClickClack inbound sender allowlists run before agent dispatch, stale device tokens are rejected, and serialized tool-call text is scrubbed from replies. 06 Providers, Codex, and local models are steadier named auth profiles, OpenAI sampling params, Codex app-server resume/timeout/usage-limit recovery, dynamic tool-schema guards, xAI usage-limit surfacing, Ollama top-p normalization, and local approval resolution reduce provider-specific dead ends. 07 More reliable install/update/release paths Alpine installs, trusted runtime fallback roots, stable update channels, Docker/package timeouts, Windows Scheduled Tasks, Windows/macOS proof lanes, Testbox/Crabbox delegation, plugin publish checks, and macOS runner bootstraps all got hardened. 08 Better observability Activity tab, gateway secret-prep traces, tool/model stream progress, explicit fast-mode status, systemd Gateway hygiene, OpenTelemetry LLM spans, release performance evidence, and richer telemetry signals make failures easier to inspect. 09 Transcripts add core transcript capture and source-provider support for transcript-backed meeting summaries, including the renamed Transcripts docs, CLI surface, source-provider chunks, and cleaned user-turn persistence. 10 Auth add named model login profiles and supported credential migration for Hermes, OpenCode, and Codex auth profiles, with explicit opt-out and non-interactive controls. (#85667) Thanks @fuller-stack-dev. 11 Diagnostics trace gateway secret preparation, classify skill/tool usage, surface model stream progress, add OpenTelemetry LLM content spans, and expose alertable telemetry for blocked tools, failover, stale sessions, liveness, oversized payloads, and webhook ingress. (#83019, #80370, #86191) 12 Channels add Signal reaction approvals, iMessage thumb approval reactions, and WhatsApp thumb approval reaction support so mobile approval flows work without textual `/approve` commands. (#85894, #85952, #85477) 13 Agents/API forward OpenAI sampling params through the Gateway and expose estimated context-budget status for active agent runs. (#84094) 14 TUI/status queue prompts submitted while an agent is busy and show explicit fast-mode state plus richer systemd Gateway hygiene in status output. (#86722, #87115, #86976) 15 Exec approvals hide durable approval actions that are unavailable for the current prompt and keep approval runtime tokens local-only so stale prompts cannot offer misleading controls. (#86270, #86359) 16 Plugin SDK add reaction approval helpers and keep diagnostic event root exports discoverable across function-name and alias-bound module graphs. (#86735, #87084) 17 Android/iOS add the Android pair-new-gateway action and improve mobile Talk mode surfaces, including iOS realtime Talk mode and Android offline voice/gateway recovery. (#86798, #86355) Thanks @ngutman. 18 Performance cache plugin metadata snapshots, package realpaths, stable gateway metadata, model cost indexes, channel resolution, usage-cost indexes, and session/auth hot-path facts so common Gateway and reply paths do less rediscovery. (#84649, #85843, #86517, #86678) 19 Voice expose shared realtime turn-context tracking through the realtime voice SDK and reuse it for Discord speaker attribution and wake-name context recovery. 20 Voice reuse shared realtime output activity tracking in Google Meet command and node audio bridges, including recent-output checks for local barge-in detection. 21 Voice expose shared realtime output activity tracking through the realtime voice SDK and reuse it for Discord playback activity and barge-in decisions. 22 Voice expose shared realtime consult question matching, speakable-result extraction, and alias-aware forced-consult coordination through the realtime voice SDK, then reuse it in Gateway Talk, Voice Call, and Discord voice paths. 23 Voice share activation-name matching and consult-transcript screening through the realtime voice SDK so Discord, browser voice, and meeting surfaces can reuse one implementation. 24 Cron default `cron.maxConcurrentRuns` to 8 so scheduled automations and their isolated agent turns can make progress in parallel without explicit configuration. 25 QA-Lab add `qa coverage --match <query>` so focused proof selection can discover matching scenarios from existing metadata before running live or remote lanes. 26 Discord/model picker surface an alpha-bucket select (e.g. `A–G (12) · H–N (18) · O–Z (5)`) when the provider list or a provider's model list exceeds 25 items, so configs with `provider/*` wildcards stay one click from the right page instead of paginating through prev/next; falls back to numeric chunks when every item shares the same first letter. (#86181) Thanks @rendrag-git. 27 Control UI add an ephemeral Activity tab for sanitized live tool activity summaries without persisting raw telemetry. Fixes #12831. Thanks @BunsDev. 28 Build include `ui:build` in the `full` and `ciArtifacts` profiles of `scripts/build-all.mjs` so `pnpm build` always rebuilds `dist/control-ui` after `tsdown` cleans `dist`, removing the second-command requirement and the missing-asset failure mode for source/runtime installs and CI artifact uploads. (#85206) 29 iOS improve Talk mode with direct realtime voice sessions, compact toolbar status, and responsive voice waveform feedback. (#86355) Thanks @ngutman. 30 Media replace the Sharp image backend with Rastermill for metadata, resizing, EXIF orientation, and PNG alpha-preserving optimization so OpenClaw no longer installs Sharp or the WhatsApp Jimp fallback for image processing. (#86437) 31 Codex update the bundled Codex CLI to 0.134.0 and keep native compaction disabled for budget-triggered app-server turns so OpenClaw owns the recovery boundary. (#86772)
Release

2026.5.22

2026.5.22

47 changes Open upstream ↗
01 Gateway/perf reuse process-stable channel catalog reads, avoid repeated bundled-channel boundary checks, and rotate gateway watch CPU profiles so benchmark runs do not accumulate unbounded artifacts. 02 Gateway/perf reuse immutable plugin metadata snapshots across startup, config, model, channel, setup, and secret metadata readers so hot paths avoid repeated plugin file stats and manifest registry reloads. 03 Gateway/perf lazy-load startup-idle plugin work, core gateway method handlers, and the embedded ACPX runtime so Gateway health and ready signals no longer wait on unused handler trees or ACPX probes. 04 Gateway/perf cache plugin SDK public-surface alias maps and skip irrelevant macOS Linuxbrew PATH probes so Gateway startup avoids repeated filesystem walks and slow missing-directory stats. 05 Transcripts add the initial transcript capture and source-provider foundation, including auto-start capture config, manual transcript imports, read-only transcript access, and Discord voice as the first live source. 06 Docs/channels/config add Signal `configPath`, Telegram wildcard topic defaults, local-time backup archive names, Termux home fallback, include-path validation, secret-scanner-safe placeholder guidance, Gemini CLI/Antigravity media guidance, and macOS VM auto-login guidance. Thanks @NorseGaud, @yudistiraashadi, @huangqian8, @VibhorGautam, @maweibin, @tianxingleo, @IgnacioPro, and @xzcxzcyy-claw. 07 Docs clarify model-usage portability, Codex migration prerequisites, status bootstrap wording, thread-bound subagent limits, hook ownership, and config-preserving safety guidance. Thanks @aniruddhaadak80, @leno23, @TomDjerry, @matthewxmurphy, @vincentkoc, and @stablegenius49. 08 Docs clarify README onboarding and Gateway startup paths, WhatsApp QR/408 recovery, cron output language prompts, skill advanced features, gateway upstream 403 troubleshooting, and plugin fallback override guidance. Thanks @deepujain, @Zacxxx, @Jah-yee, @neyric, @usimic, @Renu-Cybe, @BigUncle, and @SeashoreShi. 09 Docs clarify context-pruning ratio bounds, local dashboard recovery, CLI env markers, remote onboarding token behavior, and Peekaboo Bridge permissions for subprocess agents. Thanks @ayesha-aziz123, @dishraters, @hougangdev, and @brandonlipman. 10 Docs clarify browser CDP diagnostics, Plugin SDK allowlist imports, status-reaction timing defaults, queue steering behavior, limited-tool troubleshooting, cron HEARTBEAT handling, Telegram multi-agent groups, Bitwarden SecretRef setup, and EasyRunner deployments. Thanks @Quratulain-bilal, @mbelinky, @Mickey-, @vancece, @xenouzik, @posigit, @surlymochan, @janaka, and @choiking. 11 Crabbox/Testbox run clean sparse-checkout Testbox syncs from a temporary full checkout and route remote changed gates through Corepack pnpm. 12 Docs clarify IPv4-only Gateway BYOH binding, trusted-proxy scope clearing, Android pairing approval, macOS Accessibility grants, Zalo profile env vars, password-store SecretRef setup, and Chinese memory navigation. Thanks @itskai-dev, @gwh7078, @longstoryscott, @MoeJaberr, and @yuaiccc. 13 Docs consolidate GLM under Z.AI, add the Upstash Box install guide and Gateway exposure runbook, clarify MEDIA directives, Copilot and Voyage setup, config path quoting, real behavior proof, and memory-file write guidance. Thanks @BobDu, @alitariksahin, @Jefsky, @musaabhasan, @OmerZeyveli, @leno23, @WuKongAI-CMU, @luoyanglang, and @majin1102. 14 Docs clarify media provider credentials, Codex/OpenClaw code-mode boundaries, Slack and Telegram ack reactions, Feishu dynamic agents, secrets plaintext boundaries, memory guidance, and Chinese glossary terms. Thanks @nielskaspers, @cosmopolitan033, @drclaw-iq, @alexgduarte, @zccyman, @chengoak, and @cassthebandit. 15 Packaging exclude documentation images and assets from the npm tarball, reducing published package size without affecting runtime docs search or CLI behavior. Thanks @SebTardif. 16 Media understanding stop auto-probing Gemini CLI and use Antigravity CLI only as a lower-priority image/video fallback after configured provider APIs. 17 Agents/subagents limit default sub-agent bootstrap context to `AGENTS.md` and `TOOLS.md`, keeping persona, identity, user, memory, heartbeat, and setup files out of delegated workers by default. (#85283) Thanks @100yenadmin. 18 Maintainer skills exclude plugin SDK/API boundary work from `openclaw-landable-bug-sweep` so bugbash sweeps stay focused on small paper-cut fixes. 19 QA-Lab/diagnostics extend the OpenTelemetry smoke harness to prove trace, metric, and log export, and add first-class Prometheus and observability smoke aliases. 20 Plugin SDK add a generic channel-message poll sender so channel plugins can expose poll delivery without depending on channel-specific SDK facades. 21 Crabbox keep the local wrapper's provider validation synced with the installed Crabbox binary while preserving supported aliases such as `docker` and `blacksmith`. (#85302) Thanks @hxy91819. 22 Maintainer skills add `openclaw-landable-bug-sweep` for producing five small, reviewed, CI-green OpenClaw bugfix PRs from issue/PR sweeps. 23 Control UI/chat add search and Load More pagination to the chat session picker, keeping initial session loads bounded while making older conversations reachable. (#85237) Thanks @amknight. 24 CLI/onboarding start classic onboarding when bare `openclaw` runs before an authored config exists, while keeping configured installs on Crestodian. (#72343) Thanks @fuller-stack-dev. 25 Agents/runtime internalize the former Pi agent runtime into OpenClaw, remove legacy package dependencies, and keep Pi-named SDK aliases only as deprecated plugin compatibility. 26 Discord allow configuring a bounded `agentComponents.ttlMs` callback registry lifetime for long-running component workflows, with per-account overrides and a 24-hour cap. (#84189) Thanks @100menotu001. 27 xAI/Grok reuse xAI OAuth auth profiles for Grok `web_search`, thread active-agent auth through web search, add Grok model aliases, and let media providers declare default operation timeouts. (#85182) Thanks @fuller-stack-dev. 28 Plugin SDK add row-level session workflow helpers and deprecate `loadSessionStore` so plugins can read and patch sessions without depending on the legacy whole-store shape. (#84693) Thanks @efpiva. 29 Gateway/plugins reuse a compatible Gateway startup plugin registry during dispatch so safe plugin dispatches avoid redundant registry loading. (#84324) Thanks @ai-hpc. 30 Plugins/SDK add a general `embeddingProviders` capability contract and registration API so embeddings can become a reusable provider surface outside memory-specific adapters. 31 Dependencies refresh provider, plugin, UI, and tooling packages, update `protobufjs` to 8.4.0 to clear the current npm advisory, and carry the Claude ACP completion patch forward to `@agentclientprotocol/claude-agent-acp` 0.36.1. 32 Agents/tools remove the old sender-owner tool gating path so configured tools stay visible for trusted sessions while command and channel-action auth still carry real sender identity. 33 QA-Lab add curated mock JSONL replay fixtures and first-drift reporting for runtime-parity audits. (#80323, refs #80176) Thanks @100yenadmin. 34 QA-Lab add a QA bus tool-trace visibility scenario for sanitized tool-call assertions. 35 QA-Lab replace generic evidence framing in seeded scenario prompts with concrete observed QA behavior. 36 QA-Lab list named scenario packs in the coverage report so personal-agent privacy coverage stays visible in audits. 37 QA-Lab list live transport lane membership in the coverage report so real transport checks stay separate from seeded qa-channel scenarios. 38 Release/package run package integrity checks before package acceptance lanes so public install/update validation fails before private QA assets can leak into the package. 39 QA-Lab include the optional 100-turn runtime parity soak in release-soak artifacts so long-run Codex/Pi transcript drift stays visible outside the default gate. (#80395) Thanks @100yenadmin. 40 QA-Lab add a live-only long-context progress watchdog scenario for Codex app-server timeout and stalled-run sentinels. (#80323) Thanks @100yenadmin. 41 QA-Lab tag gateway restart recovery and streaming final-integrity scenarios as live-only runtime parity lanes. (#80323) Thanks @100yenadmin. 42 QA-Lab add a personal-agent failure recovery scenario that checks honest partial status, retry boundaries, and local recovery artifacts. (#83872) Thanks @iFiras-Max1. 43 QA-Lab include an opt-in `update.run` package self-upgrade sentinel for destructive latest-package recovery checks. 44 QA-Lab add Codex plugin lifecycle and auth-profile fixture coverage for missing installs, pinned-version drift, first-turn install ordering, and doctor migration safety. (#80323, refs #80174) Thanks @100yenadmin. 45 Models/perf pre-warm the provider auth-state map at gateway startup so `/models` and every model-listing call short-circuits the per-provider plugin / external-CLI discovery on the hot path. Per-call cost drops from ~20 s to ~5 ms (~4,100×); the one-time startup warm resets and re-warms after hot reloads. (#84816) Thanks @sjf. 46 Release/security ship the root npm package and OpenClaw-owned npm plugins with generated shrinkwrap, support bundled plugin runtime dependencies for suitable plugin tarballs, and require review for lockfile/shrinkwrap changes so published installs use locked dependency graphs. 47 Tests/perf isolate doctor core health check unit coverage from real skills/workspace discovery so `doctor-core-checks` no longer dominates unit perf while keeping one real skills-readiness smoke. (#84493) Thanks @frankekn.
Release

2026.5.20

2026.5.20

8 changes Open upstream ↗
01 Exec approvals remove the old `cat SKILL.md && printf ... && <skill-wrapper>` allowlist compatibility path so skill files must be loaded with the read tool and only the real skill executable is auto-allowed. 02 Discord let voice sessions follow configured Discord users into voice channels, with allowed-channel checks, multi-user handoff, bounded reconciliation, and DAVE recovery preservation. (#84264) Thanks @fuller-stack-dev. 03 Discord/voice include bounded `IDENTITY.md`, `USER.md`, and `SOUL.md` profile context in realtime voice session instructions by default, with `voice.realtime.bootstrapContextFiles: []` available to disable it. (#84499) Thanks @fuller-stack-dev. 04 Dependencies bump the bundled Codex harness to `@openai/codex` `0.132.0` and refresh the app-server model-list docs for the new catalog. 05 CLI/policy add the bundled Policy plugin for policy-backed channel conformance checks, doctor lint findings, and opt-in workspace repair. (#80407) Thanks @giodl73-repo. 06 Agents/config allow `agents.list[].experimental.localModelLean` so lean local-model mode can be enabled for one configured agent instead of globally. (#84073) Thanks @dutifulbob. 07 Providers/xAI add device-code OAuth login so remote and headless setups can authorize xAI without a localhost browser callback. (#84005) Thanks @fuller-stack-dev. 08 Providers/OpenRouter honor provider-level `params.provider` routing policy for OpenRouter requests, with model and agent params overriding the defaults. Thanks @amknight.
Release

2026.5.19

2026.5.19

44 changes Open upstream ↗
01 Agents clarify that fixes should default to clean bounded refactors, lean internals, and explicit plugin SDK/API deprecation paths. 02 Agents/tools normalize Swagger/OpenAPI refs and OpenAPI schema annotations when preparing tool parameter schemas. 03 Dependencies update `@openclaw/proxyline` to 0.3.3. 04 Dependencies update Pi packages to 0.75.1 and raise the minimum supported Node.js 22 line to 22.19. 05 Docker/Podman add `OPENCLAW_IMAGE_APT_PACKAGES` as the runtime-neutral image build arg for extra apt packages while keeping `OPENCLAW_DOCKER_APT_PACKAGES` as a legacy fallback. (#62431) Thanks @urtabajev. 06 Gateway/ACPX attribute startup probe, config, runtime, and resource-count costs in restart traces without changing readiness behavior. (#83300) Thanks @samzong. 07 Gateway overlap startup logging and plugin-service startup with channel sidecars to reduce restart ready latency while preserving `/readyz` sidecar gating. (#83301) Thanks @samzong. 08 Plugins/admin-http-rpc allow trusted admin HTTP RPC clients to start and wait for web QR login flows. (#83259) Thanks @liorb-mountapps. 09 Mac app redesign Settings pages with consistent card layouts, cached navigation, cleaner permissions/voice/skills/cron/exec/debug panes, and steadier spacing around the native sidebar. 10 Mac app refine Voice & Talk recognition-language and wake-phrase settings so they use the same compact card rows as the rest of Settings. 11 Skills rename the repo-local Codex closeout review skill and helper to `autoreview` while preserving the Codex-first fallback behavior. 12 Skills add a meme-maker skill for curated template search, local SVG/PNG rendering, Imgflip hosted rendering, and Know Your Meme provenance links. 13 Skills CLI allow `openclaw skills install` and `openclaw skills update` to target shared managed skills with `--global`. (#74466) Thanks @Marvae. 14 Browser surface pending and recently handled modal dialogs in snapshots, return `blockedByDialog` when an action opens a modal, and allow `browser dialog --dialog-id` to answer pending dialogs. 15 Browser CLI add `openclaw browser evaluate --timeout-ms` so long-running page functions can extend both the evaluate action and request timeout budgets. (#83447) Thanks @eefreenyc. 16 Codex app-server scope OpenClaw prompt guidance by runtime surface so native Codex keeps Codex-owned base/personality instructions while OpenClaw contributes only runtime context, delivery guidance, and explicitly scoped command hints. (#83454) Thanks @100yenadmin. 17 Docker/Podman add `OPENCLAW_IMAGE_PIP_PACKAGES` for opt-in Python package installation in local image builds. (#83771) Thanks @stephenredmond-straiteis. 18 Agents/tools shorten built-in tool descriptions and schema hints across media, messaging, sessions, cron, Gateway, web, image/PDF, TTS, nodes, and plan tools while preserving routing guardrails. 19 Skills add node inspector debugging, fused diagram generation, and throwaway spike workflow skills. 20 CLI/plugins add `defineToolPlugin` plus `openclaw plugins build`, `validate`, and `init` for typed simple tool plugins with generated manifest metadata, optional tool declarations, and context factories. 21 Agents/skills tighten bundled skill prompts and metadata, quote skill descriptions, refresh current CLI/API guidance, and update embedded sherpa-onnx runtime downloads. 22 Skills update the Obsidian skill to target the official `obsidian` CLI and require its registered binary instead of the third-party `obsidian-cli`. 23 Skills add a Python debugging skill for pdb, breakpoint(), post-mortem inspection, and debugpy remote attach. 24 Codex add `/codex plugins list`, `enable`, and `disable` for managing configured native Codex plugins from chat without editing config by hand. 25 Plugins/messages add presentation capability limits for channel renderers, adapt rich message controls before native rendering, and mark legacy `interactive`/Slack directive producer APIs as deprecated. 26 Plugins/subagents store channel delivery routes as canonical session metadata and deprecate ad hoc subagent hook delivery-origin fields in favor of core route projection. 27 Proxy support HTTPS managed forward-proxy endpoints and scoped `proxy.tls.caFile` CA trust for proxy endpoint TLS. (#79171) Thanks @jesse-merhi. 28 QA-Lab add first-hour 20-turn and optional 100-turn runtime parity scenarios, with tier metadata for standard and soak QA gates. Fixes #80338; refs #80337. Thanks @100yenadmin. 29 QA-Lab add `openclaw qa suite --runtime-parity-tier` and wire the standard Codex-vs-Pi tier into release checks separately from optional/live-only/soak lanes. Fixes #80337. Thanks @100yenadmin. 30 QA-Lab add a live-only Codex Pi-shaped Read vocabulary canary so runtime parity catches native workspace-read prompt compatibility drift. (#80323) Thanks @100yenadmin. 31 QA-Lab add live-only harness self-health scenarios for plugin hook crashes, manifest contract errors, and WebChat direct-reply self-message routing. (#80323) Thanks @100yenadmin. 32 QA-Lab add runtime tool fixture scenarios and coverage reporting for Codex-native workspace tools, OpenClaw dynamic tools, and optional plugin-backed tools. Fixes #80173. Thanks @100yenadmin. 33 QA-Lab expose runtime tool fixture coverage through `openclaw qa coverage --tools`, with optional suite-summary evaluation for parity gate artifacts. Thanks @100yenadmin. 34 QA-Lab schedule a live-frontier Codex-vs-Pi runtime token-efficiency artifact lane in the all-lanes QA workflow. Fixes #80175. Thanks @100yenadmin. 35 QA-Lab hard-gate required OpenClaw dynamic runtime-tool drift in the standard Codex-vs-Pi tier with a blocking release-check verifier and publish the tool coverage report artifact. Fixes #80339; refs #80319. Thanks @100yenadmin. 36 QA-Lab add the personal-agent approval-denial scenario so the benchmark pack verifies denied local reads stop cleanly without tool progress or fixture leaks. (#83150) Thanks @iFiras-Max1. 37 QA-Lab extend the personal-agent benchmark pack with a local task followthrough scenario for proof-backed pending, blocked, and done status reporting. Thanks @iFiras-Max1. 38 QA-Lab add a report-only dreaming shadow-trial scenario so candidate memory promotion can be evaluated without mutating `MEMORY.md`. Thanks @iFiras-Max1. 39 Gateway/performance add `pnpm test:restart:gateway` benchmark tooling for repeated restart readiness, downtime, trace, and resource-slope evidence. (#83299) Thanks @samzong. 40 Android switch Talk Mode to realtime Gateway relay voice sessions with streaming mic input, realtime audio playback, tool-result bridging, and on-screen transcripts. (#83130) Thanks @sliekens. 41 Gateway/config expose config lookup reload metadata so tools can distinguish restart-required, hot-reloadable, and no-op fields before applying config edits. Fixes #81409. (#81612) Thanks @LLagoon3. 42 Telegram add allowlisted native DM draft previews for transient tool progress while keeping final answers on the normal persistent delivery path. (#83622) Thanks @akrimm702. 43 QA-Lab add a personal-agent share-safe diagnostics artifact scenario so support handoffs keep useful status while omitting raw personal content. Thanks @iFiras-Max1. 44 QA-Lab add a personal-agent no-fake-progress scenario so completion claims stay tied to local evidence instead of unsupported external progress. (#83824) Thanks @iFiras-Max1.
Release

2026.5.17

2026.5.17

23 changes Open upstream ↗
01 Control UI move settings-only destinations into the Settings workspace and add sidebar recent-session shortcuts plus a one-click new-session action. 02 Control UI speed up scoped settings pages by loading required config before schema refreshes, caching burst schema responses, and opening Communications on lighter message settings first. 03 Control UI simplify the Cron Jobs workspace with modal job creation, collapsed filters, and an empty state aimed at first-time setup. 04 Security/audit add `security.audit.suppressions` for intentionally accepted audit findings, keeping suppressed matches out of the active summary while preserving them in JSON output with an active suppression notice. (#76949) Thanks @100menotu001. 05 Agents/subagents label delegated task and subagent completion handoffs as ready for parent review, and tell requester agents to review/verify results before calling them done. (#78985) Thanks @100menotu001. 06 Providers/media add fal and OpenRouter music-generation providers for the shared `music_generate` tool, including fal MiniMax/ACE/Stable Audio endpoints and OpenRouter Lyria audio output. 07 Maintainer tooling warn before running JS package commands on raw Crabbox AWS boxes, pointing maintainers to Actions hydration or Blacksmith Testbox for CI-like proof. 08 Control UI show provider quota usage in the Overview card and Chat header, and recover stale Chat in-progress state after missed terminal events. (#82647) 09 Mac app remote setup can now be preconfigured from `openclaw-mac configure-... Mac app remote setup can now be preconfigured from `openclaw-mac configure-remote`, skips onboarding when config is already complete, supports direct LAN/Tailnet gateway URLs, allows private same-origin Control UI loads, and owns the SSH tunnel process when SSH is selected. 10 Providers/xAI add xAI Grok OAuth login for SuperGrok subscribers, letting `xai/*` models and xAI media/tool providers authenticate without `XAI_API_KEY`. 11 CLI/cron add `openclaw cron run --wait` with timeout and poll interval controls, plus exact `cron.runs --run-id` filtering so automation can block on one queued manual run. (#81929) Thanks @ificator. 12 Maintainer tooling route Crabbox skill defaults through the repo brokered AWS config, leaving Blacksmith Testbox as an explicit opt-in instead of the broad-proof default. 13 CLI/onboarding localize the setup wizard and bundled channel setup flows for English, Simplified Chinese, and Traditional Chinese. (#80645) Thanks @GaosCode. 14 Agents/skills cache hydrated `resolvedSkills` across warm gateway turns while keying reuse by the redacted effective config, reducing redundant skill snapshot rebuilds without crossing config-gated skill boundaries. (#81451) Thanks @solodmd. 15 Group chat add core inbound event classification with opt-in `messages.groupChat.unmentionedInbound: "room_event"`, so always-on unmentioned room chatter can run as quiet context and speak visibly only via the message tool. (#81317) Thanks @obviyus. 16 Codex/context engines bind thread-bootstrap projection epochs to Codex app-server threads, carry redacted tool-result context into fresh threads, and rotate backend threads when projection state changes. (#82351) Thanks @jalehman. 17 Agents/media run `image_generate` through the shared async media-generation task lifecycle in session-backed chats, with task status, duplicate guarding, and message-tool completion delivery matching music/video. 18 Gateway add opt-in restart trace logs for restart signal, active-work drain, close, next-start, ready, and memory spans. (#82396) Thanks @samzong. 19 Gateway/performance split startup benchmark HTTP-listen timing from full gateway-ready timing and add post-bind plugin and sidecar diagnostics to restart-readiness traces. (#82603) Thanks @samzong. 20 QA-Lab add a deterministic local personal-agent scenario pack covering reminders, threaded replies, scoped memory recall, redaction, and safe tool followthrough. (#78219) Thanks @iFiras-Max1. 21 QA-Lab add `--pack personal-agent` for `openclaw qa suite` so maintainers can run the accepted personal-agent scenario pack by selector. (#82760) Thanks @iFiras-Max1. 22 QA-Lab add a private Codex-vs-Pi runtime parity axis with runtime-pair suite runs, parity reports, and release-check wiring. (#80238) Thanks @100yenadmin. 23 Slack add Slack assistant thread lifecycle support with assistant view manifest entries, suggested prompts, thread-scoped assistant sessions, and Slack-provided assistant context. Fixes #80787. Thanks @mobybot27.