All NewsNews

OpenClaw Drops 22 Doc Changes in a Day: Migration Shortcuts Were Broken, Dev Updates Crashed Ubuntu, and the Doctor Got Three New Tricks

Twenty-two documentation changes merged in a single day. Behind the volume: a keyboard shortcut that silently skipped Codex skill migration, a preflight lint step that OOM-killed Ubuntu hosts, a doctor command that learned to clean up after itself, and Slack QA coverage that went from two scenarios to seven.

May 6, 20267 min read

OpenClaw's documentation received 22 updates yesterday. That's not a typo. Twenty-two changes touching the docs directory in a single day — spanning CLI references, install guides, QA automation, doctor diagnostics, and platform notes. Some are routine. Some reveal bugs that were quietly hurting operators for weeks.

The Keyboard Shortcut That Skipped Your Entire Codex Migration

OpenClaw's Codex skill migration uses an interactive terminal prompt powered by Clack. When migrating to the Codex harness, operators see a multi-select list of skills to carry over — arrow keys to navigate, space to toggle, enter to confirm.

The problem was with Clack's built-in shortcuts: a (select all) and i (invert selection). These standard multi-select shortcuts were colliding with the “Skip for now” sentinel — a special list item that defers migration entirely. Press a expecting to select all skills, and you'd silently trigger skip instead.

What happened when you pressed “a”

Expected:All skills toggled on for migration
Actual:  Skip sentinel activated → entire migration silently skipped

The fix reconciles Clack's shortcut outputs at the prompt wrapper boundary. Shortcuts now operate exclusively on skill rows, ignoring the sentinel. Three explicit bulk controls replace the ambiguous behavior: “Toggle all on,” “Toggle all off,” and “Skip for now” — each with clear semantics. Only planned skills default as selected; conflicting skills start unchecked. A new --skill <name> CLI flag also enables headless migration for automation scripts.

Dev Updates Were OOM-Killing Ubuntu Hosts

Running OpenClaw's dev channel on Ubuntu? Your self-update command may have been crashing your host. Not failing gracefully — crashing. The Linux OOM killer stepping in because the system ran out of memory.

The culprit was the preflight lint step. Every dev-channel update ran a full oxlint pass in parallel shards before applying the update. On VPS instances and contributor laptops with limited RAM, this parallel execution exhausted available memory.

The fix

  • Preflight lint is now opt-in via OPENCLAW_UPDATE_PREFLIGHT_LINT=1
  • Default dev updates gate on TypeScript build only — lint is skipped entirely
  • When opt-in lint is enabled, shards run serially in throttled mode

Separately, a related update fix now tolerates corrupt plugins during the update process. Previously, if a managed plugin was unloadable after a core update, the entire post-update sync would fail hard. Now those failures are surfaced as warnings in --json output under postUpdate.plugins.warnings — degraded, not dead.

The Doctor Got Three New Tricks

OpenClaw's openclaw doctor command — the built-in health checker — received three significant updates in a single day.

Doctor improvements

  • Session route cleanup: Doctor now scans active sessions for stale auto-created route state. The --fix flag clears orphaned pins, runtime metadata, harness IDs, CLI bindings, and auth overrides when their owning route is no longer configured
  • WhatsApp responsiveness: When WhatsApp is enabled, doctor checks for degraded Gateway event loops caused by stale local TUI clients. Memory capture now runs in background so /new and /reset commands respond instantly
  • Plugin repair terminology: Every reference to the doctor “installing” plugins has been corrected to “repairing” or “recovering” them — more accurately describing what the command actually does

The troubleshooting docs also gained a new entry for a complaint that was hard to diagnose: “Replies arrive seconds or minutes late.” The root cause, it turns out, was often stale local TUI clients degrading the Gateway event loop. openclaw doctor --fix now detects and stops them.

Slack QA Goes From Two Scenarios to Seven

OpenClaw's live QA framework — the automated system that runs real bot behavior against real messaging platforms — expanded its Slack coverage with five new scenarios: allowlist blocking, top-level reply shape validation, restart resume, thread follow-up, and thread isolation. All seven now pass against real Slack environments.

Alongside the new scenarios, a comprehensive Slack workspace setup guide landed — 173 lines covering two Slack apps (driver and SUT), OAuth scopes, channel configuration, credential registration via environment variables or Convex pool, and verification steps. Previously, setting up Slack QA required reverse-engineering the test harness source code.

Slack QA coverage

Before:2 scenarios, no setup docs, reaction tests that couldn't pass
After: 7 scenarios, full workspace setup guide, reactions honestly documented as unsupported

The Telegram QA lane also gained two new test scenarios: telegram-long-final-reuses-preview and telegram-long-final-three-chunks, covering a fix where long text finals now reuse the existing preview message as the first chunk instead of sending a duplicate.

The Rest of the 22

The remaining changes span the full width of OpenClaw's documentation surface:

  • Documentation consolidation: The capability cookbook redirects to a new plugins page, the network model page is now a redirect, timezone docs gained a “Three timezone surfaces” table, and the DigitalOcean install guide was expanded with pricing context, alternative VPS providers, and RAM optimization
  • Codex usage limits: When Codex reports a usage-limit failure, OpenClaw now surfaces the next app-server reset time directly in chat. Users can inspect rate-limit windows via /codex account
  • Cron filtering: openclaw cron list now supports --agent <id> to filter scheduled jobs by agent
  • Status uptime: /status now displays Gateway process uptime and host system uptime
  • Session cleanup: Orphan artifacts — old transcripts, compaction checkpoints, and trajectory sidecars — are now pruned automatically based on a configurable age threshold
  • VSCode debugging: A new section in the help docs explains how to debug the Gateway service with two preconfigured VS Code launch configurations
  • Windows platform: A new Git and GitHub connectivity guide covers HTTPS clone failures, personal access token setup, and required token scopes for Windows contributors
  • Docker security: no-new-privileges and capability drops now apply to both the gateway and CLI containers
  • UI polish: The control UI hides noisy HEARTBEAT_OK and NO_REPLY entries from transcripts, and the TUI session picker now shows the 50 most recent sessions from the last 7 days
  • Chinese translations: 44 new glossary entries for the zh-CN locale

By the numbers

  • 22 documentation changes in a single day
  • 3 doctor command improvements across 5 doc files
  • 7 Slack QA scenarios (up from 2) + 2 new Telegram scenarios
  • 173 lines of new Slack QA workspace setup instructions
  • 44 new Chinese translation glossary entries

The Signal in the Noise

Twenty-two documentation changes in one day is a lot. But the pattern underneath matters more than the count. Multiple changes fixed gaps between what the docs said and what the software actually did. The migration prompt had shortcuts that contradicted its UI. The update command ran steps the docs described but the hardware couldn't handle. The doctor command “installed” plugins when it was really repairing them. The QA matrix listed reaction coverage that didn't exist.

Documentation-reality drift is the quietest kind of technical debt. It doesn't trigger alerts. It doesn't fail CI. It erodes trust one confused operator at a time. Yesterday closed a lot of those gaps. The pace suggests there are more to find.

All changes land automatically for DeployClaw users. For self-hosters, pull the latest from the OpenClaw repository.

Deploy OpenClaw without the rough edges

DeployClaw keeps your instance updated automatically — every fix, every polish pass, no manual pulls.