OpenClaw v2026.5.16-beta.3 Release Summary
OpenClaw v2026.5.16-beta.3 Release Summary
Key Changes
Codex App-Server & Runtime Enhancements
This release brings substantial improvements to the Codex app-server integration, focusing on stability, policy enforcement, and context management:
- Native Tool Policy Enforcement: OpenClaw now injects a trusted native hook relay into the Codex app-server. This ensures that Codex-native shell and file operations are intercepted by the
before_tool_callpolicy, preventing security bypasses. - Context-Engine Binding: Codex app-server threads are now bound to context-engine projection epochs. This allows the system to reuse bootstrap bindings and automatically start fresh backend threads when context-engine compaction occurs, keeping the model and context engine in sync.
- Progress-Aware Turns: Codex turns are now more responsive to activity. The system tracks progress from user input, dynamic tools, and notifications, preventing turns from timing out while active work is still being performed.
- Watchdog Improvements: New idle watchdogs have been implemented to fail fast when Codex emits raw tool-output or assistant completions without a terminal
turn/completedevent, reducing unnecessary wait times.
Gateway & Infrastructure
- Restart Observability: A new restart trace instrumentation (
OPENCLAW_GATEWAY_RESTART_TRACE) provides parseable logs for the drain, shutdown, and ready phases of a gateway restart, enabling deeper performance diagnostics. - Startup Reliability: The gateway run-loop now queues restart and shutdown signals received during the startup phase, ensuring that update churn does not drop critical lifecycle requests.
- Lifecycle Hook Budgets: Default timeout budgets for gateway lifecycle hooks have been increased (5s for shutdown, 10s for pre-restart) to allow notification handlers more time to complete.
Channel & Provider Updates
- Telegram:
- Added "room event" handling for ambient group chatter, allowing always-on context to run quietly and speak only via the message tool.
- Fixed a critical bug where expired approval callbacks caused infinite retry loops, blocking all incoming DMs.
- Improved restart replay to prevent context loss in group-topic sessions.
- Slack:
- Improved user mention guidance, instructing agents to use stable
<@USER_ID>tokens. - Fixed a bug where tool warnings could overwrite finalized assistant drafts during streaming.
- Routed DM thread replies to the main session instead of creating invisible thread-scoped sessions.
- Improved user mention guidance, instructing agents to use stable
- LINE: Fixed a silent push failure where lowercased recipient IDs (generated during session-key fallback) were rejected by the LINE API.
- Ollama: Added logic to skip the
thinkparameter for models marked as non-reasoning, avoiding 400 errors from Ollama servers. - Xiaomi MiMo: Fixed an issue where reasoning-only completions appeared blank by promoting
reasoning_contentto visible text for terminal outputs.
CLI & DX
- Onboarding i18n: The CLI setup wizard and bundled channel setup flows are now localized for English, Simplified Chinese, and Traditional Chinese.
- Cron Enhancements: Added a
--waitmode foropenclaw cron run, allowing automation to block until a manual run reaches a terminal status. - Doctor Tool:
openclaw doctor --fixnow repairs source-only official plugin installs (e.g., Brave, Slack) and ensures the Codex plugin is enabled when required by configured OpenAI routes.
Impact
Performance & Stability
- Memory Leak Fix: A significant file descriptor leak in the memory search watcher was resolved by removing
awaitWriteFinishpolling, preventingspawn EBADFerrors in environments with large Markdown trees. - Session Repair: Fixed a bug where successful session repairs left behind unbounded
.bakfiles, which previously caused gigabytes of debris for stuck sessions. - Session Usage: Local/OpenAI-compatible sessions now use a conservative transcript-derived estimate when provider usage telemetry is missing, ensuring the context meter remains accurate.
Security
- System Event Authority: Authority for queued system events is now carried as structured metadata (
forceSenderIsOwnerFalse) rather than prompt-visible text, preventing trust markers from being spoofed or transformed by the model. - Auth Revocation: Removing provider auth through the Gateway control plane now immediately aborts active matching runs with a
stopReason: "auth-revoked"signal.
User Experience
- Android App: URLs in chat messages are now tappable by preserving Compose URL annotations in rendered markdown.
- TUI: The status bar now updates the displayed model in real-time during provider fallback, providing better visibility into which model is currently being attempted.
Sources
- Releasev2026.5.16-beta.3 — openclaw 2026.5.16-beta.3
- PRfeat(wizard): add CLI onboarding i18n
- PRfix(agents): remove transient session-repair backups (supersedes #77945)
- PRfix(telegram): normalize announce group targets
- PRTreat ambient group chatter as room events
- PRfix(gateway): scope session data lookups by agent [AI]
- PRperf(skills): cache hydrated resolved skills
- PRfix(agents): preserve Pi tool result error flags (#81546)
- PR[codex] Mark Codex compaction events completed
- PRfix(line): stop silent push failure on lowercased recipients (#81628)
- PRfix(cli): finalize context engine turns
- PRAdd wait mode for manual cron runs
- PRfix(slack): clarify mention prompt guidance
- PRfix(codex): fail fast after quiescent turn completion stalls
- PRfix(tts): preserve command voice delivery decision
- PRfix(codex): scope user MCP servers by agent
- PRfix(codex): preserve Discord sender metadata in Gateway IPC chat.history
- PRfix(discord): bind delayed identify to socket generation
- PRfix(acp): refresh runtime handles on config changes
- PRFix Telegram context loss after restart replay
- PRfix(gateway): raise lifecycle hook timeout defaults
- PRfix(tui): update model display during fallback
- PRFix Telegram stop lane and gateway session aborts
- PRfix(sessions): estimate local transcript usage
- PRfix(codex): yield app-server notification projection
- PRFix gateway auth logout aborting active runs
- PRfeat(codex): bind context-engine projections to codex threads
- PRStart configured web search providers at gateway startup
- PRFix Codex raw tool-output watchdog
- PRfix(android): make chat links tappable
- PRfeat(gateway): add restart trace instrumentation
- PRfix(codex): release raw assistant app-server completions [AI-assisted]
- PRfix(slack): route DM thread replies to main session instead of thread-scoped session
- PRfix: repair source-only official plugin installs
- PRfix(config): warn for missing official memory slot
- PRfix: forward MCP tool abort signals
- PRfix(ollama): skip think for non-reasoning models
- PRFix Telegram presentation-only payload sends
- PRfix(telegram): drop expired approval callbacks
- PRfix(gateway): quiet startup 1013 pre-connect closes [AI-assisted]
- PRFix session reset files and ACPX orphan reaping
- PRFix stale bootstrap file breaking channel agent turns
- PRfix(infra): drop in-flight approval delivery after onStopped
- PRfix(codex): enforce native tool policy
- PRFix doctor repair for disabled Codex runtime plugin
- PRfix(gateway): route WebChat images through imageModel
- PRfix: prevent persistSessionUsageUpdate from corrupting totalTokens (fixes #82576)
- PRfix(codex): keep app-server turns progress-aware
- PR[Fix] Improve gateway restart readiness diagnostics
- PRfix: honor Codex auth order for OpenAI PI
- PR[Fix] Queue startup restart signals during gateway startup
- PRFix Xiaomi MiMo reasoning-only completions
- PRfix(message-tool): rename `type` schema property to avoid JSON Schema keyword collision
- PRfix(cron): mirror announce delivery into destination session
- PRfix(xiaomi): MiMo reasoning models fail multi-turn tool calls (#81419)
- PRfix(memory): stop watcher write-polling fd pressure
- PRfix(twitch): keep startAccount pending until abort to prevent restart loop (#60071)
- PRFix Slack draft deletion after tool warnings
- PR[codex] remove queued system event trust plumbing
- PRfix(auto-reply): honor silentReply policy on group failure-fallback path
- PRfix(cron): lazily load runtime plugins to fix external channel resolution
- PRfix(slack): default unfurl_links to false for outbound messages
- PRfix(gateway/approvals): treat turnSourceTo as optional in chat approval bridge (#82132)
- PR[AI-assisted] fix(transport): strip empty-string reasoning_content from OpenRouter assistant replay
- PRfix(openai): honor streaming usage compatibility
- PRRecover stale embedded tool calls during gateway diagnostics
- PRfix(gateway): isolate gmail watcher restart and abort handling
- PRfix(feishu): stream CardKit text deltas