Agent Breaking Changes_

← OpenClaw

OpenClaw openclaw 2026.9.3

breakingdeprecatedmodelpricing

2026-09-08 · official notes

Summary

Full notes

## 2026.9.3

### Highlights

- **Safer updates:** rehearse core and plugin changes in isolated candidate state before activation, support eligible 2026.9.2 migrations, and recover abandoned update records without stopping a healthy matching Gateway. Related #136997. (#138839, #141109, #141175, #141562)
- **Performance:** preserve warm prompt caches, reduce unnecessary work during cold session updates and memory search, and reuse worker builds between sessions. Related #140681. (#140449, #140730, #140799, #140840, #141141) Thanks @justinkirklin-gif, @NianJiuZst, and @obviyus.
- **Skill Workshop:** keep skills in one persistent agent-owned collection across workspaces, compare complete skill instructions, and retire missing-draft suggestions safely through Doctor. Related #135291. (#135528, #139248, #140300, #141009) Thanks @khaisis and @obviyus.
- **Browser tabs, live and native:** watch agent pages repaint and open external links in native Mac tabs that remain with their window across chat switches. (#140988, #141031)
- **Your provider accounts, together:** manage connected accounts and supported account priority directly in Models settings. (#132451) Thanks @jesse-merhi.
- **Share selected conversations:** explicitly publish a revocable read-only view of a session’s existing and future conversation text, accessible to anyone with its public link. (#139489)
- **A searchable meeting library:** browse saved notes, search full transcripts, download complete Markdown or JSONL archives, and manage capture sources from the Control UI. (#139875, #140084)
- **Optional team activity reports:** install and enable Team Reports to browse authenticated GitHub activity and explicitly configured Discord discussion, with stored history and optional model summaries. (#139850, #141327)

### Changes

- **Breaking — Node runtime:** require Node 24.16.0 or newer on 24.x, or Node 26.1.0 or newer; Node 26 is recommended. Upgrade Node before OpenClaw to prevent SQLite text truncation: Node 22, Node 25, and earlier 24.x/26.x builds are no longer supported. Node-based CLI/Gateway installs on macOS 11–13.4 or official Linux ARMv7 provisioning need a supported host; see [Node requirements](https://docs.openclaw.ai/install/node). (#140672)
- **Breaking — execution-policy SDK:** move the retired exec-mode and comparator helpers from `infra-runtime` to `execPolicy` on `openclaw/plugin-sdk/agent-harness-runtime`; use `resolveExecModePolicy` and select the returned fields needed by the caller. See [runtime utility migration](https://docs.openclaw.ai/plugins/sdk-runtime/config-and-utilities).
- **Breaking — approval SDK:** import approval account-resolution helpers from `approval-native-runtime`, adapt session filtering to the full `matchesApprovalRequestFilters` contract, and replace the retired generic forwarding evaluator with native channel route gates and shared predicates rather than assuming a drop-in alias. See [SDK migration](https://docs.openclaw.ai/plugins/sdk-migration).
- **Breaking — SDK aliases:** replace `channel-inbound.buildChannelTurnMediaPayload` with `buildChannelInboundMediaPayload`; infer the retained `abortAndDrainAgentHarnessRun` callable’s result instead of importing the removed `AbortAndDrainAgentHarnessRunResult` named type. The callable and its result data remain available. See [SDK migration](https://docs.openclaw.ai/plugins/sdk-migration).
- **Breaking — search result callbacks:** read bounded Find/Grep text from `details.content` instead of `details.truncation.content`; the outer tool-message `content` remains unchanged. (#140008) Thanks @ruel225.
- **Breaking — directory result callbacks:** use `LsToolDetails.content` and optional `nextAfter` in place of the retired `truncation` and `entryLimitReached` fields, and pass `nextAfter` as `after` to continue listing. See [structured filesystem results](https://docs.openclaw.ai/tools/code-mode#guest-runtime-api).
- **MCP prompt adapters:** return the typed MCP `GetPromptResult` shape from `SessionMcpRuntime.getPrompt`, preserving its messages and image content; validate external responses instead of returning arbitrary unknown values. (#141421)
- **Breaking — agent-owned Workshop skills:** replace workspace ownership with one writable Workshop collection per agent and retire `skills.workshop.allowSymlinkTargetWrites`; startup and `openclaw doctor --fix` migrate proven legacy skills, while ambiguous ownership remains in place for review. (#135528) Thanks @obviyus.
- **Bounded update repair:** supported candidate-validation failures can enter a bounded repair phase using configured inference in disposable rehearsal state; activate only after independent validation, and retain failure or rollback outcomes when repair cannot recover. Changes requiring configuration edits are reported for operator repair. (#139495)
- **Update failure reports:** submit a report from the failed-update action only after explicit consent, using the recorded update attempt and current owner. (#139704) Thanks @fuller-stack-dev.
- **Active sessions:** show running and queued permitted sessions in Live activity on entry and reconnect, with a visible limit notice and connection status instead of claiming disconnected sessions are idle. (#141045) Thanks @shakkernerd.
- **Code Mode composition:** retain the running JavaScript environment across fast tool replies, add optional TypeScript checks against available tools, and report original-source error locations with bounded console output; explicit yields and resource limits still checkpoint execution. Related #141261. (#141265) Thanks @Takhoffman.
- **Code Mode text encoding:** provide sandboxed TextEncoder and TextDecoder instances that survive wait/resume for local text and byte transformations. (#140812) Thanks @Takhoffman.
- **Private-session link previews:** copy social-preview links that show a generic OpenClaw card without reading private session content; opening the conversation still requires its normal authentication. (#139250)
- **Public session transcripts:** session owners and Gateway admins can explicitly publish existing and future conversation text to anyone with a public URL and revoke access later; the read-only view omits tools, reasoning, files, images, and executable widgets. Review the text before enabling access; private-session preview links remain separate. (#139489)
- **Repository-backed cloud sessions:** create sessions from a repository URL and ref with checkout, setup, and recoverable checkpoints owned by the cloud node; materialize a Gateway worktree only when explicitly moving there. (#138900)
- **Persistent sessions and subagent runs:** keep persistent sessions created with visible spawning editable and steerable in their parent tree. Subagent runs remain view-only, omit author avatars, and keep live progress in the parent conversation with inactive cards paused. (#139367, #139371, #139381, #139456, #141499)
- **Provider account controls:** add and remove individual accounts, manage supported account priority, and clear an agent’s custom order without disconnecting accounts; inherited and provider-managed order remains explicit. (#132451) Thanks @jesse-merhi.
- **Model fallback picker:** choose ordered fallback models from a searchable dropdown, remove selections, and add custom references. Related #137410. (#141330) Thanks @najef1979-code and @shakkernerd.
- **Prometheus runtime identity:** identify the running process and loaded build behind metrics so operators can verify which runtime is serving a deployment. Related #139268. (#139280)
- **Provider setup:** keep provider detection passive until the user chooses a route, preserve consent and model choices through setup and OAuth failures, and leave generated catalog rows to discovery. Retain selected OpenAI credentials and supported Doctor model references; Baseten replace mode still includes the bundled catalog. Related #137033, #139207. (#137120, #139243, #139675, #139924, #139951, #140139, #140154, #140336, #141531, #141552) Thanks @LiuwqGit, @NovaUnboundAi, @obviyus, @shakkernerd, and @vincentkoc.
- **Browser panel:** watch Agent browser tabs repaint live, with screenshot fallback when streaming is unavailable. In the macOS app, open external links as native WebKit Mac tabs in the same Browser panel, with navigation and one-shot Annotate/Inspect capture; Mac tabs belong to their window and survive chat switches. (#140988, #141031)
- **iOS voice shortcuts:** open the current chat and start Talk with the Start Live Voice App Shortcut; pairing, provider setup, microphone permission, unlock, and foreground requirements still apply. Related #140998. (#141003, #141152) Thanks @shakkernerd.
- **Team Reports:** install the optional Team Reports plugin for authenticated daily, weekly, and monthly GitHub reports and explicitly selected Discord sources, with stored history, optional summaries, people timelines and calendars, coverage warnings, scheduler/source health, and theme-aware report pages. (#139850, #141327, #141384)
- **Android folding layouts:** keep content clear of separating hinges, show navigation beside content on book folds, and split transcript and composer across suitable tabletop panes while retaining drafts, cursor, and reading position; fall back when available space is insufficient. (#140614, #140710, #140802) Thanks @vincentkoc.
- **Native embedded settings:** provide phone-width settings with safe-area handling and Back navigation while retaining existing Gateway scopes and native device capabilities. (#139492)
- **Telegram photo albums:** group consecutive eligible photos into native albums of up to ten while preserving order, captions, reply targets, and topics; single photos and messages with controls retain individual delivery. (#141398) Thanks @obviyus.
- **CLI and plugin discovery:** limit displayed terminal or JSON documentation results with `openclaw docs --limit`, and let the system agent read installed-plugin inventory directly. Related #133122. (#131014, #133255) Thanks @Alix-007 and @shakkernerd.
- **Recursive delegation:** enable bounded recursive session spawning by default while retaining explicit depth and concurrency limits and existing sandbox restrictions. (#138059) Thanks @fuller-stack-dev.
- **Chat navigation:** add a previewable position rail for long conversations, including hover previews and direct jumps. Related #138587. (#138603) Thanks @brokemac79.
- **Native dashboard reports:** display bounded report data directly through `show_widget` and dashboard authoring without an iframe. Related #139263. (#139306)
- **Chrome extension setup on Mac:** request the official Chrome Store extension from the local Mac device settings or CLI after native setup is ready; Chrome still owns approval and uninstall decisions, and OpenClaw shows when setup remains pending. Related #139448. (#139466)
- **CLI agents by default:** show supported create-capable CLI agents in the new-session model picker without a separate opt-in; set `gateway.cliAgents.enabled` to `false` to disable CLI agents and native CLI session creation. (#139459)
- **Device aliases:** rename paired devices directly from the Control UI Devices page. Related #138099. (#138852) Thanks @xialonglee.
- **Folder navigation:** filter the folder browser immediately as you type a path. (#139417)
- **Meeting archives:** browse paginated saved notes, search transcripts, export complete Markdown or JSONL archives, and edit capture sources in Communications settings while retaining existing archive access controls. (#139875, #140084)
- **Native desktop:** provide ARM64 Linux AppImage packaging and live Gateway cards with direct window opening in the macOS Gateways menu. (#139522, #139688, #139729) Thanks @vincentkoc.
- **Watch voice setup:** include voice in normal Apple Watch setup. (#139712)
- **Diagnostics:** expose garbage-collection duration metrics and identify slow phases while opening agent databases. Related #139547. (#138125, #139592)
- **Android usage:** distinguish context pressure from cumulative latest-run usage, keep optional model-call details compact, and clear stale usage after compaction and history refresh. (#137494) Thanks @IWhatsskill.
- **Installation-owned recovery:** eligible failed updates and recorded startup failures can start a repair using existing authentication and permissions, with only one active repair per installation; verified cleanup, cancellation, and admission limits remain enforced, and recovery does not turn the original failed update into success. (#135868)
- **Cloud setup diagnostics:** report cloud bootstrap phase timings so provisioning delays are easier to locate. (#140442)
- **macOS app Gateway control CLI:** bundle `openclaw-mac` to inspect and configure the running Mac app’s primary and saved Gateway connections from Terminal or SSH, including browser sign-in, reconnect, removal, profiles, and JSON output. Browser sign-in still happens on the Mac; credentials enter through protected files or standard input.
- **Gateway secret setup:** use one Gateway secret field in Control UI and remote onboarding, and generate a local Gateway token by default without asking users to choose token or password. (#141511, #141514)
- **Beam deletion:** delete beamed sessions directly from their sidebar menu without affecting independent continuations. (#141467)

### Fixes

- **Stale update recovery:** recover abandoned update records without stopping a healthy, matching Gateway when no post-update work remains; retain live-driver protection and require explicit recovery for stale legacy records without driver identity. (#141562)
- **Update admission and rehearsal:** rehearse core and plugin changes in isolated candidate copies, including linked and workspace-hoisted dependencies. Check configured plugin targets against the selected or staged core version and reject incompatible agent stores before activation; bound finalization and verify restored package contents before reporting rollback success. Related #136997. (#136329, #138839, #139722, #140648, #140778, #141175, #141478, #141515, #141610) Thanks @fuller-stack-dev.
- **Authored configuration:** preserve authored settings, environment and secret references, and omitted defaults through setup, updates, Settings saves, and Doctor migrations. Route supported edits to their owning include, retain explicit values equal to defaults, preserve configuration when recovery fails, apply changed environment values on restart, and reject or repair placeholder Gateway tokens. Related #116107, #137712, #139494. (#116108, #137713, #139358, #139376, #139536, #139844, #139949, #140579, #141296) Thanks @aeoess, @hyspacex, @obviyus, @robojarvis, and @sasan1200.
- **Gateway maintenance and restart:** keep ordinary failed restarts recoverable in the foreground process, but stop restart loops when migration or required maintenance blocks startup. Doctor acquires ownership before bounded database inspection, applies supported noninteractive repairs, migrates legacy sign-ins before retired routes, and retains actionable refusal and backup-recovery guidance. (#139612, #139683, #140074, #140135, #140973, #141297, #141412, #141416) Thanks @fuller-stack-dev and @obviyus.
- **Update activation and plugins:** run post-update maintenance through the activated CLI, align version-bound official plugins with the selected release, and repair missing configured official installs. Preserve scoped package entries, clear stale development-switch warnings, and report SDK incompatibilities without startup loops. Related #139527. (#121603, #139458, #139709, #140016, #140886, #141478) Thanks @Conan-Scott and @vincentkoc.
- **Development-to-package updates:** replace npm’s install link without modifying its development checkout; restoring a link after failed activation remains unverified recovery and does not automatically restart the Gateway. (#141168)
- **Update rollback and recovery:** recover eligible verified prior installations after failed activation or service transitions, preserve service profiles, and judge rollback against the actual post-Doctor configuration and database compatibility. Keep update outcomes and Unicode diagnostics accurate, skip automatic triage after verified rollback, and report recovery without turning the failed update into success. Related #127869. (#136285, #137680, #139288, #139393, #140263, #140284, #140313, #140419, #140493, #141219, #141364, #141397) Thanks @cursoragent, @fuller-stack-dev, @Jackten, @ly85206559, @Schimuneck, @TheAngryPit, and @vincentkoc.
- **Service recovery:** preserve service-derived targets and authentication during status and repair, retain actionable recovery paths, tolerate systemd clock steps and older launchctl output, and avoid terminating the restarting caller. Let child runtimes drain gracefully under systemd and release Tailscale claims only after the owning process group exits. Related #126445, #135471, #139109, #139226. (#135862, #137253, #139145, #139227, #139261, #139283, #139628, #139836, #140568, #140975) Thanks @coderdailyone, @gaoanze888, @NovaUnboundAi, @PollyBot13, @SebTardif, @SunnyShu0925, and @vincentkoc.
- **Update verification:** check service ownership, settled health, matching version and build identity, plugin activation, channel readiness, and HTTP readiness without making a model call; failed checks follow the supported repair or rollback path. See [update verification](https://docs.openclaw.ai/cli/update).
- **Update continuity and progress:** preserve active work, queued input, update-history ownership, and terminal progress across long updates; retain current update availability beside history and support npm upgrades from 2026.9.1. Resume cloud provisioning across Gateway restarts and reclaim idle workers after build changes. (#139289, #139437, #139455, #139501, #139660, #139663, #139701) Thanks @obviyus, @TheAngryPit, and @TheCrazyLex.
- **Configuration privacy and audit:** preserve sensitive-field and URL-redaction metadata in config responses, retain the original writer in audit history, and report rejected-payload backup failures accurately. Related #139305. (#134198, #139332, #139337) Thanks @SebTardif.
- **Skill Workshop reviews:** compare complete skill instructions with inline changes, distinguish installed skills from proposal history, and support reviews through compatible restricted CLI backends. Preserve discovery of skills literally named skills and describe weekly reviews in terms of retained conversation context. (#139656, #139760, #139812, #139827, #139842, #140300, #140822) Thanks @obviyus.
- **Skill Workshop recovery:** retire missing-draft suggestions through Doctor while preserving installed skills and recovery evidence, distinguish movable backups from those needing review, and keep relocation lint read-only. Report explicit recovery steps for legacy execution policies and unsafe event paths. Related #137357, #139166, #139187, #141036. (#139143, #139193, #139195, #141009, #141048) Thanks @obviyus, @technicalpickles, and @ylcn91.
- **Workshop learning and refresh:** recover memory and skill refresh after watcher exhaustion, keep unavailable-backend status machine-readable, and show stale-search guidance. Review complete Workshop collections before editing, preserve task-specific knowledge, and keep one-time requests or routine repetition from becoming standing instructions. Related #136966, #140184, #140349. (#137105, #140195, #140229, #140315, #140350) Thanks @ericcaiwx-star, @obviyus, and @singletrackandrew.
- **Skills:** validate names in skill-library forms. Related #139183. (#139184)
- **Session responsiveness:** keep session edits responsive during integrity checks, release writers while worktrees restore, avoid cross-agent initialization and reclamation lock failures, and bound listing and saved-prompt work. Reduce cold catalog stalls, retain transaction-safe input relocation, back off reconciliation retries, and let idle remote ses
Weekly digest: every breaking change, retirement and price change across 20+ coding agents, one email.

Form not loading? Subscribe here.