On this page
On this page
Release notes
v2026.10.6
v2026.10.6
AI agents and tools can read these release notes as plain Markdown.
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.
More details
#176174 #176194. Thanks to @tjarrau-dev, @easyteacher, @skyzhao1223.
-
Fixes Linux service commands that dropped empty arguments during setup.
More details
e75f1fc9. Thanks to @gideonpraise, @romneyda, @shakkernerd. -
Fixes Windows installs with Bun failing when an optional cleanup step didn’t work. Installation now finishes.
More details
-
Skill setup now only checks for the installers your selected dependencies actually need.
More details
-
Fixes Codex setup imports giving up too early, or waiting too long, when your computer’s clock changes.
More details
This fixes the discovery and import wait. #168735. Thanks to @sunnyshu0925.
-
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.
More details
This covers Hermes instruction imports and Claude imports of existing instructions. #172742 #172953. Thanks to @leon-sk668, @obviyus.
-
Hermes migration previews now tell you which files they couldn’t read. Fix the access problem and rerun the preview before applying it.
-
Setup now tells you why a Gateway restart you asked for failed.
More details
#174767
c7a77fe7. Thanks to @skyzhao1223. -
Fixes old password settings blocking Gateway credential setup. If you still use
CLAWDBOT_GATEWAY_PASSWORD, switch toOPENCLAW_GATEWAY_PASSWORDor a supported token. -
Plugin setup now lets you fix an invalid number without closing the prompt.
Web UI
-
Settings now tells you why a refresh failed after you switch to, or reconnect to, a Gateway it can’t work with.
More details
-
Fixes Canvas replacing a document when it couldn’t remove the old one first. It now stops instead.
-
The Sessions view now shows how long the current helper has been running while follow-up work continues.
More details
#168666. Thanks to @holgergruenhagen, @obviyus.
-
Gateway warnings now tell you why background pull-request updates couldn’t be received.
-
Turning off the Control UI now frees its files from the Gateway’s memory. Requests already in progress can still finish.
More details
Requests already in progress can finish. #177042
897966ba. Thanks to @vincentkoc.
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.
More details
This covers cleanup ordering and Windows stop confirmation. #171308 #174807
ece4639f. Thanks to @prizmizm, @sunlit-deng. -
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.
More details
#171678. Thanks to @tommylei666.
-
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.
-
If you back up with Git or worktrees, backup-history errors now point you to
openclaw backup git log --repository <path>. See backup commands.More details
#167935 #176656
e280eba2. Thanks to @obviyus, @pollybot13. -
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.
More details
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.
-
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.More details
Preserve another copy of any local-only Git objects. #168864.
-
Fixes update failures not saying which backup-retention link was unsafe. Keep the backup, repair the reported link, then retry. See backup-retention failures.
-
Backup cleanup can now continue after you repair a btrfs filesystem. See btrfs recovery and update cleanup.
More details
#169893. Thanks to @farisoftfry, @xydigitlybnnnn.
-
Fixes update recovery staying blocked after a command failed before it even started.
More details
-
After a manual upgrade,
openclaw statusno longer suggests an outdated update that could undo the Gateway version you chose. Other update and rollback warnings still appear. See status guidance. -
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.
-
Package-update identity errors now point you to the right repair command. See update status and history.
More details
#170385. Thanks to @council10-kera, @dave160926-ops, @sergeiaug.
-
Fixes backups of very deeply nested folders running out of room for the path.
More 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.
More 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.
More details
An older installed updater may need a manual source update to pick up this fix. #170940. Thanks to @stop-time.
-
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.More details
#171101. Thanks to @homeworld520.
-
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.
More details
Older affected updaters may still require manual recovery. #171164. Thanks to @tommylei666.
-
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.
More 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.
More details
This covers recovery stopped before execution and delegated completion checks refused during shutdown. Recovery keeps its existing three-attempt limit. #172023 #172852. Thanks to @jeanmonet, @romneyda.
-
Fixes failed Git-backup restores leaving temporary files behind.
More details
#172028. Thanks to @ericcurtin.
-
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.
More details
Original archives are preserved; conflicting transcript content is still refused. #172133. Thanks to @wangxiajun68.
-
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.
More details
#172293. Thanks to @obviyus, @wangmiao0668000666.
-
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.More details
#173048. Thanks to @ericcurtin.
-
Fixes Doctor resetting runtime choices you set on purpose in active and archived sessions.
More details
#173498. Thanks to @obviyus, @s-salamatov.
-
Fixes CLI commands that hit their time limit hiding cleanup failures.
More details
#173566. Thanks to @hannesrudolph.
-
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.
More details
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. Thanks to @8bitsforge, @romneyda.
-
Fixes Update and Doctor repeating the same database error over and over during cleanup.
More details
-
Uninstall now stops instead of continuing if it can’t check a workspace that should be kept.
More details
#174195. Thanks to @asulwer, @jason-bai, @xuejourney.
-
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.
More details
#174249. Thanks to @astapenkoav, @shoaibulhaque.
-
Upgrades done from the apps now repair official plugins before checking migrations.
More details
#174257. Thanks to @kazuyuki-eguchi.
-
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.
More details
This repair applies only to databases confirmed to be empty. #174297.
-
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.
More details
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
4c15811f. -
Gateway cleanup warnings now tell you what actually went wrong.
More details
#174590
e283d2f1. Thanks to @altaywtf, @shoaibulhaque. -
Fixes Windows updates popping up helper windows during background database checks.
More details
#174969
f34fed3c. Thanks to @throwingbones. -
Restart requests on Mac now tell you when the restart helper couldn’t be launched.
-
Saved shutdown diagnostics now include more useful process information, with sensitive details removed.
More details
#175625. Thanks to @vincentkoc.
-
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.
More details
#175689 #175703. Thanks to @fuller-stack-dev.
-
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.
More 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 --fixonly after making the backups and checks in the recovery guide. See database integrity and recovery.More details
The reported
openclaworcrestodianstore 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. #176783f02658fe. Thanks to @pennyvibe. -
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.
More details
The link’s target, type, and ownership still have to match; regular-file permissions and integrity checks remain. #177059
f3b0d862. Thanks to @bodegaclaw. -
Update status no longer keeps showing migration warnings after you’ve fixed the problem. See SQLite maintenance.
More details
#177096
52bdbbcd. Thanks to @jj5638521, @ourcoms2018, @scientificprogrammer. -
When a Windows update is blocked by permissions, it now tells you, in any system language, to run as administrator or update manually.
-
Fixes Windows backup cleanup failing when a temporary folder already existed.
More details
#178657. Thanks to @xutongxue233.
-
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.
-
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.
More details
The setting must be empty for this repair. #173851. Thanks to @fengfan201314-eng.
-
Database cleanup that’s already running can now finish when maintenance shuts down.
More details
-
CLI state commands now stop before doing anything if the selected state or the running Gateway changed underneath them.
More details
This covers local state work and requests sent to the Gateway.
af77345b. -
Fixes updates with included configuration files re-saving settings the new version had already migrated. Changed files are still checked.
More details
Changed configuration files still receive capture checks.
d6d17745. -
If you interrupt an update, it now finishes cleaning up and keeps a recovery record for that run.
More details
It exits with the signal status, including after state migration.
e5b93b4c.
Messaging
-
Fixes Telegram numbered lists losing their spacing and attachment captions losing their formatting. See Telegram media and rich messages.
More details
88bdc4bd#171180. Thanks to @gideonpraise, @romneyda, @shakkernerd, @obviyus, @ruel225, @sanderhelgesen. -
Fixes internal runtime events showing up in chat history as messages from you.
-
Fixes WhatsApp sending a retried message as a new message after a connection change.
More details
This applies to retries within the running process. #142434. Thanks to @ashawwal, @he-yufeng, @obviyus.
-
Fixes downloading stickers sent from WhatsApp Web and Desktop.
More details
#164210. Thanks to @abacha, @andrewwbuilds, @obviyus.
-
When a voice note fails to send, the text fallback now arrives before the next reply instead of after it.
More details
-
Delivery warnings now say more clearly which messages were abandoned and which storage problems caused it. Check the conversation before resending anything.
More details
#169932 #170048. Thanks to @huyengiang101086-spec.
-
Fixes Tlon dropping incoming events that use different line endings or several data lines.
More details
#170125. Thanks to @ly85206559.
-
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.
More details
-
Fixes one stuck messaging account delaying checks of your healthy accounts when the computer’s clock moves backward.
More details
Each account keeps its own existing wait allowance. #170500. Thanks to @obviyus, @sunnyshu0925.
-
Channel errors now tell you which storage problem needs fixing.
-
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.
-
Fixes Slack dates becoming unreadable when a message has no fallback text. They now show in ISO format (UTC).
More details
Without fallback text, dates use ISO format in UTC. #172182. Thanks to @fhgffy, @skyzhao1223.
-
When you leave a Discord voice call, a reply that was already being written can still finish in the voice room’s text chat.
More details
#172380. Thanks to @brainmonger.
-
Slack now waits until incoming events are saved before continuing recovery, so events aren’t lost.
More details
-
Fixes recovery sending an answer again, or warning it was missing, when it had already been delivered.
More details
-
Fixes separate side questions that get the same answer being flagged as duplicate sends.
-
Fixes a failed typing indicator causing an unhandled error.
More details
#175381
0ec56033. Thanks to @cxbasdev, @musatoktas. -
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.
-
Channels that recover now clear their old restart warnings.
More details
#176182. Thanks to @ericcurtin, @iaford.
-
Fixes Discord
/statusand active/steercommands failing when you had saved selections.More details
#177451
47b76891. Thanks to @beru-ant-king, @montrellcruse, @pitbuild.
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.
-
Fixes cleanup of a large dreaming history slowing down Memory reloads.
More details
#169945. Thanks to @stronggenetics.
-
Memory Wiki status is faster for large vaults because it skips summary work it doesn’t need.
More details
#170553. Thanks to @migelizaga-rgb, @obviyus.
-
Doctor now explains why memory indexing stopped when neither your main nor your backup embedding provider works.
-
When automatic compaction fails, you now see the actual problem instead of outdated advice to reset the conversation.
More details
#173310. Thanks to @turbotheturtle.
Skills
-
Skill dependencies can now unpack archives from generic download links, using the file name the server provides.
More details
#141312. Thanks to @hugenshen, @obviyus.
-
New Peekaboo installs now use the maintained Homebrew source.
More details
#166245. Thanks to @holgergruenhagen.
-
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.
-
Fixes generated sandbox skills cluttering your Git changes.
More details
#173560. Thanks to @shakkernerd.
-
Workshop now keeps your original files if both restore and rollback fail.
More details
-
Fixes one folder with unreadable ignore rules stopping other skills from loading. That folder is skipped and the rest load normally.
Native Apps
-
The Mac app now tells you how to update when its bundled worker isn’t compatible.
More details
#157948. Thanks to @pollybot13.
-
Fixes an iPhone Talk crash on the first reply, and improves quiet audio and spoken interruptions in relay conversations.
More details
#168416. Thanks to @masatohoshino, @nathan-85.
-
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.
More details
#169912. Thanks to @solvely-colin.
-
Mac companion commands now respect longer response timeouts you ask for. If an action times out, check whether it happened before trying again.
More details
#172117. Thanks to @colton-harris, @holgergruenhagen, @ylcn91.
-
Node-worker control errors now tell you why they failed.
More details
#174750
1a8dda1e. Thanks to @unknown7751. -
Chats in the macOS, Linux, iOS, and Android apps can now pick up where they left off after reconnecting.
Models and Providers
-
Fixes one provider hitting its quota and a session-storage error then blocking other queued commands.
-
Fixes a successful reply from a CLI-backed model being marked as failed during its final save.
-
Talk now recognizes provider names regardless of capitalization or extra spaces, and keeps the voice you selected.
More details
a4ce73f0. Thanks to @gideonpraise, @romneyda, @shakkernerd. -
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.
More details
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 #164808 #170495. Thanks to @obviyus, @sunnyshu0925, @aleps001, @anyech, @belbix, @tre1d, @vinsew.
-
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.
More details
Device-code sign-in keeps its fifteen-minute polling window. Credential expiration still follows the actual date and time. #162828 #167619. Thanks to @fuller-stack-dev, @sunnyshu0925.
-
Older LM Studio context-limit errors now trigger the automatic compact-and-retry.
More details
#169189. Thanks to @xpeng5278-web.
-
Fixes parallel OpenAI Responses requests over HTTP losing the thinking level you selected.
More 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.
More details
The existing continuation checks the transcript and requires proof that every failed tool never started. It adds no retry allowance. #170615. Thanks to @akushonkamen, @fransqaas, @r3n3x.
-
Windows now waits for local-model shutdown helpers to finish before moving on.
-
Managed Codex startup now keeps on-request approval and allows side questions.
More details
#172639. Thanks to @stevenlee-oai.
-
Fixes Claude CLI sometimes stalling at startup on Windows while handing over stored credentials.
-
Managed DeepSeek sessions through OpenRouter can now recover valid tool requests wrapped in provider markup. Incomplete requests are hidden, not run.
More details
Incomplete requests are hidden rather than executed. #175058
30cd17ff. Thanks to @linux2010, @zhimingq. -
DeepInfra and OpenRouter speech requests now get up to 120 seconds by default instead of 30. Timeouts you set yourself still apply.
More details
Explicit timeout settings still apply. #175614.
-
Fixes incompatible reasoning settings on GMI Cloud GPT tool requests for GPT-5.6, GPT-5.5, and GPT-5.4 mini.
-
You can now find a Claude Code conversation by its exact session ID even when the normal search missed it.
More details
#176742
1f2b99a1. Thanks to @ceo633, @sunlit-deng. -
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.
-
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.
More details
This applies to a non-incognito conversation receiving the specific
turn/starterror-32600 thread not foundfor its bound conversation ID. Recovery requires unchanged session binding and network policy. #178170081fe025#172705. Thanks to @romneyda and @vincentkoc for the backport. -
Codex can now start answering after a context refresh while earlier background work is still finishing.
More details
This requires the same compatible persistent session settings. #178657 #177716. Thanks to @jjjhenriksen.
Automations and Scheduling
-
Local-model automations now alert you after two skipped runs instead of silently staying unavailable. Existing opt-outs still apply.
-
IMAP automations now move on to later mail when one message can’t be read. The unreadable message is kept. See IMAP automations.
More details
The unreadable message is preserved. #173231. Thanks to @pgondhi987.
-
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.
-
A targeted heartbeat now delivers its queued background-task result to the right conversation, even when regular heartbeats are off. See system commands.
More details
With isolated heartbeats, the selected event is read once; unrelated sessions’ queued events stay untouched. #175642. Thanks to @seriouslysean, @sunlit-deng.
-
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.
-
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. -
New scheduled follow-ups can now continue work you already approved in the same conversation. Recreate existing jobs to get this behavior.
More details
A one-time follow-up can schedule its next check through the same job. #176422.
Browser and Computer Use
-
Linux Desktop startup (opt-in) no longer picks a display that a hidden session is already using. See Desktop configuration.
More details
#169392. Thanks to @holgergruenhagen, @obviyus.
-
Fixes fetched JSON changing the digits of long IDs and other large numbers.
More details
#170123. Thanks to @ly85206559, @obviyus.
-
Web search timeout errors now tell you the request’s actual time limit. See web tools.
More details
#170372. Thanks to @letsc4, @xiajiahang.
-
Setup now explains how to turn on Desktop access on the Gateway’s machine. An administrator still has to enable it.
-
Linux camera discovery now reports an unreadable device folder as an error instead of saying you have no cameras.
More details
Plugins and Integrations
-
Fixes cancelling Codex startup leaving a stuck place in the queue that blocked the next attempt.
-
Fixes clock changes cutting short or stretching Codex connection waits and Crabbox and Azure retry and cleanup waits.
More details
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 #168771 #165889. Thanks to @obviyus, @sunnyshu0925, @fuller-stack-dev.
-
Fixes an invalid plugin message replacement wiping the original message. The original is kept and an error is reported.
More details
#161098. Thanks to @aniruddhaadak80, @obviyus, @xydigitlybnnnn.
-
Eligible ACP coding sessions now resume once after a Gateway restart. Finished sessions start fresh.
More details
Recovery requires the same session identity, command, working directory, and backend. Completed sessions start fresh. #166368. Thanks to @alkor2000, @jhgaylor, @obviyus.
-
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.
More details
Distinct data and useful recovery guidance remain available, with the existing result-size limits. #169180. Thanks to @jipeng6036-del, @xilopaint.
-
Logbook now tells you when a missing model is blocking queued work.
More details
#170608. Thanks to @duyufansh2008.
-
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.
More details
Existing review blockers still apply. #171414. Thanks to @asikorskiy, @ericcurtin, @obviyus.
-
MCP sign-in errors now give a safe reason and tell you how to sign in or fix your credentials. See MCP tools.
-
Plugins now warn you when a CLI provider binding is missing. Using the CLI on its own still works. See CLI backend plugins.
-
When some plugins or channels fail to load, you now see the failures, and the alternatives that did load keep working.
-
Plugin removal now postpones cleanup instead of deleting files when it can’t read the marker that protects them.
-
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.
-
OpenShell now keeps your local and remote workspace views when a read fails.
More 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.More details
-
Enabled ACP coding backends can now start without an unused default workspace. Add
acpxto any plugin allowlist that applies, and use an absolute path for custom adapters. -
1Password errors when reading secrets now include useful details, with sensitive values removed.
-
Finished Codex helpers now retry cleaning up leftover status subscriptions after a temporary failure.
More details
Active follow-ups keep their subscriptions. #173547. Thanks to @kimiyu-186.
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.
More details
Source builds use pnpm 12.15.0. #179992. Thanks to @joshavant.
-
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.
More details
#165019. Thanks to @eleqtrizit.
-
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_DIRto it before relying on it. See Doctor’s profile and session checks.More details
This prevents inappropriate legacy-data migration and warnings for the wrong profile. Preserve the original directory. #171439.
-
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.
More details
-
Camera-list tables now strip terminal control characters from camera names, positions, and IDs. Raw JSON output is unchanged.
More details
Raw JSON output is unchanged. #175624. Thanks to @obviyus, @sunnyshu0925.
-
Fixes Incognito history search results including an extra internal field.
More details
This restores the existing search response format.
352f64f2.
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.
More details
This covers bounded waits, notification-capture failures, and polling after clock changes. An invalid wait request keeps the original command available. #128886 #169645 #171570 #173241. Thanks to @benprotzekmuntoni, @potterdigital, @sashankh, @shad0wca7, @vacinc, @davidcittadini, @obviyus, @wangmiao0668000666.
-
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.
More details
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. Thanks to @playhard94, @sxh313.
-
Fixes finished or stopped helper work coming back after a restart with phantom reminders.
More details
This includes failed result delivery, stopped parents, and watched results from shared helpers. #155019 #169453 #169489. Thanks to @assimetria-ai, @ifyouhavethisemail-afk, @itanyplus, @jerryliang122, @linhongyu510, @obviyus, @rozenpl, @waynegault, @freeqaz-openai.
-
/newand/resetnow keep your managed project checkout and working folder, so unfinished files are still there.More details
Idle resets preserve this context too. Plain New Chat in Control UI still leaves the previous worktree through normal cleanup. #160549. Thanks to @vincentkoc.
-
Fixes the assistant missing a background command’s result after you changed settings. See command execution.
More details
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. Thanks to @oldrich333, @romneyda, @wangmiao0668000666.
-
Shell completion now finds global flags after subcommands. Regenerate your saved completions with
openclaw completion --write-state.More details
#171571. Thanks to @obviyus, @zhangguiping-xydt.
-
Fixes paged file reads dropping blank lines.
More details
-
When command output is shortened, the end of it, where the error usually is, is now kept.
More details
#174030. Thanks to @vincentkoc.
-
Invalid tool arguments are now labeled as failures instead of policy blocks. Real policy denials still show as blocked.
More details
Actual policy denials still appear as blocked. #176104. Thanks to @bgreezy, @yinx65588-boop.
-
/btw,/side, and/loopnow keep multiline input. Loop names stay on one line.More details
This covers
/btw,/side, and/loop; loop names remain on one line. #176293. Thanks to @goutamadwant, @yetval. -
Fixes an automatic retry repeating its continuation instruction after a conversation was compacted.
More details
Other Bug Fixes
-
Fixes a successful database save looking like it failed when writing its warning failed.
More details
If the database save itself fails, its original error is preserved. #157151. Thanks to @vincentkoc.
-
Fixes request, remote-worker, and file-transfer waits ending early or running over after clock changes.
More details
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 #171977 #172256 #172780 #173142. Thanks to @obviyus, @sunnyshu0925.
-
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.More details
Enable it with
agents.defaults.compaction.midTurnPrecheck.enabled=true; it remains off by default. #172019. Thanks to @mirasrael, @obviyus. -
Tool calls that time out now stay clearly marked as blocked, and their completed results and attachments are kept.
More details
#172983. Thanks to @budzation.
-
DNS tools no longer change zones they can’t read.
-
Fixes very large file edits crashing with a too-many-arguments error.
-
Fixes an optional diagnostic file failing to write ending the whole session. You now get a single warning.
More details
#174622
6c759cbc. Thanks to @aniruddhaadak80, @jamie8johnson. -
API clients can now get a saved session’s available commands without waiting for model information they didn’t ask for.
More details
For
chat.metadatarequests withincludeModels: false, the unused wait for worker-placement information is skipped. Full/default metadata requests keep their existing preparation. #175606. Thanks to @vincentkoc. -
Fixes playback-cache errors leading to extra cache entries being deleted. Repair the filesystem problem before retrying cache maintenance.
More details
A new rendition may remain after an error. Repair the filesystem problem before retrying cache maintenance. #175634.
-
Cloning a managed project no longer overwrites an existing folder it can’t inspect. It only clones when the folder doesn’t exist.
More details
Cloning proceeds only when the destination is missing. #175952.
-
Fixes service commands reporting they were ready when their startup input couldn’t be prepared. You now get a startup error.
More 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.
More details
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 #176603
56827d40. Thanks to @hannnnn-l. -
Fixes the process tool reporting success when writing input to a terminal process actually failed.
More details
-
openclaw gateway suspend --jsonnow always prints valid JSON, even when the Gateway is busy.More details
It returns one JSON object and exits with status 1 in that case. #176795
77dab748#178657. Thanks to @vincentkoc. -
Fixes the first native-worker turn failing before the model started. It now waits for its session to attach.