Skip to content

chore(deps): update 1panel/openclaw docker tag to v2026.4.9#7376

Merged
wanghe-fit2cloud merged 2 commits intodevfrom
renovate/1panel-openclaw-2026.x
Apr 10, 2026
Merged

chore(deps): update 1panel/openclaw docker tag to v2026.4.9#7376
wanghe-fit2cloud merged 2 commits intodevfrom
renovate/1panel-openclaw-2026.x

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate Bot commented Apr 10, 2026

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
1panel/openclaw (source) minor 2026.3.282026.4.9

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

openclaw/openclaw (1panel/openclaw)

v2026.4.9

Compare Source

Changes
  • Memory/dreaming: add a grounded REM backfill lane with historical rem-harness --path, diary commit/reset flows, cleaner durable-fact extraction, and live short-term promotion integration so old daily notes can replay into Dreams and durable memory without a second memory stack. Thanks @​mbelinky.
  • Control UI/dreaming: add a structured diary view with timeline navigation, backfill/reset controls, traceable dreaming summaries, and a grounded Scene lane with promotion hints plus a safe clear-grounded action for staged backfill signals. (#​63395) Thanks @​mbelinky.
  • QA/lab: add character-vibes evaluation reports with model selection and parallel runs so live QA can compare candidate behavior faster.
  • Plugins/provider-auth: let provider manifests declare providerAuthAliases so provider variants can share env vars, auth profiles, config-backed auth, and API-key onboarding choices without core-specific wiring.
  • iOS: pin release versioning to an explicit CalVer in apps/ios/version.json, keep TestFlight iteration on the same short version until maintainers intentionally promote the next gateway version, and add the documented pnpm ios:version:pin -- --from-gateway workflow for release trains. (#​63001) Thanks @​ngutman.
Fixes
  • Browser/security: re-run blocked-destination safety checks after interaction-driven main-frame navigations from click, evaluate, hook-triggered click, and batched action flows, so browser interactions cannot bypass the SSRF quarantine when they land on forbidden URLs. (#​63226) Thanks @​eleqtrizit.
  • Security/dotenv: block runtime-control env vars plus browser-control override and skip-server env vars from untrusted workspace .env files, and reject unsafe URL-style browser control override specifiers before lazy loading. (#​62660, #​62663) Thanks @​eleqtrizit.
  • Gateway/node exec events: mark remote node exec.started, exec.finished, and exec.denied summaries as untrusted system events and sanitize node-provided command/output/reason text before enqueueing them, so remote node output cannot inject trusted System: content into later turns. (#​62659) Thanks @​eleqtrizit.
  • Plugins/onboarding auth choices: prevent untrusted workspace plugins from colliding with bundled provider auth-choice ids during non-interactive onboarding, so bundled provider setup keeps operator secrets out of untrusted workspace plugin handlers unless those plugins are explicitly trusted. (#​62368) Thanks @​pgondhi987.
  • Security/dependency audit: force basic-ftp to 5.2.1 for the CRLF command-injection fix and bump Hono plus @hono/node-server in production resolution paths.
  • Android/pairing: clear stale setup-code auth on new QR scans, bootstrap operator and node sessions from fresh pairing, prefer stored device tokens after bootstrap handoff, and pause pairing auto-retry while the app is backgrounded so scan-once Android pairing recovers reliably again. (#​63199) Thanks @​obviyus.
  • Matrix/gateway: wait for Matrix sync readiness before marking startup successful, keep Matrix background handler failures contained, and route fatal Matrix sync stops through channel-level restart handling instead of crashing the whole gateway. (#​62779) Thanks @​gumadeiras.
  • Slack/media: preserve bearer auth across same-origin files.slack.com redirects while still stripping it on cross-origin Slack CDN hops, so url_private_download image attachments load again. (#​62960) Thanks @​vincentkoc.
  • Reply/doctor: use the active runtime snapshot for queued reply runs, resolve reply-run SecretRefs before preflight helpers touch config, surface gateway OAuth reauth failures to users, and make openclaw doctor call out exact reauth commands. (#​62693, #​63217) Thanks @​mbelinky.
  • Control UI: guard stale session-history reloads during fast session switches so the selected session and rendered transcript stay in sync. (#​62975) Thanks @​scoootscooob.
  • Gateway/chat: suppress exact and streamed ANNOUNCE_SKIP / REPLY_SKIP control replies across live chat updates and history sanitization so internal agent-to-agent control tokens no longer leak into user-facing gateway chat surfaces. (#​51739) Thanks @​Pinghuachiu.
  • Auto-reply/NO_REPLY: strip glued leading NO_REPLY tokens before reply normalization and ACP-visible streaming so silent sentinel text no longer leaks into user-visible replies while preserving substantive NO_REPLY ... text. Thanks @​frankekn.
  • Sessions/routing: preserve established external routes on inter-session announce traffic so sessions_send follow-ups do not steal delivery from Telegram, Discord, or other external channels. (#​58013) Thanks @​duqaXxX.
  • Gateway/sessions: clear auto-fallback-pinned model overrides on /reset and /new while still preserving explicit user model selections, including legacy sessions created before override-source tracking existed. (#​63155) Thanks @​frankekn.
  • Slack/ACP: treat Slack ACP block replies as visible delivered output so OpenClaw stops re-sending the final fallback text after Slack already rendered the reply. (#​62858) Thanks @​gumadeiras.
  • Slack/partial streaming: key turn-local dedupe by dispatch kind and keep the final fallback reply path active when preview finalization fails so stale preview text cannot suppress the actual final answer. (#​62859) Thanks @​gumadeiras.
  • Matrix/doctor: migrate legacy channels.matrix.dm.policy: "trusted" configs back to compatible DM policies during openclaw doctor --fix, preserving explicit allowFrom boundaries as allowlist and defaulting empty legacy configs to pairing. (#​62942) Thanks @​lukeboyett.
  • npm packaging: mirror bundled channel runtime deps, stage Nostr runtime deps, derive required root mirrors from manifests and built chunks, and test packed release tarballs without repo node_modules so fresh installs fail fast on missing plugin deps instead of crashing at runtime. (#​63065) Thanks @​scoootscooob.
  • QA/live auth: fail fast when live QA scenarios hit classified auth or runtime failure replies, including raw scenario wait paths, and sanitize missing-key guidance so gateway auth problems surface as actionable errors instead of timeouts. (#​63333) Thanks @​shakkernerd.
  • Providers/OpenAI: default missing reasoning effort to high on OpenAI Responses, WebSocket, and compatible completions transports, while still honoring explicit per-run reasoning levels.
  • Providers/Ollama: allow Ollama models using the native api: "ollama" path to optionally display thinking output when /think is set to a non-off level. (#​62712) Thanks @​hoyyeva.
  • Codex CLI: pass OpenClaw's system prompt through Codex's model_instructions_file config override so fresh Codex CLI sessions receive the same prompt guidance as Claude CLI sessions.
  • Auth/profiles: persist explicit auth-profile upserts directly and skip external CLI sync for local writes so profile changes are saved without stale external credential state.
  • Agents/timeouts: make the LLM idle timeout inherit agents.defaults.timeoutSeconds when configured, disable the unconfigured idle watchdog for cron runs, and point idle-timeout errors at agents.defaults.llm.idleTimeoutSeconds. Thanks @​drvoss.
  • Agents/failover: classify Z.ai vendor code 1311 as billing and 1113 as auth, including long wrapped 1311 payloads, so these errors stop falling through to generic failover handling. (#​49552) Thanks @​1bcMax.
  • QQBot/media-tags: support HTML entity-encoded angle brackets (&lt;/&gt;), URL slashes in attributes, and self-closing media tags so upstream <qqimg> payloads are correctly parsed and normalized. (#​60493) Thanks @​ylc0919.
  • Memory/dreaming: harden grounded backfill inputs, diary writes, status payloads, and diary action classification by preserving source-day labels, rejecting missing or symlinked targets cleanly, normalizing diary headings in gateway backfills, and tightening claim splitting plus diary source metadata. Thanks @​mbelinky.
  • Memory/dreaming: accept embedded heartbeat trigger tokens so light and REM dreaming still run when runtime wrappers include extra heartbeat text.
  • Android/manual connect: allow blank port input only for TLS manual gateway endpoints so standard HTTPS Tailscale hosts default to 443 without silently changing cleartext manual connects. (#​63134) Thanks @​Tyler-RNG.
  • Windows/update: add heap headroom to Windows pnpm build steps during dev updates so update preflight builds stop failing on low default Node memory.
  • Plugin SDK: export the channel plugin base and web-search config contract through the public package so plugins can use them without private imports.
  • Plugins/contracts: keep test-only helpers out of production contract barrels, load shared contract harnesses through bundled test surfaces, and harden guardrails so indirect re-exports and canonical *.test.ts files stay blocked. (#​63311) Thanks @​altaywtf.
  • Control UI/models: preserve provider-qualified refs for OpenRouter catalog models whose ids already contain slashes so picker selections submit allowlist-compatible model refs instead of dropping the openrouter/ prefix. (#​63416) Thanks @​sallyom.
  • Plugin SDK/command auth: split command status builders onto the lightweight openclaw/plugin-sdk/command-status subpath while preserving deprecated command-auth compatibility exports, so auth-only plugin imports no longer pull status/context warmup into CLI onboarding paths. (#​63174) Thanks @​hxy91819.
  • Wizard/plugin config: coerce integer-typed plugin config fields from interactive text input so integer schema values persist as numbers instead of failing validation. (#​63346) Thanks @​jalehman.

v2026.4.8

Compare Source

Fixes
  • Telegram/setup: load setup and secret contracts through packaged top-level sidecars so installed npm builds no longer try to import missing dist/extensions/telegram/src/* files during gateway startup.
  • Bundled channels/setup: load shared secret contracts through packaged top-level sidecars across BlueBubbles, Feishu, Google Chat, IRC, Matrix, Mattermost, Microsoft Teams, Nextcloud Talk, Slack, and Zalo so installed npm builds no longer rely on missing dist/extensions/*/src/* files during gateway startup.
  • Bundled plugins: align packaged plugin compatibility metadata with the release version so bundled channels and providers load on OpenClaw 2026.4.8.
  • Agents/progress: keep update_plan available for OpenAI-family runs while returning compact success payloads and allowing tools.experimental.planTool=false to opt out.
  • Agents/exec: keep /exec current-default reporting aligned with real runtime behavior so host=auto sessions surface the correct host-aware fallback policy (full/off on gateway or node, deny/off on sandbox) instead of stale stricter defaults.
  • Slack: honor ambient HTTP(S) proxy settings for Socket Mode WebSocket connections, including NO_PROXY exclusions, so proxy-only deployments can connect without a monkey patch. (#​62878) Thanks @​mjamiv.
  • Slack/actions: pass the already resolved read token into downloadFile so SecretRef-backed bot tokens no longer fail after a raw config re-read. (#​62097) Thanks @​martingarramon.
  • Network/fetch guard: skip target DNS pinning when trusted env-proxy mode is active so proxy-only sandboxes can let the trusted proxy resolve outbound hosts. (#​59007) Thanks @​cluster2600.

v2026.4.7

Compare Source

v2026.4.5

Compare Source

Breaking
  • Config: remove legacy public config aliases such as talk.voiceId / talk.apiKey, agents.*.sandbox.perSession, browser.ssrfPolicy.allowPrivateNetwork, hooks.internal.handlers, and channel/group/room allow toggles in favor of the canonical public paths and enabled, while keeping load-time compatibility and openclaw doctor --fix migration support for existing configs. (#​60726) Thanks @​vincentkoc.
Changes
  • Agents/video generation: add the built-in video_generate tool so agents can create videos through configured providers and return the generated media directly in the reply.
  • Agents/music generation: ignore unsupported optional hints such as durationSeconds with a warning instead of hard-failing requests on providers like Google Lyria.
  • Providers/Arcee AI: add a bundled Arcee AI provider plugin with ARCEEAI_API_KEY onboarding, Trinity model catalog (mini, large-preview, large-thinking), OpenAI-compatible API support, and OpenRouter as an alternative auth path. (#​62068) Thanks @​arthurbr11.
  • Providers/ComfyUI: add a bundled comfy workflow media plugin for local ComfyUI and Comfy Cloud workflows, including shared image_generate, video_generate, and workflow-backed music_generate support, with prompt injection, optional reference-image upload, live tests, and output download.
  • Tools/music generation: add the built-in music_generate tool with bundled Google (Lyria) and MiniMax providers plus workflow-backed Comfy support, including async task tracking and follow-up delivery of finished audio.
  • Providers: add bundled Qwen, Fireworks AI, and StepFun providers, plus MiniMax TTS, Ollama Web Search, and MiniMax Search integrations for chat, speech, and search workflows. (#​60032, #​55921, #​59318, #​54648)
  • Providers/Amazon Bedrock: add bundled Mantle support plus inference-profile discovery and automatic request-region injection so Bedrock-hosted Claude, GPT-OSS, Qwen, Kimi, GLM, and similar routes work with less manual setup. (#​61296, #​61299) Thanks @​wirjo.
  • Control UI/multilingual: add localized control UI support for Simplified Chinese, Traditional Chinese, Brazilian Portuguese, German, Spanish, Japanese, Korean, French, Turkish, Indonesian, Polish, and Ukrainian. Thanks @​vincentkoc.
  • Plugins: add plugin-config TUI prompts to guided onboarding/setup flows, and add openclaw plugins install --force so existing plugin and hook-pack targets can be replaced without using the dangerous-code override flag. (#​60590, #​60544)
  • Control UI/skills: add ClawHub search, detail, and install flows directly in the Skills panel. (#​60134) Thanks @​samzong.
  • iOS/exec approvals: add generic APNs approval notifications that open an in-app exec approval modal, fetch command details only after authenticated operator reconnect, and clear stale notification state when the approval resolves. (#​60239) Thanks @​ngutman.
  • Matrix/exec approvals: add Matrix-native exec approval prompts with account-scoped approvers, channel-or-DM delivery, and room-thread aware resolution handling. (#​58635) Thanks @​gumadeiras.
  • Channels/context visibility: add configurable contextVisibility per channel (all, allowlist, allowlist_quote) so supplemental quote, thread, and fetched history context can be filtered by sender allowlists instead of always passing through as received.
  • Providers/request overrides: add shared model and media request transport overrides across OpenAI-, Anthropic-, Google-, and compatible provider paths, including headers, auth, proxy, and TLS controls. (#​60200)
  • Providers/OpenAI: add forward-compat openai-codex/gpt-5.4-mini, an opt-in GPT personality, and provider-owned GPT-5 prompt contributions so Codex/GPT runs stay cache-stable and compatible with bundled catalog lag.
  • Agents/Claude CLI: expose OpenClaw tools to background Claude CLI runs through a loopback MCP bridge and switch bundled runs to stdin + stream-json partial-message streaming so prompts stop riding argv, long replies show live progress, and final session/usage metadata still land cleanly. (#​35676) Thanks @​mylukin.
  • ACPX/runtime: embed the ACP runtime directly in the bundled acpx plugin, remove the extra external ACP CLI hop, harden live ACP session binding and reuse, and add a generic reply_dispatch hook so bundled plugins like ACPX can own reply interception without hardcoded ACP paths in core auto-reply routing. (#​61319)
  • Agents/progress: add experimental structured plan updates and structured execution item events so compatible UIs can show clearer step-by-step progress during long-running runs.
  • Providers/Anthropic: remove the Claude CLI backend and setup-token from new onboarding, keep existing configured legacy profiles runnable, and have openclaw doctor repair or remove stale anthropic:claude-cli state during migration.
  • Tools/video generation: add bundled xAI (grok-imagine-video), Alibaba Model Studio Wan, and Runway video providers, plus live-test/default model wiring for all three.
  • Memory/search: add Amazon Bedrock embeddings for Titan, Cohere, Nova, and TwelveLabs models, with AWS credential-chain auto-detection for provider: "auto" and provider-specific dimension controls. Thanks @​wirjo.
  • Providers/Amazon Bedrock Mantle: generate bearer tokens from the AWS credential chain so Mantle auto-discovery can use IAM auth without manually exporting AWS_BEARER_TOKEN_BEDROCK. Thanks @​wirjo.
  • Memory/dreaming (experimental): add weighted short-term recall promotion, a /dreaming command, Dreams UI, multilingual conceptual tagging, and doctor/status repair support, while refactoring dreaming from competing modes into three cooperative phases (light, deep, REM) with independent schedules and recovery behavior so durable memory promotion can run in the background with less manual setup. (#​60569, #​60697) Thanks @​vignesh07.
  • Memory/dreaming: add configurable aging controls (recencyHalfLifeDays, maxAgeDays) plus optional verbose logging so operators can tune recall decay and inspect promotion decisions more easily.
  • Memory/dreaming: add REM preview tooling (openclaw memory rem-harness, promote-explain), surface possible lasting truths during REM staging, and make deep promotion replay-safe so reruns reconcile instead of duplicating MEMORY.md entries.
  • Memory/dreaming: write dreaming trail content to top-level dreams.md instead of daily memory notes, update /dreaming help text to point there, and keep dreams.md available for explicit reads without pulling it into default recall. Thanks @​davemorin.
  • Memory/dreaming: add the Dream Diary surface in Dreams, simplify user-facing dreaming config to enabled plus optional frequency, treat phases as implementation detail in docs/UI, and keep the lobster animation visible above diary content. Thanks @​vignesh07.
  • Prompt caching: keep prompt prefixes more reusable across transport fallback, deterministic MCP tool ordering, compaction, embedded image history, normalized system-prompt fingerprints, openclaw status --verbose cache diagnostics, and the removal of duplicate in-band tool inventories from agent system prompts so follow-up turns hit cache more reliably. (#​58036, #​58037, #​58038, #​59054, #​60603, #​60691) Thanks @​bcherny and @​vincentkoc.
  • Agents/cache: diagnostics: add prompt-cache break diagnostics, trace live cache scenarios through embedded runner paths, and show cache reuse explicitly in openclaw status --verbose. Thanks @​vincentkoc.
  • Agents/cache: stabilize cache-relevant system prompt fingerprints by normalizing equivalent structured prompt whitespace, line endings, hook-added system context, and runtime capability ordering so semantically unchanged prompts reuse KV/cache more reliably. Thanks @​vincentkoc.
  • Agents/tool prompts: remove the duplicate in-band tool inventory from agent system prompts so tool-calling models rely on the structured tool definitions as the single source of truth, improving prompt stability and reducing stale tool guidance.
  • Config/schema: enrich the exported openclaw config schema JSON Schema with field titles and descriptions so editors, agents, and other schema consumers receive the same config help metadata. (#​60067) Thanks @​solavrc.
  • Matrix/exec approvals: clarify unavailable-approval replies so Matrix no longer claims chat approvals are unsupported when native exec approvals are merely unconfigured. (#​61424) Thanks @​gumadeiras.
  • Providers/OpenAI Codex: add forward-compat openai-codex/gpt-5.4-mini synthesis across provider runtime, model catalog, and model listing so Codex mini works before bundled Pi catalog updates land.
  • Providers/OpenAI: add an opt-in GPT personality and move GPT-5 prompt tuning onto provider-owned system-prompt contributions so cache-stable guidance stays above the prompt cache boundary and embedded runner paths reuse the same provider-specific prompt behavior.
  • Docs/IRC: replace public IRC hostname examples with irc.example.com and recommend private servers for bot coordination while listing common public networks for intentional use.
  • Memory/dreaming: group nearby daily-note lines into short coherent chunks before staging them for dreaming, so one-off context from recent notes reaches REM/deep with better evidence and less line-level noise.
  • Memory/dreaming: drop generic date/day headings from daily-note chunk prefixes while keeping meaningful section labels, so staged snippets stay cleaner and more reusable. (#​61597) Thanks @​mbelinky.
  • Plugins/Lobster: run bundled Lobster workflows in process instead of spawning the external CLI, reducing transport overhead and unblocking native runtime integration. (#​61523) Thanks @​mbelinky.
  • Plugins/Lobster: harden managed resume validation so invalid TaskFlow resume calls fail earlier, and memoize embedded runtime loading per runner while keeping failed loads retryable. (#​61566) Thanks @​mbelinky.
  • Agents/bootstrap: add opt-in agents.defaults.contextInjection: "continuation-skip" so safe continuation turns can skip workspace bootstrap re-injection, while heartbeat runs and post-compaction retries still rebuild context when needed. Fixes #​9157. Thanks @​cgdusek.
Fixes
  • Control UI/chat: show /tts and other local audio-only slash replies in webchat by embedding local audio in the assistant message and rendering <audio> controls instead of dropping empty-text finals. Fixes #​61564. (#​61598) Thanks @​neeravmakwana.
  • Security: preserve restrictive plugin-only tool allowlists, require owner access for /allowlist add and /allowlist remove, fail closed when before_tool_call hooks crash, block browser SSRF redirect bypasses earlier, and keep non-interactive auth-choice inference scoped to bundled and already-trusted plugins. (#​58476, #​59836, #​59822, #​58771, #​59120) Thanks @​eleqtrizit and @​pgondhi987.
  • Providers/OpenAI: make GPT-5 and Codex runs act sooner with lower-verbosity defaults, visible progress during tool work, and a one-shot retry when a turn only narrates the plan instead of taking action.
  • Providers/OpenAI and reply delivery: preserve native reasoning.effort: "none" and strict schemas where supported, add GPT-5.4 assistant phase metadata across replay and the Gateway /v1/responses layer, and keep commentary buffered until final_answer so web chat, session previews, embedded replies, and Telegram partials stop leaking planning text. Fixes #​59150, #​59643, #​61282.
  • Telegram: fix current-model checks in the model picker, HTML-format non-default /model confirmations, explicit topic replies, persisted reaction ownership across restarts, caption-media placeholder and file_id preservation on download failure, and upgraded-install inbound image reads. (#​60384, #​60042, #​59634, #​59207, #​59948, #​59971) Thanks @​sfuminya, @​GitZhangChi, @​dashhuang, @​samzong, @​v1p0r, and @​neeravmakwana.
  • Telegram: restore DM voice-note preflight transcription so direct-message audio stops arriving as raw <media:audio> placeholders. (#​61008) Thanks @​manueltarouca.
  • Telegram/reasoning: only create a Telegram reasoning preview lane when the session is explicitly reasoning:stream, so hidden <think> traces from streamed replies stop surfacing as chat previews on normal sessions. Thanks @​vincentkoc.
  • Telegram/native command menu: trim long menu descriptions before dropping commands so sub-100 command sets can still fit Telegram's payload budget and keep more / entries visible. (#​61129) Thanks @​neeravmakwana.
  • Telegram/startup: bound deleteWebhook, getMe, and setWebhook startup requests while keeping the longer getUpdates poll timeout, so wedged Telegram control-plane calls stop hanging startup indefinitely. (#​61601) Thanks @​neeravmakwana.
  • Agents/failover: classify Anthropic "extra usage" exhaustion as billing so same-turn model fallback still triggers when Claude blocks long-context requests on usage limits. (#​61608) Thanks @​neeravmakwana.
  • Discord: keep REST, webhook, and monitor traffic on the configured proxy, preserve component-only media sends, honor @everyone and @here mention gates, keep ACK reactions on the active account, and split voice connect/playback timeouts so auto-join is more reliable. (#​57465, #​60361, #​60345) Thanks @​geekhuashan.
  • Discord/reply tags: strip leaked [[reply_to_current]] control tags from preview text and honor explicit reply-tag threading during final delivery, so Discord replies stay attached to the triggering message instead of printing reply metadata into chat.
  • Discord/replies: replace the unshipped replyToOnlyWhenBatched flag with replyToMode: "batched" so native reply references only attach on debounced multi-message turns while explicit reply tags still work.
  • Discord/image generation: include the real generated MEDIA: paths in tool output, avoid duplicate plain-output media requeueing, and persist volatile workspace-generated media into durable outbound media before final reply delivery so generated image replies stop pointing at missing local files.
  • Slack: route live DM replies back to the concrete inbound DM channel while keeping persisted routing metadata user-scoped, so normal assistant replies stop disappearing when pairing and system messages still arrive. (#​59030) Thanks @​afurm.
  • WhatsApp: restore channels.whatsapp.blockStreaming and reset watchdog timeouts after reconnect so quiet chats stop falling into reconnect loops. (#​60007, #​60069) Thanks @​MonkeyLeeT and @​mcaxtr.
  • Android/Talk Mode: cancel in-flight talk.speak playback when speech is explicitly stopped, and restore spoken replies on both node-scoped and gateway-backed sessions by keeping reply routing and embedded transport overrides aligned with the current playback path. (#​60306, #​61164, #​61214)
  • Voice-call/OpenAI: pass full plugin config into realtime transcription provider resolution so streaming calls can discover the bundled OpenAI realtime transcription provider again. Fixes #​60936. Thanks @​sliekens and @​vincentkoc.
  • Matrix/exec approvals: anchor seeded approval reactions to the primary Matrix prompt event, resolve them from event metadata instead of prompt text, and clean up chunked approval prompts correctly. (#​60931) Thanks @​gumadeiras.
  • Matrix: recover more reliably when secret storage or recovery keys are missing by recreating secret storage during repair and backup reset, hold crypto snapshot locks during persistence, and surface explicit too-large attachment markers. (#​59846, #​59851, #​60599, #​60289) Thanks @​al3mart, @​emonty, and @​efe-arv.
  • Matrix/DM sessions: add channels.matrix.dm.sessionScope, shared-session collision notices, and aligned outbound session reuse so separate Matrix DM rooms can keep distinct context when configured. (#​61373) Thanks @​gumadeiras.
  • Matrix: move legacy top-level avatarUrl into the default account during multi-account promotion and keep env-backed account setup avatar config persisted. (#​61437) Thanks @​gumadeiras.
  • MS Teams: download inline DM images via Graph API and preserve channel reply threading in proactive fallback. (#​52212, #​55198) Thanks @​Ted-developer and @​hyojin.
  • MS Teams: replace the deprecated Teams SDK HttpPlugin stub with httpServerAdapter so recurring gateway deprecation warnings stop firing and the Express 5 compatibility workaround stays on the supported SDK path. (#​60939) Thanks @​coolramukaka-sys.
  • Control UI/chat: add a per-session thinking-level picker in the chat header and mobile chat settings, and keep the browser bundle on UI-local thinking/session-key helpers so Safari no longer crashes on Node-only imports before rendering chat controls.
  • Sandbox/SSH: reject hardlinked files during cross-device rename fallback so EXDEV file copies preserve the same pinned file-boundary checks as direct reads.
  • Control UI: keep Stop visible during tool-only execution, preserve pending-send busy state, and clear stale ClawHub search results as soon as the query changes. (#​54528, #​59800, #​60267) Thanks @​chziyue and @​frankekn.
  • Control UI/avatar: honor ui.assistant.avatar when serving /avatar/:agentId so Appearance UI avatar paths stop falling back to initials placeholders. (#​60778) Thanks @​hannasdev.
  • Control UI/cron: highlight the Cron refresh button while refresh is in flight so the page's loading state stays visible even when prior data remains on screen. (#​60394) Thanks @​coder-zhuzm.
  • Control UI/Overview: prevent gateway access token/password visibility toggle buttons from overlapping their inputs at narrow widths. (#​56924) Thanks @​bbddbb1.
  • Auto-reply: unify reply lifecycle ownership across preflight compaction, session rotation, CLI-backed runs, and gateway restart handling so /stop and same-session overlap checks target the right active turn and restart-interrupted turns return the restart notice instead of being silently dropped. (#​61267) Thanks @​dutifulbob.
  • Reply delivery: prevent duplicate block replies on text_end channels so providers that emit explicit text-end boundaries no longer double-send the same final message. (#​61530)
  • Gateway/startup: default gateway.mode to local when unset, detect PID recycling in gateway lock files on Windows and macOS, and show startup progress so healthy restarts stop getting blocked by stale locks. (#​54801, #​60085, #​59843) Thanks @​BradGroux and @​TonyDerek-dot.
  • Gateway/macOS: let launchd KeepAlive own in-process gateway restarts again, adding a short supervised-exit delay so rapid restarts avoid launchd crash-loop unloads while openclaw gateway restart still reports real LaunchAgent errors synchronously.
  • Gateway/macOS: re-bootstrap the LaunchAgent if launchctl kickstart -k unloads it during restart so failed restarts do not leave the gateway unmanaged until manual repair.
  • Gateway/macOS: recover installed-but-unloaded LaunchAgents during openclaw gateway start and restart, while still preferring live unmanaged gateways during restart recovery. (#​43766) Thanks @​HenryC-3.
  • Gateway/Windows scheduled tasks: preserve Task Scheduler settings on reinstall, fail loudly when /Run does not start, and report fast failed restarts accurately instead of pretending they timed out after 60 seconds. (#​59335) Thanks @​tmimmanuel.
  • Windows/restart: fall back to the installed Startup-entry launcher when the scheduled task was never registered, so /restart can relaunch the gateway on Windows setups where schtasks install fell back during onboarding. (#​58943) Thanks @​imechZhangLY.
  • Windows/restart: clean up stale gateway listeners before Windows self-restart and treat listener and argv probe failures as inconclusive, so scheduled-task relaunch no longer falls into an EADDRINUSE retry loop. (#​60480) Thanks @​arifahmedjoy.
  • Update/npm: prefer the npm binary that owns the installed global OpenClaw prefix so mixed Homebrew-plus-nvm setups update the right install. (#​60153) Thanks @​jayeshp19.
  • Agents/music and video generation: add tools.media.asyncCompletion.directSend as an opt-in direct-delivery path for finished async media tasks, while keeping the legacy requester-session wake/model-delivery flow as the default.
  • CLI/skills JSON: route skills list --json, skills info --json, and skills check --json output to stdout instead of stderr so machine-readable consumers receive JSON on the expected stream again. (#​60914; fixes #​57599; landed from contributor PR #​57611 by @​Aftabbs) Thanks @​Aftabbs.
  • CLI/Commander: preserve Commander-computed exit codes for argument and help-error paths, and cover the user-argv parse mode in the regression tests so invalid CLI invocations no longer report success when exits are intercepted. (#​60923) Thanks @​Linux2010.
  • Cron: replay interrupted recurring jobs on the first gateway restart instead of waiting for a second restart. (#​60583) Thanks @​joelnishanth.
  • Cron: send failure notifications through the job's primary delivery channel using the same session context as successful delivery when no explicit failureDestination is configured. (#​60622) Thanks @​artwalker.
  • Exec/remote skills: stop advertising exec host=node when the current exec policy cannot route to a node, and clarify blocked exec-host override errors with both the requested host and allowed config path.
  • Agents/Claude CLI/security: clear inherited Claude Code config-root and plugin-root env overrides like CLAUDE_CONFIG_DIR and CLAUDE_CODE_PLUGIN_*, so OpenClaw-launched Claude CLI runs cannot be silently pointed at an alternate Claude config/plugin tree with different hooks, plugins, or auth context. Thanks @​vincentkoc.
  • Agents/Claude CLI/security: clear inherited Claude Code provider-routing and managed-auth env overrides, and mark OpenClaw-launched Claude CLI runs as host-managed, so Claude CLI backdoor sessions cannot be silently redirected to proxy, Bedrock, Vertex, Foundry, or parent-managed token contexts. Thanks @​vincentkoc.
  • Agents/Claude CLI/security: force host-managed Claude CLI backdoor runs to --setting-sources user, even under custom backend arg overrides, so repo-local .claude project/local settings, hooks, and plugin discovery do not silently execute inside non-interactive OpenClaw sessions. Thanks @​vincentkoc.
  • Agents/Claude CLI: treat malformed bare --permission-mode backend overrides as missing and fail safe back to bypassPermissions, so custom cliBackends.claude-cli.args security config cannot accidentally consume the next flag as a bogus permission mode. Thanks @​vincentkoc.
  • Gateway/device pairing: require non-admin paired-device sessions to manage only their own device for token rotate/revoke and paired-device removal, blocking cross-device token theft inside pairing-scoped sessions. (#​50627) Thanks @​coygeek.
  • Gateway/plugin routes: keep gateway-auth plugin runtime routes on write-only fallback scopes unless a trusted-proxy caller explicitly declares narrower x-openclaw-scopes, so plugin HTTP handlers no longer mint admin-level runtime scopes on missing or untrusted HTTP scope headers. (#​59815) Thanks @​pgondhi987.
  • Build/types: fix the Node createRequire(...) helper typing so provider-runtime lazy loads compile cleanly again and pnpm build no longer fails in the Pi embedded provider error-pattern path.
  • Gateway/security: scope loopback browser-origin auth throttling by normalized origin so one localhost Control UI tab cannot lock out a different localhost browser origin after repeated auth failures.
  • Gateway/auth: serialize async shared-secret auth attempts per client so concurrent Tailscale-capable failures cannot overrun the intended auth rate-limit budget. Thanks @​Telecaster2147.
  • Device pairing/security: keep non-operator device scope checks bound to the requested role prefix so bootstrap verification cannot redeem operator.* scopes through node auth. (#​57258) Thanks @​jlapenna.
  • Device pairing: reject rotating device tokens into roles that were never approved during pairing, and keep reconnect role checks bounded to the paired device's approved role set. (#​60462) Thanks @​eleqtrizit.
  • Gateway/device auth: reuse cached device-token scopes only for cached-token reconnects, while keeping explicit deviceToken scope requests and empty-cache fallbacks intact so reconnects preserve operator.read without breaking explicit auth flows. (#​46032) Thanks @​caicongyang.
  • Mobile pairing/security: fail closed for internal /pair setup-code issuance, cleanup, and approval paths when gateway pairing scopes are missing, and keep approval-time requested-scope enforcement on the internal command path. (#​55996) Thanks @​coygeek.
  • Mobile pairing/bootstrap: keep QR bootstrap handoff tokens bounded to the mobile-safe contract so node handoff stays unscoped and operator handoff drops mixed node.*, operator.admin, and operator.pairing scopes.
  • Mobile pairing/Android: tighten secure endpoint handling so Tailscale and public remote setup reject cleartext endpoints, private LAN pairing still works, merged-role approvals mint both node and operator device tokens, and bootstrap tokens survive node auto-pair until operator approval finishes. (#​60128, #​60208, #​60221) Thanks @​obviyus.
  • Android/canvas security: require exact normalized A2UI URL matches before forwarding canvas bridge actions, rejecting query mismatches and descendant paths while still allowing fragment-only A2UI navigation.
  • Synology Chat/security: default low-level HTTPS helper TLS verification to on so helper/API defaults match the shipped safe account default, and only explicit allowInsecureSsl: true opts out.
  • Synology Chat/security: route webhook token comparison through the shared constant-time secret helper for consistency with other bundled plugins.
  • Plugins/marketplace: block remote marketplace symlink escapes without breaking ordinary local marketplace install paths. (#​60556) Thanks @​eleqtrizit.
  • Telegram/local Bot API: honor channels.telegram.apiRoot for buffered media downloads, add channels.telegram.network.dangerouslyAllowPrivateNetwork for trusted fake-IP setups, and require channels.telegram.trustedLocalFileRoots before reading absolute Bot API file_path values. (#​59544, #​60705) Thanks @​SARAMALI15792 and @​obviyus.
  • Outbound/sanitizer: strip leaked <tool_call>, <function_calls>, and model special tokens from shared user-visible assistant text, including truncated tool-call streams, so internal scaffolding no longer bleeds into replies across surfaces. (#​60619) Thanks @​oliviareid-svg.
  • Agents/errors: surface an explicit disk-full message when local session or transcript writes fail with ENOSPC/disk full, so those runs stop degrading into opaque NO_REPLY-style failures. Thanks @​vincentkoc.
  • Exec approvals: remove heuristic command-obfuscation gating from host exec so gateway and node runs rely on explicit policy, allowlist, and strict inline-eval rules only.
  • Agents/tool results: cap live tool-result persistence and overflow-recovery truncation at 40k characters so oversized tool output stays bounded without discarding recent context entirely.
  • Discord/video replies: split text-plus-video deliveries into a text reply followed by a media-only send, and let live provider auth checks honor manifest-declared API key env vars like MODELSTUDIO_API_KEY.
  • Config/All Settings: keep the raw config view intact when sensitive fields are blank instead of corrupting or dropping the rendered snapshot. (#​28214) Thanks @​solodmd.
  • Plugin SDK/facades: back-fill bundled plugin facade sentinels before plugin-id tracking re-enters config loading, so CLI/provider startup no longer crashes with shouldNormalizeGoogleProviderConfig is not a function or other empty-facade reads during bundled plugin re-entry. Thanks @​adam91holt.
  • Plugins/facades: back-fill facade sentinels before tracked-plugin resolution re-enters config loading, so facade exports stay defined during circular provider normalization. (#​61180) Thanks @​adam91holt.
  • QA lab: restore typed mock OpenAI gateway config wiring so QA-lab config helpers compile cleanly again and pnpm check / pnpm build stay green.
  • Discord/image generation: include the real generated MEDIA: paths in tool output and avoid duplicate plain-output media requeueing so Discord image replies stop pointing at missing local files.
  • Slack: route live DM replies back to the concrete inbound DM channel while keeping persisted routing metadata user-scoped, so normal assistant replies stop disappearing when pairing and system messages still arrive. (#​59030) Thanks @​afurm.
  • Discord/reply tags: strip leaked [[reply_to_current]] control tags from preview text and honor explicit reply-tag threading during final delivery, so Discord replies stay attached to the triggering message instead of printing reply metadata into chat.
  • Telegram: fix current-model checks in the model picker, HTML-format non-default /model confirmations, explicit topic replies, persisted reaction ownership across restarts, caption-media placeholder and file_id pr

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Never, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@f2c-ci-robot
Copy link
Copy Markdown

f2c-ci-robot Bot commented Apr 10, 2026

Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@f2c-ci-robot
Copy link
Copy Markdown

f2c-ci-robot Bot commented Apr 10, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@wanghe-fit2cloud wanghe-fit2cloud merged commit d4ee259 into dev Apr 10, 2026
@wanghe-fit2cloud wanghe-fit2cloud deleted the renovate/1panel-openclaw-2026.x branch April 10, 2026 06:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant