npm openclaw 2026.10.10-beta.5
openclaw 2026.10.10-beta.5

11 hours ago

2026.10.10-beta.5

Highlights

Changes

Fixes

  • Security boundaries: require approval for test/[ -v operands in exec allowlist mode, refuse browser proxy commands sent through generic node invoke, fail closed when sandboxed spawned children resolve CLI-backed models, carry workspaceOnly into Gateway-built delegate and media tools, keep unresolved Microsoft Teams allowlists restrictive, stop crafted Teams HTML from stalling the Gateway before sender checks, refuse embedded Control UI auth on pinned Android Gateway connections, and audit symlinked workspace skill roots. (#180880, #179880, #178742, #185094, #184989, #183438, #180843, #182384; related #111797) Thanks @eleqtrizit, @RomneyDa, @LeizhenZhang, and @dineshsuthar123.
  • Security: keep browser pairing credentials out of opener process arguments, mask Google OAuth client secrets in logs, redact credentials from MCP CLI inspection, omit credentials from rejected search endpoint errors, and keep malformed piped input from corrupting model credentials. (#170289, #183193, #180321, #182534, #167251; related #180308) Thanks @eleqtrizit, @LeizhenZhang, @RomneyDa, @brandon-julio-t, @wr-web, and @Alix-007.
  • Dependency security: update fast-uri, bound vendored Zod traversal for A2UI and Discord input, scope the patched MSAL for Microsoft Teams, and pick up nodemailer sender-parsing fixes for IMAP. (#187285, #187304, #187297, #187293, #187301) Thanks @RomneyDa and @shakkernerd.
  • Terminal output: escape terminal control sequences in camera, channel capability and catalog, DNS setup, managed worktree, plugin uninstall, skills library, completion install, Gateway discovery, MCP registry, model auth profile, backup schedule, readable secret, session store, storage location, and message CLI output, and keep emoji and astral characters whole at diagnostic and metadata caps. (#175624, #178234, #178238, #181585, #181582, #183708, #178313, #184120, #183355, #181587, #181584, #184153, #184141, #184139, #183359, #176266, #183360, #176230, #176207, #181741, #181742, #182753, #183942, #183932) Thanks @SunnyShu0925, @obviyus, @RomneyDa, @Alix-007, @wangmiao0668000666, and @hugenshen.
  • Replies: streaming a reply that mentions tool calls, contains tool-call XML, or ends long HTML at a partial tag no longer stalls the Gateway, missing-answer notices no longer follow streamed delivery, side-question replies no longer disappear or repeat after tool sends, multiline /btw, /loop, and /acp steer input is preserved, and compaction failures show instead of stale overflow advice. (#172631, #181397, #183252, #180765, #173798, #174869, #176293, #185456, #173310; related #175156, #180720, #176250, #185455) Thanks @JasonBuildAI, @RomneyDa, @LeizhenZhang, @goutamadwant, @yetval, @masatohoshino, and @TurboTheTurtle.
  • Reply text: prevent MiniMax tool argument tails, deduplicate CRLF assistant replies, suppress rich payloads during silent turns, keep inline backticks from swallowing following prose when chunking, keep group-chat commands' line breaks and indentation, and stop TTS from duplicating captioned final text. (#183413, #183023, #129244, #180588, #183606, #181161; related #181070) Thanks @gdpu11, @RomneyDa, @AmelioMansour, @L4XB, @mushuiyu886, and @julianloperar.
  • Sessions: preserve transcript IDs across idle resets and the linked model account across /new, /reset, and idle or daily resets, commit automation results during active turns, keep cleared history out of forks, keep a project folder without a worktree attached on reset, drain archive retention across pages, log unreadable transcript probes, and keep corrupt session rows from breaking session listings. (#184157, #179433, #181506, #166660, #182491, #181746, #182118, #181247; related #179432, #182474, #181722, #173080, #181092) Thanks @RomneyDa, @masatohoshino, @Shenrui-Ma, @ericcurtin, @resinoftree97, @xiaopan-xydt, @tre1d, @Yolo521-bot, @Patrick-Erichsen, and @davidcittadini.
  • Session commands and lookups: report session read failures before native execution, fail cleanly when the runtime changes during turn preparation, omit directories from session file activity, match canonical Unicode titles, return canonical JSON for rejected compaction, store PostgreSQL pruned watermarks correctly, match agent bind and unbind routes case-insensitively, and make /session unbind report when nothing was removed and handle IDs containing U+241F. (#175654, #185573, #167732, #184374, #184131, #184911, #184717, #184857, #184317; related #184864) Thanks @enki, @RomneyDa, @GoldArowana, @Leon-SK668, @etzelm, and @A-Raphie.
  • Sessions and follow-ups: preserve queued follow-ups after stopping preparation or a missed completion and drain them outside the plugin runtime generation, keep yielded-parent Stop alive while settling, reset a Main session archived by restart recovery, keep confirmed subagent cancellations final, and keep replies flowing after a restart with paused child tasks. (#172685, #159715, #181096, #176603, #176675, #176206, #175278, #185999; related #172658, #169077) Thanks @shakkernerd, @mbelinky, @RomneyDa, @hannnnn-l, @enki, and @VACInc.
  • Subagents: prevent Gateway crashes during continuation conflicts, preserve restart recovery for delegated child work, keep unfinished restored cohorts out of the requester queue, settle consumed yield cohorts without retry, settle parent turns after an inline child reply, retain child results while a parent awaits Resume, avoid re-killing finished runs on session reset, leave interrupted delivery reservations to their recovery owner, preserve Claude parent replies after discarded subagent output, keep post-compaction continuation prompts, and keep queued collector runs out of operator completion custody. (#185386, #181373, #184022, #181260, #181933, #182587, #179731, #184100, #184352, #136236; related #178413, #143334) Thanks @RomneyDa, @SC-10749, @sukhdeepjohar, @Patrick-Erichsen, @BorClaw, @jalehman, @hidaba, @obviyus, @jaxonparrott, @vincentkoc, and @shakkernerd.
  • Gateway restarts: keep restart custody when the request entry closes, preserve unfinished replies and subagent work across restarts, surface stale Gateway cleanup failures, clear the restart-loop breaker after an unlinked channel recovers, let first native turns await pending worker setup, confirm Windows Gateway shutdown after a slow connection refusal, honor a stop that arrives during an in-place restart, and restore the Gateway when Doctor receives SIGHUP. (#172852, #172412, #169144, #174590, #176182, #174807, #177184, #186055, #182901; related #174504, #174563) Thanks @RomneyDa, @shoaibulhaque, @altaywtf, @Yolo521-bot, @ericcurtin, @sunlit-deng, @prizmizm, and @freeqaz.
  • Gateway: recover a channel account after a manual stop times out, reclaim obsolete native captures after startup, serve GET /v1/models/{id} for alias IDs that chat accepts, skip install discovery at startup when update checks are off, avoid catalog waits for empty agent rosters, and reject malformed usage cost scopes. (#177444, #176851, #180057, #181983, #182159, #158696; related #158099) Thanks @YangManBOBO, @RomneyDa, @harjothkhara, @yetval, @ruel225, @jonathanlindsay, @vincentkoc, and @Alix-007.
  • Codex: keep plugin turns working under managed on-request approval policies, stop failing successful one-shot commands at cleanup, keep the next turn from stalling after Stop during a session handoff, release completed subagents after cleanup failures, recover queued chats and preserve startup failures, keep native child inference working after startup, stop asking for approval after setup consent, and keep the macOS Codex catalog available with valid plugin options. (#172592, #172639, #173516, #173580, #173547, #182104, #176311, #185920; related #161576) Thanks @RomneyDa, @stevenlee-oai, @Compassboot, @LLagoon3, @Kimiyu-186, @jjjhenriksen, @enki, and @obviyus.
  • Codex native runtime: preserve the native catalog, completion continuity, protected scheduled continuations, and the prompt cache when reasoning effort changes, queue inference roots at capacity instead of failing turns, stop model fallback while native threads are active, and accept managed loopback proxy defaults. (#174900, #181528, #182397, #181895, #181204, #183232; related #181046, #180719) Thanks @enki, @Stronggenetics, @quqi1599, @Ricardodpalmeida, @RomneyDa, @vincentkoc, @jason-allen-oneal, @indra622, and @ermaxinc.
  • Claude CLI: probe login with the environment its runs keep, recover known Claude sessions after bounded discovery, finish parent replies after nested background agents instead of waiting for the watchdog, keep room-event turns from resetting sessions, treat rejected resume checkpoints as an expired session, keep logged-out models listed with a login reason, and stop a false refresh warning when the CLI is not installed. (#175114, #176742, #182267, #182516, #182273, #181308, #166338, #182729; related #182175, #182177, #181254, #182728) Thanks @RomneyDa, @sunlit-deng, @goslingmanagment, @xiaopan-xydt, @mushuiyu886, @Marvinthebored, @obviyus, and @masatohoshino.
  • Model providers: recover tasks after malformed OpenAI stream events, detach OpenAI stream partial snapshots from live output, avoid false tool-name errors for Responses aliases, preserve multiline Google replies, recover DeepSeek DSML tool calls routed through OpenRouter, recover ChatGPT tool replies after unverifiable reasoning replay, and unblock OpenAI OAuth with stale catalogs. (#173404, #172653, #170751, #173612, #175058, #185774, #181356; related #174909, #181353) Thanks @Richard355168, @Linux2010, @ZhimingQ, @anyech, @RomneyDa, and @sasan1200.
  • Model limits and errors: detect SiliconFlow and vLLM context overflows, keep a selected Anthropic 200K context window after discovery fails, accept long AskUserQuestion option descriptions, correct limits for new Microsoft Foundry GPT-5 deployments, normalize Ollama tool result names, show billing failures as billing rather than rate limits, keep redaction-damaged 400/422 bodies from defaulting to format errors, and keep provider discovery within budget after clock changes. (#181519, #181521, #177702, #182938, #114891, #181549, #180867, #183006, #155323; related #181518, #181520, #177701, #181548, #180856, #155322) Thanks @xpeng5278-web, @RomneyDa, @nxmxbbd, @ericcurtin, @eliavb43, @amittell, @masatohoshino, and @fuller-stack-dev.
  • Agents and tools: stop the model-catalog worker from discarding incrementally loaded plugins, apply very large patch hunks without argument-limit crashes, preserve blank lines across read pages and terminal diagnostics in truncated tool results, distinguish invalid tool arguments from blocked calls, surface unfinished tool execution timeouts, and preserve uncertain cleanup in buffered command results and Git cleanup after cancellation. (#162226, #174477, #173835, #174030, #176104, #172983, #174622, #184270, #184226; related #176066, #172899, #184237, #184197) Thanks @netcrazed, @RomneyDa, @vincentkoc, @yinx65588-boop, @BGreezy, @budzation, and @shakkernerd.
  • Agent runs: preserve discovered models for isolated completions, the inherited auth owner, and model aliases after snapshot retirement, keep the attempt budget for runtime plugins, stop runtime rebuild storms during auth cooldowns, report an exhausted structured-output retry budget, stop recommending disabled reasoning and update commands, stop model fallback on transcript admission conflicts, preserve private tool parameters across hook rewrites and literal message-file paths, keep concurrent automations working on unchanged accounts, prevent unhandled cleanup failures for empty responses, fix skill search in Code Mode on cloud workers, and name whole missing identifiers in compaction feedback. (#179333, #181655, #182952, #181812, #179192, #182995, #185250, #181515, #181997, #182001, #177956, #185170, #171585, #182503, #138415; related #179331, #181642, #181619, #181442, #181956, #185127) Thanks @brandon-julio-t, @RomneyDa, @tianhaotian, @Yolo521-bot, @ensignwesley, @kip-claw, @sukhdeepjohar, @Oldrich333, @LiuwqGit, @Card4Philippe, @MonkeyLeeT, @HootRock, @fuller-stack-dev, @Alix-007, and @amittell.
  • Web fetch and search: keep Markdown inside inline code, code indentation, tilde fences, definition lists, and block boundaries intact in text mode, keep balanced link URLs and zero-scale hidden text out of extracted text, honor configured maxResults and timeoutSeconds for Tavily, Firecrawl, DuckDuckGo, and Ollama, keep later results when early snippets are long, and start enabled search owners for automatic web search. (#184411, #172389, #180611, #180557, #181740, #178569, #180605, #181785, #180115, #182052, #179703, #179781; related #184362, #178499, #105438, #180062, #182051, #179665) Thanks @yy19971996, @RomneyDa, @AmelioMansour, @embrace897, @ly85206559, @L4XB, @HeZ2z, @yetval, @Jimmy-xuzimo, @aniruddhaadak80, @mushuiyu886, @masatohoshino, @Canvinus, @wr-web, and @duardor968.
  • MCP: stop relay runs aborting after submission succeeds, keep a timed-out session DELETE from failing the next turn, render MCP Apps in Safari and the macOS app, recover the loopback after an unexpected close, accept mixed-case JSON content types, preserve literal stdio and TLS client certificate paths, prevent lost tool calls from idle socket reuse, release connected app rows when closing the view, and return canonical JSON failures. (#172980, #181863, #182189, #182485, #183352, #172290, #171620, #181883, #184213, #183361; related #172871, #182174, #164447, #139340, #178413) Thanks @Oldrich333, @crwohlfeil, @RomneyDa, @aniketkrs, @goslingmanagment, @anmol0b, @technicalpickles, @SC-10749, @eli-pavlov, @sukhdeepjohar, @wangmiao0668000666, @Alix-007, and @Leon-SK668.
  • Hooks, cron, and automations: admit hooks only on execution-lane entry, preserve cron failure alerts refused before delivery, keep targeted system events unread during isolated heartbeats, cancel forced paused runs on explicit disable, finalize retained one-shot jobs on PostgreSQL, keep stopped dreaming cron jobs stopped, and free a claimed workboard card's owner after it moves to done or blocked. (#175111, #173347, #175642, #182350, #181802, #180694, #184241; related #173077, #175599, #180655) Thanks @RomneyDa, @Winoren, @Yolo521-bot, @sunlit-deng, @seriouslysean, @Yun-0000, @lisandromachado, and @jondihaynes.
  • Exec approvals and owners: honor discord:user:<id> and slack:user:<id> command owners for voice access and exec approvals, refuse node requests for Gateway-pinned jobs, keep node exec updates from waiting on the node service, and expand file: URI SQLite targets in the live-state guard. (#172385, #172424, #176997, #173304, #170253; related #169256, #171542) Thanks @yetval, @RomneyDa, @etzelm, @davidcittadini, and @eleqtrizit.
  • Telegram: restore missing replies in conversation context, prevent duplicate transcript echoes on replay, recover saved replies after local request deadlines, deliver questions during progress draft retirement, stop marking delivered group replies in a reply chain as failed, keep the default bot running when named accounts override or add tokens, resolve mixed-case account keys, route private topic reactions to topic sessions, skip sticker descriptions when image understanding is off, release throttlers for retired bot tokens, and keep offset checkpoints working under stock Bun. (#179399, #162565, #185465, #183028, #185899, #183618, #180654, #175946, #182006, #169536, #178909; related #185460, #182624, #179369, #180066, #175665, #181980, #178809) Thanks @sobolevbel, @RomneyDa, @dankarization, @vincentkoc, @sercada, @moonbow0407, @555aaditya, @rodricksz4h5, @SC-10749, @yetval, @xiaopan-xydt, @obviyus, @RaphazZze, @wr-web, @Card4Philippe, @xialonglee, @brianmcguire, @qwexs, and @shakkernerd.
  • WhatsApp: avoid duplicate sends after socket failures, download stickers sent from WhatsApp Web or Desktop, deliver messages that first arrive undecryptable, and release cached quotes after plugin retirement. (#142434, #164210, #162078, #182550; related #142398, #163559, #161829) Thanks @ashawwal, @obviyus, @andrewwbuilds, @abacha, @stanleys12, @hundredhandsio, @vincentkoc, and @RomneyDa.
  • Mattermost and Matrix: land the final Mattermost answer below posts sent during the run without notifying, pace preview edits after slow sends, deny instead of pairing when the pending queue is full, stop Matrix streamed previews from notifying everyone named, and tag only Matrix control commands with a command source. (#185422, #185483, #178581, #169975, #183372, #179506; related #185421, #185482, #178507, #179441) Thanks @hannnnn-l, @RomneyDa, @obviyus, @masatohoshino, @HeZ2z, @yetval, @xili-ytl, @L4XB, @xiaopan-xydt, and @doomy.
  • Channels: preserve Slack rich-text dates and settle relay accepts before socket recovery, retry an isolated Slack invalid_auth before disabling socket mode, reconnect IRC after a silent network drop, continue IMAP after malformed messages, preserve Telegram spacing before parenthesized numbered sections, and keep a rejecting typing keepalive from crashing the process. (#172182, #173407, #181056, #172961, #173231, #177126, #175381; related #172180, #180942, #172952, #175303) Thanks @fhgffy, @skyzhao1223, @mushuiyu886, @RomneyDa, @marns, @rodricksz4h5, @pgondhi987, @shakkernerd, @gideonpraise, @musatoktas, and @Yolo521-bot.
  • More channels: let the Gateway exit when a restart overtakes slow Discord startup, keep invalid plugin names out of Discord native catalogs, split long CRLF Discord replies cleanly, treat a closed Signal event stream as a lost connection, recover iMessage sends after the Messages bridge dies and stop answering its own self-chat replies, keep LINE loading animation silent when replies are denied, keep Teams list items after a code block, reject prototype-named SMS media types, allow new FaceTime calls after a disconnect, and keep meeting captions saving after a CLI join. (#184033, #126643, #184435, #182746, #180900, #183383, #185306, #182959, #181773, #154230, #178415; related #184032, #126633, #182694, #185305, #149999, #154228, #178413) Thanks @MarMarLabs, @RomneyDa, @xialonglee, @wr-web, @888achtachtacht-commits, @sukhdeepjohar, @masatohoshino, @L4XB, @Jimmy-xuzimo, @Solvely-Colin, @SC-10749, and @shakkernerd.
  • Outbound delivery and notifications: settle permanent unknown-send reconciliation failures, classify A2A missing-URL rejections as permanent, skip agent-finished web pushes to the device viewing the session, and release Muse native sessions and match canonical Beam session titles across plugin reloads. (#180767, #181326, #183535, #184941, #184847, #133460; related #180582, #181175) Thanks @wr-web, @RomneyDa, @Yolo521-bot, @potoior, @exGeni, @holgergruenhagen, @pstarkgit, and @Leon-SK668.
  • Control UI: keep the pending connection when a tab wakes during a busy Gateway, report opening timeouts before reconnecting, scope resumed log cursors to one Gateway boot, release the asset cache when disabled, report failed pull request subscriptions, skip placement waits for compact chat metadata, keep the cached sidebar when a peer identity is unresolved, and report a chat send retired mid-flight without a false storage failure. (#172864, #172626, #177042, #177038, #175606, #177066, #185762, #187594, #186171) Thanks @RomneyDa, @vincentkoc, and @syxscott.
  • Control UI chat and settings: close composer menus after submission, preserve Shift+Enter newlines and backward Tab with suggestions, honor an agent's own verboseDefault, restore guest message forking, serve session avatars for data URL identities, keep image zoom and browser zoom shortcuts working, keep the command palette stable while a key is held, ignore unfinished numeric drafts, keep standing grants when approval history fails, hide unrelated sessions from Involving me, preserve reported usage totals, preserve trailing whitespace in patch viewers, stop plugin SVG transforms stalling the page, and keep first-run model metadata from restricting the picker. (#184869, #181999, #181145, #182059, #185486, #182730, #181374, #180872, #183067, #182076, #183769, #182015, #171872, #181674, #182674, #175945; related #185414, #180943, #175533) Thanks @shakkernerd, @RomneyDa, @AmelioMansour, @obviyus, @etzelm, @masatohoshino, @sunlit-deng, @ly85206559, @SebTardif, @matthematics1137, and @jb-dev1.
  • Accessibility: show focus outlines in forced-colors mode for Settings search and the composer, name the chat transcript and MCP server row buttons for screen readers, and announce agent file save failures and conflicts. (#181225, #180135, #180857, #178162, #181126; related #180134, #180814, #178161) Thanks @etzelm, @RomneyDa, @bajiaoshan, @carlopignatari-boop, and @shakkernerd.
  • iOS: connect manually when the host includes https:// or wss://, and prevent history recall during composition or selection. (#169875, #143056; related #144678) Thanks @masatohoshino, @RomneyDa, @bjesuiter, and @vincentkoc.
  • Memory: restore memory access for automations linked to older dashboard chats and owner sessions started by sessions_send or cross-agent subagents, keep session searches from loading the full catalog, rank closer meaning above weak keyword matches, report all-zero query embeddings, split Mistral batches over the token limit, pause active recall after spaced timeouts, stop expired LanceDB recalls after cold starts, load llama.cpp embeddings after a temporary exec run, bound cache growth during rebuilds, and refuse invalid UTF-8 in workspace text and DREAMS.md. (#182345, #181359, #181247, #177450, #183475, #183567, #181297, #182340, #182781, #183089, #179016, #179022; related #181092, #183556, #182518, #182886) Thanks @jalehman, @RomneyDa, @Patrick-Erichsen, @davidcittadini, @serg0x, @lonexreb, @drewjocham, @rjdotdev, @kir1ll, @etzelm, @SunnyShu0925, and @shakkernerd.
  • Memory Wiki: keep ChatGPT import messages that mention "dalle" or start with pasted JSON, reject special files before import, resolve Markdown links with titles, parentheses, or percent encoding, and match canonical Unicode in local search. (#182049, #181755, #181380, #181794, #184353; related #181379) Thanks @L4XB, @RomneyDa, @Leon-SK668, @loading2332, and @Takhoffman.
  • Agent databases: recover intact databases after SQLite FTS changes, rebuild stale FTS indexes on admission, share canonical FTS schemas, and stop a full disk from wedging an agent after space is freed. (#176234, #176833, #187467, #176902; related #176220) Thanks @RomneyDa and @ndakota79.
  • Updates: reject an incompatible Gateway Node runtime before staging a package update, wait for native Gateway ownership before restarting, recover when the incumbent Gateway is unhealthy, keep retained launchers usable after symlink-mode drift, and leave no full database snapshot copy behind after a successful update. (#180769, #173588, #173358, #177059, #178155, #187581; related #180636, #180701, #180707, #173570, #170203, #177697) Thanks @RomneyDa, @sglion777, @Almost-Certified-ops, @billpang1-sketch, @obviyus, @BodegaClaw, and @DonnieFi.
  • Updates: stop rolling back when post-plugin lint cannot finish, drop superseded and resolved warnings from successful update reports, avoid database-repair advice when a package manager is missing, keep recovery deadlines monotonic, and allow the shared LaunchAgent stop timeout. (#173341, #173395, #177096, #173293, #169168, #172469; related #171096, #173089, #160561, #176966, #173084) Thanks @yoyo837, @DonnieFi, @ScientificProgrammer, @yinx65588-boop, @jj5638521, @wangmiao0668000666, @sunlit-deng, @SunnyShu0925, and @easonclaw-lgtm.
  • Update recovery: keep a failed npm rollback from stranding the package root, keep operator edits on an immediate Git rollback, recover offline state after the executor dies, prevent missing-module failures during source updates, enter maintenance before repairing source artifacts, accept unchanged plugin files after hard-link capture, judge rollback identity on bytes, and admit SQLite tokenizer changes instead of refusing with candidate-snapshot-failed. (#185160, #185201, #181695, #174867, #180356, #165982, #164823, #181206; related #184889, #184887, #181649, #174687, #180349, #164308) Thanks @LiuwqGit, @RomneyDa, @syxscott, @wr-web, @PonySlayer28, @vishnusenthil-16, @paulcam206, and @WG-Mojo.
  • Update reporting: explain what holds a blocked update, avoid false restart failures after authentication rejection, stop retrying a verified-user Gateway rejection, retain failed Doctor diagnostics, clarify repair guidance and name the next step after service inspection timeouts, keep Doctor service inspection from restarting its timeout, return nonzero when standalone repair is deferred, escape invalid channel diagnostics, and keep JSON for invalid repair channels and cleanup exceptions. (#182774, #175735, #185995, #183503, #177560, #166000, #170139, #181298, #180822, #184166; related #175712, #185946, #169462, #181212) Thanks @fuller-stack-dev, @RomneyDa, @sesgoe, @Yun-0000, @lakemike, @Patrick-Erichsen, @dankarization, @jjgao, @TUARAN, and @Leon-SK668.
  • Update platforms: use the owning pnpm 10 shim and global bin, tolerate absent optional packages in Windows pnpm swaps, retire migration originals on externally supervised installs, retain late imports on Bun, and keep candidate admission working when console logging is raised. (#181456, #181596, #185392, #183429, #182850; related #180688, #181577) Thanks @RomneyDa, @rayluo88, and @SMF12138.
  • Install: let the Windows installer run through iex without a NodeVersion, restore a conflicted Windows pull before continuing a Git install, find Node in quoted Windows PATH entries, package the Windows helper for managed recovery, ship correct libraries in the Linux AppImage, keep the AppImage SSH tunnel working with ProxyCommand, and honor OPENCLAW_GATEWAY_PORT in the Docker healthcheck. (#183145, #185378, #181678, #187470, #148174, #183661, #172765; related #183088, #127411, #146088, #183656) Thanks @RomneyDa, @ryandle, @Links2008, @xydigitLybnnnn, @demos-ra, @jb-lopez, and @xialonglee.
  • Linux service: refresh legacy group-writable systemd units during upgrades, preserve empty arguments in generated systemd commands and service inspection, unload the Gateway unit on uninstall, and keep cleanup failures and safety refusals visible during service inspection and recovery. (#172790, #176873, #181213, #173048, #175689, #175703, #175726, #175229; related #152533) Thanks @obviyus, @wei887-os, @shakkernerd, @gideonpraise, @aniruddhaadak80, @RomneyDa, and @ericcurtin.
  • Doctor: repair empty retired plugin install metadata, finish plugin repair when historical archives are missing, preserve explicit session runtime selections, automatic child-session model selections, and channel owner target kinds, stop stalling on missing transcripts or plugin file capture, avoid repeated state scans, bound the content-version wait and restart the Gateway it stopped, refuse malformed UTF-8 in node state and legacy imports, refuse a lossy TOOLS.md migration, and explain when memory sync stops for a missing embedding key. (#173851, #178779, #173498, #183728, #167059, #172890, #170934, #169905, #181941, #180850, #180861, #172293, #172223; related #173659, #167385, #183709, #166724, #172809, #170773, #180782, #180795, #172222) Thanks @fengfan201314-eng, @jayzhou2309, @RomneyDa, @lostsock1, @obviyus, @LiuwqGit, @Iolaum, @jaiden0, @DongwonGim, @rozenpl, @Leon-SK668, @wangmiao0668000666, @serg0x, and @shakkernerd.
  • Migrations and imports: refuse lossy Claude and Hermes text imports and FIFO Hermes inputs, surface Hermes directory discovery failures, and preserve Memory Wiki concepts and Notes bytes when input is not UTF-8. (#172953, #172742, #180908, #175452, #176009, #174573) Thanks @Leon-SK668, @obviyus, @RomneyDa, and @Alix-007.
  • Backup and state: recognize Git repositories and worktrees in SQLite backup listings, verify .db SQLite files through snapshots, verify and restore older archives with hardlinks, reject non-decimal --bytes, keep retired cache generations from installing the shared-state worker owner, and retain failed native lease cleanup for a canonical close. (#167935, #148857, #173070, #178585, #176656, #172798, #173225; related #167934, #148796, #178491) Thanks @PollyBot13, @obviyus, @LiuwqGit, @RomneyDa, @migelizaga-rgb, @zhangguiping-xydt, and @YangManBOBO.
  • Plugins and skills: surface missing CLI backend modelProvider bindings, partial artifact initialization and channel catalog read failures, keep acpx at startup when ACP is explicitly enabled and isolate its readiness probe, include ready macOS skills in prompts, preserve explicit empty bundled allowlists, honor skill ignore files when reads fail, and exclude generated sandbox skills from Git changes. (#173000, #174299, #177252, #176876, #176879, #172214, #182731, #176681, #173560; related #172211, #182637, #173546) Thanks @fhgffy, @SC-10749, @RomneyDa, @Card4Philippe, and @shakkernerd.
  • Plugin runtime: avoid reload freezes in completions and on model changes with large plugins, keep plugin utilities available in callbacks, let reload succeed after a turn handoff, stop a stale uninstall from stopping another live plugin, keep failed cleanup from blocking startup, keep Windows startup from stalling on plugin source capture, preserve default OAuth repairs, read mixed-case plugin policy, reject invalid values after cached validation, retain deferred system events, tolerate ctime-only drift in native companion admission, and clean failed temporary MCP config and skills trees. (#171822, #161267, #184110, #182929, #184628, #183660, #180895, #183183, #180789, #182514, #181138, #179949, #179603, #179611; related #180071, #179923, #179555, #179557) Thanks @htuyer121, @RomneyDa, @obviyus, @Leon-SK668, @PollyBot13, @Links2008, @Roddmason, @anmol0b, @yetval, @coaiMax, @paulcam206, @xiaopan-xydt, and @Yolo521-bot.
  • Setup and CLI: preserve provider outcomes when onboarding cleanup is locked, report failed service restarts and print a next step when service stop or uninstall fails, keep invalid plugin numbers pending for correction, preserve JSON output when Gateway commands exit, restore PowerShell completion for quoted values, keep Bash completion within option operands, keep QR approval commands in the selected profile, honor --local-time in logs, explain unsupported native Windows database ports, and report resource disposal failures. (#183512, #172379, #174767, #176335, #176787, #176795, #167421, #183778, #178878, #176262, #173566; related #173348, #176268, #176261) Thanks @RomneyDa, @skyzhao1223, @Yolo521-bot, @555aaditya, @vincentkoc, @LinzeShi, @ly85206559, and @YangManBOBO.
  • CLI input and JSON: report correct lines after carriage returns and keep blank values blank in path, reject blank agent identity paths and malformed image aspect ratios, refuse FIFO and pipe-backed inputs for completion profiles, browser form fields, voice-call briefs and logs, ONNX models, and team rosters, and return canonical JSON failures from browser, database, policy, and MCP relay commands. (#184866, #178692, #182622, #172082, #181763, #183420, #183417, #172743, #183621, #183614, #180797, #184128, #183603, #183393, #181758) Thanks @LinzeShi, @RomneyDa, @wangmiao0668000666, @KrasimirKralev, @Leon-SK668, and @obviyus.
  • Config and secrets: surface mandatory config schema failures, reject explicit keyed agent removals in config.patch, accept fully masked SecretRefs on Control UI saves and case-only web search provider differences, accept mixed-case Talk provider keys, keep Google Chat and X default account credentials when named accounts exist, reject malformed UTF-8 secret plans, ignore the retired password environment variable during service install, and preserve redacted 1Password resolver failure details. (#176039, #152052, #183571, #177836, #176990, #180450, #167379, #175416, #177060; related #152047, #183562) Thanks @maximilien, @RomneyDa, @lonexreb, @Valkster70, @wangmiao0668000666, @shakkernerd, @gideonpraise, @555aaditya, and @Alix-007.
  • Media, browser, and sandboxes: preserve browser network settings during allowed navigation, cancel timed-out interactions and DNS checks so profile leases are released, give DeepInfra and OpenRouter speech enough time for slow synthesis, forward ElevenLabs batch STT provider options, match delivered image filenames to their format, report playback probe and cache quota failures, preserve OpenShell data when inspection fails, stop Canvas replacing documents after cleanup failure, pause Beam mirrors with unavailable credentials, and preserve project clone targets after inspection errors. (#173486, #154246, #175614, #177975, #182494, #174668, #175634, #176458, #175343, #176510, #175952; related #173453, #168580) Thanks @LiuwqGit, @ValantisV, @LLagoon3, @RomneyDa, @HeZ2z, and @exGeni.
  • Reliability: keep timeouts and deadlines for native-session leases, process polls, OAuth refresh, OpenAI device code, Codex marketplace discovery, Crabbox coordination, node tunnel exec, and cloud attachments on the monotonic clock; keep logs.tail cost proportional to the window; preserve diagnostics export paths and OpenTelemetry message duration ranges; and log redacted causes, DNS zone, camera, and process cleanup failures. (#172780, #173241, #167619, #162828, #168735, #165889, #171977, #173142, #172885, #174750, #174424, #175625, #170608, #181775, #128785; related #173351) Thanks @SunnyShu0925, @wangmiao0668000666, @obviyus, @fuller-stack-dev, @Yolo521-bot, @vincentkoc, @duyufansh2008, @RomneyDa, and @Patrick-Erichsen.
  • Clock changes: keep code-mode run expiry, compaction safety, MCP timeouts, provider service readiness, Codex attempt and marketplace polls, browser proxy, daemon and launchd stops, scheduled-task fallback, Feishu registration, media handoff, LanceDB recall, embedding pauses, node-host capacity and heartbeats, OpenCode pagination, plugin cleanup and service stops, process reaping, Telegram membership audits, WhatsApp QR login, workboard nudges, usage cache refresh, and the Control UI conversation bridge on the monotonic clock. (#180599, #184293, #184056, #182778, #155801, #178986, #185753, #183104, #183033, #182859, #182180, #185704, #186037, #184711, #169360, #184042, #182481, #182295, #181675, #181663, #181335, #181360, #185290, #183394, #183356, #184212, #182627) Thanks @SunnyShu0925, @RomneyDa, @mikasa0818, @Bartok9, and @obviyus.
  • Performance: bound retained session-fork snapshots, release skill catalogs held by prompt reports, coalesce plugin stream transforms, avoid quadratic native reasoning rescans, reduce memory in retrieval, shell analysis, package capture, and history workers, cut stream dispatch copies and unused node event parsing, stop retention work during shutdown, keep cold catalog waits off plugins.list, skip settled subagent rechecks and unused activity roster planning, keep large usage reports and incognito transcripts from exhausting workers, and defer dormant Chat streaming code. (#182544, #183010, #185083, #123120, #172392, #183312, #182613, #181936, #183552, #183931, #185859, #179213, #184539, #184921, #181560, #182182, #183407, #156673, #183198) Thanks @RomneyDa, @nierob-cmd, @vincentkoc, @HerbertHuerto, @AmelioMansour, @yy19971996, and @shakkernerd.

Complete contribution record

This audited record covers the complete v2026.10.10-beta.4..dbbf3ea history: 551 in-range PRs + 0 retained seed-only PRs = 551 unique PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

Release verification

Don't miss a new openclaw release

NewReleases is sending notifications on new releases.