npm openclaw 2026.5.5
openclaw 2026.5.5

7 hours ago

2026.5.5

Fixes

  • Feishu: hydrate missing native topic starter thread IDs before session routing so first turns and follow-ups stay in the same topic session. Fixes #78262. Thanks @joeyzenghuan.
  • LINE: reject dmPolicy: "open" configs without wildcard allowFrom so webhook DMs fail validation instead of being acknowledged and silently blocked before inbound processing. Fixes #78316.
  • Telegram/Codex: keep message-tool-only progress drafts visible and render native Codex tool progress once per tool instead of duplicating item/tool draft lines. Fixes #75641. (#77949)
  • Providers/xAI: stop sending OpenAI-style reasoning effort controls to native Grok Responses models, so xai/grok-4.3 no longer fails live Docker/Gateway runs with Invalid reasoning effort.
  • Providers/xAI: clamp the bundled xAI thinking profile to off so live Gateway runs cannot send unsupported reasoning levels to native Grok Responses models.
  • Matrix/approvals: retry approval delivery up to 3 times with a short backoff so transient Matrix send failures do not strand pending approval prompts. (#78179) Thanks @Patrick-Erichsen.
  • Discord/gateway: measure heartbeat ACK timeouts from the actual heartbeat send, preventing late initial heartbeats from triggering false reconnect loops while the channel is still awaiting readiness. Fixes #77668. (#78087) Thanks @bryce-d-greybeard and @NikolaFC.
  • Discord/guilds: route plain text control commands such as /steer through the normal authorization and mention gate instead of silently dropping them before an agent session can see them. Fixes #78080. Thanks @ramitrkar-hash.
  • Control UI/Sessions: make the compaction count a compact N Checkpoint(s) disclosure and show expanded session-level details with modern checkpoint history cards across responsive table layouts. Thanks @BunsDev.
  • Control UI/performance: keep chat and channel tabs responsive while history payloads and channel probes are slow, label partial channel status, and record slow chat/config render timings in the event log. Thanks @BunsDev.
  • Control UI/sessions: fire the documented /new command and lifecycle hooks only for explicit Control UI session creation, restoring session-memory and custom hook capture without changing SDK parent-session creates. Fixes #76957. Thanks @BunsDev.
  • Exec approvals: fall back to a guarded copy when Windows rejects rename-overwrite for exec-approvals.json, while preserving symlink, hard-link, and owner-only permission safeguards. Fixes #77785. (#77907) Thanks @Alex-Alaniz and @MilleniumGenAI.
  • Slack: preserve Socket Mode SDK error context and structured Slack API fields in reconnect logs, so startup failures no longer collapse to a bare unknown error.
  • iOS pairing: allow setup-code and manual ws:// connects for private LAN and .local gateways while keeping Tailscale/public routes on wss://, and prefer explicit gateway passwords over stale bootstrap tokens in mixed-auth reconnects. Fixes #47887; carries forward #65185. Thanks @draix and @BunsDev.
  • Plugins/diagnostics: make source-only TypeScript package warnings actionable by explaining that missing compiled runtime output is a publisher packaging issue and pointing users to update/reinstall or disable/uninstall the plugin. Fixes #77835. Thanks @googlerest.
  • Control UI/chat: keep persisted assistant progress text visible when the same transcript turn also contains tool-use metadata, so chat.history reloads no longer make those replies vanish after the next user message. Fixes #77374. Thanks @BunsDev.
  • TUI: skip the generic CLI respawn wrapper for interactive launches, exit cleanly on terminal loss, and refuse to restore heartbeat sessions as the remembered chat session, preventing stale heartbeat history and orphaned openclaw-tui processes on first boot. Thanks @vincentkoc.
  • Doctor/sessions: move heartbeat-poisoned default main session store entries to recovery keys and clear stale TUI restore pointers, so doctor --fix can repair instances already stuck on agent:main:main heartbeat history. Thanks @vincentkoc.
  • Agents/context engines: keep hidden OpenClaw runtime-context custom messages out of context-engine assemble, afterTurn, and ingest hooks so transcript reconstruction plugins only see conversation messages. Thanks @vincentkoc.
  • Gateway/shutdown: cancel delayed post-ready maintenance during close and suppress maintenance/cron startup after quick restarts, preventing orphaned background timers. Thanks @vincentkoc.
  • Agents/generated media: treat attachment-style message tool actions as completed chat sends, preventing duplicate fallback media posts when generated files were already uploaded.
  • Control UI/sessions: show each session's agent runtime in the Sessions table and allow filtering by runtime labels, matching the Agents panel runtime wording. Thanks @vincentkoc.
  • Discord/streaming: show live reasoning text in progress drafts instead of a bare Reasoning status line.
  • Gateway/status: avoid marking fast repeated health/status samples as event-loop degraded from CPU/utilization alone until the Gateway has accumulated a sustained sampling window. Thanks @shakkernerd.
  • Plugins/update: keep installed official npm and ClawHub plugins such as Codex, Discord, WhatsApp, and diagnostics plugins synced during host updates even when disabled or previously exact-pinned, while preserving third-party plugin pins. Thanks @vincentkoc.
  • Doctor/status: warn when OPENCLAW_GATEWAY_TOKEN would shadow a different active gateway.auth.token source for local CLI commands, while avoiding false positives when config points at the same env token. Fixes #74271. Thanks @yelog.
  • Gateway/HTTP: avoid loading managed outgoing-image media handlers for unrelated requests, so disabled OpenAI-compatible routes return 404 without waiting on lazy media sidecars. Thanks @vincentkoc.
  • Gateway/OpenAI-compatible: send the assistant role SSE chunk as soon as streaming chat-completion headers are accepted, so cold agent setup cannot leave /v1/chat/completions clients with a bodyless 200 response until their idle timeout fires.
  • Agents/media: avoid direct generated-media completion fallback while the announce-agent run is still pending, so async video and music completions do not duplicate raw media messages. (#77754)
  • WebChat/Codex media: stage Codex app-server generated local images into managed media before Gateway display, so Codex-home image paths no longer hit LocalMediaAccessError while keeping Codex home out of the display allowlist. Thanks @frankekn.
  • TUI/sessions: bound the session picker to recent rows and use exact lookup-style refreshes for the active session, so dusty stores no longer make TUI hydrate weeks-old transcripts before becoming responsive. Thanks @vincentkoc.
  • Doctor/gateway: report recent supervisor restart handoffs in openclaw doctor --deep, using the installed service environment when available so service-managed clean exits are visible in guided diagnostics. Thanks @shakkernerd.
  • Gateway/status: show recent supervisor restart handoffs in openclaw gateway status --deep, including JSON details, so clean service-managed restarts are reported as restart handoffs instead of opaque stopped-service diagnostics. Thanks @shakkernerd.
  • Providers/Fireworks: expose Kimi models as thinking-off-only and keep K2.5/K2.6 requests on thinking: disabled, so manual model switches do not send Fireworks-rejected reasoning* parameters. Refs #74289. Thanks @frankekn.
  • WhatsApp responsiveness: stop only verified stale local TUI clients when they degrade the Gateway event loop and delay replies. Thanks @vincentkoc.
  • Plugins/update: repair stale managed npm-root openclaw peer packages before plugin installs, so beta-channel official plugin updates are not downgraded by old core package-lock state. Thanks @vincentkoc.
  • Plugins/install: reassert managed npm plugin openclaw peer links after shared-root npm installs, updates, and uninstalls, so mutating one plugin does not leave previously installed SDK-using plugins unable to resolve openclaw/plugin-sdk/*.
  • Hooks/session-memory: add collision suffixes to fallback memory filenames so repeated /new or /reset captures in the same minute do not overwrite the earlier session archive. Thanks @vincentkoc.
  • Agents/config: remove the ambiguous legacy main agent dir helper from runtime paths; model, auth, gateway, bundled plugin, and test helpers now resolve default/session agent dirs through agents.list/agent-scope helpers while plugin SDK keeps a deprecated compatibility export.
  • CLI/status: show the selected agent runtime/harness in openclaw status session rows so terminal status matches the /status runtime line. Thanks @vincentkoc.
  • CLI/sessions: prune old unreferenced transcript, compaction checkpoint, and trajectory artifacts during normal sessions cleanup, so gateway restart or crash orphans do not accumulate indefinitely outside sessions.json. Fixes #77608. Thanks @slideshow-dingo.
  • Doctor/Codex: repair legacy openai-codex/* routes in primary models, fallbacks, heartbeat/subagent/compaction overrides, hooks, channel overrides, and stale session pins to canonical openai/*, selecting agentRuntime.id: "codex" only when the Codex plugin is installed, enabled, contributes the codex harness, and has usable OAuth; otherwise select agentRuntime.id: "pi". Thanks @vincentkoc.
  • Plugins/update: keep installed official npm and ClawHub plugins such as Codex, Discord, WhatsApp, and diagnostics plugins synced during host updates even when disabled or previously exact-pinned, while preserving third-party plugin pins. Thanks @vincentkoc.
  • Video generation: accept provider-specific aspect-ratio and resolution hints at the tool boundary, normalize 720P to MiniMax's supported 768P, and stop sending Google generateAudio on Gemini video requests so provider fallback can recover from model-specific parameter differences. Thanks @vincentkoc.
  • Status: show compact Gateway process uptime and host system uptime in /status, making restart and host-lifetime checks visible from chat. Thanks @vincentkoc.
  • WhatsApp responsiveness: stop only verified stale local TUI clients when they degrade the Gateway event loop and delay replies. Thanks @vincentkoc.
  • Hooks/session-memory: run reset memory capture off the command reply path and make model-generated memory filename slugs opt-in with llmSlug: true, so /new and /reset no longer block WhatsApp and other message-channel reset replies on hook housekeeping or a nested model call. Thanks @vincentkoc.
  • CLI/gateway: pause non-TTY stdin after full CLI command completion and stop openclaw agent from falling back to embedded mode after gateway request/auth failures, so parent help commands exit cleanly and scoped delivery probes surface the real Gateway error immediately. Thanks @vincentkoc.
  • Gateway/model catalog: cache empty read-only model catalog results until reload, so TUI and control-plane refresh loops cannot hammer plugin metadata reads when no usable models are currently discovered. Thanks @vincentkoc.
  • Hooks/session-memory: add collision suffixes to fallback memory filenames so repeated /new or /reset captures in the same minute do not overwrite the earlier session archive. Thanks @vincentkoc.
  • TUI/sessions: bound the session picker to recent rows and use exact lookup-style refreshes for the active session, so dusty stores no longer make TUI hydrate weeks-old transcripts before becoming responsive. Thanks @vincentkoc.
  • Agents/context engines: keep hidden OpenClaw runtime-context custom messages out of context-engine assemble, afterTurn, and ingest hooks so transcript reconstruction plugins only see conversation messages. Thanks @vincentkoc.
  • TUI: skip the generic CLI respawn wrapper for interactive launches, exit cleanly on terminal loss, and refuse to restore heartbeat sessions as the remembered chat session, preventing stale heartbeat history and orphaned openclaw-tui processes on first boot. Thanks @vincentkoc.
  • Doctor/sessions: move heartbeat-poisoned default main session store entries to recovery keys and clear stale TUI restore pointers, so doctor --fix can repair instances already stuck on agent:main:main heartbeat history. Thanks @vincentkoc.
  • Gateway/shutdown: report structured shutdown warnings and HTTP close timeout warnings through ShutdownResult while preserving lifecycle hook hardening. Carries forward #41296. Thanks @edenfunf.
  • CLI/update: make dev-channel preflight lint opt-in and constrained when enabled, so openclaw update --channel dev no longer walks back otherwise-good main commits when Ubuntu hosts OOM-kill or fail parallel oxlint shards. Thanks @vincentkoc.
  • CLI/channels: skip config, proxy, channel-option catalog, banner-config, and plugin startup bootstrap for the bare openclaw channels parent-help command, so it exits promptly after printing help instead of loading configured channel plugins. Thanks @vincentkoc.
  • Gateway/shutdown: cancel delayed post-ready maintenance during close and suppress maintenance/cron startup after quick restarts, preventing orphaned background timers. Thanks @vincentkoc.
  • CLI/status: show the selected agent runtime/harness in openclaw status session rows so terminal status matches the /status runtime line. Thanks @vincentkoc.
  • Sessions CLI: show the selected agent runtime in the openclaw sessions table so terminal output matches the runtime visibility already present in JSON/status surfaces. Thanks @vincentkoc.
  • Control UI/sessions: show each session's agent runtime in the Sessions table and allow filtering by runtime labels, matching the Agents panel runtime wording. Thanks @vincentkoc.
  • Docker/Gateway: harden the gateway container by dropping NET_RAW and NET_ADMIN capabilities and enabling no-new-privileges in the bundled docker-compose.yml. Thanks @VintageAyu.
  • OpenAI/Gateway: flush the initial chat stream chunk correctly so first-token streaming is visible instead of being delayed behind later chunks.
  • Gateway/media: skip media sidecar handling for unrelated HTTP routes so non-media requests do not pay the media route behavior.
  • Discord: show reasoning text in progress drafts so streaming replies expose useful thinking/progress instead of blank draft updates.
  • Auth profiles: avoid putting providers on cooldown for format-level rejections, so fallback profiles can still be tried when a model name is unsupported.
  • Update/plugins: tolerate corrupt managed plugin records during update so core package updates can still complete and report the plugin repair path.
  • Update: stop dev-channel updates cleanly after a fetch failure instead of continuing into later update steps.
  • Agents/generated media: treat attachment-style message tool actions as completed chat sends, preventing duplicate fallback media posts when generated files were already uploaded.

Don't miss a new openclaw release

NewReleases is sending notifications on new releases.