---
title: "v2026.10.6"
summary: "Windows setup, Discord commands, and iPhone Talk fixes."
description: "OpenClaw v2026.10.6 release notes covering Windows setup and Gateway startup, Discord commands, iPhone Talk, updates, and recovery."
keywords:
  - OpenClaw
  - v2026.10.6
  - release notes
---

# v2026.10.6

AI agents and tools can read these release notes as [plain Markdown](https://raw.githubusercontent.com/openclaw/openclaw/main/CHANGELOG/2026.10.6.md).

**Security release:** v2026.10.6 adds remediations for the eMudhra certificate compromise. If you manage Node yourself, upgrade to Node 24.22.1 or newer (Node 24) or 26.12.1 or newer (Node 26) before starting OpenClaw.

This is a patch release with no new features. It contains urgent fixes for problems that could stop OpenClaw from installing, updating, or starting, plus smaller reliability fixes.

**Release scale:** 233 pull requests, 30 direct commits, and 149 contributors.

## Installation and Onboarding

- Fixes false “offline maintenance” and database errors that could stop a fresh Windows setup, Doctor, or the Gateway from starting.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176174](https://github.com/openclaw/openclaw/pull/176174) [#176194](https://github.com/openclaw/openclaw/pull/176194). Thanks to [@tjarrau-dev](https://github.com/tjarrau-dev), [@easyteacher](https://github.com/easyteacher), [@skyzhao1223](https://github.com/skyzhao1223).

  </details>

- Fixes Linux service commands that dropped empty arguments during setup.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [`e75f1fc9`](https://github.com/openclaw/openclaw/commit/e75f1fc9d46461bb07b0392182d8e15dab7a77e5). Thanks to [@gideonpraise](https://github.com/gideonpraise), [@romneyda](https://github.com/romneyda), [@shakkernerd](https://github.com/shakkernerd).

  </details>

- Fixes Windows installs with Bun failing when an optional cleanup step didn’t work. Installation now finishes.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169286](https://github.com/openclaw/openclaw/pull/169286).

  </details>

- Skill setup now only checks for the installers your selected dependencies actually need.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170967](https://github.com/openclaw/openclaw/pull/170967).

  </details>

- Fixes Codex setup imports giving up too early, or waiting too long, when your computer’s clock changes.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This fixes the discovery and import wait. [#168735](https://github.com/openclaw/openclaw/pull/168735). Thanks to [@sunnyshu0925](https://github.com/sunnyshu0925).

  </details>

- Hermes and Claude imports no longer touch instruction files that aren’t valid UTF-8. To import one, back up the original, convert a copy to UTF-8, and run the import again. See [Hermes migration](https://docs.openclaw.ai/install/migrating-hermes).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers Hermes instruction imports and Claude imports of existing instructions. [#172742](https://github.com/openclaw/openclaw/pull/172742) [#172953](https://github.com/openclaw/openclaw/pull/172953). Thanks to [@leon-sk668](https://github.com/leon-sk668), [@obviyus](https://github.com/obviyus).

  </details>

- Hermes migration previews now tell you which files they couldn’t read. Fix the access problem and rerun the preview before applying it.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175452](https://github.com/openclaw/openclaw/pull/175452) [`9f39528c`](https://github.com/openclaw/openclaw/commit/9f39528c0cc79a5f2541076e02ad247278188619).

  </details>

- Setup now tells you why a Gateway restart you asked for failed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174767](https://github.com/openclaw/openclaw/pull/174767) [`c7a77fe7`](https://github.com/openclaw/openclaw/commit/c7a77fe791520c6f6dc76d090cf457a9bd55b7e5). Thanks to [@skyzhao1223](https://github.com/skyzhao1223).

  </details>

- Fixes old password settings blocking Gateway credential setup. If you still use `CLAWDBOT_GATEWAY_PASSWORD`, switch to `OPENCLAW_GATEWAY_PASSWORD` or a supported token.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175416](https://github.com/openclaw/openclaw/pull/175416) [`42e84662`](https://github.com/openclaw/openclaw/commit/42e846629a3dfe740fb498a842045034eec4b370).

  </details>

- Plugin setup now lets you fix an invalid number without closing the prompt.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176787](https://github.com/openclaw/openclaw/pull/176787) [`806f0b42`](https://github.com/openclaw/openclaw/commit/806f0b42fdccf5a2d85c5fde4127cd31caa852ab).

  </details>

## Web UI

- Settings now tells you why a refresh failed after you switch to, or reconnect to, a Gateway it can’t work with.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176039](https://github.com/openclaw/openclaw/pull/176039).

  </details>

- Fixes Canvas replacing a document when it couldn’t remove the old one first. It now stops instead.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175343](https://github.com/openclaw/openclaw/pull/175343) [`5f4d940e`](https://github.com/openclaw/openclaw/commit/5f4d940ea796fd0e8176feedc92010054f04c5c9).

  </details>

- The Sessions view now shows how long the current helper has been running while follow-up work continues.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#168666](https://github.com/openclaw/openclaw/pull/168666). Thanks to [@holgergruenhagen](https://github.com/holgergruenhagen), [@obviyus](https://github.com/obviyus).

  </details>

- Gateway warnings now tell you why background pull-request updates couldn’t be received.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#177038](https://github.com/openclaw/openclaw/pull/177038) [`de2700c9`](https://github.com/openclaw/openclaw/commit/de2700c9946ff95f05c6be9b1d6d47289077a211).

  </details>

- Turning off the Control UI now frees its files from the Gateway’s memory. Requests already in progress can still finish.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Requests already in progress can finish. [#177042](https://github.com/openclaw/openclaw/pull/177042) [`897966ba`](https://github.com/openclaw/openclaw/commit/897966ba158b572d82ea733c3c5d279d99b6335b). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

## Updates and Maintenance

- Gateway shutdown now waits for pending cleanup to finish, and gives Windows more time to confirm it has stopped. See [restart recovery](https://docs.openclaw.ai/gateway/restart-recovery).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers cleanup ordering and Windows stop confirmation. [#171308](https://github.com/openclaw/openclaw/pull/171308) [#174807](https://github.com/openclaw/openclaw/pull/174807) [`ece4639f`](https://github.com/openclaw/openclaw/commit/ece4639ff9306103c9773e6fff1c53b79bdb19ff). Thanks to [@prizmizm](https://github.com/prizmizm), [@sunlit-deng](https://github.com/sunlit-deng).

  </details>

- You can now stop a Gateway that has been stuck starting for more than five minutes without ever opening its port. See [Gateway service commands](https://docs.openclaw.ai/cli/gateway/service).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#171678](https://github.com/openclaw/openclaw/pull/171678). Thanks to [@tommylei666](https://github.com/tommylei666).

  </details>

- Fixes settings changes hanging when the Gateway was started with messaging channels turned off on purpose. The channels stay off and your settings are kept.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The channels stay disabled, and the selected settings are preserved. [`050eab7e`](https://github.com/openclaw/openclaw/commit/050eab7e2008d9d0e2d9712181defd72e722bc01). Thanks to [@romneyda](https://github.com/romneyda).

  </details>

- If you back up with Git or worktrees, backup-history errors now point you to `openclaw backup git log --repository <path>`. See [backup commands](https://docs.openclaw.ai/cli/backup).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#167935](https://github.com/openclaw/openclaw/pull/167935) [#176656](https://github.com/openclaw/openclaw/pull/176656) [`e280eba2`](https://github.com/openclaw/openclaw/commit/e280eba2e3e69025131af29cf878576519c397a2). Thanks to [@obviyus](https://github.com/obviyus), [@pollybot13](https://github.com/pollybot13).

  </details>

- Fixes dead workers blocking a session’s next turn after a confirmed reboot of the machine running them. The interrupted turn isn’t resumed, and if the Gateway can’t confirm the reboot, it keeps waiting as before.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The Gateway must be able to compare the saved boot identity with the current one before releasing the old workers’ slots. Older or unreadable boot information keeps the conservative behavior; container cleanup remains a separate requirement. [#168863](https://github.com/openclaw/openclaw/pull/168863).

  </details>

- Worktree cleanup that was postponed because a remote was missing can now retry. After restoring the remote, run `openclaw worktrees gc --retry-deferred`, and keep another copy of any Git objects that only exist locally.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Preserve another copy of any local-only Git objects. [#168864](https://github.com/openclaw/openclaw/pull/168864).

  </details>

- Fixes update failures not saying which backup-retention link was unsafe. Keep the backup, repair the reported link, then retry. See [backup-retention failures](https://docs.openclaw.ai/cli/update#runtime-retention-failures).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169280](https://github.com/openclaw/openclaw/pull/169280). Thanks to [@romneyda](https://github.com/romneyda).

  </details>

- Backup cleanup can now continue after you repair a btrfs filesystem. See [btrfs recovery](https://docs.openclaw.ai/reference/database-schemas/integrity-and-recovery#btrfs-and-nocow) and [update cleanup](https://docs.openclaw.ai/cli/update/repair-and-recovery#update-cleanup).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169893](https://github.com/openclaw/openclaw/pull/169893). Thanks to [@farisoftfry](https://github.com/farisoftfry), [@xydigitlybnnnn](https://github.com/xydigitlybnnnn).

  </details>

- Fixes update recovery staying blocked after a command failed before it even started.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169936](https://github.com/openclaw/openclaw/pull/169936).

  </details>

- After a manual upgrade, `openclaw status` no longer suggests an outdated update that could undo the Gateway version you chose. Other update and rollback warnings still appear. See [status guidance](https://docs.openclaw.ai/cli/status).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This applies when status confirms a different, healthy Gateway and the advice did not name an explicit update target. Other update and rollback warnings remain. [#170063](https://github.com/openclaw/openclaw/pull/170063). Thanks to [@amittell](https://github.com/amittell), [@wr-web](https://github.com/wr-web).

  </details>

- Updates now continue, with a visible warning, if saving a copy of the original install fails. Database snapshots needed for rollback are still required. See [update repair and recovery](https://docs.openclaw.ai/cli/update/repair-and-recovery).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Required database snapshots for rollback remain required. [#170380](https://github.com/openclaw/openclaw/pull/170380) [#178170](https://github.com/openclaw/openclaw/pull/178170). Thanks to [@donniefi](https://github.com/donniefi), [@romneyda](https://github.com/romneyda).

  </details>

- Package-update identity errors now point you to the right repair command. See [update status and history](https://docs.openclaw.ai/cli/update/status-and-history).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170385](https://github.com/openclaw/openclaw/pull/170385). Thanks to [@council10-kera](https://github.com/council10-kera), [@dave160926-ops](https://github.com/dave160926-ops), [@sergeiaug](https://github.com/sergeiaug).

  </details>

- Fixes backups of very deeply nested folders running out of room for the path.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170867](https://github.com/openclaw/openclaw/pull/170867).

  </details>

- Fixes session-history cleanup stopping for good after a temporary database lock. It now resumes once the lock clears, if history is still over its disk limit. See [sessions](https://docs.openclaw.ai/concepts/session).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170913](https://github.com/openclaw/openclaw/pull/170913).

  </details>

- Fixes Windows source updates getting stuck copying in circles through dependency links. If your installed updater is older, you may need to update from source manually once to pick up this fix. See [manual update methods](https://docs.openclaw.ai/install/updating/update-methods).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  An older installed updater may need a manual source update to pick up this fix. [#170940](https://github.com/openclaw/openclaw/pull/170940). Thanks to [@stop-time](https://github.com/stop-time).

  </details>

- Updates now stop if they can’t confirm which Gateway is running. Stop it through Task Scheduler, the terminal you started it from, or `openclaw gateway stop`, then retry. See [update commands](https://docs.openclaw.ai/cli/update).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#171101](https://github.com/openclaw/openclaw/pull/171101). Thanks to [@homeworld520](https://github.com/homeworld520).

  </details>

- Fixes updates retrying a package install the database has already refused. Older updaters that are already stuck may still need manual recovery. See [updating OpenClaw](https://docs.openclaw.ai/install/updating).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Older affected updaters may still require manual recovery. [#171164](https://github.com/openclaw/openclaw/pull/171164). Thanks to [@tommylei666](https://github.com/tommylei666).

  </details>

- Configuration repair no longer changes your files if it can’t save a copy of the originals first. Fix the reported lock or storage problem, then retry. See [configuration troubleshooting](https://docs.openclaw.ai/gateway/troubleshooting/config-validation-and-probes).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#171217](https://github.com/openclaw/openclaw/pull/171217).

  </details>

- Fixes tasks waiting to restart after a shutdown being quietly dropped when another shutdown or a temporary refusal interrupted their recovery. Recovery still stops after three attempts.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers recovery stopped before execution and delegated completion checks refused during shutdown. Recovery keeps its existing three-attempt limit. [#172023](https://github.com/openclaw/openclaw/pull/172023) [#172852](https://github.com/openclaw/openclaw/pull/172852). Thanks to [@jeanmonet](https://github.com/jeanmonet), [@romneyda](https://github.com/romneyda).

  </details>

- Fixes failed Git-backup restores leaving temporary files behind.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172028](https://github.com/openclaw/openclaw/pull/172028). Thanks to [@ericcurtin](https://github.com/ericcurtin).

  </details>

- Doctor now accepts duplicate transcript headers that only differ by timestamp. Original archives are kept, and transcripts with conflicting content are still refused. See [Doctor's session checks](https://docs.openclaw.ai/gateway/doctor/state-and-sessions).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Original archives are preserved; conflicting transcript content is still refused. [#172133](https://github.com/openclaw/openclaw/pull/172133). Thanks to [@wangxiajun68](https://github.com/wangxiajun68).

  </details>

- Doctor no longer changes workspace notes that aren’t valid UTF-8. To process one, back up the original, convert a copy to UTF-8, and retry.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172293](https://github.com/openclaw/openclaw/pull/172293). Thanks to [@obviyus](https://github.com/obviyus), [@wangmiao0668000666](https://github.com/wangmiao0668000666).

  </details>

- Uninstalling on Linux now reloads your user services after removing the OpenClaw service. If that reload fails, run `systemctl --user daemon-reload`. See [Gateway service commands](https://docs.openclaw.ai/cli/gateway/service).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173048](https://github.com/openclaw/openclaw/pull/173048). Thanks to [@ericcurtin](https://github.com/ericcurtin).

  </details>

- Fixes Doctor resetting runtime choices you set on purpose in active and archived sessions.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173498](https://github.com/openclaw/openclaw/pull/173498). Thanks to [@obviyus](https://github.com/obviyus), [@s-salamatov](https://github.com/s-salamatov).

  </details>

- Fixes CLI commands that hit their time limit hiding cleanup failures.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173566](https://github.com/openclaw/openclaw/pull/173566). Thanks to [@hannesrudolph](https://github.com/hannesrudolph).

  </details>

- Restarting the same official Docker container no longer copies all its saved state again, so it starts faster and keeps fewer duplicate recovery copies. A new or recreated container still makes a fresh copy, and Doctor’s checks still run. See [Docker installation](https://docs.openclaw.ai/install/docker).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The first successful retained copy is reused for the same container activation while its marker and copy remain intact. A recreated container, new activation, or missing marker or copy requires a fresh capture. Doctor’s checks and repairs still run. [#173711](https://github.com/openclaw/openclaw/pull/173711). Thanks to [@8bitsforge](https://github.com/8bitsforge), [@romneyda](https://github.com/romneyda).

  </details>

- Fixes Update and Doctor repeating the same database error over and over during cleanup.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173813](https://github.com/openclaw/openclaw/pull/173813).

  </details>

- Uninstall now stops instead of continuing if it can’t check a workspace that should be kept.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174195](https://github.com/openclaw/openclaw/pull/174195). Thanks to [@asulwer](https://github.com/asulwer), [@jason-bai](https://github.com/jason-bai), [@xuejourney](https://github.com/xuejourney).

  </details>

- Fixes migration cleanup processing shared recovery records more than once. Keep the Gateway and anything else that reads the database stopped while it runs. See [update cleanup](https://docs.openclaw.ai/cli/update/repair-and-recovery#update-cleanup).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174249](https://github.com/openclaw/openclaw/pull/174249). Thanks to [@astapenkoav](https://github.com/astapenkoav), [@shoaibulhaque](https://github.com/shoaibulhaque).

  </details>

- Upgrades done from the apps now repair official plugins before checking migrations.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174257](https://github.com/openclaw/openclaw/pull/174257). Thanks to [@kazuyuki-eguchi](https://github.com/kazuyuki-eguchi).

  </details>

- Doctor can now repair an empty database that a native app created first, and tells you if a database you need still isn’t usable. See [database recovery](https://docs.openclaw.ai/reference/database-schemas/integrity-and-recovery).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This repair applies only to databases confirmed to be empty. [#174297](https://github.com/openclaw/openclaw/pull/174297).

  </details>

- Older Mac profiles that couldn’t start because their database was missing its deletion-history table can now start again and get your saved conversations back. You need a verified full backup of the database and its WAL file first. Items that were waiting to be deleted may come back if their deletion record was lost. See [database integrity and recovery](https://docs.openclaw.ai/reference/database-schemas/integrity-and-recovery).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The repair requires a verified full backup of the SQLite database and its WAL file. It checks the profile’s originating app, database layout, configuration, location, and age before proceeding. This is separate from repairing a verified-empty database created by a native app. [#175007](https://github.com/openclaw/openclaw/pull/175007) [`4c15811f`](https://github.com/openclaw/openclaw/commit/4c15811faab4195b17906c7fb3a0d5558e38e8eb).

  </details>

- Gateway cleanup warnings now tell you what actually went wrong.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174590](https://github.com/openclaw/openclaw/pull/174590) [`e283d2f1`](https://github.com/openclaw/openclaw/commit/e283d2f10db82d42a10494fae734c74f70723533). Thanks to [@altaywtf](https://github.com/altaywtf), [@shoaibulhaque](https://github.com/shoaibulhaque).

  </details>

- Fixes Windows updates popping up helper windows during background database checks.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174969](https://github.com/openclaw/openclaw/pull/174969) [`f34fed3c`](https://github.com/openclaw/openclaw/commit/f34fed3c28234604584985893ced479f26849ea1). Thanks to [@throwingbones](https://github.com/throwingbones).

  </details>

- Restart requests on Mac now tell you when the restart helper couldn’t be launched.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175229](https://github.com/openclaw/openclaw/pull/175229) [`3fe1f834`](https://github.com/openclaw/openclaw/commit/3fe1f834c3a5a7a3699b9ce398403d60fccd5be6).

  </details>

- Saved shutdown diagnostics now include more useful process information, with sensitive details removed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175625](https://github.com/openclaw/openclaw/pull/175625). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

- Fixes Linux service cleanup and recovery hiding the real error. When something goes wrong, you now see what actually failed instead of a confusing message about the error report itself.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175689](https://github.com/openclaw/openclaw/pull/175689) [#175703](https://github.com/openclaw/openclaw/pull/175703). Thanks to [@fuller-stack-dev](https://github.com/fuller-stack-dev).

  </details>

- When the Gateway won’t start because of a file-ownership or cleanup problem, it now says so instead of suggesting OpenClaw isn’t installed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175726](https://github.com/openclaw/openclaw/pull/175726).

  </details>

- If the Gateway failed to start after updating from 10.4 to 10.5 because of an older built-in agent database, Doctor can now repair it. Run `openclaw doctor --fix` only after making the backups and checks in the recovery guide. See [database integrity and recovery](https://docs.openclaw.ai/reference/database-schemas/integrity-and-recovery).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The reported `openclaw` or `crestodian` store had schema 24 rather than 25 and was held for deletion recovery. Repair requires full database and shared recovery backups, plus checks of the selected store’s location, ownership, integrity, and schema. Healthy agents starting does not establish that the held store was repaired. Follow [database integrity and recovery](https://docs.openclaw.ai/reference/database-schemas/integrity-and-recovery). [#176783](https://github.com/openclaw/openclaw/pull/176783) [`f02658fe`](https://github.com/openclaw/openclaw/commit/f02658fead18aaa5c470c42a12ef89f6b5e1a0fc). Thanks to [@pennyvibe](https://github.com/pennyvibe).

  </details>

- Fixes update repair rejecting a matching launcher after a disk was remounted, just because the link’s own permissions changed. If an older updater is still stuck, follow the recovery guide to use a repair helper that includes this fix. See [unfinished-publication recovery after a remount](https://docs.openclaw.ai/install/updating#recover-an-unfinished-publication-after-a-remount).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The link’s target, type, and ownership still have to match; regular-file permissions and integrity checks remain. [#177059](https://github.com/openclaw/openclaw/pull/177059) [`f3b0d862`](https://github.com/openclaw/openclaw/commit/f3b0d8624d2c2ab85e6c81dc13ae18bf2fc75370). Thanks to [@bodegaclaw](https://github.com/bodegaclaw).

  </details>

- Update status no longer keeps showing migration warnings after you’ve fixed the problem. See [SQLite maintenance](https://docs.openclaw.ai/cli/doctor/sqlite-maintenance).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#177096](https://github.com/openclaw/openclaw/pull/177096) [`52bdbbcd`](https://github.com/openclaw/openclaw/commit/52bdbbcdc8ff62d78dce3ba81035e52e6ed50948). Thanks to [@jj5638521](https://github.com/jj5638521), [@ourcoms2018](https://github.com/ourcoms2018), [@scientificprogrammer](https://github.com/scientificprogrammer).

  </details>

- When a Windows update is blocked by permissions, it now tells you, in any system language, to run as administrator or update manually.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#178657](https://github.com/openclaw/openclaw/pull/178657) [#178624](https://github.com/openclaw/openclaw/pull/178624).

  </details>

- Fixes Windows backup cleanup failing when a temporary folder already existed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#178657](https://github.com/openclaw/openclaw/pull/178657). Thanks to [@xutongxue233](https://github.com/xutongxue233).

  </details>

- Doctor now waits for earlier database writes to finish before repairing the database. If a check reports the database is busy, just retry; being busy isn’t a reason to restore it.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#178657](https://github.com/openclaw/openclaw/pull/178657) [#177844](https://github.com/openclaw/openclaw/pull/177844).

  </details>

- If an empty, retired plugin setting in a single-file configuration stops the Gateway from starting, Doctor can now back it up and remove it.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The setting must be empty for this repair. [#173851](https://github.com/openclaw/openclaw/pull/173851). Thanks to [@fengfan201314-eng](https://github.com/fengfan201314-eng).

  </details>

- Database cleanup that’s already running can now finish when maintenance shuts down.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [`2c8e13e1`](https://github.com/openclaw/openclaw/commit/2c8e13e1e1fe3cf4f9eb40d0962c2cfdc2aac142).

  </details>

- CLI state commands now stop before doing anything if the selected state or the running Gateway changed underneath them.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers local state work and requests sent to the Gateway. [`af77345b`](https://github.com/openclaw/openclaw/commit/af77345b7e834bbedbc234d0e0c53f070a0bf3b5).

  </details>

- Fixes updates with included configuration files re-saving settings the new version had already migrated. Changed files are still checked.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Changed configuration files still receive capture checks. [`d6d17745`](https://github.com/openclaw/openclaw/commit/d6d17745356636c405297f2727c2846814dc1d77).

  </details>

- If you interrupt an update, it now finishes cleaning up and keeps a recovery record for that run.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  It exits with the signal status, including after state migration. [`e5b93b4c`](https://github.com/openclaw/openclaw/commit/e5b93b4cadd436e72e09be0320f575ca2bd1cb37).

  </details>

## Messaging

- Fixes Telegram numbered lists losing their spacing and attachment captions losing their formatting. See [Telegram media](https://docs.openclaw.ai/channels/telegram/media) and [rich messages](https://docs.openclaw.ai/channels/telegram/rich-messages).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [`88bdc4bd`](https://github.com/openclaw/openclaw/commit/88bdc4bd4648042afa876152dfab43593ea88bf6) [#171180](https://github.com/openclaw/openclaw/pull/171180). Thanks to [@gideonpraise](https://github.com/gideonpraise), [@romneyda](https://github.com/romneyda), [@shakkernerd](https://github.com/shakkernerd), [@obviyus](https://github.com/obviyus), [@ruel225](https://github.com/ruel225), [@sanderhelgesen](https://github.com/sanderhelgesen).

  </details>

- Fixes internal runtime events showing up in chat history as messages from you.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#137273](https://github.com/openclaw/openclaw/pull/137273). Thanks to [@jpazvd](https://github.com/jpazvd), [@liuwqgit](https://github.com/liuwqgit).

  </details>

- Fixes WhatsApp sending a retried message as a new message after a connection change.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This applies to retries within the running process. [#142434](https://github.com/openclaw/openclaw/pull/142434). Thanks to [@ashawwal](https://github.com/ashawwal), [@he-yufeng](https://github.com/he-yufeng), [@obviyus](https://github.com/obviyus).

  </details>

- Fixes downloading stickers sent from WhatsApp Web and Desktop.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#164210](https://github.com/openclaw/openclaw/pull/164210). Thanks to [@abacha](https://github.com/abacha), [@andrewwbuilds](https://github.com/andrewwbuilds), [@obviyus](https://github.com/obviyus).

  </details>

- When a voice note fails to send, the text fallback now arrives before the next reply instead of after it.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169305](https://github.com/openclaw/openclaw/pull/169305).

  </details>

- Delivery warnings now say more clearly which messages were abandoned and which storage problems caused it. Check the conversation before resending anything.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169932](https://github.com/openclaw/openclaw/pull/169932) [#170048](https://github.com/openclaw/openclaw/pull/170048). Thanks to [@huyengiang101086-spec](https://github.com/huyengiang101086-spec).

  </details>

- Fixes Tlon dropping incoming events that use different line endings or several data lines.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170125](https://github.com/openclaw/openclaw/pull/170125). Thanks to [@ly85206559](https://github.com/ly85206559).

  </details>

- Messages waiting in the queue, and replies still being written, now survive a Gateway restart. If recovery is blocked, use **Resume in new session** in WebChat, or start a new or reset conversation in another app. See [sessions and recovery](https://docs.openclaw.ai/concepts/session).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170384](https://github.com/openclaw/openclaw/pull/170384).

  </details>

- Fixes one stuck messaging account delaying checks of your healthy accounts when the computer’s clock moves backward.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Each account keeps its own existing wait allowance. [#170500](https://github.com/openclaw/openclaw/pull/170500). Thanks to [@obviyus](https://github.com/obviyus), [@sunnyshu0925](https://github.com/sunnyshu0925).

  </details>

- Channel errors now tell you which storage problem needs fixing.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#171365](https://github.com/openclaw/openclaw/pull/171365). Thanks to [@obviyus](https://github.com/obviyus), [@ynaamane](https://github.com/ynaamane).

  </details>

- Telegram now follows your IPv4-first setting when IPv6 is broken, and can retry a send that clearly timed out. Sends with an unclear result aren’t repeated.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  A send with an uncertain delivery result is not replayed. [#171564](https://github.com/openclaw/openclaw/pull/171564). Thanks to [@dat1gui](https://github.com/dat1gui).

  </details>

- Fixes Slack dates becoming unreadable when a message has no fallback text. They now show in ISO format (UTC).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Without fallback text, dates use ISO format in UTC. [#172182](https://github.com/openclaw/openclaw/pull/172182). Thanks to [@fhgffy](https://github.com/fhgffy), [@skyzhao1223](https://github.com/skyzhao1223).

  </details>

- When you leave a Discord voice call, a reply that was already being written can still finish in the voice room’s text chat.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172380](https://github.com/openclaw/openclaw/pull/172380). Thanks to [@brainmonger](https://github.com/brainmonger).

  </details>

- Slack now waits until incoming events are saved before continuing recovery, so events aren’t lost.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173407](https://github.com/openclaw/openclaw/pull/173407).

  </details>

- Fixes recovery sending an answer again, or warning it was missing, when it had already been delivered.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173798](https://github.com/openclaw/openclaw/pull/173798).

  </details>

- Fixes separate side questions that get the same answer being flagged as duplicate sends.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174869](https://github.com/openclaw/openclaw/pull/174869) [`4464c57d`](https://github.com/openclaw/openclaw/commit/4464c57dcdbdabaeeeea14112d6935aeed70edaf).

  </details>

- Fixes a failed typing indicator causing an unhandled error.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175381](https://github.com/openclaw/openclaw/pull/175381) [`0ec56033`](https://github.com/openclaw/openclaw/commit/0ec56033dc598528341e24ff3367a8613292ecc8). Thanks to [@cxbasdev](https://github.com/cxbasdev), [@musatoktas](https://github.com/musatoktas).

  </details>

- Nostr pairing notifications now report a failure when they can’t reach the Gateway. Use an app connected to the Gateway if you need the notification; starting the Gateway alone doesn’t connect the standalone CLI.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Starting the Gateway alone does not connect a standalone CLI to its notifications. [#175489](https://github.com/openclaw/openclaw/pull/175489) [`ebc6633e`](https://github.com/openclaw/openclaw/commit/ebc6633effccebe8e2557ac85e730d546469afcf).

  </details>

- Channels that recover now clear their old restart warnings.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176182](https://github.com/openclaw/openclaw/pull/176182). Thanks to [@ericcurtin](https://github.com/ericcurtin), [@iaford](https://github.com/iaford).

  </details>

- Fixes Discord `/status` and active `/steer` commands failing when you had saved selections.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#177451](https://github.com/openclaw/openclaw/pull/177451) [`47b76891`](https://github.com/openclaw/openclaw/commit/47b768915132ded88142764085431d8b80dd03ef). Thanks to [@beru-ant-king](https://github.com/beru-ant-king), [@montrellcruse](https://github.com/montrellcruse), [@pitbuild](https://github.com/pitbuild).

  </details>

## Memory

- Memory Wiki no longer changes notes that aren’t valid UTF-8 when rewriting, pruning, or importing bundles. To process one, back up the original, convert a copy to UTF-8, and retry. Other readable notes are still processed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Other readable notes may still be processed; this does not make an entire import all-or-nothing. [#168583](https://github.com/openclaw/openclaw/pull/168583) [#174573](https://github.com/openclaw/openclaw/pull/174573) [`e037b869`](https://github.com/openclaw/openclaw/commit/e037b8694c8bea3a213c4c98700ba6d77bcd95b6) [#176009](https://github.com/openclaw/openclaw/pull/176009). Thanks to [@altaywtf](https://github.com/altaywtf), [@wangmiao0668000666](https://github.com/wangmiao0668000666), [@alix-007](https://github.com/alix-007).

  </details>

- Fixes cleanup of a large dreaming history slowing down Memory reloads.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169945](https://github.com/openclaw/openclaw/pull/169945). Thanks to [@stronggenetics](https://github.com/stronggenetics).

  </details>

- Memory Wiki status is faster for large vaults because it skips summary work it doesn’t need.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170553](https://github.com/openclaw/openclaw/pull/170553). Thanks to [@migelizaga-rgb](https://github.com/migelizaga-rgb), [@obviyus](https://github.com/obviyus).

  </details>

- Doctor now explains why memory indexing stopped when neither your main nor your backup embedding provider works.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172223](https://github.com/openclaw/openclaw/pull/172223). Thanks to [@serg0x](https://github.com/serg0x).

  </details>

- When automatic compaction fails, you now see the actual problem instead of outdated advice to reset the conversation.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173310](https://github.com/openclaw/openclaw/pull/173310). Thanks to [@turbotheturtle](https://github.com/turbotheturtle).

  </details>

## Skills

- Skill dependencies can now unpack archives from generic download links, using the file name the server provides.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#141312](https://github.com/openclaw/openclaw/pull/141312). Thanks to [@hugenshen](https://github.com/hugenshen), [@obviyus](https://github.com/obviyus).

  </details>

- New Peekaboo installs now use the maintained Homebrew source.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#166245](https://github.com/openclaw/openclaw/pull/166245). Thanks to [@holgergruenhagen](https://github.com/holgergruenhagen).

  </details>

- Finding and reading remote skills can now recover from a brief interruption while pairing changes. This only retries reads and never gets around revoked access.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Retries are limited to reading; they do not bypass revoked access. [#171208](https://github.com/openclaw/openclaw/pull/171208) [#173209](https://github.com/openclaw/openclaw/pull/173209).

  </details>

- Fixes generated sandbox skills cluttering your Git changes.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173560](https://github.com/openclaw/openclaw/pull/173560). Thanks to [@shakkernerd](https://github.com/shakkernerd).

  </details>

- Workshop now keeps your original files if both restore and rollback fail.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173954](https://github.com/openclaw/openclaw/pull/173954).

  </details>

- Fixes one folder with unreadable ignore rules stopping other skills from loading. That folder is skipped and the rest load normally.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176681](https://github.com/openclaw/openclaw/pull/176681) [`7911396d`](https://github.com/openclaw/openclaw/commit/7911396da826bd8e8428b8df19f1a5ec6c5d66f5).

  </details>

## Native Apps

- The Mac app now tells you how to update when its bundled worker isn’t compatible.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#157948](https://github.com/openclaw/openclaw/pull/157948). Thanks to [@pollybot13](https://github.com/pollybot13).

  </details>

- Fixes an iPhone Talk crash on the first reply, and improves quiet audio and spoken interruptions in relay conversations.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#168416](https://github.com/openclaw/openclaw/pull/168416). Thanks to [@masatohoshino](https://github.com/masatohoshino), [@nathan-85](https://github.com/nathan-85).

  </details>

- Fixes iOS chat looking offline while messages were actually getting through. A connection warning you dismissed also stays hidden if the same problem comes back.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169912](https://github.com/openclaw/openclaw/pull/169912). Thanks to [@solvely-colin](https://github.com/solvely-colin).

  </details>

- Mac companion commands now respect longer response timeouts you ask for. If an action times out, check whether it happened before trying again.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172117](https://github.com/openclaw/openclaw/pull/172117). Thanks to [@colton-harris](https://github.com/colton-harris), [@holgergruenhagen](https://github.com/holgergruenhagen), [@ylcn91](https://github.com/ylcn91).

  </details>

- Node-worker control errors now tell you why they failed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174750](https://github.com/openclaw/openclaw/pull/174750) [`1a8dda1e`](https://github.com/openclaw/openclaw/commit/1a8dda1e9f27f83c785f8a5129444fc842dcc36c). Thanks to [@unknown7751](https://github.com/unknown7751).

  </details>

- Chats in the macOS, Linux, iOS, and Android apps can now pick up where they left off after reconnecting.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This applies to recognized macOS, Linux, iOS, and Android app clients. [#178657](https://github.com/openclaw/openclaw/pull/178657) [`bba7238a`](https://github.com/openclaw/openclaw/commit/bba7238a1be3a0d4e92c371988f94e81011a06b2) [#171528](https://github.com/openclaw/openclaw/pull/171528). Thanks to [@romneyda](https://github.com/romneyda) for integration, [@jjjhenriksen](https://github.com/jjjhenriksen) for reconnect repairs, and [@n572770](https://github.com/n572770) for related Windows plugin-link preservation.

  </details>

## Models and Providers

- Fixes one provider hitting its quota and a session-storage error then blocking other queued commands.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [`4114b2ba`](https://github.com/openclaw/openclaw/commit/4114b2ba139f835574eb445534c6d874b3f73bb1). Thanks to [@romneyda](https://github.com/romneyda).

  </details>

- Fixes a successful reply from a CLI-backed model being marked as failed during its final save.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The reply has already succeeded when this database-save failure occurs. [`ff337085`](https://github.com/openclaw/openclaw/commit/ff337085239e072cca943a1120c03b3c01f3629a). Thanks to [@romneyda](https://github.com/romneyda).

  </details>

- Talk now recognizes provider names regardless of capitalization or extra spaces, and keeps the voice you selected.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [`a4ce73f0`](https://github.com/openclaw/openclaw/commit/a4ce73f0e94c517a326231a28628ea3202ae950e). Thanks to [@gideonpraise](https://github.com/gideonpraise), [@romneyda](https://github.com/romneyda), [@shakkernerd](https://github.com/shakkernerd).

  </details>

- Fixes model attempts timing out too early or waiting too long after clock changes, and a slow failed attempt leaving its retry or fallback almost no time. Retries and fallbacks now get their own time allowance.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Preparation still uses part of an attempt’s execution allowance. A permitted retry or fallback gets a fresh allowance; CLI-backed tool finalization keeps its separate five-second wait. Existing stop, retry, and run limits remain. [#155801](https://github.com/openclaw/openclaw/pull/155801) [#164808](https://github.com/openclaw/openclaw/pull/164808) [#170495](https://github.com/openclaw/openclaw/pull/170495). Thanks to [@obviyus](https://github.com/obviyus), [@sunnyshu0925](https://github.com/sunnyshu0925), [@aleps001](https://github.com/aleps001), [@anyech](https://github.com/anyech), [@belbix](https://github.com/belbix), [@tre1d](https://github.com/tre1d), [@vinsew](https://github.com/vinsew).

  </details>

- Fixes ChatGPT sign-in and token refresh ending too early, or running too long, when your computer’s clock changes. Device-code sign-in still waits up to fifteen minutes.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Device-code sign-in keeps its fifteen-minute polling window. Credential expiration still follows the actual date and time. [#162828](https://github.com/openclaw/openclaw/pull/162828) [#167619](https://github.com/openclaw/openclaw/pull/167619). Thanks to [@fuller-stack-dev](https://github.com/fuller-stack-dev), [@sunnyshu0925](https://github.com/sunnyshu0925).

  </details>

- Older LM Studio context-limit errors now trigger the automatic compact-and-retry.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169189](https://github.com/openclaw/openclaw/pull/169189). Thanks to [@xpeng5278-web](https://github.com/xpeng5278-web).

  </details>

- Fixes parallel OpenAI Responses requests over HTTP losing the thinking level you selected.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169322](https://github.com/openclaw/openclaw/pull/169322).

  </details>

- Fixes the assistant stopping after a malformed tool request that followed a refused command, until you typed “continue.” It now carries on by itself. Commands that ran, or might have run, are never repeated.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The existing continuation checks the transcript and requires proof that every failed tool never started. It adds no retry allowance. [#170615](https://github.com/openclaw/openclaw/pull/170615). Thanks to [@akushonkamen](https://github.com/akushonkamen), [@fransqaas](https://github.com/fransqaas), [@r3n3x](https://github.com/r3n3x).

  </details>

- Windows now waits for local-model shutdown helpers to finish before moving on.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#171587](https://github.com/openclaw/openclaw/pull/171587). Thanks to [@romneyda](https://github.com/romneyda).

  </details>

- Managed Codex startup now keeps on-request approval and allows side questions.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172639](https://github.com/openclaw/openclaw/pull/172639). Thanks to [@stevenlee-oai](https://github.com/stevenlee-oai).

  </details>

- Fixes Claude CLI sometimes stalling at startup on Windows while handing over stored credentials.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174571](https://github.com/openclaw/openclaw/pull/174571) [`d401ad34`](https://github.com/openclaw/openclaw/commit/d401ad3409e4d0f19a7740568cd7a5536fd9d30d). Thanks to [@layne-11](https://github.com/layne-11), [@pandysp](https://github.com/pandysp), [@romneyda](https://github.com/romneyda), [@scalesmart](https://github.com/scalesmart).

  </details>

- Managed DeepSeek sessions through OpenRouter can now recover valid tool requests wrapped in provider markup. Incomplete requests are hidden, not run.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Incomplete requests are hidden rather than executed. [#175058](https://github.com/openclaw/openclaw/pull/175058) [`30cd17ff`](https://github.com/openclaw/openclaw/commit/30cd17ff658d606847101aaacb49f59da012dbdc). Thanks to [@linux2010](https://github.com/linux2010), [@zhimingq](https://github.com/zhimingq).

  </details>

- DeepInfra and OpenRouter speech requests now get up to 120 seconds by default instead of 30. Timeouts you set yourself still apply.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Explicit timeout settings still apply. [#175614](https://github.com/openclaw/openclaw/pull/175614).

  </details>

- Fixes incompatible reasoning settings on GMI Cloud GPT tool requests for GPT-5.6, GPT-5.5, and GPT-5.4 mini.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers GPT-5.6, GPT-5.5, and GPT-5.4 mini. [#176709](https://github.com/openclaw/openclaw/pull/176709) [`678a8960`](https://github.com/openclaw/openclaw/commit/678a8960e2f36cdbca90c66d898b2809f0bd1749).

  </details>

- You can now find a Claude Code conversation by its exact session ID even when the normal search missed it.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176742](https://github.com/openclaw/openclaw/pull/176742) [`1f2b99a1`](https://github.com/openclaw/openclaw/commit/1f2b99a1c9f4261ae4803f841310f7b3f124fe40). Thanks to [@ceo633](https://github.com/ceo633), [@sunlit-deng](https://github.com/sunlit-deng).

  </details>

- Rate-limit retries now keep the conversation history needed to reuse the provider’s prompt cache, so you don’t pay for the same input again.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The exact hidden continuation stays in stored history without appearing as a user message. Losing that match could make the same history cost more or take longer to process again. [#177050](https://github.com/openclaw/openclaw/pull/177050) [`07b59a09`](https://github.com/openclaw/openclaw/commit/07b59a0976dd8439e9225b5141280df5d78b2323). Thanks to [@obviyus](https://github.com/obviyus).

  </details>

- If Codex rejects a message because its saved conversation is missing on the server, OpenClaw can now restore the history and try once more. If the history can’t be restored, the message wasn’t sent: reconnect the conversation to a Codex session and resend it. See [Codex session commands](https://docs.openclaw.ai/plugins/codex-harness/commands).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This applies to a non-incognito conversation receiving the specific `turn/start` error `-32600 thread not found` for its bound conversation ID. Recovery requires unchanged session binding and network policy. [#178170](https://github.com/openclaw/openclaw/pull/178170) [`081fe025`](https://github.com/openclaw/openclaw/commit/081fe025a05b28d10debd57472655c644cdc49a6) [#172705](https://github.com/openclaw/openclaw/pull/172705). Thanks to [@romneyda](https://github.com/romneyda) and [@vincentkoc](https://github.com/vincentkoc) for the backport.

  </details>

- Codex can now start answering after a context refresh while earlier background work is still finishing.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This requires the same compatible persistent session settings. [#178657](https://github.com/openclaw/openclaw/pull/178657) [#177716](https://github.com/openclaw/openclaw/pull/177716). Thanks to [@jjjhenriksen](https://github.com/jjjhenriksen).

  </details>

## Automations and Scheduling

- Local-model automations now alert you after two skipped runs instead of silently staying unavailable. Existing opt-outs still apply.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The default alert is after two skips; existing opt-outs still apply. [#169278](https://github.com/openclaw/openclaw/pull/169278). Thanks to [@obviyus](https://github.com/obviyus).

  </details>

- IMAP automations now move on to later mail when one message can’t be read. The unreadable message is kept. See [IMAP automations](https://docs.openclaw.ai/automation/imap).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The unreadable message is preserved. [#173231](https://github.com/openclaw/openclaw/pull/173231). Thanks to [@pgondhi987](https://github.com/pgondhi987).

  </details>

- If a scheduled job’s failure alert is refused before it’s sent, the job’s owner now gets an in-app notice instead. Alerts with an unclear delivery result aren’t sent twice. See [scheduled-job delivery](https://docs.openclaw.ai/automation/cron-jobs/delivery).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  An uncertain delivery result does not trigger a duplicate fallback alert. [#173347](https://github.com/openclaw/openclaw/pull/173347). Thanks to [@winoren](https://github.com/winoren).

  </details>

- A targeted heartbeat now delivers its queued background-task result to the right conversation, even when regular heartbeats are off. See [system commands](https://docs.openclaw.ai/cli/system).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  With isolated heartbeats, the selected event is read once; unrelated sessions’ queued events stay untouched. [#175642](https://github.com/openclaw/openclaw/pull/175642). Thanks to [@seriouslysean](https://github.com/seriouslysean), [@sunlit-deng](https://github.com/sunlit-deng).

  </details>

- A scheduled command pinned to the Gateway now refuses a prompt that asks it to run on another machine. If a saved job reports this conflict, fix its prompt or ask the operator to change the job’s saved machine. See [CLI-backed model and scheduled-command guidance](https://docs.openclaw.ai/gateway/cli-backends).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The conflict is rejected before the command runs. [#176997](https://github.com/openclaw/openclaw/pull/176997) [`fbde9773`](https://github.com/openclaw/openclaw/commit/fbde977325307e9a1e7f7f3acee5366cccf693f4). Thanks to [@etzelm](https://github.com/etzelm).

  </details>

- To clear a scheduled job’s pinned Gateway target, an operator can run `openclaw cron edit <id> --tools exec`. This replaces the whole tool list, so include every tool the job still needs. See [scheduled-command target recovery](https://docs.openclaw.ai/gateway/cli-backends).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This is the documented remedy for changing the captured target restriction. Current command-execution policy and approval requirements still apply. [#176997](https://github.com/openclaw/openclaw/pull/176997). Thanks to [@etzelm](https://github.com/etzelm).

  </details>

- New scheduled follow-ups can now continue work you already approved in the same conversation. Recreate existing jobs to get this behavior.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  A one-time follow-up can schedule its next check through the same job. [#176422](https://github.com/openclaw/openclaw/pull/176422).

  </details>

## Browser and Computer Use

- Linux Desktop startup (opt-in) no longer picks a display that a hidden session is already using. See [Desktop configuration](https://docs.openclaw.ai/gateway/config-browser-ui-desktop).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#169392](https://github.com/openclaw/openclaw/pull/169392). Thanks to [@holgergruenhagen](https://github.com/holgergruenhagen), [@obviyus](https://github.com/obviyus).

  </details>

- Fixes fetched JSON changing the digits of long IDs and other large numbers.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170123](https://github.com/openclaw/openclaw/pull/170123). Thanks to [@ly85206559](https://github.com/ly85206559), [@obviyus](https://github.com/obviyus).

  </details>

- Web search timeout errors now tell you the request’s actual time limit. See [web tools](https://docs.openclaw.ai/tools/web).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170372](https://github.com/openclaw/openclaw/pull/170372). Thanks to [@letsc4](https://github.com/letsc4), [@xiajiahang](https://github.com/xiajiahang).

  </details>

- Setup now explains how to turn on Desktop access on the Gateway’s machine. An administrator still has to enable it.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#178657](https://github.com/openclaw/openclaw/pull/178657) [#177888](https://github.com/openclaw/openclaw/pull/177888). Thanks to [@etzelm](https://github.com/etzelm).

  </details>

- Linux camera discovery now reports an unreadable device folder as an error instead of saying you have no cameras.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174424](https://github.com/openclaw/openclaw/pull/174424).

  </details>

## Plugins and Integrations

- Fixes cancelling Codex startup leaving a stuck place in the queue that blocked the next attempt.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The next attempt still waits for the old client process to exit. [#168347](https://github.com/openclaw/openclaw/pull/168347). Thanks to [@romneyda](https://github.com/romneyda).

  </details>

- Fixes clock changes cutting short or stretching Codex connection waits and Crabbox and Azure retry and cleanup waits.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers Codex’s ten-second connection handshake after queue admission and its idle warm-connection lifetime, Crabbox’s coordinator retry waits, and Azure’s fixed-lease stop cleanup. Existing retry and cleanup policies remain. [#168731](https://github.com/openclaw/openclaw/pull/168731) [#168771](https://github.com/openclaw/openclaw/pull/168771) [#165889](https://github.com/openclaw/openclaw/pull/165889). Thanks to [@obviyus](https://github.com/obviyus), [@sunnyshu0925](https://github.com/sunnyshu0925), [@fuller-stack-dev](https://github.com/fuller-stack-dev).

  </details>

- Fixes an invalid plugin message replacement wiping the original message. The original is kept and an error is reported.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#161098](https://github.com/openclaw/openclaw/pull/161098). Thanks to [@aniruddhaadak80](https://github.com/aniruddhaadak80), [@obviyus](https://github.com/obviyus), [@xydigitlybnnnn](https://github.com/xydigitlybnnnn).

  </details>

- Eligible ACP coding sessions now resume once after a Gateway restart. Finished sessions start fresh.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Recovery requires the same session identity, command, working directory, and backend. Completed sessions start fresh. [#166368](https://github.com/openclaw/openclaw/pull/166368). Thanks to [@alkor2000](https://github.com/alkor2000), [@jhgaylor](https://github.com/jhgaylor), [@obviyus](https://github.com/obviyus).

  </details>

- When an MCP integration sends the same result as both structured data and JSON text, the model now gets only one copy, even if the formatting differs.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Distinct data and useful recovery guidance remain available, with the existing result-size limits. [#169180](https://github.com/openclaw/openclaw/pull/169180). Thanks to [@jipeng6036-del](https://github.com/jipeng6036-del), [@xilopaint](https://github.com/xilopaint).

  </details>

- Logbook now tells you when a missing model is blocking queued work.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#170608](https://github.com/openclaw/openclaw/pull/170608). Thanks to [@duyufansh2008](https://github.com/duyufansh2008).

  </details>

- Fixes reviewers being told a released Workboard review card still had unfinished dependencies. They can now claim and complete it once its parent tasks are done. See [Workboard](https://docs.openclaw.ai/plugins/workboard).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Existing review blockers still apply. [#171414](https://github.com/openclaw/openclaw/pull/171414). Thanks to [@asikorskiy](https://github.com/asikorskiy), [@ericcurtin](https://github.com/ericcurtin), [@obviyus](https://github.com/obviyus).

  </details>

- MCP sign-in errors now give a safe reason and tell you how to sign in or fix your credentials. See [MCP tools](https://docs.openclaw.ai/tools/mcp).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172331](https://github.com/openclaw/openclaw/pull/172331). Thanks to [@rclarke0](https://github.com/rclarke0).

  </details>

- Plugins now warn you when a CLI provider binding is missing. Using the CLI on its own still works. See [CLI backend plugins](https://docs.openclaw.ai/plugins/cli-backend-plugins).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Standalone CLI use remains valid. [#173000](https://github.com/openclaw/openclaw/pull/173000). Thanks to [@xtimor](https://github.com/xtimor).

  </details>

- When some plugins or channels fail to load, you now see the failures, and the alternatives that did load keep working.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174299](https://github.com/openclaw/openclaw/pull/174299) [`0e20b219`](https://github.com/openclaw/openclaw/commit/0e20b219f03fe638bad41f50a539bd8760e7b97c) [#177252](https://github.com/openclaw/openclaw/pull/177252) [`1acaee64`](https://github.com/openclaw/openclaw/commit/1acaee64f41fd1f051e53b5e027cbd49f3988284).

  </details>

- Plugin removal now postpones cleanup instead of deleting files when it can’t read the marker that protects them.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#175289](https://github.com/openclaw/openclaw/pull/175289) [`e579f092`](https://github.com/openclaw/openclaw/commit/e579f092cab7664e9aa89663d17c7b5b379aec1d).

  </details>

- Session Share now shows an error when it can’t discover receivers, instead of an empty list. Check the receiving node’s connection and retry.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Check the receiver node's connection and retry. [#175532](https://github.com/openclaw/openclaw/pull/175532) [`42be4a44`](https://github.com/openclaw/openclaw/commit/42be4a448d7750b2c4b6ff6ea00068a85d2ba109).

  </details>

- OpenShell now keeps your local and remote workspace views when a read fails.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176458](https://github.com/openclaw/openclaw/pull/176458).

  </details>

- Fixes a missing Beam mirror secret turning off receiving that doesn’t need a token. Restore the mirror credential and run `openclaw secrets reload`.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176510](https://github.com/openclaw/openclaw/pull/176510).

  </details>

- Enabled ACP coding backends can now start without an unused default workspace. Add `acpx` to any plugin allowlist that applies, and use an absolute path for custom adapters.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176876](https://github.com/openclaw/openclaw/pull/176876) [`73b902dc`](https://github.com/openclaw/openclaw/commit/73b902dc9c1d0608ba9dcd0a82f4f572d53062b8) [#176879](https://github.com/openclaw/openclaw/pull/176879) [`bf5e4f04`](https://github.com/openclaw/openclaw/commit/bf5e4f04fcbd3254b328ac6318436b11f4ced9c4). Thanks to [@zoowh](https://github.com/zoowh).

  </details>

- 1Password errors when reading secrets now include useful details, with sensitive values removed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#177060](https://github.com/openclaw/openclaw/pull/177060) [`4d08d922`](https://github.com/openclaw/openclaw/commit/4d08d922229e069f890e95bd5862e0c1fe19f142). Thanks to [@gisk0](https://github.com/gisk0).

  </details>

- Finished Codex helpers now retry cleaning up leftover status subscriptions after a temporary failure.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Active follow-ups keep their subscriptions. [#173547](https://github.com/openclaw/openclaw/pull/173547). Thanks to [@kimiyu-186](https://github.com/kimiyu-186).

  </details>

## Security and Privacy

- Adds remediations for the eMudhra certificate compromise. OpenClaw now requires Node 24.22.1 or newer on Node 24, or 26.12.1 or newer on Node 26, because older Node builds may still trust the affected certificates. If you manage Node yourself, upgrade before starting OpenClaw. Docker images and installers already use the patched versions.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Source builds use pnpm 12.15.0. [#179992](https://github.com/openclaw/openclaw/pull/179992). Thanks to [@joshavant](https://github.com/joshavant).

  </details>

- The Gateway now stays up when a hook’s credential can’t be found, and only turns off the affected hooks. Add the secret to the service environment and reload or restart, or disable those hooks.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#165019](https://github.com/openclaw/openclaw/pull/165019). Thanks to [@eleqtrizit](https://github.com/eleqtrizit).

  </details>

- If you use a named profile, a custom state folder, or a moved home folder, Doctor now uses that profile instead of reading old agent data from the default one. If a symlink or alternate path used to point at that old data, set `OPENCLAW_AGENT_DIR` to it before relying on it. See [Doctor’s profile and session checks](https://docs.openclaw.ai/gateway/doctor/state-and-sessions).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This prevents inappropriate legacy-data migration and warnings for the wrong profile. Preserve the original directory. [#171439](https://github.com/openclaw/openclaw/pull/171439).

  </details>

- Setup now asks for approval again after an earlier approval expires or is cancelled. If an approved change fails, check your settings and status before retrying.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172270](https://github.com/openclaw/openclaw/pull/172270).

  </details>

- Camera-list tables now strip terminal control characters from camera names, positions, and IDs. Raw JSON output is unchanged.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Raw JSON output is unchanged. [#175624](https://github.com/openclaw/openclaw/pull/175624). Thanks to [@obviyus](https://github.com/obviyus), [@sunnyshu0925](https://github.com/sunnyshu0925).

  </details>

- Fixes Incognito history search results including an extra internal field.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This restores the existing search response format. [`352f64f2`](https://github.com/openclaw/openclaw/commit/352f64f27b345f5a622684dbd670c72e22856d93).

  </details>

## Quality-of-Life Improvements

- When you wait on a background command, you now get whatever output is available and a note on how to check again while it keeps running. See [background processes](https://docs.openclaw.ai/gateway/background-process).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers bounded waits, notification-capture failures, and polling after clock changes. An invalid wait request keeps the original command available. [#128886](https://github.com/openclaw/openclaw/pull/128886) [#169645](https://github.com/openclaw/openclaw/pull/169645) [#171570](https://github.com/openclaw/openclaw/pull/171570) [#173241](https://github.com/openclaw/openclaw/pull/173241). Thanks to [@benprotzekmuntoni](https://github.com/benprotzekmuntoni), [@potterdigital](https://github.com/potterdigital), [@sashankh](https://github.com/sashankh), [@shad0wca7](https://github.com/shad0wca7), [@vacinc](https://github.com/vacinc), [@davidcittadini](https://github.com/davidcittadini), [@obviyus](https://github.com/obviyus), [@wangmiao0668000666](https://github.com/wangmiao0668000666).

  </details>

- If you turn on continuation instruction skipping, workspace instructions are no longer resent on every follow-up once they’ve been delivered. It’s off by default. See [workspace instructions](https://docs.openclaw.ai/gateway/config-agents/workspace-and-bootstrap).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This opt-in setting applies to the embedded runtime. The default still sends instructions each time. Resetting or compacting the conversation makes them eligible for delivery again. [#154923](https://github.com/openclaw/openclaw/pull/154923). Thanks to [@playhard94](https://github.com/playhard94), [@sxh313](https://github.com/sxh313).

  </details>

- Fixes finished or stopped helper work coming back after a restart with phantom reminders.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This includes failed result delivery, stopped parents, and watched results from shared helpers. [#155019](https://github.com/openclaw/openclaw/pull/155019) [#169453](https://github.com/openclaw/openclaw/pull/169453) [#169489](https://github.com/openclaw/openclaw/pull/169489). Thanks to [@assimetria-ai](https://github.com/assimetria-ai), [@ifyouhavethisemail-afk](https://github.com/ifyouhavethisemail-afk), [@itanyplus](https://github.com/itanyplus), [@jerryliang122](https://github.com/jerryliang122), [@linhongyu510](https://github.com/linhongyu510), [@obviyus](https://github.com/obviyus), [@rozenpl](https://github.com/rozenpl), [@waynegault](https://github.com/waynegault), [@freeqaz-openai](https://github.com/freeqaz-openai).

  </details>

- `/new` and `/reset` now keep your managed project checkout and working folder, so unfinished files are still there.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Idle resets preserve this context too. Plain New Chat in Control UI still leaves the previous worktree through normal cleanup. [#160549](https://github.com/openclaw/openclaw/pull/160549). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

- Fixes the assistant missing a background command’s result after you changed settings. See [command execution](https://docs.openclaw.ai/tools/exec).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  The command has already finished. Its queued completion follow-up, refused before execution under the old settings, can be admitted under the updated settings with at most two additional attempts. [#169529](https://github.com/openclaw/openclaw/pull/169529). Thanks to [@oldrich333](https://github.com/oldrich333), [@romneyda](https://github.com/romneyda), [@wangmiao0668000666](https://github.com/wangmiao0668000666).

  </details>

- Shell completion now finds global flags after subcommands. Regenerate your saved completions with `openclaw completion --write-state`.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#171571](https://github.com/openclaw/openclaw/pull/171571). Thanks to [@obviyus](https://github.com/obviyus), [@zhangguiping-xydt](https://github.com/zhangguiping-xydt).

  </details>

- Fixes paged file reads dropping blank lines.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#173835](https://github.com/openclaw/openclaw/pull/173835).

  </details>

- When command output is shortened, the end of it, where the error usually is, is now kept.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174030](https://github.com/openclaw/openclaw/pull/174030). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

- Invalid tool arguments are now labeled as failures instead of policy blocks. Real policy denials still show as blocked.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Actual policy denials still appear as blocked. [#176104](https://github.com/openclaw/openclaw/pull/176104). Thanks to [@bgreezy](https://github.com/bgreezy), [@yinx65588-boop](https://github.com/yinx65588-boop).

  </details>

- `/btw`, `/side`, and `/loop` now keep multiline input. Loop names stay on one line.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers `/btw`, `/side`, and `/loop`; loop names remain on one line. [#176293](https://github.com/openclaw/openclaw/pull/176293). Thanks to [@goutamadwant](https://github.com/goutamadwant), [@yetval](https://github.com/yetval).

  </details>

- Fixes an automatic retry repeating its continuation instruction after a conversation was compacted.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [`236b0c1d`](https://github.com/openclaw/openclaw/commit/236b0c1d4020ae277d72751f450143bf2730822d).

  </details>

## Other Bug Fixes

- Fixes a successful database save looking like it failed when writing its warning failed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  If the database save itself fails, its original error is preserved. [#157151](https://github.com/openclaw/openclaw/pull/157151). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

- Fixes request, remote-worker, and file-transfer waits ending early or running over after clock changes.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  This covers Gateway and plugin response waits, already-safe workspace retries after a disconnect, SSH and transfer budgets, busy native-session acquisition, and remote image or PDF copies using the remaining time. It grants no new retries. [#171094](https://github.com/openclaw/openclaw/pull/171094) [#171977](https://github.com/openclaw/openclaw/pull/171977) [#172256](https://github.com/openclaw/openclaw/pull/172256) [#172780](https://github.com/openclaw/openclaw/pull/172780) [#173142](https://github.com/openclaw/openclaw/pull/173142). Thanks to [@obviyus](https://github.com/obviyus), [@sunnyshu0925](https://github.com/sunnyshu0925).

  </details>

- A new opt-in check lets active runs continue after large follow-up messages without repeating finished tools. Turn it on with `agents.defaults.compaction.midTurnPrecheck.enabled=true`. See [conversation compaction](https://docs.openclaw.ai/reference/session-management-compaction/compaction).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Enable it with `agents.defaults.compaction.midTurnPrecheck.enabled=true`; it remains off by default. [#172019](https://github.com/openclaw/openclaw/pull/172019). Thanks to [@mirasrael](https://github.com/mirasrael), [@obviyus](https://github.com/obviyus).

  </details>

- Tool calls that time out now stay clearly marked as blocked, and their completed results and attachments are kept.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#172983](https://github.com/openclaw/openclaw/pull/172983). Thanks to [@budzation](https://github.com/budzation).

  </details>

- DNS tools no longer change zones they can’t read.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174424](https://github.com/openclaw/openclaw/pull/174424) [`188a7983`](https://github.com/openclaw/openclaw/commit/188a7983089ba615f8228382fcaa6f357428d0ae).

  </details>

- Fixes very large file edits crashing with a too-many-arguments error.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174477](https://github.com/openclaw/openclaw/pull/174477) [`4a9f9022`](https://github.com/openclaw/openclaw/commit/4a9f90225fad82ee12881012d3fa16c7297874f5).

  </details>

- Fixes an optional diagnostic file failing to write ending the whole session. You now get a single warning.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#174622](https://github.com/openclaw/openclaw/pull/174622) [`6c759cbc`](https://github.com/openclaw/openclaw/commit/6c759cbcbbfda6e2a098a891f28823dc65c44ee9). Thanks to [@aniruddhaadak80](https://github.com/aniruddhaadak80), [@jamie8johnson](https://github.com/jamie8johnson).

  </details>

- API clients can now get a saved session’s available commands without waiting for model information they didn’t ask for.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  For `chat.metadata` requests with `includeModels: false`, the unused wait for worker-placement information is skipped. Full/default metadata requests keep their existing preparation. [#175606](https://github.com/openclaw/openclaw/pull/175606). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

- Fixes playback-cache errors leading to extra cache entries being deleted. Repair the filesystem problem before retrying cache maintenance.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  A new rendition may remain after an error. Repair the filesystem problem before retrying cache maintenance. [#175634](https://github.com/openclaw/openclaw/pull/175634).

  </details>

- Cloning a managed project no longer overwrites an existing folder it can’t inspect. It only clones when the folder doesn’t exist.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  Cloning proceeds only when the destination is missing. [#175952](https://github.com/openclaw/openclaw/pull/175952).

  </details>

- Fixes service commands reporting they were ready when their startup input couldn’t be prepared. You now get a startup error.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176023](https://github.com/openclaw/openclaw/pull/176023).

  </details>

- A slow Stop request now stays accepted even if its reply times out, and repeated cancel notices no longer undo a confirmed stop. If Stop is still settling, check the session’s status before trying again. See [session status and control](https://docs.openclaw.ai/concepts/session-tool).

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  An accepted request can report “settling” after the five-second response wait; that does not mean cancellation is complete, state is saved, or success is guaranteed. Repeated child-cancel callbacks also preserve a pending notice to the parent. [#176206](https://github.com/openclaw/openclaw/pull/176206) [#176603](https://github.com/openclaw/openclaw/pull/176603) [`56827d40`](https://github.com/openclaw/openclaw/commit/56827d40f0dc2bed61e6dd3fe306f1a8d260d687). Thanks to [@hannnnn-l](https://github.com/hannnnn-l).

  </details>

- Fixes the process tool reporting success when writing input to a terminal process actually failed.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#176362](https://github.com/openclaw/openclaw/pull/176362).

  </details>

- `openclaw gateway suspend --json` now always prints valid JSON, even when the Gateway is busy.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  It returns one JSON object and exits with status 1 in that case. [#176795](https://github.com/openclaw/openclaw/pull/176795) [`77dab748`](https://github.com/openclaw/openclaw/commit/77dab7485a814796d2cd85d04cb46b97009f5fd1) [#178657](https://github.com/openclaw/openclaw/pull/178657). Thanks to [@vincentkoc](https://github.com/vincentkoc).

  </details>

- Fixes the first native-worker turn failing before the model started. It now waits for its session to attach.

  <details class="release-source-toggle release-source-inline">
  <summary>More details</summary>

  [#177184](https://github.com/openclaw/openclaw/pull/177184) [`dfa84465`](https://github.com/openclaw/openclaw/commit/dfa8446525308cfc7877ea4d6b48c363bf16e23b).

  </details>
