Guide

OpenClaw v2026.5.20: Tasks, recovery notes

May 21, 20264 min readUpdated September 11, 2026By OpenClawBlog Team

v2026.5.20 is easiest to understand through failure. The official record describes a provider, model, voice, or context change; the sections below spell out what to save, what to interrupt, and what must remain available afterward.

Stable status describes the release line, not every local provider or channel. Check the version-specific notes before upgrading. Treat the version as one input to the decision. Local credentials, enabled plugins, channels, and host support still need their own evidence.

Channel
Stable

Primary signals
Exec approvals; Discord; Discord/voice

Publication date
2026-05-21

Failure and recovery path

Exec approvals

What changed. remove the old cat SKILL.md && printf ... && <skill-wrapper> allowlist compatibility path so skill files must be loaded with the read tool and only the real skill executable is auto-allowed.

Check it with. Treat Exec approvals as a boundary change. Exercise one permitted request and one refused request with a test identity, then keep both decisions in the log.

Discord

What changed. let voice sessions follow configured Discord users into voice channels, with allowed-channel checks, multi-user handoff, bounded reconciliation, and DAVE recovery preservation.

Check it with. Discord lives at the handoff between the Gateway and a conversation. Send one harmless message, reconnect once, and compare the account, thread, sender, and final transcript.

Discord/voice

What changed. include bounded IDENTITY.md, USER.md, and SOUL.md profile context in realtime voice session instructions by default, with voice.realtime.bootstrapContextFiles: [] available to disable it.

Check it with. Discord/voice lives at the handoff between the Gateway and a conversation. Send one harmless message, reconnect once, and compare the account, thread, sender, and final transcript.

CLI/tasks

What changed. include stale-running task maintenance decisions in openclaw tasks maintenance --json so retained and reconcile candidates explain backing-session, cron, CLI, and wedged-subagent state.

Check it with. The acceptance test for CLI/tasks is idempotence under interruption: start once, stop the transport, resume, and compare the final record with the original request.

The limits of the recovery promise

Codex app-server

keep system-prompt reports working when bootstrap hooks provide workspace files with only a path and content, so hook-supplied SOUL/IDENTITY/TOOLS/USER context still reports injected characters correctly.

A catalog label for Codex app-server is only the first signal. Confirm the account, endpoint, context limit, and tool policy that the running Gateway actually selected.

Run the smallest useful rehearsal

  1. Write down the baseline for Exec approvals, including the installed version, host, provider, and workspace.
  2. Confirm what can be restored, then take a verified backup before applying the candidate package.
  3. Exercise the affected channel with synthetic text and note the thread, sender, reaction, or attachment id that comes back.
  4. Restart or reconnect the Gateway, then check for one intended reply rather than a duplicate, missing, or misrouted message.
  5. Keep the experiment bounded; an unexpected result belongs in the release record before any wider rollout.
openclaw --version
openclaw gateway status
openclaw security audit

Leave a usable maintenance note

Save the command, output, source link, and environment used for this check. Future operators should be able to tell whether a difference belongs to the release or to local provider, channel, or platform state.

Fix details to carry forward

CLI/tasks. include stale-running task maintenance decisions in openclaw tasks maintenance --json so retained and reconcile candidates explain backing-session, cron, CLI, and wedged-subagent state. This is the edge case to include in a regression check, especially when the release is pre-release.

Codex app-server. keep system-prompt reports working when bootstrap hooks provide workspace files with only a path and content, so hook-supplied SOUL/IDENTITY/TOOLS/USER context still reports injected characters correctly. Treat the fix as a boundary condition and retain the source wording beside your local result.

Keep the full v2026.5.20 notes with your test result. Read the official release index for neighboring versions and the model provider reference for configuration limits.

Reference Trail

Sources and further reading

  1. full v2026.5.20 notesgithub.com
  2. official release indexgithub.com
  3. model provider referencedocs.openclaw.ai
Back to ArchiveMore: GuidesNext: OpenClaw v2026.5.20-beta.2: Discord, operator field notes