npm openclaw 2026.10.5
openclaw 2026.10.5

latest release: 2026.10.10-beta.2
one day ago

2026.10.5

Highlights

Changes

Fixes

  • Gateway memory: Gateway startup memory is back in the 2026.10.4 range: on a cold start, memory indexes open on the first search or turn that needs them instead of all at once after readiness, catalog, SQLite broker, and transcript worker heaps are capped, and memory search workers used by openclaw agent and memory recall retain less memory. (#174718, #172392) Thanks @RomneyDa, @xialonglee, @DonnieFi, @jjjhenriksen, and @jacobtomlinson.
  • Session data safety: preserve user input and committed facts through restart recovery and failed publication, keep accepted locked appends settled before releasing the writer, and fence cross-store worker commits. (#165502, #167570, #165894, #168018, #168029)
  • Security boundaries: fail closed when the process census cannot prove a temp root is unused, reject incompatible worker prompt contexts before launch, keep browser pairing credentials out of opener process arguments, expand file: SQLite targets before the exec live-state guard checks them, require approval before setup diagnostics repair state, run plugin before_tool_call hooks under openclaw agent exec, and reject oversized local workspace document saves. (#165079, #166268, #170289, #170253, #171960, #159333, #171938) Thanks @Dhotei, @vincentkoc, @obviyus, @eleqtrizit, @joseairosa, and @RomneyDa.
  • Tool Search provenance: network results reached through Tool Search and Code Mode now taint the turn the same way direct network tool calls do. (#169560) Thanks @RomneyDa and @farisoftfry.
  • Command owners: Discord and Slack honor discord:user:<id> and slack:user:<id> command owners for voice access and exec approvals, so owner-derived approvers are no longer dropped. (#172385, #172424) Thanks @yetval and @RomneyDa.
  • Session authority and privacy: check caller authority before restoring cold history for compaction, keep authority current after committed session changes, reject malformed hook session keys, and hide pre-session edits to branch-added files from uncommitted diffs. (#166506, #167875, #166406, #164671) Thanks @yetval, @obviyus, and @RomneyDa.
  • Session cleanup: remove leftover GitHub publication receipts and managed worktrees on cleanup and Incognito reset, and publish conversation, plugin-state, sandbox, worktree, and GitHub authority receipts. (#163833, #165185, #167731, #168025) Thanks @jayzhou2309 and @obviyus.
  • Turn reliability: stop unrelated session writes from failing Codex and chat turns, keep Knowledge calls working while a session publishes its bookkeeping, and stop group turns from failing silently when history cannot load. (#165196, #166010, #166758, #135253, #166059) Thanks @jalehman, @izshaw, @DonnieFi, and @RomneyDa.
  • Restart recovery: settle sessions left running after restart, avoid duplicate recovery after ordinary interruptions, keep recovery reconciliation on the host, and preserve database admission, custody, and hook retries for post-restart and first-session turns. (#165174, #154175, #166395, #166867, #166609, #167629, #165859, #165738, #166891) Thanks @Grynn and @RomneyDa.
  • Restart resume: resume Control UI turns interrupted by a Gateway restart, keep a new session's first message when the Gateway restarts during worktree preparation, resume tasks after deferred startup recovery, resume turns interrupted while a session was still preparing, return interrupted subagents to their parent with their history (including quiet children of parents created by the agent RPC), resume automation and node-hosted turns instead of failing with an active turn claim, keep streamed text from a killed native worker in history, keep symlinked state directories working after restart, and settle restart intents and update reports in workers. (#165333, #166042, #165184, #168650, #169144, #170162, #170161, #170223, #168361, #167572, #165069, #165670, #175278) Thanks @obviyus, @RomneyDa, @DonnieFi, and @jjjhenriksen.
  • Main session restarts: main sessions that were mid-turn during a Gateway restart resume on the next boot, and interrupted completion replies are delivered instead of lost. (#168651, #167814, #167766) Thanks @goutamadwant, @marknilsn, @DonnieFi, and @RomneyDa.
  • Agent and session creation: fix cold shared-store and fresh-store creation failures and agent database recovery after orphan session window repair. (#167257, #167515, #167366, #166860) Thanks @RomneyDa.
  • Windows and path aliases: canonicalize the shared state database path and compare link-stable identities so Windows and POSIX path aliases share one store and channel lifecycle. (#166755, #166062, #166787) Thanks @taihartman and @RomneyDa.
  • SQLite deadlocks and stalls: prevent writer-reader admission and cleanup deadlocks, keep committed reads responsive during writer stalls, stop writer-held transcript reads waiting on readers, and keep foreign changes visible during refresh. (#167662, #167446, #167901, #167687, #166331, #165898, #167332) Thanks @sasan1200, @vincentkoc, and @DonnieFi.
  • State and updates: stop leftover update-check caches and completed recovery history from blocking updates, and give one actionable answer for state written by a newer release while keeping status reads read-only. (#165461, #167358, #166963) Thanks @RomneyDa.
  • Startup and integrity checks: return pending admission during startup index repair, retain integrity proof through startup and idle retirement, and stop healthy starts logging SQLite lock-wait warnings. (#165323, #166972, #166412, #167754, #166253, #168310) Thanks @RomneyDa.
  • Session search and history: search transcripts for configured ACP owners, stop false indexing notices, keep search parallel with accurate indexing, preserve dot-prefixed checkpoint references and CLI history after interrupted progress replies, keep canonical transcript owners distinct, and refresh empty previews after cold history is restored. (#164897, #165879, #167174, #167163, #164920, #166658, #164512, #168397) Thanks @sunlit-deng, @obviyus, @techdou, @shakkernerd, @VACInc, and @RomneyDa.
  • Session display: stop Markdown link markup leaking into previews, show correct context windows for plugin-discovered models, log failed wakes with their target, keep owning agents in lifecycle commands and trajectory export, and decode UTF-16 BOM text files. (#166653, #159731, #166458, #166415, #165777) Thanks @jayzhou2309, @obviyus, @rudycelekli, @Yigtwxx, @yetval, and @RomneyDa.
  • Startup ordering: stop agents with small transcript rebuild backlogs from waiting behind larger agents at startup. (#165207)
  • Data integrity: reject malformed UTF-8 backup manifests before verification, preserve malformed UTF-8 and trailing-space connect targets, and keep accents in named legacy text attachments. (#167389, #167399, #167116, #165405) Thanks @Alix-007, @obviyus, and @Chessing234.
  • Turn lifecycle: publish one terminal event per stopped or runtime-lost run, settle terminal runs before session mutations, keep queued message run ids and replies aligned, prevent internal recovery errors after queued turns, and keep follow-ups queued after stopping a turn during preparation. (#165483, #167383, #166784, #166981, #165996, #164656, #172685) Thanks @RomneyDa, @shakkernerd, and @jjjhenriksen.
  • Stop and steering: stop yielded commands with their Gateway request, retire stopped continuations, allow wakes after stopped commands, preserve running tools when steering receipts are uncertain, show accepted steering messages in order, and hold steering during worktree creation until the task finishes. (#166753, #166775, #166968, #166754, #168099, #165462, #165537) Thanks @shakkernerd, @RomneyDa, and @DonnieFi.
  • Queue fairness: prevent background starvation under sustained traffic, avoid stalled turns when diagnostics throw, and keep permit waiters until their real deadline. (#167683, #167733, #165359) Thanks @Chessing234.
  • Chat delivery: deliver activity-summary updates after compaction, hide managed media directives in CR-only replies, keep node completion follow-ups in their originating conversation, preserve live node approval handoffs, and stop false Yield failed warnings in group chats. (#165024, #164657, #160675, #166971, #161154, #166396) Thanks @ly85206559, @obviyus, @brokemac79, @jjjhenriksen, and @RomneyDa.
  • Session creation: keep new sessions working while other local turns start or finish, recognize agents immediately after agents.create, keep parent-only sessions bound to their agent, and bind required worker sessions during workspace binding. (#165984, #167894, #165929, #167162) Thanks @alkor2000, @markstones78, and @RomneyDa.
  • Chat history: stop endless retries for sessions in skipped agent stores, return anchored history for pre-reset Claude CLI-bound messages, retain tool history details and channel startup context, keep generated and truncated session titles UTF-16 safe and balanced, and keep channel messages in session history when required preflight compaction fails. (#165408, #166578, #164848, #141240, #167584, #160462) Thanks @obviyus, @VACInc, @sjf-oa, @sjf, @hugenshen, @cursoragent, @masatohoshino, and @RomneyDa.
  • Claude CLI and helper calls: route shorthand Anthropic CLI auth refs correctly, keep the session observer working on CLI-backed utility models, keep OpenClaw helper calls working across runtime changes, and avoid a Claude CLI startup event deadlock. (#84374, #162067, #166235, #173011) Thanks @joshavant, @obviyus, @rogeriochaves, @llmsommelier, @PollyBot13, @ericcaiwx-star, and @sopa-gpters.
  • Models and catalog: keep Codex selectable after startup and deferred agent startup, recheck models after failed catalog recovery, keep OpenRouter and LM Studio thinking levels intact, and keep Gateway startup alive when a model refresh is replaced mid-start. (#165979, #166081, #162901, #166705, #164478, #164597, #173366) Thanks @scotthuang, @obviyus, @ooiuuii, @VACInc, @RomneyDa, and @jjjhenriksen.
  • Usage and metrics: report usage for silent replies, estimate context when compatible streams omit usage, include background utility completions in token and cost metrics, keep usage ranges ordered when the host skipped a date, and correct the Sonnet 5.5 cache-read cost. (#152396, #166151, #167986, #165523, #164140, #171723) Thanks @ly85206559, @obviyus, @MutenCath, @fede-kamel, @ericcurtin, @etzelm, @SashaMIT, @DasX, and @vincentkoc.
  • Startup and readiness: show startup failures even when cleanup fails, stop small agents waiting on larger agents, prevent public chat 503s and stalls after startup, avoid failures during temporary state contention, stop Gateway start reporting success before an existing process is ready, keep fresh macOS profiles starting the Gateway and running automatic setup, and let the Gateway start on current Kubernetes images. (#164500, #165107, #167604, #166111, #166942, #167697, #167674, #173246, #172377) Thanks @sunlit-deng, @obviyus, @waynegault, @NianJiuZst, @ericcaiwx-star, @mashaohua1999-stack, @RomneyDa, @saftall, and @DonnieFi.
  • Gateway resilience: keep WebSocket connections open after handler errors, keep startup alive under the V8 contradiction exit mode, stop config saves hanging after the watcher applies secret references, keep wizard step authority through setup-inference probes, stop replies that mention tool calls from stalling the event loop while streaming, and stop the Gateway pinning a CPU and ignoring SIGTERM after the log date rolls over on a deleted /tmp. (#171303, #171490, #171922, #171667, #172631, #160433) Thanks @RomneyDa, @enter501, @JasonBuildAI, @masatohoshino, @obviyus, and @WadeOwenWatts.
  • Gateway lifecycle: state reads stay closed until restart after a failed state cleanup, database admission no longer blocks worker startup, lifecycle publications survive after the emitting producer drains, and Android/Termux Gateways no longer fail with "shared-state database generation changed". (#171709, #170348, #170231, #167719) Thanks @RomneyDa, @residentb2b, @yxshee, @grabowskidaniel359-design, @DonnieFi, and @jjjhenriksen.
  • Plugins and restarts: retry stuck plugin reloads once their work settles, and keep Control UI reconnects from freezing the Gateway during plugin reloads. (#164894) Thanks @obviyus and @DonnieFi.
  • Status and diagnostics: stop deep status blaming config for an unreadable state database, report startup migrations and channel logouts accurately, surface startup failures over unrelated log lines, use plain language for diagnostic checks, stop recommending onboarding for runtime failures, and report signal-terminated node commands. (#167352, #167723, #167478, #166946, #165742, #166234, #165116, #165358, #165426) Thanks @RomneyDa, @PollyBot13, @obviyus, @Colton-Harris, and @shakkernerd.
  • Daemon and platforms: avoid versioned pnpm launcher paths, keep exec and MCP servers working after a Homebrew Node upgrade, reconnect Apple clients promptly after network changes, keep node command lookup after a Finder or Dock launch on macOS, preserve multiline LaunchAgent environment values, unblock PATH discovery when login startup ignores termination, and refresh legacy group-writable systemd units during upgrades. (#166222, #166430, #168024, #171460, #171740, #169507, #172790) Thanks @jayzhou2309, @mightyx, @brianmcguire, @jamiezigelbaum, @yetval, @zhangguiping-xydt, @obviyus, @wei887-os, and @RomneyDa.
  • Networking: restore managed portals on large Tailscale tailnets, keep verified Tailscale GitHub users signed in during GitHub rate limits, and bound unattributable proxy warnings. (#165507, #166254, #134404) Thanks @obviyus, @redasadki, @LeizhenZhang, and @abacha.
  • Workers and processes: stop repeated worker starts after initialization failure, keep workspace recovery running during unrelated writes, stop background execs outliving cleanup, load source workspace workers from external directories, release settled work blocking suspension, and avoid heap-check stalls in busy Bun Gateways. (#165277, #166375, #166478, #166606, #165871, #167184, #166104, #166608, #162124) Thanks @Oldrich333, @RomneyDa, @michaelswissa, @obviyus, and @DonnieFi.
  • Gateway behavior: encode Ctrl+Space and modified function keys in send-keys, collapse finished processes by default, cap oversized policy watch intervals, keep slow WebSocket response logs and stop listener buildup, keep OpenAI-compatible cancellations from blaming the provider, and keep logs.tail cost proportional to the requested window. (#164688, #164776, #164850, #164772, #165052, #167995, #172885) Thanks @yetval, @obviyus, @shakkernerd, @KrasimirKralev, and @etzelm.
  • Integrations: parse Firecrawl source-specific results, report ComfyUI workflows without outputs, validate meeting timeouts, stop Mattermost retrying permanent refusals, and include jobId in agent_end hook context for scheduled runs. (#155885, #166249, #158695, #167244, #167124) Thanks @qingminglong, @obviyus, @chelsealong, @catnipluss, @Alix-007, @Leon-SK668, and @xyrolle.
  • Workspaces: reconcile root node workspaces and surface failures, reject timed-out workspace inventory commands, keep paired nodes' scheduled workspace retention and worker-bundle publication from aborting after each scheduler tick, and allow Claw removal with a running Gateway. (#166441, #167673, #168780, #166889) Thanks @RomneyDa.
  • Session reads: keep chat admission responsive and bound to current authority, refresh placement reads after concurrent publication, skip agent stores no configured agent owns, isolate session-worker receipts, and avoid an unavailable flash when refreshing conversations. (#164682, #165166, #164929, #165904, #167097, #167689, #165468) Thanks @galiniliev, @jacobtomlinson, and @RomneyDa.
  • Agent CLI and recovery: keep withdrawal results when queued turns time out, report queued cancellation details, await system-agent audit and greeting persistence, and record retired state deferred to Doctor. (#167106, #166185, #165561, #165528, #165479) Thanks @A1fred-AI, @shakkernerd, and @RomneyDa.
  • Channel security: stop removed X allowlist senders from reaching dispatch mid-authorization, redact credentials in Discord PluralKit, LINE, and Tlon API error bodies, bound pending IRC inbound lines, and reject unsafe LINE question option indexes and unmatchable Matrix auto-join entries. (#165244, #141317, #167234, #165018, #158694, #161607) Thanks @hugenshen, @obviyus, @xialonglee, @eleqtrizit, @Alix-007, @xydigitLybnnnn, and @captain-marlow.
  • Browser safety: isolate session tab ownership by agent, reject malformed JSON before filling forms, match URL globs without backtracking regexes, honor explicit management timeouts, and preserve network settings during allowed navigation. (#167484, #167412, #166727, #167252, #173486) Thanks @Alix-007, @obviyus, @SebTardif, @Leon-SK668, @LiuwqGit, and @ValantisV.
  • Browser: follow configured node routing, reserve CDP ports before relay ports, recover from extension cleanup failures, ignore extension pages, start Chromium from relative Playwright caches, and upload files as payloads on extension profiles. (#164575, #164678, #151037, #162110, #164659, #160013) Thanks @miguelbranco80, @obviyus, @yetval, @ethangui, @openclaw-agent-man, @dlmccoy, @ly85206559, @LiuwqGit, and @elandesberg.
  • Skills and MCP: recheck prerequisites in new sessions, stop calling unavailable skills uninstalled, stop rescanning unchanged roots, hide disconnected MCP catalogs during recovery, connect MCP plugins from HTTPS dashboards, and preserve tool prompts during reconnects. (#165529, #164884, #165304, #165158, #163875, #167642, #158059) Thanks @obviyus, @Patrick-Erichsen, and @NoelDavies.
  • Media and web fetch: accept public IPv6 MEDIA URLs, attach multiline Markdown images, keep UTF-16 text MIME and filename apostrophes, report unrecognized video sizes, preserve code literals and list spacing in fetched text, and send an honest DuckDuckGo User-Agent. (#164689, #165439, #164687, #165754, #159037, #162650, #164936, #164692, #164726) Thanks @yetval, @Takhoffman, @Milbaxter, @obviyus, @LinzeShi, @YangManBOBO, @wangmiao0668000666, @ly85206559, @takyyon, @chief-o-brien-bot, and @RomneyDa.
  • Reply delivery: stop reporting transcript-only channel replies as sent, deliver isolated cron results to their creating conversation, and keep node completion and background command results in their own conversation. (#164860, #167363, #164719) Thanks @jayzhou2309, @obviyus, @Jackten, and @SparcleAI.
  • Telegram: retry preview edits after transient errors, keep delegated progress and media-run progress cards live, honor explicit reply tags during partial streaming, restore verbose diagnostics, treat GIFs as videos, keep messages queued after handler timeouts, and never replay legacy spool updates older than 24 hours as new instructions after an update. (#165072, #166101, #167362, #167895, #168016, #168011, #103695, #169202, #170068, #169784) Thanks @obviyus, @vincentkoc, @diregoblin, and @angeliti999.
  • Telegram formatting: tables next to quotes or lists keep their boundaries and values. (#168383, #168366) Thanks @dhruv1220 and @barry-ssb.
  • Discord and Slack: keep source formatting in streaming previews, keep health inspection from blocking connections, keep Slack final replies below later human messages, stop misclassifying bare channel names as ids, log skipped mentions, and quiet Socket Mode ping warnings. (#165120, #166736, #163511, #155882, #157953, #164305) Thanks @RomneyDa, @Olli0103, @Patrick-Erichsen, @leovoloshin, @MertBasar0, @obviyus, @jayzhou2309, and @Johannes-Berggren.
  • Other channels: recognize images sent as files on LINE and as documents on WhatsApp, preserve WhatsApp media proxy uploads on Bun, deliver WhatsApp messages that first arrive undecryptable, complete Feishu webhook upgrades before activation, resolve Feishu mentions, advertise Feishu group chats, keep Matrix attachment filenames out of agent text, reconnect IRC after a silent network drop, stop Buzz relays closing during NIP-42 authentication from exiting the Gateway, and stop pasted Microsoft Teams DM images timing out as unavailable. (#165778, #165774, #165017, #165303, #162078, #167264, #121463, #166599, #165419, #133338, #172961, #170591, #170437) Thanks @yetval, @Takhoffman, @shakkernerd, @stanleys12, @obviyus, @hundredhandsio, @Leon-SK668, @Raven-wy, @zw-xysk, @rudycelekli, @ooiuuii, @RileyJJY, @rodricksz4h5, @masatohoshino, @jarvis-modern-mail, @RomneyDa, @EbulenConsult, and @DonnieFi.
  • IRC and Tlon formatting: log in with passwords containing spaces, keep backslash sequences intact, keep graphemes intact when splitting Slack and IRC replies, preserve angle-bracket placeholders, and keep Tlon links and images formatted. (#165721, #165719, #167025, #167953, #164828, #167191, #137763, #167637) Thanks @Sedrak-Hovhannisyan, @obviyus, @jayzhou2309, @yetval, @ly85206559, and @teddytennant.
  • Cron: keep migrated and Doctor-repaired automations available, report overflowing reminders instead of dropping them, preserve canceled status, hold repair while provider-outage retries are pending, stop maintenance failures during agent deletion or startup, stop holding the state writer while waiting on the host, keep HTTP hooks backing off with 503 while cron session preparation holds the shared lane, and send a failure notice when a one-shot automation fails terminally. (#165064, #165032, #165305, #167524, #167957, #167907, #165814, #166836, #161321, #167120, #166487, #165310, #175111, #168291, #169102) Thanks @obviyus, @JLahullier, @LinzeShi, @Alix-007, @AXEG0, @Linux2010, @automaton1379, @DonnieFi, and @RomneyDa.
  • Memory reliability: keep indexing and nightly dreaming working during agent startup, keep keyword fallback when embeddings fail, let slow local models finish Dream Diary entries, reject copied saved content in daily-note flushes, and refresh cached index managers when an embedding endpoint or credential is corrected. (#167722, #167756, #167970, #152210, #167984, #167891, #166419, #166422, #166417, #107921, #164633, #168123, #151263, #151055) Thanks @synthalorian, @clanksy-code, @woshicby, @fonoempresa, @jalehman, @tzy-17, @altaywtf, @ruel225, and @Mirksen.
  • Memory search: keep distinct mixed-script and CJK memories, find words across Unicode normalization forms, correct EmbeddingGemma retrieval, avoid inheriting chat-only base URLs for embeddings, and bound memory-wiki searches. (#164062, #164660, #150968, #168058, #165514, #166329, #166355, #143054, #167357) Thanks @harshitgupta31415, @obviyus, @ly85206559, @Leon-SK668, @polley-mister, @dhruv1220, @vit-pavlenko, @etzelm, @RileyJJY, and @syfvb.
  • Heartbeat and auto-reply: let chained command completions skip the interval wait, report file-redirected background results, deliver Android notification wakes with heartbeat.every at 0m, keep heartbeat-only options off queued messages, surface silent media staging failures, and suppress punctuated silent reasoning placeholders. (#164756, #166123, #166522, #165313, #166777, #165788, #165066, #165876, #168571) Thanks @obviyus, @gkoch02, @jayzhou2309, @BensonChen1204, @RomneyDa, @akshatshahh, and @liwenjie200543.
  • Exec and tools: preserve channel context in node exec, stop stalled sandbox finalization loops, advertise only session-supported hosts, stop yielded commands from channel /stop, show tool summaries instead of internal MCP names in CLI progress, and keep host exec children from inheriting the node service identity. (#164584, #165167, #166835, #164506, #166764, #167486, #167274, #173304) Thanks @holgergruenhagen, @obviyus, @shakkernerd, @VACInc, @davidcittadini, and @RomneyDa.
  • Node commands and approvals: approved node commands replay when their prepared plan omitted session identity, safe-bin commands accept trailing whitespace, and the Linux node service keeps its PATH when the login shell resets it. (#161980, #151622, #168120, #136677, #134354) Thanks @Program-123, @gaojian125, @yetval, @harjothkhara, @abacha, and @RomneyDa.
  • MCP and tool servers: release computer control with its run so later calls no longer fail with COMPUTER_HOST_BUSY, prevent lost tool calls from idle socket reuse, and keep chat usable after removing an unavailable tool server. (#151127, #147420, #172980, #171397) Thanks @ylcn91, @vovarbv, @Oldrich333, @joelagnel, and @RomneyDa.
  • Private reasoning: unfinished model reasoning stays private when a reply hits a token limit or content filter after a tool call. (#168294) Thanks @RomneyDa.
  • Nodes: give node sessions the same prompt and bootstrap context as local sessions, reduce Windows final-reply latency, and reject blank camera facing values. (#164647, #164523, #145538) Thanks @hugenshen and @altaywtf.
  • Team reports: keep the missed closed day when catch-up runs after midnight and defer catch-up until scheduled runs. (#165780, #165356) Thanks @yetval and @RomneyDa.
  • Updates: fix dev-channel updates on source checkouts without dependencies. (#165347)
  • Agent safety: block visible and cross-agent spawns for restricted senders, and stop forged Code Mode bridge failures from guest code. (#165418, #165071)
  • Reply delivery: stop runs ending with "couldn't generate a response" when a model writes a tool call as text, keep answers from being dropped after yields, make incomplete turns end with a visible notice, stop messaging dedupe from dropping replies that extend a tool send, and keep trailing reply text when a tool block payload quotes its closing tag in code. (#156342, #166876, #167972, #168062, #156939, #151921, #149775) Thanks @namest504, @hogawa000, @obviyus, @QuinsZouls, @amittell, @bodapatisaikrishna, and @RomneyDa.
  • Reply routing: WebChat task completions stay in WebChat, mirrored external sends no longer change a transcript's reply destination, and Reef carries GitHub commit links without flagging their revision IDs as credentials. (#168248)
  • Subagents: keep requester turns and wakes alive through transient preparation failures, preserve complete CLI subagent answers, and keep steered messages behind subagent announcements from being dropped as interrupted. (#165610, #166990, #168077)
  • Turns and replies: blocking questions from routed agent turns reach their conversation, Claude CLI sessions remember announced sub-agent results on the next turn, agent plugin reloads no longer wait on their own turn, interrupted turns are preserved when new messages arrive, ACP follow-up replies no longer disappear after the previous turn is stopped, and visible sub-agent spawns try the primary model first. (#170039, #164175, #171257, #170647, #170883, #169984) Thanks @etzelm, @jacobtomlinson, @RomneyDa, and @jjjhenriksen.
  • Subagent ownership and recovery: settle raw-key children and listings through recorded owners, reconcile interrupted subagents at startup, keep restart recovery running past stale records, drain native subagent commands on parent stop, and preserve child finals and failure diagnostics. (#164674, #166550, #166845, #166846, #165335, #165499, #166832, #165634, #166454, #165496, #165469, #165612, #166294) Thanks @shakkernerd, @Oldrich333, @sunlit-deng, and @Jackten.
  • Tool calls: recover when providers reuse tool-call IDs across steps or send malformed tool calls, stop Tool Search crashing on large Unicode descriptions, preserve images from deferred tool calls, and end turns after repeated identical tool errors. (#165212, #165297, #164274, #164737, #165762, #167628, #163577, #164742) Thanks @fransqaas, @obviyus, @jlapenna, @GoldArowana, @aniruddhaadak80, @ooiuuii, @RomneyDa, and @jjjhenriksen.
  • Code Mode: report invalid tool arguments as invalid_input, preserve core coding signatures in the bounded catalog, clarify that API.read returns a file record, limit exec discovery guidance to code-mode-only threads, and tell the model what to call when module access is rejected. (#165008, #166785, #167286, #165508, #158716) Thanks @obviyus, @rclarke0, @mbelinky, @sxh313, and @pennymolt.
  • Stalled turns: retry model streams stalled behind empty keepalives or cut mid-frame, and prevent SSE idle timeouts and stalled-reconnect hangs. (#165983, #165870, #152705, #167013, #167303) Thanks @cestercian, @Irish-Joseph, @rmyers64, @ericcurtin, @obviyus, @masatohoshino, @ZengWen-DT, @alfredjbclaw, and @sszyh2026.
  • Sessions and queued work: stop sessions_send into a busy session from never running, queue follow-ups behind settling image completions, keep yielded sessions admitting work, and avoid model fallback on local transcript conflicts. (#167126, #166597, #167007, #165490) Thanks @holgergruenhagen, @MoerAI, @hannesrudolph, and @RomneyDa.
  • Compaction: commit a deterministic reduction after summary timeouts instead of aborting streaming summaries, drop stale decisions after corrections, stop large sessions waiting minutes for compaction, skip a redundant host compaction after native-only compaction, keep configured AGENTS.md sections in safeguard compaction, keep next turns ready after manual compaction, summarize with the model's own window instead of the session budget, and prevent low context counts after server compaction. (#164246, #164263, #167757, #167916, #165179, #167505, #168051, #168015, #168446, #168131, #171134, #172457, #141341) Thanks @obviyus, @jacobtomlinson, @ericcurtin, @johan-eilertsen, @jaikharbanda, @ruel225, @xydigitLybnnnn, @robertoronderosjr, @jakeaadams, @ooiuuii, and @RomneyDa.
  • Prompt caching: conversations whose first message ends in whitespace keep a byte-stable prompt prefix, OpenAI-compatible and local endpoints keep runtime context in a user-role message, and cache-TTL context pruning arms for Grok and Gemini 2.5+ models on OpenRouter. (#168725, #168546, #164791, #169548, #169133) Thanks @flanker-stack, @RomneyDa, and @gregb100.
  • Codex: explain rejected compaction turns, support native children on remote app-servers, keep the current task after overload retries, keep final tokens when a stream drops the last delta, keep Ultrafast on resumed ChatGPT sign-in turns, and stop failing successful one-shot commands at cleanup. (#167016, #166400, #166868, #165728, #167220, #167075, #160952, #166668, #155855, #168400, #169265, #169264, #173516) Thanks @jaikharbanda, @Kimiyu-186, @Baumus, @RomneyDa, @jacobtomlinson, @vincentkoc, @SunnyShu0925, @altaywtf, @SanderHelgesen, and @Compassboot.
  • Claude CLI: preserve replies after background Bash runs, recheck login after Gateway startup, fix missing-API-key failures after Claude CLI sign-in, keep the working timer steady on reopen, keep Claude CLI models listed after another plugin's config changes, keep native and MCP tools on exec-completion turns, and apply saved session MCP server selections on the next turn. (#165596, #166305, #167963, #168074, #164873, #166009, #82546, #165769, #157697, #168315, #168670, #168342, #168393, #168207) Thanks @adele-with-a-b, @obviyus, @rogeriochaves, @llmsommelier, @Oldrich333, @amknight, @FreeWind6, @Bruce-Yii, @dprev, and @RomneyDa.
  • Model picker and discovery: stop discovery failures, restarts, config reloads, or catalog adoption from hiding models, keep cron jobs running when a catalog update lands mid-turn, show known models right after sign-in, and keep explicit model IDs ahead of aliases. (#167230, #167458, #167117, #167178, #167460, #167462, #166983, #167444, #167128) Thanks @obviyus, @tianhaotian, and @RomneyDa.
  • Model catalog data: keep the hosted catalog updating past 5 MiB of models.dev data, stop publishing models providers no longer serve, resolve models.dev aliases for Together, StepFun, and Kilo Code, retain discovered models with provider SecretRefs, and list standalone models with the owning plugin registry. (#166699, #167855, #144946, #144951, #144960, #147374, #166361, #168050, #165990, #150423) Thanks @obviyus, @ly85206559, @cursoragent, @pheidon, @xydigitLybnnnn, @marcusa617, and @RomneyDa.
  • Models and providers: API-key sign-in discovers the provider's models immediately, shared OAuth credentials refresh with historical agent stores, LM Studio waits for slow model loads instead of overflowing a fresh session, credential removal during a model reload no longer leaves a restart warning, OpenAI Responses requests clamp max_output_tokens to model capacity, and a valid OpenRouter API key is no longer rejected with a route mismatch during setup. (#168617, #168957, #168044, #128282, #173292) Thanks @obviyus, @Parker-Fawcett, and @chandraveshchaudhari.
  • Model runtime: ChatGPT-listed models no longer fail on the default Codex runtime before sending a request, personal-account quota rechecks no longer abort replies, providers that never send response headers time out, agent runs honor the provider's live thinking levels without reloading catalogs, LM Studio refresh discovers new models, and llama.cpp setup keeps aliased models and fails when credentials cannot be saved. (#168033, #170065, #168282, #168566, #168039, #168232) Thanks @obviyus, @jb-lopez, and @RomneyDa.
  • Provider streams: recover tasks after malformed OpenAI stream events, detach OpenAI stream partial snapshots from live output, and preserve multiline Google replies while reporting malformed streams. (#173404, #172653, #173612) Thanks @Richard355168, @jjjhenriksen, and @RomneyDa.
  • Ollama and local models: keep ollama.com setup separate from local Ollama, show newly pulled models, stop retrying retired models, fix empty reasoning-off completions, and keep pre-tool narration out of channel replies. (#167433, #67005, #167463, #160047, #28827, #159380, #156389) Thanks @obviyus, @Irish-Joseph, @Kansodata, @autoeverything, @YangManBOBO, @Olli0103, @Solvely-Colin, and @noamliav.
  • llama.cpp: avoid Metal-init timeouts, recover missing or orphaned managed servers, and keep selected GGUF files. (#167630, #153523, #167902, #168064) Thanks @samuelreyes982 and @dh-js.
  • Provider reasoning and routing: honor thinking levels for custom reasoning models, declared vLLM reasoning efforts, and Grok subscription efforts. (#168056, #150149, #167949, #161838, #160604, #166152, #166169) Thanks @leapdragon, @krell11, @obviyus, @ericcurtin, @sxh313, and @Lian-Hu-Agent.
  • Agents and ACP: fix agents delete with $include entries, align binding commands with routing, fix ACP spawns for raw harness targets, allow Gateway startup with unbound legacy ACP metadata or pending agent stores, keep native Talk consults running, hide web search when no provider is configured, and keep plugin and OpenClaw tools for ACP agents when acpx is installed separately. (#166316, #166426, #166908, #166839, #167627, #164372, #166199, #164061, #164766, #167608, #167890, #164272, #164211) Thanks @jayzhou2309, @obviyus, @jaoa12or, @saariuslystoned, @josephbergvinson, @VACInc, @SunnyShu0925, @samiralibabic, @jacobtomlinson, @shakkernerd, @ajmtrz, and @RomneyDa.
  • Agent turns: scheduled and ordinary turns reach the configured fallback after a provider timeout, queued follow-ups that switch model clear the auto-fallback probe, cancelled queued CLI work never runs, empty stream heartbeats no longer count as model progress, malformed tool calls whose argument length is 401 or 403 are not reported as auth failures, valid tool argument union values keep their type, and plugin completions keep working after another plugin reloads. (#168605, #160440, #160428, #169303, #145850, #168500, #168450, #158974, #168916, #156026) Thanks @hxy91819, @changeroa, @RileyJJY, @TYY-2005, @r3n3x, @Shenrui-Ma, @jalehman, and @RomneyDa.
  • Streaming text: keep fitting emoji and accents intact in prose replies. (#166567) Thanks @rudycelekli and @obviyus.
  • Onboarding: report provider setup failures as JSON, and preserve provider outcomes when staging cleanup is locked. (#165211, #172379) Thanks @skyzhao1223.
  • Chat delivery: keep queued WebChat cancellations, run-start and tool events, steering messages, injected notes, background replies, and media completions attached to the right turn and session, stop false WebChat attachment errors and duplicate file cards, and stop Talk consultations aborting right after connecting. (#165168, #165194, #165535, #165549, #167284, #166710, #169093, #170083) Thanks @obviyus, @legarconc, @Marvinthebored, @Peetiegonzalez, @oywino, @wsk19831112-web, @ing650423, @brokemac79, and @RomneyDa.
  • Chat reliability: reconcile completed runs without navigation, keep sends working during concurrent session updates, prevent stalls during progress-card saves, honor non-streaming requests, and retry initialization after rolled-back maintenance. (#165108, #166027, #167396, #168057, #168078) Thanks @shakkernerd, @fuller-stack-dev, @jacobtomlinson, @RomneyDa, and @jjjhenriksen.
  • Chat history: keep active tools running after history refresh, stop duplicate commentary during long runs, keep aborted Claude CLI tool markup out of history, and stop sent drafts and typing previews from returning. (#165392, #158459, #167054, #165031, #167507, #166824, #168090) Thanks @RomneyDa, @jayzhou2309, @ndakota79, and @DonnieFi.
  • Chat scrolling and layout: keep chat following turns sent from elsewhere and measured row growth, hide conversation navigation when chat fits onscreen, keep header and composer visible during startup, and stop dashboard reloads flashing the wrong layout. (#165484, #166261, #168010, #166865, #168073, #168007) Thanks @RomneyDa.
  • Control UI sessions: stop new session tabs showing Disconnected while loading, open new sessions on modified Enter and before draft cleanup settles, stop IME confirmation from starting sessions, and fix folder-path Enter in New Session. (#165051, #167019, #167384, #165919, #165446, #166128, #168034) Thanks @obviyus, @vyctorbrzezowski, @vincentkoc, @ly85206559, @shakkernerd, and @RomneyDa.
  • Control UI connections: chat turns from paired devices survive unrelated pairing activity, typed /stop also cancels queued turns, open chats keep their place during recovery reloads, pending Gateway upgrades survive a tab waking during a busy Gateway, opening timeouts are reported before reconnecting, and resumed log views read the new log after a Gateway restart instead of appending to retired rows. (#169457, #169134, #169194, #172864, #172626) Thanks @Oldrich333, @RomneyDa, and @DonnieFi.
  • Control UI subagents: keep delegated subagents in the running panel, restore inline per-subagent activity, clear false unread and attention dots, and stop old timed-out subagents flashing red cards. (#166442, #168102, #165792, #166124, #167232, #165160) Thanks @holgergruenhagen, @obviyus, @vincentkoc, @jalehman, and @tre1d.
  • Model picker: stop the picker spinning on every message, keep the effort selector after catalog failures, and hide the Anthropic group for Claude CLI-only setups. (#164963, #166821, #146155, #167438, #164357, #166819) Thanks @vyctorbrzezowski, @Patrick-Erichsen, @NGO-A, @obviyus, and @TUARAN.
  • Chat titles: generate chat titles from the supplied source message and retry naming when the model serves one request at a time. (#166308, #163817) Thanks @jjjhenriksen, @obviyus, and @MertBasar0.
  • Control UI: stop identity request floods during Gateway restarts, preserve operator access and chat deep links after restart, close unauthorized portal WebSocket upgrades, and render Tool Search calls instead of blank rows. (#165443, #166553, #166783, #167065, #167645, #165806, #163829) Thanks @RomneyDa, @hugenshen, @cursoragent, @obviyus, @SebTardif, and @DonnieFi.
  • Control UI polish: keep Escape scoped, fix sidebar overlap and filter controls, render emoji shortcodes and correct PR links, preserve Unicode in truncation and widget error reports, and show setup and Skill Workshop errors clearly. (#165100, #165126, #165199, #165449, #166287, #165004, #164608, #165415, #167830, #165849, #165619, #166392, #166563, #155429, #167656, #168001, #165737, #167375, #167400) Thanks @vyctorbrzezowski, @jacobtomlinson, @jjjhenriksen, @obviyus, @nocodet888-arch, @ly85206559, @RomneyDa, @jalehman, and @Patrick-Erichsen.
  • Control UI composer and media: keep dictation available during active turns, avoid duplicate iOS Safari attachment actions, stop image controls obscuring previews, and allow unlisted files on Android. (#166075, #167590, #166829, #166402, #168049, #166994, #167600) Thanks @jacobtomlinson, @DonnieFi, @Solvely-Colin, and @Patrick-Erichsen.
  • Control UI misc: confirm dirty exec approval target switches, keep focus in config collections, revert Slack and Discord session return buttons, consolidate browser connections in Activity, and remove duplicate agent update attribution. (#149181, #160131, #165334, #166814, #166006, #167759) Thanks @tommyjoseph, @obviyus, @MoerAI, @Patrick-Erichsen, @vincentkoc, @RomneyDa, and @jacobtomlinson.
  • Terminal: keep the terminal when docking right, close the dock after shell logout, preserve connection state on tab resume, size multiline table cells, and confirm selection copies. (#166213, #166087, #167031, #166549, #166669, #153580) Thanks @jacobtomlinson, @ly85206559, @obviyus, @alexsimeonoww, and @RomneyDa.
  • iOS: stop duplicate streamed replies, show tool step titles and progress bars, keep voice replies in place, give chat full width, and avoid Debug stack overflow in the composer. (#166313, #166359, #166321, #165473, #166067, #165472, #165927) Thanks @Marvinthebored, @Solvely-Colin, and @Peetiegonzalez.
  • Talk and voice calls: keep restored calls and receipts honest, stop sharing answers across consults, preserve Talk completion status, settle voice work before shutdown, fix native-delegation hangups, restore config migrations, preserve updates across repeated Anthropic Talk consults, and keep spoken user turns in history for browser Talk on Gemini 3.8 Live. (#166431, #145776, #167455, #166795, #165715, #165831, #164951, #166552, #165368, #171267, #171506) Thanks @tianhaotian, @Leon-SK668, @rmyers64, @Bartok9, @samiralibabic, @obviyus, @mbelinky, @SunnyShu0925, @ly85206559, @vincentkoc, @LiuwqGit, @marleyman5000-boop, and @masatohoshino.
  • Channels: channels start again after a stopped-Tailscale failure, the Matrix probe stops its client after checking identity, and openclaw voicecall steer keeps stdout machine-readable JSON. (#162266, #168587) Thanks @RomneyDa and @jjjhenriksen.
  • macOS and Windows: fence recovery installs with the runtime pin, size LaunchAgent exit timeouts, install unattended Windows Gateway tasks, replace running services safely, and save macOS downloads instead of displaying archive bytes. (#165044, #165320, #166510, #165163, #165261, #165538, #164680, #173654) Thanks @yuzh086-create, @desksk, and @Patrick-Erichsen.
  • Markdown and text: keep wrapped frontmatter values, preserve prose between operator tokens, and avoid tiny code messages from rendering overhead. (#165531, #165753, #167958) Thanks @SashaMIT, @obviyus, and @Sedrak-Hovhannisyan.
  • Local models: show embedding-only setup when llama.cpp chat exceeds RAM. (#165832) Thanks @obviyus and @NovaUnboundAi.
  • GitHub Copilot: fix first turns for Chat Completions-only and new Claude models. (#167941) Thanks @obviyus.
  • Logging and secrets: stop restarts from logging false secret-resolution failures. (#165485)
  • Config: reject malformed UTF-8 and malformed plugin metadata JSON before rewriting files, explain blocked destructive updates, and stop recommending refused writes for managed metadata. (#167118, #167391, #155427, #166830) Thanks @Alix-007, @obviyus, @RomneyDa, and @sxh313.
  • Auth: preserve selected chat accounts when credentials disappear, keep concurrent Gateway calls authenticated, fix Claude CLI plugin completions returning 401 without a selected profile, and point retired auth profile migrations at doctor --fix. (#166985, #166523, #166173, #167650) Thanks @vincentkoc, @sunlit-deng, @Fealves0, @samson1357924, and @RomneyDa.
  • Pairing: tell browsers when their access request is declined or expires. (#164793)
  • Plugin SDK compatibility: published plugins that import private runtime exports from JavaScript-only openclaw/plugin-sdk facades load again, and plugins built against 2026.10.1 and 2026.10.2 can import createSessionHeaderLink from openclaw/plugin-sdk/control-ui again; both are deprecated compatibility exports. (#173777, #169746) Thanks @RomneyDa and @FtlC-ian.
  • Skills: ready macOS skills are included in agent prompts. (#172214) Thanks @fhgffy.
  • Update safety: complete package swaps across devices instead of rolling back on EXDEV, judge publication and rollback identity on the published bytes, keep foreign-owned state roots writable, and keep busy Gateway agent writes from refusing updates. (#164769, #164797, #164823, #164990, #172196) Thanks @potterdigital, @saftall, @RomneyDa, and @DonnieFi.
  • Update recovery: settle pending recoveries after a lost or replaced lease database, recover updates blocked by missing handoff leases, stop completed recovery history from blocking future updates, settle package-activation journals after filesystem remounts and device-number drift, keep the recovery deadline monotonic across wall-clock jumps, and preserve state when a legacy Doctor rehearsal fails. (#167302, #165238, #165607, #167330, #164997, #169410, #170046, #169168, #171015) Thanks @shanselman, @Hensarj, @NovaeonStudio, @RomneyDa, @patrickschiller, @SergeiAug, @SunnyShu0925, @Bamorem, and @jjjhenriksen.
  • Update and Gateway restarts: restart the Gateway and record the interruption when the updater is signaled mid-activation, stop managed systemd Gateways with the bounded gateway-stop sequence, refuse before mutating masked units, keep restart authority through brief post-update maintenance contention, wait for native Gateway ownership before restarting, and stop updates stalling on an unhealthy incumbent Gateway. (#165863, #167040, #165747, #167760, #171699, #173588, #173358) Thanks @jlapenna, @gregb100, @fdovarela, @obviyus, and @RomneyDa.
  • Update on Windows and macOS: refuse non-elevated Windows updates immediately with an elevation hint, keep macOS updates from timing out on aliased temporary directories, finish repairing the bundled macOS Gateway during update recovery, leave pacman-owned installations to their package manager, allow macOS updates from login shells when containment is verified, and run pnpm from its own install during macOS pnpm updates. (#166695, #169860, #171508, #169055, #172640, #171936) Thanks @RomneyDa, @Pegorim, @giulianoaccorsi, @AntaresGG, and @DonnieFi.
  • Update compatibility: preserve startup errors and admit Doctor runs from older updaters, keep the 2026.10.1 updater's cleanup queue across replacement, and repair legacy config on identical-package updates. (#162344, #168883, #165242) Thanks @jamiezigelbaum, @RomneyDa, @shakkernerd, and @DonnieFi.
  • No-restart updates: openclaw update --no-restart on npm, pnpm, and Bun installs warns before the package swap and records a successful update instead of a failure, without verifying the old build while the package is replaced, and plugin activation guidance is kept after core-changing --no-restart updates. (#173409, #174649, #171687) Thanks @RomneyDa and @mwbroxson.
  • Update outcomes: finish verified updates despite channel probe errors, keep a settled completion refresh failure from failing a successful update, settle a verified completed publication during admission, keep database rollback available when candidate Doctor fails before writing, defer Doctor instead of rolling back when update-driver ancestry is unverified, avoid rollback when post-plugin lint cannot finish, and refresh service definitions even when the config snapshot is large. (#172494, #172502, #171993, #172151, #172247, #173341, #170373) Thanks @SBC2016, @teetee2tone, @RomneyDa, @homeworld520, @yoyo837, and @DonnieFi.
  • Update diagnostics: name each candidate and preflight check, the resolved install, and the detected runtime when refusing, surface the child's refusal reason through the managed handoff, record why handoffs failed, show every recorded update warning, clarify report wording, and point migrated-state failures to openclaw update repair. (#164746, #166410, #164782, #166540, #167509, #167802, #167794, #164858, #166577, #168905) Thanks @TOM-WANG-GUANG, @coygeek, @GitHoubi, @Patrick-Erichsen, @xydigitLybnnnn, @creanet-64, and @RomneyDa.
  • Update verification: degrade candidate verification at integrity limits instead of refusing, treat channel health-collection timeouts as warnings, finish deferred model repair, honor an explicit TMPDIR, and stop triage retry loops. (#164504, #165852, #165148, #165830, #167051, #165982, #167035) Thanks @vasaeru, @DonnieFi, and @WG-Mojo.
  • Update and Doctor: update repair turns no longer abort mid-update while reading config, update repair no longer fails after Doctor completes on busy macOS hosts, update repair prepares its config before inference, Doctor no longer fails after short commands complete, Doctor lint is no longer deferred with no time left after a slow state snapshot, schema inspection keeps running under progress backpressure, Docker upgrades stop retry loops on older Linux hosts, Doctor explains plugin migration backup coverage, and updates recover when another user owns shared temp storage. (#170779, #170276, #172132, #170374, #170955, #162305, #169295, #170174) Thanks @RomneyDa, @DonnieFi, @yxshee, @Ludwigtheo0815, @holgergruenhagen, and @jjjhenriksen.
  • Update cleanup and exit: Doctor cleanup during updates no longer fails with nested-effect errors, unsafe Doctor recovery guidance is kept until settled, and a completed update whose result reporting fails exits with its warning instead of opening interactive failure triage. (#170070, #168750, #170207, #169422, #168587) Thanks @hannesrudolph, @ezimerman, @angeliti999, @jjjhenriksen, and @DonnieFi.
  • Install: preserve npm network environment settings and fix Windows Bun packaging failing to find npm. (#165409, #165241) Thanks @Chessing234.
  • Doctor migrations: commit transcript archive migration per batch, preserve SQLite files and markerless legacy cron ownership, and settle migrations whose owner is unavailable. (#165837, #166671, #166996, #167059, #162275) Thanks @RomneyDa and @jaiden0.
  • Doctor backups: keep the pre-migration backup when sqlite-vec cannot load, write captures on filesystems that reject RENAME_NOREPLACE, and retain interrupted capture evidence. (#165820, #166425, #164748, #166495) Thanks @NovaUnboundAi, @MertBasar0, @bbs2i58, @hippoley, and @RomneyDa.
  • Doctor and Gateway: verify restarted Gateways by health, avoid races with a managed Gateway, settle Doctor writers before recovery, exit 141 only when Doctor's own output closes, stop Doctor stalling on missing transcripts with a stale import receipt, and stop false transcript mismatch reports for imported legacy sessions with media. (#167713, #166948, #162614, #171780, #172890, #171388) Thanks @RomneyDa, @lshamash, @dtump, @DongwonGim, @he-yufeng, @brookpw, and @obviyus.
  • Doctor accuracy: keep lint and JSON Doctor read-only, run diagnostics when maintenance is declined, stop promising service defaults it cannot apply, and resolve the Claude CLI binary like the runtime. (#166857, #168065, #166950, #165273, #166384, #167699) Thanks @RomneyDa, @mightyx, @jayzhou2309, and @davidchyi-beep.
  • Doctor data safety: Doctor refuses retired state before migrating the database, imports retained ACP metadata after archiving legacy session stores, restores a stopped Gateway when cleanup fails, and removes the (multiple) store sentinel registered as an agent database. (#170051, #169918, #169759, #169783, #170043, #169764) Thanks @bautrey, @RomneyDa, @ourcoms2018, and @DonnieFi.
  • Skill Workshop: keep approval-first setups from writing skills unreviewed while keeping automatic learning for approval-policy configs. (#167641, #167846) Thanks @obviyus.
  • Plugins on Windows: stop Gateway startup stalls capturing installed plugin files, preserve native SDK filenames, keep Bun plugins across source edits, and reclaim Jiti generation caches. (#168313, #165282, #165533, #165169) Thanks @RomneyDa.
  • Plugin loading: resolve mixed-case plugin IDs, load Doctor contracts after in-place replacement, preserve replacement installs across watcher echoes, reload bundled plugins with dormant records, and settle migrations whose owner is unavailable. (#164683, #165049, #166618, #167647, #165861, #163198, #164662) Thanks @mbelinky, @Franklinyung, @shakkernerd, and @RomneyDa.
  • Plugin runtime: keep plugin-started turns' completion status, fix Copilot plugin tool calls after the first turn, keep isolated completions from capturing unrelated plugins, and fix follow-up turns after native tool use. (#167621, #164598, #166310, #168067, #163636) Thanks @ericcurtin, @obviyus, @takyyon, @jjjhenriksen, and @RomneyDa.
  • Plugin diagnostics: use plain language for diagnostic and connection checks and stop repeating unchanged provenance warnings. (#165741, #165740, #167023) Thanks @RomneyDa.
  • Message tool: keep replies when ClawHub finds no matches. (#166452) Thanks @a6xa3 and @obviyus.
  • CLI: prevent silent status hangs, keep Gateway readiness on a monotonic clock, and prevent rapid log polling. (#167677, #155799, #163791, #164998) Thanks @RomneyDa, @SunnyShu0925, @LinzeShi, @obviyus, and @Grynn.
  • CLI output: return JSON errors for node, exec-policy, and devices refusals, explain unresolvable agent model references and reasoning-only model runs, reject ACP harness models for ACP agents, and show a UTC marker in sessions tail. (#167437, #167279, #167294, #168009, #156137, #166662, #148022, #145537, #145532, #166745, #164835) Thanks @Leon-SK668, @obviyus, @masatohoshino, @azuretek, @taekop, @jayzhou2309, @FtlC-ian, @TUARAN, @aniruddhaadak80, @hugenshen, @altaywtf, @sxh313, and @danhayman.
  • Shell completion: preserve escaped profile spaces and Fish completion backslashes, and restore PowerShell completion for quoted option values. (#164785, #164455, #167421) Thanks @yetval, @obviyus, and @LinzeShi.
  • Worktrees: create parallel New Session worktrees concurrently, preserve worktrees used by live sessions, recover leaked branches, stop repeated Git maintenance failures, heal missing commit-graph tips and stale pack indexes, and use remote defaults after fetch failures. (#166060, #166443, #164615, #165204, #167473, #165995, #167426, #167691, #167367, #165969) Thanks @jjjhenriksen and @RomneyDa.
  • Workboard: keep automation, home, and Board agent sessions off Sessions boards, show truthful run and PR facts, explain dispatch refusals, stop re-dispatch from silently using an old base, and keep fallback runs active until the overall outcome settles. (#165076, #165319, #165189, #167427, #164829, #168215, #167574) Thanks @Leon-SK668, @obviyus, @mightyx, @ArcueidMP, @skyzhao1223, and @asikorskiy.
  • Agents API sessions: saved remote sessions continue with the same session ID across binding upgrades. (#168150)
  • Large Gateways: large fleets reserve session stores without stack overflows, and process-owning Gateway stops no longer wait on native skills watcher cleanup. (#168354, #168160, #168273) Thanks @609NFT, @obviyus, and @DonnieFi.
  • Gateway performance: acknowledge chat sends before skill preparation, restore fast saved-session model picking, retain cold session list selections, reduce board and member-list read latency, prewarm sandbox templates, and avoid premature scheduler wakes and full placement projections. (#165608, #166037, #166405, #166403, #165344, #165125, #165931, #165922, #165600, #165840, #166617, #167666, #167813, #166387, #165015) Thanks @obviyus and @jacobtomlinson.
  • Gateway performance: serve chat, usage, placement, and metadata reads from workers and prepared projections, move startup maintenance and notice sweeping after readiness, and reduce SQLite, projection, and history-page work per chat turn. (#164744, #164943, #165470, #165614, #165218, #165331, #166587, #167194, #167032, #166263, #165190, #166365) Thanks @obviyus, @DonnieFi, and @RomneyDa.
  • Gateway performance: speed up reconnects, restarts, and bootstrap by sharing update status, reusing admitted state and snapshots, warming recent database pages, and pausing reconnect bootstrap during restarts. (#164984, #165498, #165667, #165545, #165524, #165782, #165480, #167407, #164670, #165803, #166018, #166122) Thanks @DonnieFi.
  • Gateway performance: share opted-in reads and broadcast encoding across clients, reuse catalogs, session rows, avatars, and artifact summaries, bound link previews and queued previews, and keep PR comparisons local. (#165203, #167961, #162326, #165941, #165464, #166591, #166429, #165759, #166195, #166474, #166461, #166264, #165030, #166447)
  • Worker performance: reduce worker scheduling, transport, and reader memory overhead, centralize bounded pool sizing, expose cost attribution, and cut Gateway fork costs for Git and TLS. (#165077, #165230, #165249, #167295, #167060, #167676, #165816, #165290, #164465, #166683, #167235)
  • Performance: move cron ticks, session scans, maintenance, and run transcripts off the main thread, share skill indexes, offload memory retrieval and index admission, persist sandbox state through workers, and serve channel status from recorded health. (#165332, #165511, #165629, #167248, #163885, #166507, #165106, #165173, #167644, #167254, #165075, #165568, #165611, #165558, #165534, #165295, #165436, #166538, #164694, #164648) Thanks @vincentkoc, @obviyus, @kzclaw, and @Patrick-Erichsen.
  • Performance: speed up chat with indexed reads, bounded history pages, reused metadata, catalogs, and versioned assets, smaller tool previews, and fewer idle reads. (#164605, #165897, #166250, #167993, #168023, #167896, #167906, #167968, #167020, #167447, #167263, #167238, #165101, #165228, #163573, #166493, #165546) Thanks @shakkernerd, @boeingchoco, and @obviyus.
  • Update performance: skip unnecessary fetches for cached commits, unused state leases, duplicate snapshots, and slow prevalidation of large plugin trees, and reduce inventory latency for large runtimes. (#165060, #165326, #166126, #166317, #166741, #165316, #165013) Thanks @vincentkoc, @hannesrudolph, and @ooiuuii.
  • Worktree and Git performance: run worktree GC and cleanup in the background with capacity limits, back off timed-out and corrupt-repo cleanup, consolidate shared packs, speed up partial-clone creation, and keep session diffs responsive in large repositories. (#164758, #165913, #167323, #167453, #167944, #165858, #167936, #167030, #167695, #167631, #166072, #165513, #165605, #165750, #165981, #165411, #167899, #166214, #166381) Thanks @RomneyDa.
  • Workboard and GitHub performance: skip unchanged card and Sessions board reloads, reuse authorized snapshots, speed up revision reads, and overlap preview and publication option reads. (#165058, #165141, #165698, #165896, #165094, #167189, #167597, #166987, #167322)
  • Plugin and auth performance: bound retained plugin heap across reloads, reuse instance identity, batch plugin capture copies, move OAuth refresh and auth saves to workers, and run pairing mutations in the SQLite worker. (#166751, #165923, #167516, #166955, #166278, #165029, #159448, #165658, #165644, #166936, #166183, #164992, #166283, #167239, #167308) Thanks @jjjhenriksen, @RomneyDa, and @Patrick-Erichsen.
  • CLI and diagnostics performance: reuse prepared runtime inputs, calibrate memory pressure to runtime limits, and reduce Prometheus scrape allocation. (#166864, #162313, #165042, #167618, #167930, #166933, #165327) Thanks @sunlit-deng, @obviyus, and @etzelm.

Complete contribution record

The full contribution record is available in the tag-pinned CHANGELOG.md.

Release verification

Don't miss a new openclaw release

NewReleases is sending notifications on new releases.