Deep Dive into OpenClaw 2026.4.2: Configuration Migration, Task Orchestration, and Security Hardening
Core Question: What exactly changed in OpenClaw version 2026.4.2, and how do these changes impact existing deployments and daily operations?
OpenClaw 2026.4.2 is a substantial release that delivers two breaking changes, several core feature enhancements, and over fifty targeted bug fixes. The overarching themes of this release can be distilled into three main pillars: the complete decoupling of plugin configurations from the core, the restoration and hardening of background task orchestration, and a systematic tightening of transport and execution security boundaries. If you are currently running an older version and rely on xAI search or Firecrawl web fetching, upgrading without executing the configuration migration will silently break those specific capabilities. For teams utilizing Task Flows for background automation, this version restores the previously removed substrate and introduces critical operational primitives like sub-task cancellation and state inspection. On the security front, the sheer volume of fixes targeting TLS, proxy routing, environment variable injection, and path traversal indicates a deliberate architectural effort to lock down the runtime perimeter.
Below is a detailed, module-by-module breakdown of what you need to know.
Breaking Changes: Plugin Configuration Path Migration
Core Question: Why do xAI search and Firecrawl web fetching suddenly stop working after upgrading to 2026.4.2?
They stop working because this version enforces a strict architectural boundary between the core system and its plugins. Both breaking changes accomplish the exact same goal: moving plugin-specific parameters out of the core configuration namespace and into the plugin’s own namespace. This is not merely a renaming exercise; it is a fundamental shift in how configurations are scoped and managed.
1.1 xAI Plugin: x_search Configuration Migration
Previously, the configuration for xAI’s search functionality lived under the core path tools.web.x_search.*, with authentication scattered across non-standard locations. OpenClaw 2026.4.2 moves these settings to a dedicated plugin namespace:
-
Configuration Path: plugins.entries.xai.config.xSearch.* -
Authentication Field: plugins.entries.xai.config.webSearch.apiKey(mapped to theXAI_API_KEYenvironment variable).
Scenario: Imagine your operations team uses OpenClaw to trigger xAI’s web search to monitor competitor news. In the old version, a setting like tools.web.x_search.enabled: true worked perfectly. After upgrading to 2026.4.2, the core system simply ignores this legacy path. The search tool becomes silently unavailable without throwing an error. This is arguably more dangerous than a hard crash, as your team might assume the automated monitoring is still functioning while it is actually doing nothing.
To resolve this, you must run the automated migration tool:
openclaw doctor --fix
This command inspects your configuration files for legacy paths, moves the values to the new plugin-owned paths, and cleans up the remnants. Always back up your configuration files before running this command.
1.2 Firecrawl Plugin: web_fetch Configuration Migration
The Firecrawl migration follows an identical pattern. The web_fetch configuration shifts from tools.web.fetch.firecrawl.* to plugins.entries.firecrawl.config.webFetch.*.
Beyond the path change, there is an important architectural shift in how the fallback logic operates. Previously, if Firecrawl was configured, the web_fetch fallback took a hardcoded path directly to Firecrawl. In 2026.4.2, the fallback is routed through a new “fetch-provider boundary.” This decoupling means the system can now support multiple fetching backends共存, rather than being rigidly tied to a single Firecrawl branch.
Scenario: You have an automated pipeline that uses Firecrawl to scrape structured data from target websites for AI processing. After the migration, if your Firecrawl instance becomes temporarily unavailable, the system will use the new provider boundary logic to attempt other configured fetch methods, rather than throwing a hard failure.
The migration is handled by the same command:
openclaw doctor --fix
Migration Path Reference Table:
| Feature | Legacy Configuration Path | New Plugin Path | Authentication Method |
|---|---|---|---|
| xAI Search | tools.web.x_search.* |
plugins.entries.xai.config.xSearch.* |
XAI_API_KEY or plugins.entries.xai.config.webSearch.apiKey |
| Firecrawl Fetch | tools.web.fetch.firecrawl.* |
plugins.entries.firecrawl.config.webFetch.* |
Uses in-plugin configuration |
Author Reflection: This “core slimming, plugin autonomy” migration direction is architecturally sound. In the early stages of many open-source projects, plugin parameters are often stuffed into the core configuration to lower the barrier to entry. In the short term, this works. In the long term, as the plugin ecosystem grows, the core configuration file becomes an unmaintainable monolith that no one dares to touch. The pain of requiring a migration script during an upgrade is real, but the long-term payoff—a system where the core only handles routing and lifecycle while plugins own their state—is absolutely worth it.
Task Flow: The Return of Background Orchestration
Core Question: What specific operational capabilities does the Task Flow restoration in OpenClaw 2026.4.2 bring to production environments?
Task Flow is OpenClaw’s foundational layer for orchestrating long-running background tasks. In previous iterations, this底层 substrate was removed, leaving upper-level orchestration layers unable to persist their state. Version 2026.4.2 restores this base layer and introduces several features that directly impact how you operate and monitor background workloads.
2.1 Managed and Mirrored Sync Modes
With the core Task Flow substrate restored, the system now supports two distinct synchronization modes:
-
Managed Mode: The Flow’s state is entirely managed and persisted by OpenClaw itself, completely decoupled from the plugin authoring layer. -
Mirrored Mode: The Flow’s state is mirrored from an external source, which is ideal for environments where OpenClaw must align with an external orchestration system.
Crucially, this restoration introduces durable flow state and revision tracking. This means that if the gateway process restarts, a running Task Flow does not start from scratch; it recovers to the correct state node based on its revision history.
Scenario: You maintain a nightly data analysis pipeline orchestrated by Task Flow, consisting of multiple sub-tasks (data extraction, cleaning, report generation, distribution). Under managed mode, if the gateway restarts at 2:00 AM for a system update, the pipeline will not restart from step one upon recovery. Instead, it reads the revision log and resumes from the exact step that was interrupted.
To inspect and recover flows, use the following primitives:
openclaw flows # Inspect all Task Flow states
openclaw flows recover <flow-id> # Recover an abnormally interrupted Flow
2.2 Managed Child Task Spawning and Sticky Cancel Intent
This version adds the ability for Task Flows to dynamically spawn managed child tasks. This is paired with a “sticky cancel intent” mechanism.
When an external orchestrator sends a cancel signal, the system immediately stops scheduling new child tasks. However, it does not violently terminate currently executing children. Instead, it waits for active children to finish naturally, and then settles the parent Flow’s state to cancelled.
Scenario: Your Task Flow is parallelizing web scraping across 5 different domains. Three have completed. You realize the data from domain 4 is flawed and decide to cancel the entire Flow. With sticky cancel intent, the system immediately halts the launch of domain 5. It waits for domain 4’s active scrape to conclude gracefully, and then marks the entire Flow as cancelled. This prevents zombie processes, partial data corruption, or dangling network connections that often accompany hard kills.
2.3 Plugin-Bound Task Flow API
Through the new api.runtime.taskFlow interface, trusted plugins and authoring layers can create and drive managed Task Flows without explicitly passing owner identifiers on every single call. The OpenClaw host context automatically resolves and binds the ownership.
Scenario: You develop a custom reporting plugin that needs to spin up a Task Flow every morning at 8:00 AM. Using api.runtime.taskFlow, the plugin can securely create the Flow without knowing the current user’s owner ID. The context is already bound by the host, significantly reducing the integration complexity for plugin developers.
Author Reflection: The “recovery” aspect of Task Flow is far more noteworthy than the “creation” aspect. Many systems handle long-running task persistence poorly—they either don’t persist at all (restart means loss) or they persist but have buggy recovery logic (resuming in a corrupted state). Introducing revision tracking is the right move, but the true test lies in edge cases. What happens if a sub-task partially completes when the gateway crashes? What if a cancel signal arrives milliseconds before a restart? These are the scenarios that will ultimately prove the robustness of this implementation.
Multi-Channel Enhancements: Feishu, Matrix, WhatsApp, Slack, and Beyond
Core Question: What real-world user experience issues were resolved across the various messaging channels in this release?
This release features a broad spectrum of channel-level modifications, with nearly every major integration receiving substantive fixes or feature additions that directly impact end-user interactions.
3.1 Feishu: Document Comment Collaboration Workflows
A dedicated Drive comment-event flow has been added, providing:
-
Comment-thread context resolution -
In-thread replies -
feishu_drivecomment actions designed specifically for document collaboration workflows
Additionally, hardening has been applied to document comment-thread delivery: whole-document comments correctly fall back to add_comment, delayed reply lookups retry more reliably, and user-facing replies no longer leak reasoning or planning spillover.
Scenario: Your team is collaboratively drafting a technical specification in a Feishu document. A colleague leaves a comment on a specific paragraph: “@OpenClaw, summarize this section.” In previous versions, OpenClaw might have responded in the main chat window, stripped of context. Now, it receives the comment event, resolves the surrounding document context, and replies directly within the comment thread. Furthermore, the internal “thinking” steps the model takes to generate the summary are no longer accidentally pasted into the visible reply.
3.2 Matrix: Reliable Mentions and Streaming Previews
The Matrix channel now emits spec-compliant m.mentions metadata across text sends, media captions, edits, poll fallback text, and action-driven edits. This ensures that @-mentions trigger reliable notifications in clients like Element.
Scenario: You are in a Matrix room and type “@OpenClaw what is the status of the deployment?” Previously, the missing m.mentions payload meant Element might not push a notification to your device, causing you to miss the reply. This is now fixed.
For streaming output, when channels.matrix.blockStreaming is enabled, the current assistant message block shows a live partial preview, while completed blocks are preserved as separate messages. This prevents the confusing experience of all text being crammed into a single, constantly-editing message block.
3.3 WhatsApp: Push Notification Restoration and Media Flexibility
A critical fix resolves an issue where running the gateway in self-chat mode caused the loss of all push notifications on the user’s personal phone. The root cause was the failure to send an unavailable presence status upon connect. The gateway now correctly declares itself unavailable, ensuring the phone continues receiving push notifications normally.
For media handling, HTML, XML, and CSS have been added to the MIME map. Unknown media types now fall back gracefully instead of causing the attachment to be silently dropped.
Scenario: You use your personal WhatsApp number connected to OpenClaw as a private AI assistant. Before this fix, the moment you started the gateway daemon, your phone went silent for all other WhatsApp messages. This was a severe daily usability bug that is now resolved.
3.4 Slack: Formatting and Thread Context
Built-in Slack mrkdwn formatting guidance is now injected into the inbound context. Previously, OpenClaw’s replies relied on generic Markdown, which rendered poorly in Slack (e.g., incorrect link syntax, broken bold formatting).
Scenario: You ask OpenClaw a coding question in a Slack channel. It replies with code blocks and hyperlinks. In the old version, you might see raw Markdown syntax like [link](url) instead of a clickable Slack link. The formatting is now native.
Thread context filtering has also been fixed to ensure that thread starters and history are filtered by the effective conversation allowlist without accidentally dropping valid open-room, direct message (DM), or group DM context.
3.5 MS Teams: Long Reply Deduplication
A fix addresses content duplication when streaming replies exceed the 4000-character streaming limit. Previously, when streaming was truncated and the system fell back to delivering the full block, text that had already been streamed was sent again, resulting in users seeing duplicated content.
Scenario: You ask OpenClaw to generate a comprehensive technical architecture document in Teams. The response exceeds 4000 characters. In the old version, you would see a partial stream, followed by a second message containing the entire text (including the part you already read). Now, the fallback delivery only contains the missing remainder.
3.6 Other Channel Improvements
| Channel | Key Modification |
|---|---|
| Mattermost | Status probes are routed through the SSRF guard and honor allowPrivateNetwork, ensuring safe connectivity checks for self-hosted deployments. |
| Zalo | Webhook replay deduplication keys are now scoped by chat and sender, preventing message ID collisions across different conversations. |
| QQ Bot | Local file paths are strictly restricted to the QQ Bot media storage root, blocking path traversal attacks and reducing path leakage in logs. |
| Telegram | Approval callback payloads are rewritten from allow-always to always to fit Telegram’s strict callback_data length limits, keeping the button visible. |
| Android | Assistant-role entrypoints and Google Assistant App Actions metadata are added, allowing OpenClaw to be launched via voice triggers. |
Provider Transport Layer: Centralization and Security Hardening
Core Question: What categories of reliability and security issues does the centralized provider transport refactor actually solve?**
A significant portion of this release consists of transport-layer fixes driven by a single architectural goal: centralization. Previously, authentication, proxy configuration, TLS settings, and header injection logic were scattered across individual request paths (HTTP, streaming, WebSocket). This fragmentation led to inconsistent behaviors. Version 2026.4.2 consolidates these into shared paths.
4.1 Unified Transport Policy
The following elements are now handled by a single, shared transport path:
-
Request authentication -
Proxy routing -
TLS settings (with strict separation between proxy-hop TLS and target mutual TLS) -
Header construction
Additionally, insecure TLS and runtime transport overrides are now explicitly blocked, ensuring that proxy-hop TLS and target mTLS configurations cannot interfere with one another.
Scenario: You access an OpenAI-compatible API through a corporate proxy that uses a self-signed certificate. In older versions, the TLS handling might differ between a standard HTTP request and a WebSocket streaming request—one might work while the other throws a certificate error. With centralization, all paths utilize the exact same TLS policy, making behavior predictable and debuggable.
4.2 Provider-Specific Routing Fixes
| Provider | Fix Details |
|---|---|
| GitHub Copilot | Native Copilot API hosts are classified in the shared endpoint resolver. Token-derived proxy endpoint parsing is hardened, and malformed hints fail closed. |
| OpenAI-Compatible | Native vs. proxy request policies are unified. Hidden attribution and OpenAI-family defaults (like special headers) now only apply to verified native endpoints. |
| Anthropic | Native vs. proxy endpoint classification is centralized. service_tier handling only applies to native endpoints, preventing spoofed or proxied hosts from inheriting native Anthropic defaults. |
| Streaming Headers | Default and attribution header merging is unified across OpenAI WebSocket, embedded-runner, and proxy stream paths. |
| Media HTTP | Base URL normalization, default auth/header injection, and header override handling are unified across OpenAI-compatible audio, Deepgram audio, Gemini media/image, and Moonshot video paths. |
Scenario: You route requests to a third-party, OpenAI-compatible large language model via a custom base URL. In previous versions, the system might mistakenly inject native OpenAI attribution headers intended only for api.openai.com. The third-party provider would then reject the request or behave unpredictably. Now, special headers are strictly gated to verified native endpoints only.
4.3 Image Generation Provider Security
Image generation requests (OpenAI, MiniMax, fal) are now routed through the shared provider HTTP transport path, aligning them with standard security boundaries.
Two critical security fixes accompany this:
-
The system no longer infers private-network access privileges from configured base URLs, closing a potential SSRF bypass vector. -
Shared HTTP error-body reads are capped, preventing hostile or misconfigured endpoints from causing unbounded memory buffering or relaxing SSRF policies.
Author Reflection: Centralizing the transport layer looks like unglamorous internal plumbing, but it solves a notoriously difficult class of problems: behavioral divergence. When a system has N providers multiplied by M transport methods, and each path implements its own auth and header logic, you inherently have N×M potential points of failure. Collapsing this into a shared path reduces the maintenance surface to a single, auditable pipeline. Users never see this work directly, but it is the foundation that prevents those inexplicable “it works for REST but fails for streaming” bugs.
Execution Security: Plugging Attack Vectors from Environment Variables to Path Traversal
Core Question: What specific attack surfaces has OpenClaw 2026.4.2 closed off in the execution layer?**
This release dedicates an extensive number of fixes to exec (command execution) security, spanning environment variable injection, path traversal, approval configuration pollution, and timing attacks. These fixes indicate a systematic effort to lock down the runtime perimeter against malicious inputs.
5.1 Environment Variable Injection Blockades
Two fixes directly target scenarios where an attacker (or a misguided LLM) might attempt to manipulate the runtime via environment variables:
-
Exec Environment Override Blockade: The system now blocks request-scoped exec from overriding critical environment variables, including package roots, language runtime paths, compiler include paths, and credential/config locations. This prevents a user from setting variables like PATH,PYTHONPATH, orNODE_PATHto redirect trusted toolchains. -
Dotenv Workspace Override Blockade: Workspace-level .envfiles are now blocked from overridingOPENCLAW_PINNED_PYTHONandOPENCLAW_PINNED_WRITE_PYTHON. This prevents repository-local environment injection from redirecting trusted helper interpreters.
Scenario: You expose OpenClaw’s exec capability to external users. An attacker attempts to execute a command but prepends it with PYTHONPATH=/tmp/malicious_modules. In 2026.4.2, this environment override is silently rejected. Similarly, if an attacker commits a .env file to a repository setting OPENCLAW_PINNED_PYTHON=/tmp/backdoor_interpreter, that value is ignored by the runtime.
5.2 Path Traversal Protections
The QQ Bot plugin now strictly constrains local file paths to the QQ Bot’s owned media storage root. Directory traversal attempts (e.g., ../../etc/passwd) are blocked, path leakage in logs is reduced, and inline image data URLs remain functional.
For the image tool, relative local media paths are now resolved against the agent’s workspaceDir instead of process.cwd(). This ensures inputs like inbox/receipt.png reliably pass local-path allowlist checks.
Scenario: An agent needs to process a receipt image uploaded by a user to the workspace inbox directory. Historically, if the process’s current working directory differed from the workspace directory, the allowlist validation would fail, denying access to a perfectly legitimate file. Resolving against workspaceDir makes path validation deterministic.
5.3 Execution Approval Configuration Hardening
Several fixes address the integrity of the exec-approvals system:
-
Invalid security,ask, andaskFallbackenum values inexec-approvals.jsonare stripped during normalization. They now cleanly fall back to documented defaults instead of corrupting runtime policy resolution. -
The openclaw doctorcommand reports host policy sources from the real approvals file path and ignores malformed host override values when diagnosing conflicts. -
Setting tools.exec.host=autois now treated strictly as a routing directive. It will not allow per-call host overrides that bypass a configured sandbox or host target. -
Windows exec restores allowlist enforcement with quote-aware argPatternmatching.
Scenario: An administrator manually edits exec-approvals.json and accidentally types security: "maybe". In older versions, this malformed enum could propagate into the runtime policy engine, causing unpredictable permission behaviors. Now, it is silently discarded in favor of the safe default.
5.4 Webhook Secret Comparison and SSRF
-
Webhook handlers across BlueBubbles, Feishu, Mattermost, Telegram, Twilio, and Zalo have been unified to use a shared safeEqualSecrethelper for timing-safe string comparison, mitigating timing-based side-channel attacks. -
BlueBubbles now rejects empty authentication tokens. -
Mattermost status probes are routed through the SSRF guard, respecting allowPrivateNetwork. -
Image generation providers no longer infer private-network access from base URLs.
5.5 OpenShell Mirror and Gateway Session Security
The remoteWorkspaceDir and remoteAgentWorkspaceDir are now constrained to the managed /sandbox and /agent roots. Mirror sync can no longer overwrite or remove user-added shell roots during configuration synchronization.
For gateway session termination, HTTP operator scopes are now enforced, and authorization is gated before session lookup. This prevents unauthenticated callers from probing the system to determine if a specific session ID exists.
Author Reflection: This batch of security fixes reveals a maturation process. OpenClaw is transitioning from a system that “runs successfully” to one that “can be safely exposed to untrusted inputs.” Environment variable injection, path traversal, and timing attacks are not theoretical threats; they are standard vectors in real-world exploits. The decision to lock down
OPENCLAW_PINNED_PYTHONagainst dotenv overrides, in particular, shows that the developers are thinking critically about the threat model: if an LLM is tricked into executing code in a cloned repository, what is the absolute minimum it should be allowed to modify?
Agent and Runtime Improvements
Core Question: Which agent-level changes in 2026.4.2 directly impact the daily end-user experience?**
6.1 Context Compaction Model Consistency
Previously, the agents.defaults.compaction.model configuration was resolved inconsistently between manual /compact commands and other context-engine compaction paths. Engine-owned compaction now consistently uses the configured override model across all runtime entrypoints.
Scenario: You configure compaction.model: gpt-4o-mini to reduce the cost of context window compression. Previously, when you manually typed /compact, the system might have ignored this setting and used your default, expensive primary model (e.g., gpt-4o). The behavior is now uniform, ensuring predictable costs.
6.2 Opt-in Compaction Notifications
A new configuration option, agents.defaults.compaction.notifyUser, controls the 🧹 Compacting context... start notice. Previously, this notice was always shown. It is now opt-in.
Scenario: In automated pipelines or high-volume bot interactions, the compaction notice clutters logs and breaks the flow of conversation. Setting this to false allows compaction to happen silently in the background.
6.3 Output Sanitization: Preventing Internal Tag Leakage
Namespaced antml:thinking blocks are now reliably stripped from user-visible text. This prevents Anthropic-style internal monologue tags from leaking into the final reply.
Scenario: When using an Anthropic model, the agent’s internal reasoning process (wrapped in <antml:thinking>...</antml:thinking> tags) would occasionally be rendered directly to the user, exposing raw prompt logic and internal deliberations. This sanitization ensures only the final, polished response reaches the user.
6.4 The before_agent_reply Hook
Plugins can now use the before_agent_reply hook to short-circuit the LLM entirely by returning a synthetic reply after performing inline actions.
Scenario: You write a plugin that handles a specific /status command. Instead of sending this command to an expensive LLM, the plugin intercepts it via before_agent_reply, reads the system status directly, and returns the formatted string. This saves token costs and drastically reduces response latency.
6.5 Execution Default Value Changes
Gateway and node host exec now default to YOLO mode by requesting security=full with ask=off. Host approval-file fallbacks and documentation have been aligned with this no-prompt default.
Scenario: During local development, you frequently ask the agent to run shell commands. Previously, every command triggered an approval prompt, disrupting your workflow. The new default allows immediate execution. Note: For production environments, you must explicitly configure stricter security policies to override this permissive default.
6.6 Kimi Coding Tool Payload Compatibility
Anthropic tool payloads are now normalized into the OpenAI-compatible function shape that Kimi Coding expects. This resolves an issue where tool calls would fail due to missing required arguments.
Scenario: You use Kimi Coding as your provider backend, but your tool definitions are authored in the Anthropic format. Previously, the format mismatch meant the provider would reject calls for lacking required parameters. The automatic normalization bridges this gap seamlessly.
Other Critical Maintenance and Reliability Fixes
Core Question: Which easily overlooked fixes in 2026.4.2 prevent common operational headaches?**
7.1 Gateway Loopback Restoration
A critical fix restores legacy-role fallback for empty paired-device token maps and allows silent local role upgrades. This resolves an issue introduced after version 2026.3.31 where local exec and node clients failed with “pairing required” errors. Additionally, admin-only subagent gateway calls are pinned to operator.admin while keeping agent at least privilege, fixing sessions_spawn failures caused by loopback scope-upgrade pairing (close(1008) "pairing required").
7.2 ACP Gateway Reconnects
ACP prompts are now kept alive across transient WebSocket drops, but the system still fails boundedly if reconnect recovery does not complete. Furthermore, stale pre-ack ACP prompts are rejected after the reconnect grace period expires, preventing callers from hanging indefinitely when the gateway never confirms the run.
7.3 Plugin Installation JSON5 Support
The openclaw.plugin.json manifest now accepts JSON5 syntax during installation and validation. This means third-party plugins utilizing trailing commas, comments, or unquoted keys will no longer fail to install.
Scenario: A plugin author distributes their plugin with a openclaw.plugin.json file that includes // configuration notes and trailing commas for readability. Older versions of OpenClaw would reject this with a strict JSON parse error. The installation now succeeds natively.
7.4 Cron Timeout Visibility
Timed-out exec and bash failures in isolated cron runs are now surfaced even when verbose: off is set. This applies to custom session-target cron jobs as well.
Scenario: You schedule a cron job to run a data transformation script nightly. Previously, if the script exceeded its timeout limit and failed, the verbose: off setting meant zero feedback was logged. You would only discover the failure days later when the data went stale. Timeout failures are now explicitly logged regardless of verbosity settings.
7.5 Gateway Node State Cleanup
Empty node-pending-work state entries are now pruned after explicit acknowledgments and natural expiry. This prevents the per-node state map from growing indefinitely.
Scenario: You manage a large OpenClaw deployment with dozens of connected nodes. Over weeks of operation, the gateway’s memory footprint steadily increases. The root cause was a state map that only added entries for pending work but never cleaned them up. This memory leak is now resolved.
7.6 Additional Operational Fixes
-
MS Teams Logging: Non- Errorfailures are now formatted with the shared unknown-error helper. Caught SDK or Axios objects are no longer collapsed into the useless[object Object]string in logs. -
Browser Doctor Optimization: Static Chrome inspection helpers are kept out of the activated browser runtime, so openclaw doctor browserno longer eagerly loads the bundled browser plugin. -
Diff Viewer Base URL: A plugin-owned viewerBaseUrlis added, allowing viewer links to use a stable proxy or public origin without passingbaseUrlon every tool call. -
Podman Startup: Noisy container output has been removed from scripts/run-openclaw-podman.sh. -
Plugin Activation Provenance: Explicit, auto-enabled, and default activation sources plus reason metadata are accurately preserved across CLI, gateway bootstrap, and status surfaces. -
Disabled Plugin Resilience: LINE reply directives and browser-backed cleanup/reset flows continue to function even when those specific plugins are disabled, due to tightened bundled plugin activation guards.
Action Checklist and Operational Summary
Pre-Upgrade Checklist
-
[ ] Back up all current configuration files (specifically sections containing tools.web.x_searchandtools.web.fetch.firecrawl) -
[ ] Verify if your deployment actively uses xAI search or Firecrawl web fetching -
[ ] Audit exec-approvals.jsonfor manually enteredsecurity,ask, oraskFallbackvalues to ensure they are valid enums
Post-Upgrade Checklist
-
[ ] Execute openclaw doctor --fixto complete configuration migration -
[ ] Validate xAI search: send a test search prompt and confirm results are returned -
[ ] Validate Firecrawl fetch: test a known URL and confirm structured data is returned -
[ ] Review exec default behavior: confirm local execution matches expectations (default is now YOLO mode) -
[ ] If utilizing Task Flows, run openclaw flowsto inspect background states -
[ ] If using Telegram approvals, test the “Always Allow” button to ensure it renders correctly -
[ ] If using cron jobs, verify that timeout failures are now visible in logs
Optional Optimizations
-
[ ] Set agents.defaults.compaction.notifyUser: trueif your workflow relies on knowing when context compression occurs -
[ ] Configure agents.defaults.compaction.modelto a cost-efficient model if not already set -
[ ] Configure plugin-level viewerBaseUrlfor diff viewers to stabilize proxy URLs -
[ ] Update third-party openclaw.plugin.jsonmanifests to leverage JSON5 syntax (trailing commas, comments)
One-Page Summary
| Dimension | Key Changes |
|---|---|
| Breaking Changes | xAI search config migrates to plugins.entries.xai.config.xSearch.*; Firecrawl config migrates to plugins.entries.firecrawl.config.webFetch.*. Both resolved via openclaw doctor --fix. |
| Task Orchestration | Task Flow substrate restored with managed/mirrored sync, durable state, revision tracking, child task spawning, sticky cancel intent, and openclaw flows inspection. |
| Multi-Channel | Feishu Drive comment threads; Matrix m.mentions & block streaming; WhatsApp push fix & MIME map; Slack mrkdwn guidance; Teams 4000-char deduplication; Android Assistant entrypoints. |
| Provider Transport | Centralized auth, proxy, TLS, and headers; Copilot/OpenAI/Anthropic routing hardened; image generation routed through shared secure HTTP path. |
| Execution Security | Env var injection blocked; dotenv override locked; path traversal constrained; approval config sanitized; timing-safe webhook secrets; SSRF bypasses closed. |
| Agent Improvements | Consistent compaction model; opt-in compaction notice; antml:thinking sanitized; before_agent_reply hook added; exec defaults to YOLO mode. |
| Maintenance | Gateway loopback restored; ACP reconnect hardened; JSON5 plugin support; cron timeout visibility; node state memory leak fixed; Teams logging formatted. |
Frequently Asked Questions
Q1: xAI search stopped working after my upgrade, but there are no error logs. What happened?
The legacy configuration path is silently ignored. Run openclaw doctor --fix to automatically migrate your settings from tools.web.x_search.* to plugins.entries.xai.config.xSearch.*, and ensure your API key is set via XAI_API_KEY.
Q2: Can I start using Task Flows immediately after upgrading?
Yes. Version 2026.4.2 restores the core Task Flow substrate with persistent state and revision tracking. You can manage flows directly using the openclaw flows command.
Q3: Exec now defaults to YOLO mode. How do I secure this for production?
The security=full and ask=off defaults are convenient for local development. For production, you must explicitly define stricter security and ask policies in your configuration to override this permissive baseline.
Q4: Does the Feishu document comment feature require extra setup?
You must ensure the Feishu plugin is enabled and that your OpenClaw integration has the necessary permissions to read and write to Feishu Drive. The comment event flow is built into the plugin and requires no additional configuration parameters beyond access scopes.
Q5: My Slack replies still look poorly formatted. What should I check?
Verify you are actually running version 2026.4.2 or newer. The built-in Slack mrkdwn guidance is automatically injected. If issues persist, check if you have custom system prompts that might be overriding the formatting instructions.
Q6: How do I troubleshoot silent cron task failures?
This release fixes the issue where timeout failures were hidden by verbose: off. After upgrading, check your logs again. If timeouts are still not visible, verify your log level configuration and ensure the cron job’s session target is correctly defined.
Q7: A third-party plugin fails to install with a JSON parse error. How is this fixed?
OpenClaw 2026.4.2 supports JSON5 syntax in openclaw.plugin.json. If the installation still fails, the file likely contains syntax errors beyond JSON5 allowances (such as trailing commas after the final item in a strict JSON subset parser elsewhere).
Q8: What files does openclaw doctor --fix actually modify?
It reads and modifies your main OpenClaw configuration file. It migrates values from tools.web.x_search.* and tools.web.fetch.firecrawl.* into their respective plugin namespaces and cleans up the legacy paths. Always create a configuration backup before executing this command.


