OpenClaw v2026.5.10-beta.3 Release Summary
OpenClaw v2026.5.10-beta.3 Release Summary
Key Changes
Plugin SDK & Workflow Orchestration
OpenClaw has significantly expanded its Plugin SDK to support complex, host-mediated workflows. The core of this update is the introduction of session actions, allowing plugins to register typed actions that can be invoked through the host with enforced operator scopes.
Additional workflow capabilities include:
- Scheduled Session Turns: Plugins can now schedule future agent turns through the host's cron-compatible scheduler.
- Host-Mediated Attachments: Plugins can send session-bound attachments via the host's outbound delivery pipeline.
- Finalize Retry Support: Plugins can now request bounded retries before a reply is finalized, enabling a "repair" phase for agent responses.
- Runtime Context Helpers: Enhanced support for scoped background execution references, ensuring active process sessions survive context compaction.
Channel Integrations
Slack
- Enhanced Interaction: Interactive reply buttons and select menus now reliably wake the resolved session, ensuring conversations continue visibly after a user click.
- Formatting Hints: Agents now receive
mrkdwnformatting guidance in their system prompts to prevent incorrect Markdown rendering in Slack. - Routing & Scoping: Added
replyBroadcastsupport for thread replies to be posted to the parent channel. Direct Message (DM) routing now respectsdmScopeto prevent contamination of the global main-session route. - Media Handling: Fixed a critical issue where DM file attachments were silently dropped by implementing a fallback to
files.infofor fresh download URLs.
Telegram
- Context Visualization: Introduced the
/context mapcommand, which generates a WinDirStat-style treemap image of current session context contributors. - Streaming Improvements: Partial draft streaming now coalesces delta-shaped fragments, preserving the 30-character first-preview debounce while ensuring previews are created for token-sized fragments.
- UX Fixes: Fixed a bug where no-response DM turns synthesized visible "silent-reply" chatter. Model selection menus now show full provider/model labels for nested OpenRouter IDs.
iMessage & Feishu
- iMessage: Threaded replies now support attachments via the
imsg send-rich --filecapability (feature-gated by the installedimsgbuild). Added WARN logs when the private API bridge is unavailable to prevent silent outbound drops. - Feishu: Fixed an issue where
message(action="send")replies ingroup_topicsessions were posted to the group root instead of inside the topic thread.
Model & Provider Updates
- Codex App-Server: Improved stability by normalizing thread responses (cross-filling
idandsessionId) before schema validation. Native tools (bash, web, etc.) now emit diagnostic events to prevent the watchdog from aborting long-running native tasks as stale embedded runs. - OpenAI-Compatible Models: Added
compat.strictMessageKeysto strip replay messages toroleandcontentfor strict providers. Fixed an issue where reasoning fields in Chat Completions history caused stalls in follow-up turns. - GitHub Copilot: Fixed a token integration identity mismatch by ensuring the
vscode-chatidentity is used during both token exchange and runtime requests, unblocking image-capable models. - Ollama: Optimized local large-context models by preventing the automatic copying of catalog
contextWindowintooptions.num_ctxunless explicitly configured.
Core System & CLI
- Build System: Upgraded the workspace to pnpm 11 and enabled stricter Vitest lint rules and TypeScript compiler checks.
- CLI UX: Improved onboarding and channel command wayfinding. The
config setandconfig patchcommands now persist explicit values even if they match runtime defaults, preventing silent data loss. - Security: Hardened the Gateway by redacting sensitive WhatsApp/libsignal session material from foreground console logs and sandboxing security audit tests under temporary directories.
Impact
This release primarily impacts plugin developers and power users of Slack, Telegram, and Codex. The expanded Plugin SDK allows for the creation of sophisticated "guardrail" or "concierge" plugins (e.g., budget guards, SLA watchers, and deployment approvers). Slack and Telegram users will experience more reliable interactions and better visual feedback. For those using Codex, the reduction in validation errors and improved watchdog behavior will lead to significantly fewer aborted turns during complex coding tasks.
Upgrade Guide
Breaking Changes & Migration
While this release is largely additive, users should note the following:
- pnpm Upgrade: This release moves to pnpm 11. If you are running from source, you must upgrade your pnpm installation (
corepack enable pnpmornpm install -g pnpm@11). - iMessage Bridge: If you experience silent drops in iMessage, check the logs for the new
[imessage]WARN signal and runimsg launchto re-inject the private API bridge. - Custom Providers: Users of Custom Providers who previously encountered infinite compaction loops during onboarding will find their
contextWindowautomatically healed to a safer default (128k) upon re-onboarding, provided they haven't set an explicit smaller limit.
Sources
- Releasev2026.5.10-beta.3 — openclaw 2026.5.10-beta.3
- PRfix(slack): forward agent identity to draft stream initial message
- PRfix(slack): retain channel history when requireMention is false
- PRfeat(slack): add allowBots "mentions" mode (parity with Discord)
- PRCron: honor server_error retries
- PRfix(slack): fetch fresh download URL via files.info for DM file attachments
- PRfix(slack): add mrkdwn formatting hints to messageToolHints
- PRfix(delivery): track and log silent delivery failures
- PRfix(slack): include API error details in log messages
- PRfix(agents): replace blank tool names with sentinel to prevent dispatch loops
- PRfeat(delivery): surface deliveryStatus in --json output
- PRfeat(slack): add replyBroadcast parameter for thread reply channel broadcast
- PRfix(gateway): restore runtime-postbuild sync in watch mode
- PRfix(gateway): reject malformed session kill paths
- PRfix(telegram): show full provider/model label for nested OpenRouter ids
- PRfix(slack): respect dmScope when updating main session route for DMs
- PRfix(slack): honor configured ACP bindings
- PR[plugin sdk] Consolidate workflow seams and fixtures
- PRfix(slack): make download-file fileId requirement self-evident to LLMs
- PR[Feat] Add upload archive install RPC
- PRfix(doctor): don't flag the live compatibility agent dir as orphan
- PRfix(moonshot): accept moonshotai/<model> as direct-API alias
- PRfix(ui): prevent webchat sends into isolated heartbeat sessions
- PR[plugin sdk] Add session action gateway protocol
- PRfix(slack): harden thread continuation gating
- PRfix(gateway): redact fast-path console logs
- PRfix(exec-approvals): lazy-load command explainer
- PRfix(feishu): keep group_topic message-tool replies inside the topic
- PRfix(tasks): route group acp completions through parent
- PRfix(browser): extend existing-session status probe
- PRfix(telegram): keep no-response DM turns quiet (no silent-reply rewrite)
- PRFix agent model override gateway scope
- PREnable realtime Talk instructions config
- PR[AI-assisted] fix(whatsapp): delta repeated tool preambles
- PRfix(agents): preserve active exec references across compaction
- PRbuild(pnpm): upgrade workspace to pnpm 11
- PRfix(whatsapp): pass routing ctx to transcribeFirstAudio so echoTranscript can deliver (#79778)
- PRfix: handle Telegram select callbacks safely
- PRfix(slack): wake interactive reply sessions
- PRfix(imessage): wire reply attachments through send-rich --file (with feature gate)
- PRAdd /context map treemap
- PRtest: sandbox audit-exec-surface under HOME tempdir
- PRfix(onboard): custom provider context window vs compaction floor (#79428)
- PR[codex] Map ACP thinking to advertised effort key
- PRfix(agents): surface exec failures after claimed success
- PRfix(telegram): preserve debounce for partial draft fragments
- PRFix Copilot token integration identity
- PRfix(config): persist explicit default values
- PRfix(cli): return null for unknown non-plugin commands instead of suggesting plugins.allow
- PRfix(doctor): invalidate persisted plugin registry when a diagnostic source path no longer exists
- PRfix(codex): mark native tools active for diagnostics
- PRfix(whatsapp): downgrade recovered watchdog disconnects
- PRfix(imessage): WARN-log when private API bridge is unavailable
- PRfix(codex): normalize thread id/sessionId cross-fill before schema validation
- PR[Fix] Wait for Pi abort settle before cleanup