OpenClaw release
2026.7.1
1,714 changes and 0 fixes shipped in OpenClaw 2026.7.1, split across 2 pages. Every entry links back to its upstream PR or issue.
1,714changes
0fixes
2/2page
Changes1,501–1,714 of 1,714
- 1501Node status, list, and pending-pairing views now tolerate malformed saved values and show the usable node information instead of crashing#93930 Thanks @ly-wang19.
- 1502Operators can upgrade the Gateway before N-1 subordinate nodes without losing the normal update, restart, repair, status, and maintenance path for those nodes#101109 Thanks @jtczville.
- 1503openclaw agents list now shows configured external channels even when their plugin is missing and provides the appropriate install or openclaw doctor --fix guidance#95363 Thanks @hugenshen.
- 1504openclaw gateway status now gives relevant credential, configuration, restart, and log guidance when a running Gateway fails its probe instead of telling operators to wait for warm-up#98183 Thanks @masatohoshino.
- 1505Remote node hosts can now connect to Gateways mounted at reverse-proxy paths such as /openclaw-gw, including after daemon installation or reconnect#97679 Related #97678. Thanks @wm0018.
- 1506Linux operators now see when systemd has stopped restarting a repeatedly crashing Gateway, and openclaw gateway restart can recover the latched failed service#98291 Thanks @masatohoshino.
- 1507Control UI, pairing, setup-code, QR, and status links now prefer a reachable LAN address on hosts with VPNs, virtual adapters, WSL, Hyper-V, or multiple networks#98482 Thanks @joshavant.
- 1508openclaw gateway status --deep can now identify Windows Firewall rules blocking LAN devices and suggest practical rule, loopback, Tailscale, or SSH-tunnel remedies#98666 Thanks @joshavant.
- 1509gateway run --force now ignores malformed listener PID records during port cleanup instead of carrying invalid process state into recovery#98371 Thanks @lzyyzznl.
- 1510Gateway busy-port diagnostics and forced cleanup now ignore malformed listener IDs, avoid phantom processes, and verify that a port is actually free before reporting recovery#98505 Thanks @qiuyuang.
- 1511Windows now detects active Gateway listeners reliably from localized netstat output, improving port diagnostics and gateway --force cleanup without confusing established connections for listeners#100012 Thanks @qingminglong, @vincentkoc.
- 1512A Gateway WebSocket 1006 disconnect now gives operators accurate connection-loss guidance instead of implying that a healthy Gateway necessarily crashed#101219 Thanks @darren2030, @vincentkoc.
- 1513Windows Gateway restarts no longer depend on the findstr check that could leave a visible or hung command window blocking the handoff#101366 Thanks @deepujain.
- 1514openclaw status, status --json, and status --all now respect their timeout on Linux when systemd is unresponsive instead of hanging indefinitely#94149 Related #84698. Thanks @zengwen-dt, @zus-assistant.
- 1515When a local Gateway is listening but unhealthy, openclaw gateway status --deep can surface a recent likely cause such as a full disk instead of only reporting a generic disconnect#95902 Thanks @vincentkoc, @wangbyg.
- 1516Remote Gateway status checks now fall back to the configured SSH target when local effective-config probing fails instead of crashing or stalling discovery#101160 Thanks @cxbasdev.
- 1517Shell-completion repair during openclaw doctor and updates now skips expensive plugin-command loading, avoiding unnecessary delays while full user-requested generation still includes plugin commands#76235
- 1518Pressing Ctrl+C during the installer upgrade doctor now stops the flow cleanly and prevents an incomplete or failed installation from opening a stale dashboard#76386 Thanks @sebtardif.
- 1519LaunchAgent-managed Gateways on permission-constrained macOS volumes now start the generated environment wrapper through /bin/sh, preventing immediate background-service exits#89967 Related #87199. Thanks @joshdaynard, @zhangguiping-xydt.
- 1520Windows command lookup now honors the caller's PATHEXT, allowing valid PowerShell scripts and executables to resolve in containers, CI, and isolated environments#98093 Thanks @wendy-chsy.
- 1521Windows Gateway setup now detects when Task Scheduler exits without starting a listener and can use the existing fallback launch without creating a duplicate if startup is merely late#76245
- 1522Local Docker source builds are less likely to run out of memory, and failures that still exhaust memory now suggest the relevant build settings#98119 Related #98118. Thanks @zyzo.
- 1523First-run skill setup on minimal machines now groups missing Homebrew, uv, or Go prerequisites into one clear note while still installing dependencies that can succeed#99726 Thanks @fuller-stack-dev, @sedrak-hovhannisyan.
- 1524Installers and runtime checks now reject Node 23Installers and runtime checks now reject Node 23.0-23.10 early with supported-version guidance instead of leaving users with a broken OpenClaw CLI. #99832 Thanks @fuller-stack-dev, @vincentkoc.
- 1525The CLI and full-screen TUI now open with a clear recovery message when their launch directory has been deleted instead of crashing before startup#93636 Thanks @ml12580.
- 1526Windows users can launch globally installed Gemini CLI and Claude Code backends through their npm command shims without immediate spawn failures or mangled prompt arguments#101378 Thanks @wendy-chsy.
- 1527Failed CLI installations now clean up their temporary Node staging directories and pnpm workspace rewrite files#103725 Thanks @sebtardif.
- 1528Git installs now create an openclaw launcher that keeps using the intended Node.js runtime even after the user's PATH changes. be7198f
- 1529openclaw plugins list now uses substantially less peak memory on fresh and already-migrated packaged installs while preserving required migration behavior#103132
- 1530OpenClaw update checks now limit malformed or unexpectedly large npm registry responses before they can consume excessive memory#98508 Thanks @lzyyzznl.
- 1531openclaw update on Windows now prevents the managed Gateway Scheduled Task from relaunching during package replacement, avoiding partially updated or mixed-version processes#100757 Thanks @vincentkoc.
- 1532Managed Gateway updates now allow active work to finish within the configured drain period before timing out the service handoff#99695 Thanks @zoowh.
- 1533Extended-stable Gateways now show a periodic openclaw update hint when a newer exact package is verified, without changing the installation automatically#100438 Thanks @kevinslin.
- 1534Restarting, updating, reinstalling, or repairing a macOS Gateway now preserves active SecretRef-backed channel credentials instead of leaving Telegram and other integrations unable to authenticate#99124 Thanks @mushuiyu886.
- 1535Update and status checks now identify malformed npm metadata as invalid JSON instead of returning only an opaque syntax error#100338 Thanks @cxbasdev.
- 1536A failed Gateway replacement process during an update no longer causes an additional uncaught crash in the existing parent process#101489 Thanks @aniruddhaadak80, @momothemage, @vincentkoc.
- 1537Windows update and doctor repair now move an owned legacy Startup gateway to Task Scheduler without leaving a stale process, dropping authentication, or removing the fallback too early#101213 Thanks @vincentkoc.
- 1538openclaw update now targets the global Node installation that launched it, avoiding false success when Homebrew, nvm, asdf, or Volta exposes another OpenClaw copy#101228 Thanks @buddyh.
- 1539Windows backups now recover more reliably from live-write races by avoiding repeated use of the same locked temporary archive and cleaning stale retry files#101449 Thanks @lilan0125, @vincentkoc.
- 1540Large session histories now produce smaller `Large session histories now produce smaller .usage-cost-cache.json files with less parsing and rewrite work, rebuilding automatically after upgrade. #99714 Related #99511. Thanks @dexhunter, @wayne524.
- 1541openclaw backup create now tolerates disposable runtime files disappearing during a live backup, while continuing to protect durable files under the existing inclusion policy#98879 Related #98865. Thanks @carterstebbins23-spec, @vincentkoc, @zengwen-dt.
- 1542openclaw backup create on Windows now retries live-file archive races with fresh temporary paths, reducing locked partial backups and leftover retry archives#101464 Thanks @lilan0125, @zoowh.
- 1543When cron command output is truncated, operators can still recover the earlier login or setup instruction they need without exposing its raw secret through notifications#96393 Related #96346. Thanks @nz365guy.
- 1544Default cron failure alerts enabled with `openclaw cron edit <Default cron failure alerts enabled with openclaw cron edit <job> --failure-alert now survive Gateway restarts instead of silently disappearing after reload. #96615 Thanks @liuhao1024.
- 1545openclaw doctor now warns when cron jobs target channels whose plugins are inactive, letting operators correct delivery before the next scheduled run fails#98184 Thanks @masatohoshino, @vincentkoc.
- 1546Docker and bind-mount installations can finish legacy cron migration across filesystem boundaries, with actionable warnings and duplicate-safe retries when cleanup cannot complete#98217 Thanks @masatohoshino.
- 1547openclaw doctor now explains cron jobs that still look in flight after an interrupted Gateway run and how those leftover markers are cleared on the next start#98620 Thanks @masatohoshino.
- 1548Doctor now warns when enabled cron jobs are stuck in repeated failures without configured alerts, while healthy and below-threshold jobs stay quiet#99606 Thanks @masatohoshino.
- 1549openclaw cron add now rejects invalid --no-output-timeout-seconds and --output-max-bytes values immediately instead of silently creating a command job without the requested limits#96516 Thanks @zhangguiping-xydt.
- 1550Human-readable cron list and cron show output now reveals repeated failure streaks such as error (12x) while leaving JSON status values unchanged#99602 Thanks @masatohoshino.
- 1551Operators can opt into core/doctor/legacy-cron-store to find legacy cron data that needs attention without the lint check changing any stored state#99211 Thanks @giodl73-repo.
- 1552A normal Doctor lint run no longer invokes crontab -l for the optional legacy WhatsApp check unless an operator explicitly selects it#99250 Thanks @giodl73-repo.
- 1553Cron jobs with a valid future run exactly on a second boundary now keep that scheduled time instead of being incorrectly treated as stale and rebased#81731 Thanks @vincentkoc, @yashkot007.
- 1554Editing a recurring cron job no longer skips a run that is already due or shifts an unchanged interval schedule to the edit time#96159 Thanks @yetval.
- 1555Clearing a saved Model or Thinking/Effort override in the Cron Control UI now truly restores inherited defaults, with --clear-thinking available from the CLI#96293 Related #96287. Thanks @takamasa-aiso, @zengwen-dt.
- 1556Failed cron add, cron update, and cron remove commands now leave the running scheduler unchanged, so live jobs match the saved configuration and reported result#99960 Thanks @masatohoshino, @vincentkoc.
- 1557Editing a scheduled job's message no longer accidentally breaks later CLI-backed runs, while explicit tool restrictions remain protected where they cannot be enforced#100203 Thanks @obviyus.
- 1558Cron job updates can now remove a job-specific fallback model setting so scheduled runs inherit the global defaults again without recreating the job#100801 Thanks @sunnyshu0925.
- 1559openclaw cron edit now finds jobs more reliably and with less delay on Gateways that contain many scheduled jobs, including --exact and timeout-only edits#100836 Thanks @machine3at, @vincentkoc.
- 1560Editing a cron payload with --no-best-effort-deliver no longer silently changes the job's delivery mode to announcements#100846 Thanks @machine3at.
- 1561Using `openclaw cron edit <Using openclaw cron edit <id> --no-best-effort-deliver on an older detached job no longer accidentally suppresses its completion announcement. #101027
- 1562Agent and MCP cron requests using mixed-case command labels now fail closed instead of slipping past the restriction on shell-backed agent cron jobs#101350 Thanks @pgondhi987.
- 1563Replies now correctly confirm reminders scheduled through commands such as openclaw cron add instead of also claiming that no reminder was created#101807 Thanks @bryantegomoh, @vincentkoc.
- 1564A timeout while one isolated cron job is setting up no longer restarts the Gateway or interrupts unrelated agent and scheduled work#96396 Thanks @849261680, @brycemurray, @velvet-shark.
- 1565openclaw tasks maintenance --apply now preserves active cron session history even when job IDs contain spaces, capitals, punctuation, or explicit session keys#96352 Thanks @ly-wang19, @vincentkoc.
- 1566Isolated agentTurn cron jobs can recover from temporarily mismatched runtime artifacts instead of failing at startup with a sourceReplyDeliveryMode error#85249 Thanks @jerry-xin.
- 1567openclaw tasks maintenance --apply can now repair false lost-task records when durable cron history proves the run completed successfully#86088 Thanks @altaywtf, @liaoandi.
- 1568Scheduled agent jobs now warn when ANNOUNCE_SKIP suppresses a cron completion, making missing reports and partial output easier to diagnose#90566 Related #68561. Thanks @mibslee, @sahibzada-allahyar.
- 1569Catch-up cron jobs deferred briefly after startup are no longer skipped merely because an operator checks cron status before they fire#94022 Related #93935. Thanks @richchen01, @vincentkoc, @yetval.
- 1570Scheduled agent turns using claude-cli or another CLI backend now start normally, while explicitly unsupported tool restrictions still fail closed#95615 Thanks @anagnorisis2peripeteia, @obviyus.
- 1571Timed-out or cancelled isolated cron runs now retain their provider, model, and session details in cron_run_logs, making failed jobs easier to trace#95943 Related #95873. Thanks @luke-renjoy, @zengwen-dt.
- 1572A scheduled cloud-model job that opens a response but sends no content can now move to a healthy fallback model before the entire run times out#96096 Thanks @849261680, @velvet-shark.
- 1573CLI-backed workers from isolated cron jobs now exit after completion instead of accumulating and slowing the host and Gateway#97227 Thanks @vianne-droid, @xialonglee, @yusukeit0.
- 1574Long cron failure alerts now preserve emoji and other supplementary Unicode characters instead of ending with a broken replacement symbol#97298 Thanks @zenglingbiao.
- 1575Heartbeat fallback failures no longer send noisy chat messages made only of repeated internal error placeholders#97364 Thanks @turbotheturtle.
- 1576Scheduled jobs that permit web_search now report that no usable search provider is selected instead of completing with an unusable result#97677 Thanks @lilan0125, @riazrahaman.
- 1577Scheduled commitment follow-ups now stay focused on their original conversation instead of absorbing unrelated heartbeat instructions, queued context, or recovery work#98169 Thanks @bdjben.
- 1578Scheduled jobs can deliver to a live chat without blocking replies or mixing background work into its transcript, and operators can clear stale childless cron tasks without cancelling active session-backed runs#98755 Related #98121. Thanks @ethansk, @obviyus.
- 1579Recurring cron jobs created for current or `session<id> once again carry their selected conversation history into later runs, while isolated` jobs still start clean. #98947 Thanks @ethansk, @obviyus.
- 1580Completed heartbeat tasks remain recorded when the quiet HEARTBEAT_OK acknowledgment cannot be delivered, reducing repeated work and duplicate follow-up actions on the next heartbeat#100834 Thanks @machine3at, @vincentkoc.
- 1581Browser CLI commands now accept --browser-profile before or after the subcommand, restoring existing remote-browser and WSL2 command patterns#94431 Thanks @ml12580.
- 1582A stalled remote Chrome or WSL2 browser can no longer hold tab-list requests indefinitely; OpenClaw returns a bounded timeout and can reconnect on the next request#80147 Thanks @hemantsudarshan, @keaneyan.
- 1583Remote-browser actions now recover from a closed or replaced selected tab by retrying without the stale tab ID, matching local browser behavior#89086 Thanks @rhclaw.
- 1584Updating `browserUpdating browser.profiles.* connection details can now take effect without an unnecessary Gateway restart or interruption to active sessions. #93827 Thanks @goutamadwant.
- 1585Browser automation can now act on tabs by suggested ID, tab ID, label, or unique prefix without false target-mismatch failures#96178 Thanks @zengwen-dt.
- 1586Persistent managed-browser logins now survive ordinary Chrome and Gateway restarts, reducing repeated sign-ins and MFA interruptions for unattended browser work#98284 Thanks @malashenia, @turbotheturtle.
- 1587Browser extensions can reconnect with a newly rotated pairing token while Browser control remains running, and old tokens continue to be rejected. a703183 Thanks @vincentkoc
- 1588Remote browser CDP connections now accept URL-encoded Basic auth credentials containing spaces, at signs, and other reserved characters#97972 Thanks @vectorpeak.
- 1589Running /new or /reset in a direct message now closes that conversation's managed browser tabs while leaving other people's tabs alone, even through a brief browser connection hiccup#100792 Thanks @fmls.
- 1590Agents can now screenshot a selected background Chromium tab without waiting for the browser command to time out, though capture may bring that tab forward#100857 Thanks @spencer2211.
- 1591Managed local browser pages can navigate normally under a restrictive `browserManaged local browser pages can navigate normally under a restrictive browser.ssrfPolicy.hostnameAllowlist, while remote CDP endpoints and disallowed destinations remain blocked. #100986 Thanks @nianjiuzst, @sarinv.
- 1592Browser automation attached to an existing Chrome session now stops with a bounded error when Chrome crashes or a request is cancelled, and later requests can reconnect cleanly#101454 Thanks @aniruddhaadak80.
- 1593Browser Control users who are missing Playwright now receive a working documentation pointer for installing or repairing the required browser runtime. d460635
- 1594Browser Control can now emulate no explicit color preference with openclaw browser set media no-preference, and invalid values list every supported choice. 9133118
- 1595Browser POST actions now complete on supported Node 24Browser POST actions now complete on supported Node 24.16 and newer runtimes after JSON parsing while still cancelling when the client disconnects. 52044e1 Thanks @obviyus, @vincentkoc.
- 1596CDP-backed browser navigation to CSV, PDF, and other attachment URLs now returns a safely saved managed file with its URL and suggested filename#89416 Thanks @zhangguiping-xydt.
- 1597Browser downloads now tell the agent the saved filename and path, helping it use the completed download instead of retrying the action#93307 Thanks @sunlit-deng.
- 1598Oversized browser-control error responses can no longer consume excessive Gateway memory, while ordinary failures still provide useful diagnostics#98455 Thanks @wings1029.
- 1599Browser responsebody requests for a short prefix of a large response now avoid decoding a second full-size text copy while still returning the requested truncated content#98940 Thanks @pandah97.
- 1600Malformed browser fill data supplied through --fields or --fields-file now produces a clear actionable error and exits before any browser action starts#98861 Thanks @lsr911.
- 1601Browser screenshots used privately for visual inspection are no longer attached automatically to channel replies and are shared only when explicitly requested#101434
- 1602Browser uploads on re-rendering pages now recover more reliably and expose the real stale-reference or action error instead of a generic timeout#101465 Thanks @diwakarrankawat, @m13v, @tigicion.
- 1603Browser response bodies and page snapshots now stay valid and readable when output is shortened near an emoji#101761 Thanks @mushuiyu886.
- 1604Vision-capable models can now read rendered pages from scanned and image-only PDFs attached through chat channels#97354 Thanks @joshavant.
- 1605openclaw infer image describe now tries configured fallback image models after an explicitly selected model fails and reports which model ultimately succeeded#98347 Thanks @momothemage.
- 1606Multi-page scanned PDFs now keep later pages at a usable image size during fallback extraction, allowing vision models to read the full document#96390 Thanks @cls3389, @vincentkoc, @zengwen-dt.
- 1607Requesting nonexistent PDF pages now returns a clear range error instead of accidentally sending the entire document to a native provider#97698 Thanks @zhangguiping-xydt.
- 1608Fractional PDF page selections such as `1Fractional PDF page selections such as 1.5 now fail immediately with a clear validation error instead of silently omitting requested content. #99399 Thanks @qingminglong.
- 1609Screenshot-style images returned by plugin tools over MCP now reach clients as usable results instead of causing the tool call to fail#90902 Thanks @k-schmidt, @mushuiyu886.
- 1610After one generated video clip is ready, a different next clip can start immediately instead of waiting several extra minutes behind stale duplicate suppression#96018 Thanks @palomyates516-alt, @vincentkoc.
- 1611openclaw capability video generate now returns a bounded, actionable error when a provider URL serves an oversized video without --output#97549 Thanks @alix-007.
- 1612Fetching an empty file with an image-style name now returns a clear saved-file path instead of an unusable inline image result#99370 Thanks @2loch-ness6, @vincentkoc.
- 1613File Transfer folder downloads now either produce a complete verified archive or report a clear read failure instead of crashing or returning partial data#101590 Thanks @sunlit-deng.
- 1614Multi-attachment prompts now keep real captions while removing duplicate transport markers and placeholder-only text that could confuse the model#96431 Thanks @lin-hongkuan.
- 1615GIF attachments are now recognized despite normal Content-Type parameters, spaces, or mixed casing instead of falling through as another media type#96435 Thanks @lin-hongkuan.
- 1616Valid inline image data URLs without trailing base64 padding are now accepted, while malformed image payloads remain blocked#96437 Thanks @lin-hongkuan, @vincentkoc.
- 1617Video inputs near the configured size boundary are now accepted or rejected according to their actual byte size, avoiding unexpected failures for files that are still within the limit#96519 Thanks @lin-hongkuan, @vincentkoc.
- 1618Markdown frontmatter now preserves null-valued fields named toString, constructor, valueOf, or hasOwnProperty instead of silently dropping metadata from skills, hooks, or commands#99129 Thanks @vincentkoc, @zenglingbiao.
- 1619Markdown beginning with text such as ---not or ---- now remains ordinary content instead of being mistaken for frontmatter and stripped#101795 Thanks @nianjiuzst.
- 1620Workboard tasks can now use managed isolated worktrees, with CLI and Control UI tools for creation, cleanup, restoration, and recovery snapshots when work cannot be removed safely#100535
- 1621Users can now start a chat in its own managed worktree from the Control UI or mobile app, isolating parallel coding while preserving dirty work and cleaning safe idle checkouts automatically#100788
- 1622Agent commands with an invalid explicit workdir, including a literal ~, now stop clearly instead of running from an unintended fallback directory#94441 Thanks @jesse-merhi, @renaudcerrato.
- 1623SSH- and OpenShell-backed sandbox commands now clean up remote resources after failed launches, preserve the correct plugin session and channel context, and return a normal tool error for malformed input instead of an internal WeakMap failure#96926 Thanks @jesse-merhi.
- 1624OpenShell sandbox sessions now start with the intended workspace files in the managed remote directory, avoiding missing-file and wrong-directory failures. d9034da Thanks @vincentkoc
- 1625The optional common sandbox image now includes Node 24 and pnpm so documented Node-based development tasks can run inside it. eabc12b Thanks @vincentkoc
- 1626OpenShell sandbox uploads now place workspace directories at the requested remote path so sandbox commands can reliably find their files#96303 Thanks @vincentkoc.
- 1627Pending exec approval cards now describe only the approval state, and the foreground-fallback warning appears only after a command actually runs that way#101561 Thanks @vincentkoc.
- 1628Timed-out commands on Windows are less likely to leave child processes running when taskkill.exe cannot start#101392 Thanks @aniruddhaadak80, @zengwen-dt.
- 1629Failed shell-tool messages now separate the command the agent typed from framework labels and show the exit code, node, and working directory more clearly#97511 Thanks @aditya-vithaldas.
- 1630Exec and finished background-session results now include signals, timeout flags, failure kinds, and exit reasons so users can tell why a command stopped#89104 Thanks @yu-xin-c.
- 1631Windows autoreview --engine copilot runs now return a completed review result even when temporary-directory cleanup is briefly delayed#97901 Thanks @paulcam206.
- 1632Oversized local socket replies now fail promptly without consuming memory until timeout, while large macOS commands still return completion status and bounded recent output#98130 Thanks @pick-cat.
- 1633Timed-out, aborted, or output-limited extension commands now clean up their child processes instead of leaving background work running after api.exec() returns#98340 Related #98335. Thanks @ooiuuii.
- 1634Emoji and other supplementary Unicode characters remain intact when long command output is shortened for polls, completion notices, or approval follow-ups#98721 Thanks @zengwen-dt.
- 1635A set of failure-path fixes now keeps commands and maintenance tasks running through isolated errors, preserves terminal and model text, improves skill and approval diagnostics, and stops Android voice sessions cleanly after microphone loss#100440 Thanks @cxbasdev, @lavyatandel, @nankingjing, @nianjiuzst, @tzy-17, @wendy-chsy.
- 1636Agent workflows can now survive transient stdout or stderr read failures from helper processes instead of losing the whole OpenClaw process#100522 Thanks @cxbasdev, @vincentkoc.
- 1637Docker sandbox commands now return an explicit failure when output cannot be read instead of crashing OpenClaw or reporting an incomplete result as successful#100523 Thanks @cxbasdev.
- 1638Crestodian setup and local-tool checks no longer terminate OpenClaw when a probed command encounters a rare output-stream read failure#100741 Thanks @lsr911.
- 1639Stopping a chat through `chatStopping a chat through chat.abort can now find and terminate its matching embedded run instead of reporting failure while the underlying tool process continues. #101222 Thanks @zoowh.
- 1640Broken child-process output, timeouts, and aborts during agent shell commands are now contained instead of causing rare Gateway crashes#101370 Thanks @wings1029.
- 1641Repeated failed or cancelled agent directory listings now release their cancellation listeners, avoiding listener buildup over time#101588 Thanks @lzw112.
- 1642Codex session tools now honor their requested seconds-based timeout and return their own useful timeout status instead of ending early#100722 Thanks @carterstebbins23-spec, @cxbasdev.
- 1643Cancelled ACP background tasks now appear as cancelled in task lists, summaries, and parent-run updates rather than being reported as successful#101245 Thanks @masatohoshino.
- 1644Reliability fixes now reject unsafe cron and plugin inputs, preserve skill formatting, surface Gateway and memory failures, fail LSP startup sooner, and prevent stale Android camera results after cancellation#100399 Thanks @849261680, @anyech, @cxbasdev, @lin-hongkuan, @masatohoshino, @nankingjing, @qingminglong, @simon-xydt, @snotty, @xialonglee.
- 1645A broad reliability pass now replaces stalled child-process work with clear errors, improves sandbox diagnostics, bounds mobile calendar and voice state, normalizes cron fallbacks, and rejects unsafe provider responses#100483 Thanks @aniruddhaadak80, @cxbasdev, @jincheng-xydt, @morluto, @nianjiuzst, @pandah97, @versatagent, @xialonglee, @zenglingbiao, @zengwen-dt.
- 1646Agent runs now stop cleanly when a write, edit, or apply_patch operation would make no change, preventing repeated false-progress retries while real mutations and valid sibling edits continue normally#97044 Thanks @vincentkoc, @zw-xysk.
- 1647The diffs tool now renders default outputs faster, preserves highlighting for pack-only languages, handles unchanged input clearly, and reports file-render and invalid-patch errors more accurately#100487
- 1648Failed code-mode tool attempts now show the error type, message, and location, giving the model and operator enough detail to diagnose or correct the problem#95906 Thanks @vincentkoc, @zengwen-dt.
- 1649When the edit tool cannot match oldText, its error now points to likely nearby lines and explains common indentation, escaping, and whitespace differences, reducing blind retries#97038 Thanks @aocogoal-gethub, @vincentkoc, @zoowh.
- 1650Legacy task upgrades now restore persisted tasks automatically, preventing linked TaskFlows from falsely reporting them missing or requiring manual SQLite recovery#103946 Thanks @bek91, @theo674.
- 1651Terminal task lists now shorten emoji-heavy summaries without leaving broken replacement characters in the row#101600 Thanks @maweibin.
- 1652Progress summaries for inline scripts and generated files no longer present heredoc content as extra shell commands that ran#99379 Thanks @zengwen-dt.
- 1653Failed exact-match edits now show readable current-file context even when truncation falls beside an emoji or other non-BMP character#99527 Thanks @mikasa0818.
- 1654web_fetch now reaches provider fallback much faster for shell-style pages with no locally extractable content, cutting the measured fresh-process delay from several seconds to about one#98559 Thanks @vincentkoc.
- 1655web_fetch now handles malformed or adversarial HTML more predictably, reducing excessive processing and keeping hidden script-like text out of fallback output#102033 Thanks @pgondhi987.
- 1656Agent-side web_search now sees the configured provider in the active runtime, so Gateway and channel sessions can keep using providers such as Brave without a restart#88684 Thanks @alexzhu0, @vincentkoc.
- 1657Link understanding now keeps page fetching available for the slowest configured fallback and applies tools.links.timeoutSeconds consistently regardless of model order#100731 Thanks @aniruddhaadak80, @cxbasdev.
- 1658Recovered web_fetch spill files now keep emoji intact and report the actual safely written length when a long page exceeds the inline limit#101312 Thanks @alix-007.
- 1659web_fetch now preserves emoji, mathematical symbols, extended Unicode, and intentionally escaped numeric entity text more faithfully#96268 Thanks @ly-wang19.
- 1660DuckDuckGo results now preserve intentional entity notation such as `<DuckDuckGo results now preserve intentional entity notation such as < and ' instead of silently changing titles, snippets, or URLs. #96348 Thanks @ly-wang19, @vincentkoc.
- 1661Canvas embed replies now retain their visible message text when a self-closing embed shortcode is followed by an extra closing marker#96449 Thanks @ly-wang19.
- 1662Bracketed labels in Markdown citations no longer make link understanding fetch display-only URLs that the user did not intend to retrieve#96476 Thanks @ly-wang19, @vincentkoc.
- 1663DuckDuckGo search pages containing malformed numeric HTML entities no longer crash parsing or inject broken Unicode into titles, URLs, and snippets, while valid emoji entities remain supported#96583 Thanks @llagy007, @weeli-009.
- 1664When an installed fd or rg binary is unusable, agent search can now install a working copy and recover instead of failing repeatedly#96361 Thanks @miorbnli.
- 1665A failed find search now returns one contained tool error and stops its fd process instead of risking an agent crash or orphaned search#101158 Thanks @cxbasdev.
- 1666Tool Search now fails the affected call cleanly and terminates its unusable child when the diagnostic stream breaks, rather than risking a stranded request or Gateway crash#101295 Thanks @cxbasdev.
- 1667QMD command pipe failures now report a clean memory-operation error instead of taking down the memory host#101402 Thanks @wings1029.
- 1668The agent find tool now reports an interrupted or failed directory search as an error instead of returning a partial match list as complete#99446 Thanks @zhangguiping-xydt.
- 1669Shortened tool descriptions in catalogs and /tools verbose no longer split emoji or other Unicode characters into garbled replacement symbols#98644 Thanks @zengwen-dt.
- 1670openclaw mcp serve and bare openclaw acp now begin with clean machine-protocol output, preventing startup warnings from corrupting JSON-RPC for MCP and ACP clients#89997 Thanks @kenners22, @vincentkoc.
- 1671When a bundled MCP server stops mid-session, users now get a prompt server-specific disconnect message and can clear the dead session by refreshing the catalog#98738 Thanks @masatohoshino, @vincentkoc.
- 1672Malformed draft-2020-12 tool schemas from an MCP server now produce an actionable setup error that identifies the external schema and retains the underlying failure#89619 Thanks @vincentkoc.
- 1673Prompt templates now preserve intentionally blank quoted arguments so later positional placeholders receive the correct values#96405 Thanks @lin-hongkuan.
- 1674OpenTelemetry latency dashboards now provide useful duration and context-size distributions for agent and harness work lasting well beyond 10 seconds, including multi-minute runs, without collector-side bucket customization#96592 Thanks @hcnode, @vincentkoc, @zhiling-chen-20230331.
- 1675MCP tools now receive optional null values correctly instead of having them changed into empty strings that can break valid calls#97212 Thanks @vincentkoc, @zw-xysk.
- 1676Successful Codex thread-goal reads now appear as successful in model context, transcripts, and diagnostics instead of being recorded as failed tool calls#98659 Thanks @yetval.
- 1677Message-tool calls with an invalid Gateway timeout now return an immediate validation error instead of appearing to stall#98652
- 1678Invalid plugin approval requests now show the actual validation problem instead of misleading users with a Gateway-unavailable error#100337 Thanks @tzy-17.
- 1679Oversized ClawHub packages, skills, ClawPacks, resolver archives, and GitHub-source downloads now stop with a clear size-limit error before they can exhaust Gateway memory#101176
- 1680Automatic session rotation is less likely to strand the next conversation when a context-engine plugin immediately reads or checkpoints its transcript#101192
- 1681Internal hook authors now receive a warning when a likely event-name typo would otherwise leave a hook silently inactive#99456 Thanks @masatohoshino.
- 1682Tool-using Anthropic-family requests can now fail over to OpenAI without a 400 error caused by an incompatible tool format#101443 Thanks @chrisbaker2000.
- 1683Natural-language corrections can now become the right pending Skill Workshop improvement after successful or failed turns without repeating old feedback, duplicating /learn, or replacing proposal context#100576 Thanks @vincentkoc.
- 1684Skill Workshop approval prompts now include the proposal details needed to apply, reject, or quarantine a change, while unanswered requests stay safely pending and return a clear timeout message#100498
- 1685When users say things like "next time" or "remember to," OpenClaw can now offer one reviewable Skill Workshop proposal without requiring autonomous capture or repeatedly prompting after dismissal#100692
- 1686Skill Workshop now explains when tool policy is hiding skill_workshop and shows the exact allow or alsoAllow change needed to enable manual review calls#100654 Thanks @wangwllu.
- 1687The CLI config documentation now clearly distinguishes normal JSON5 value parsing from --strict-json, which accepts standard JSON and rejects JSON5-only syntax#80981 Thanks @addu2612.
- 1688The macOS guide now gives users a clearer path from downloading the app through first-run setup, Gateway selection, and focused troubleshooting#97120 Thanks @romneyda.
- 1689OpenClaw's public docs now use shorter, task-first instructions with corrected commands, configuration names, defaults, provider behavior, and troubleshooting steps#100142
- 1690Logbook users now have end-to-end guidance for setup, model routing, privacy choices, and troubleshooting missing capture or timeline results. b6a7898
- 1691Safe-restart guidance now states that the default wait can end after `gatewaySafe-restart guidance now states that the default wait can end after gateway.reload.deferralTimeoutMs and explains how to configure an indefinite wait. #95397 Thanks @zhangqueping.
- 1692The agent configuration guide now identifies the current models selected by the built-in opus and gpt aliases#96375 Thanks @niks999.
- 1693Docker operators now have an official path to install, authenticate, verify, and persist the claude-cli backend across container image upgrades#96380 Thanks @fffrank, @zaidazmi.
- 1694OpenClaw's Anthropic and Claude CLI documentation now reflects the current subscription-limit treatment for claude -p and related usage, with official references for billing and deployment decisions#96848 Thanks @fightingsleep, @tirion-p.
- 1695The public onboarding docs now cover eleven existing non-interactive flags for token auth, Cloudflare AI Gateway, daemon, UI, hooks, and token output#97753 Thanks @vincentkoc, @wm0018.
- 1696OpenClaw's mobile documentation now identifies the iOS and Android apps as official releases and provides consistent App Store, Google Play, and hosted iOS push-relay guidance#98843 Thanks @joshavant.
- 1697Official OpenClaw docs now help operators and plugin authors handle credentials safely, preflight cron jobs that use local-provider fallbacks, apply Talk timing defaults, configure MiniMax providers and models, and copy a complete minimal plugin package with the required dependency metadata#100182
- 1698Android node operators now have an end-to-end guide for securely mirroring and controlling a remote device from macOS, including authorization, troubleshooting, and clean disconnection#100398
- 1699The onboarding reference now explains that bare openclaw starts onboarding for a missing config, opens Crestodian for an invalid config, and launches the agent TUI for a valid config. d9dbee7
- 1700ACP troubleshooting now names PermissionPromptUnavailableError, helping operators recognize a non-interactive permission failure and find the right configuration fix. b3a74cc
- 1701The onboarding reference now gives accurate signal-cli, Gateway runtime, and channel allowlist guidance, including Windows limits and the IDs expected for direct messages. aaaa803
- 1702Plugin and channel-status documentation now clarifies that a MessageReceipt or durable sent result proves platform acceptance, not display or read confirmation on a recipient's device#90063 Thanks @pdurlej.
- 1703The Discord setup guide now points users to the correct Developer settings section for enabling Developer Mode and copying required IDs#97336 Thanks @naseemm123.
- 1704The Discord setup guide now separates General Permissions from Text Permissions so bot access choices are easier to read correctly#97584 Thanks @slammajamma28.
- 1705Telegram's error-reply documentation now lists the supported policies and correct cooldown defaults, avoiding invalid errorPolicy: "reply" configurations#97635 Thanks @wm0018.
- 1706The Feishu documentation no longer suggests the rejected `dmPolicyDisabled` setting, reducing configuration failures copied from the guide. #97640 Thanks @wm0018.
- 1707Matrix documentation now explains progress streaming, room-specific mention matching, per-room enablement, and bot-loop safeguards that operators can configure#98318 Thanks @vincentkoc, @wm0018.
- 1708Telegram channel documentation now correctly states that an unset streaming mode uses partial previews and explains how to choose final-only replies#98453 Thanks @solodmd.
- 1709The bundled imsg skill now guides agents toward the correct direct or group conversation, stable targets, least-privilege actions, and confirmation before visible or sensitive changes#100105 Thanks @omarshahine.
- 1710Plugin developers now receive clearer SDK deprecations and migration guidance for session-store and transcript-file helpers ahead of the planned SQLite transition#97494 Thanks @jalehman.
- 1711Plugin authors now get clearer packaging guidance for runtime dependencies, built artifacts, npm-pack: validation, and trusted official-plugin checks before publication#99962 Thanks @hxy91819.
- 1712Official plugin package examples now agree on the required typebox runtime and openclaw peer dependencies, reducing copy-and-paste setup failures#99973
- 1713The Codex and WhatsApp plugin references now identify their tools contract, making supported plugin capabilities easier to match with OpenClaw workflows. 46ad3f9 Thanks @vincentkoc
- 1714Generated documentation navigation now preserves complete headings with command placeholders such as <id> and <deviceId> instead of hiding required arguments#99099 Thanks @hxy91819.