< cd ..

OpenClaw

~/openclaw/openclaw

--harness github web

Personal AI assistant platform — run your own AI on any device, any channel

latest

v2026.7.1-2

total

30

stable

10

pre

20

first tracked

Jun 12, 2026

updated

6h ago

last checked: 6h ago Tier 1 patch
#ai #coding-assistant #open-source #extensible
●●● clwatch

Check if your agent is current:

$ clwatch diff openclaw
$ clwatch refresh openclaw

learn more about clwatch →

●●● quick start // get running in 60s

install

$ npm install -g openclaw

first command

$ openclaw onboard --install-daemon

/changelog

v2026.8.1-beta.3 pre [Aug 24, 2026] details → github →

# OpenClaw 2026.8.1-beta.3

Highlights

  • GPT-5.6 Sol, Terra, Luna, and Ultra reasoning support across OpenClaw and the Codex runtime.
  • Control UI first-run setup now continues verified model setup into Custodian and optional channel setup.
  • Puppeteer-compatible CDP relay support for paired Chrome sessions.
  • Explicit external Gateway lifecycle supervision with verified restart handoff.
  • Compact, verified SQLite backup and fresh-target restore commands.
  • Shared durable ingress monitors for channel plugins.

Publication evidence

  • npm: https://www.npmjs.com/package/openclaw/v/2026.8.1-beta.3
  • Registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.8.1-beta.3.tgz
  • Integrity: sha512-8v+2Knr+0i1qzWXgJmtcBg78VaoMENahLxcuThOqyCmVaCGPj++mI9yv0R440wMv9Siv4fysd5e0YmBVftDvuQ==
  • Core npm preflight: https://github.com/openclaw/openclaw/actions/runs/32687267214
  • Core npm publication: https://github.com/openclaw/openclaw/actions/runs/32689503061
  • Official plugin publication and reconciliation: https://github.com/openclaw/openclaw/actions/runs/32680190375
  • All 89 official npm plugins were read back at 2026.8.1-beta.3 with the beta selector and complete tarball integrity metadata.
  • @openclaw/codex@2026.8.1-beta.3 ships the exact managed @openai/codex@0.149.1 runtime.
See CHANGELOG.md for the complete release notes.
v2026.8.1-beta.2 pre BREAKING [Aug 15, 2026] details → github →

# OpenClaw 2026.8.1-beta.2

2026.8.1

Highlights

  • Secret egress host binding: bind each shared-store secret to exact HTTPS destination hosts across CLI, Gateway RPC, and Control UI so unbound sentinel substitution fails closed before plaintext egress. Thanks @shakkernerd.
  • GPT-5.6 Ultra and runtime switching: support Sol, Terra, and Luna across OpenClaw and Codex engines; keep model, runtime, and thinking selection atomic through /model and fallback; and add live matrix coverage for both harnesses. Thanks @anyech and @vincentkoc.
  • Channel plugin ingress monitors: add a shared plugin SDK monitor for durable admission, polling, pruning, claim identity validation, adoption handoff, and shutdown, and migrate IRC, Synology Chat, and Google Chat to the shared lifecycle. Thanks @vincentkoc and @shakkernerd.
  • SQLite snapshots: add openclaw backup sqlite create|list|verify|restore for compact, verified global and per-agent database artifacts with fresh-target-only restore. Thanks @giodl73-repo.
  • macOS app profiles: isolate named app instances across state, preferences, Keychain, Gateway services, and duplicate-instance ownership while keeping host-global login and node services untouched. Thanks @shakkernerd and @vincentkoc.
  • Plugin install provenance warnings: require explicit --force acknowledgement for arbitrary executable plugin sources in CLI and chat installs, keep trusted ClawHub, bundled, official-catalog, and tracked-update flows frictionless, and restrict Crestodian installs to trusted sources. Thanks @jesse-merhi and @vincentkoc.
  • Control UI update recovery: the "A new version is available" Reload button now waits out the gateway restart that stranded the chunk and reloads as soon as it answers, instead of silently doing nothing and leaving a manual hard reload as the only way out. Thanks @vincentkoc.

Changes

  • Secret egress host binding: bind each shared-store secret to exact HTTPS destination hosts across CLI, Gateway RPC, and Control UI so unbound sentinel substitution fails closed before plaintext egress. Thanks @shakkernerd.
  • Release validation: defer beta candidate Parallels smoke to postpublish release:beta-smoke by default, keep stable/full prepublish coverage, and bound nested release workflow monitors with explicit job timeouts. Thanks @vincentkoc.
  • macOS app profiles: isolate named app instances across state, preferences, Keychain, Gateway services, and duplicate-instance ownership while keeping host-global login and node services untouched. Thanks @shakkernerd and @vincentkoc.
  • Developer workflow: remove the obsolete scoped-commit helper and use standard Git commands in isolated worktrees.
  • Plugin uninstall cleanup: remove exact recorded install paths from plugins.load.paths for marketplace, npm, and other managed installs while preserving parent, child, prefix, and unrelated paths. Thanks @vincentkoc.
  • Fixed Crabbox hydration on unprivileged cloud sandboxes by falling back to a user-writable pnpm store when the shared /var/cache/crabbox cache is unavailable, preserving the hardlink import mode after hydration, and making Docker an explicit routed capability instead of an implicit install requirement. Thanks @vincentkoc and @joshavant.
  • Browser extension relay CDP compat: answer Target.getBrowserContexts so Puppeteer-based clients (chrome-devtools-mcp) can drive the paired Chrome without the remote-debugging permission prompt, serve DevTools-style /json/list target descriptors, and add openclaw browser extension cdp to print the relay endpoint plus auth header for external CDP clients. Thanks @vincentkoc.
  • Local model setup: advertise provider-owned Ollama, llama.cpp, and LM Studio setup choices to Control UI and macOS, retry unavailable LM Studio services in place, and verify the exact prepared model before showing success. Thanks @vincentkoc.
  • Control UI first-run setup: continue verified model setup into Custodian, explain that the web app is ready without a channel, and offer an optional dismissible path to Channels.
  • Fish Audio speech: add hosted S2.1 synthesis with streaming, voice notes, voice discovery, and telephony, plus local Fish S2 Pro reference-voice streaming in native macOS Talk. Thanks @Conan-Scott, @vincentkoc, and @Patrick-Erichsen.
  • Control UI cloud workspace conflicts: surface staged-ref guidance, bounded conflicted paths, structured transcript events, and sidebar attention for cloud worker results that kept local versions. Thanks @vincentkoc.
  • Control UI update recovery: the "A new version is available" Reload button now waits out the gateway restart that stranded the chunk and reloads as soon as it answers, instead of silently doing nothing and leaving a manual hard reload as the only way out. Thanks @vincentkoc.
  • Control UI sender identity polish: attributed user messages show the author's real avatar in an always-visible gutter on identity-resolving gateways, sender labels drop the opaque profile-UUID suffix (new and historical transcripts), and profile-id senders resolve avatars through the canonical gateway route. Thanks @shakkernerd and @vincentkoc.
  • Control UI who's-online roster: click the sidebar footer facepile to open a scrollable roster of everyone online, showing each person's avatar, name, and email with your own entry pinned first.
  • Discord and Slack native login: register /login in native command menus while keeping pairing-code issuance limited to private chats and the Web UI.
  • Control UI user profiles: let trusted-proxy users manage their own display name and avatar, resolve attributed chat and presence identities through uploaded avatars or a private cached Gravatar proxy, and keep other users' profiles admin-only. Thanks @vincentkoc.
  • Trusted-proxy browser pairing: optionally auto-approve new Control UI and WebChat devices from allowlisted proxy identities with non-admin scope caps, while keeping existing-device upgrades manual. Thanks @vincentkoc.
  • Channel plugin ingress monitors: add a shared plugin SDK monitor for durable admission, polling, pruning, claim identity validation, adoption handoff, and shutdown, and migrate IRC, Synology Chat, and Google Chat to the shared lifecycle. Thanks @vincentkoc and @shakkernerd.
  • Dashboard MCP apps: pin originating-session MCP app views as living dashboard widgets, renew their sandboxed view leases, and keep tool interactivity behind revision-bound grants with graceful stale-state recovery. Thanks @vincentkoc.
  • External gateway supervision: add OPENCLAWSUPERVISORMODE=external for lifecycle owners such as OCM, preserving verified restart and deferral behavior without exposing native service authority, blocking native service mutation and self-update, and providing a versioned atomic restart-handoff consume contract. Thanks @shakkernerd.
  • Buzz message fidelity: preserve Markdown output and accept Buzz normal, rich-content, and structured-diff room messages through the existing authorized inbound path. Thanks @shakkernerd, @vincentkoc, and @zw-xysk.
  • Buzz typing indicators: show room- and thread-scoped typing during agent replies and heartbeat deliveries, refresh through the active authenticated connection without waiting for relay acknowledgement, and drop ephemeral updates safely during disconnects or shutdown. Thanks @shakkernerd and @vincentkoc.
  • Buzz sender directory: expose current bot, member, room, and room-member directory entries from bounded relay state; use current Buzz profile and room names in inbound context while preserving public keys and UUIDs as stable authorization and routing identities. Thanks @shakkernerd and @vincentkoc.
  • Buzz native mentions: resolve unique current room-member names and explicit NIP-27 identities into native p tags for replies, proactive sends, and bounded standalone delivery; reject out-of-room identities and unresolved labels without an explicit identity, and preserve Buzz reply-thread session parsing during maintenance and heartbeat runs. Thanks @shakkernerd, @vincentkoc, and @joshavant.
  • ClickClack guided setup: configure ClickClack from openclaw onboard or openclaw channels add clickclack with URL, token, and workspace prompts, default-account env fallback, nonfatal live connection validation, and gateway-aware next steps that connect automatically when OpenClaw is already running. Thanks @shakkernerd and @vincentkoc.
  • ClickClack command menus: publish each bot's native OpenClaw commands to ClickClack composer autocomplete at gateway startup, with per-account opt-out and nonfatal compatibility handling for older tokens and servers. Thanks @shakkernerd and @vincentkoc.
  • ClickClack bot collaboration: add opt-in bot-authored inbound dispatch with explicit sender authorization, mention gating, retry-safe loop protection, and independent thread budgets while keeping bot traffic denied by default. Thanks @jjjhenriksen, @shakkernerd, and @vincentkoc.
  • Skill Workshop approvals: run agent-initiated apply, reject, and quarantine actions without an additional approval prompt by default while preserving skills.workshop.approvalPolicy: "pending" as an opt-in approval gate. Thanks @shakkernerd and @vincentkoc.
  • TUI fuzzy selectors: delegate list matching to pi-tui, adding slash-token and alpha-number matching while removing the local matcher fork.
  • macOS paired-node terminals: advertise duplex Codex and Claude terminal resume commands from the embedded node host and forward interactive input and cancellation through the native app bridge. (#107335) Thanks @vincentkoc.
  • Control UI catalog terminals: open eligible Codex and Claude Code sessions in the native CLI on their Gateway or paired-node host, with viewer-versus-terminal preferences, validated resume commands, and an interactive PTY relay. Thanks @vincentkoc.
  • Control UI coding catalogs: show provider brand icons beside Claude Code and Codex session catalog headings in the sidebar. Thanks @vincentkoc.
  • Skill Workshop history review: add a manual, newest-first session scan that progressively searches older substantial work for conservative skill ideas, stores only SQLite cursor metadata, and leaves up to three results as pending proposals even when autonomous self-learning is disabled. (#106182) Thanks @vincentkoc and @shakkernerd.
  • SQLite snapshots: add openclaw backup sqlite create|list|verify|restore for compact, verified global and per-agent database artifacts with fresh-target-only restore. Thanks @giodl73-repo.
  • GPT-5.6 Ultra and runtime switching: support Sol, Terra, and Luna across OpenClaw and Codex engines; keep model, runtime, and thinking selection atomic through /model and fallback; and add live matrix coverage for both harnesses. Thanks @anyech and @vincentkoc.
  • OpenAI GPT-5.6 defaults: use openai/gpt-5.6 (Sol alias) for fresh API-key setup and exact openai/gpt-5.6-sol for fresh Codex/OAuth setup, default Sol to medium reasoning across both runtimes, and preserve existing primaries, fallbacks, aliases, and explicit GPT-5.5 selections. (#103234) Thanks @shakkernerd and @vincentkoc.
  • Meta provider: add bundled muse-spark-1.1 model support with Responses API streaming, tool calls, encrypted reasoning replay, onboarding, and standalone npm/ClawHub distribution. Thanks @HamidShojanazeri and @vincentkoc.
  • Android chat agent selector: switch the active agent directly from the live chat screen while keeping chat, Talk mode, and home canvas on the same canonical session. Thanks @bcperry and @joshavant.
  • Gateway host status: show the connected Gateway's host, network address, OS, runtime, uptime, CPU, memory, and disk details in Control UI Settings. Thanks @vincentkoc.
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100194) Thanks @vincentkoc.
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true. Thanks @vincentkoc.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046) Thanks @vincentkoc.
  • Control UI session workspace shortcut: expand or collapse the active Chat pane's session workspace rail with ⇧⌘B without changing the main app sidebar or the separate detail and Canvas preview panel. Thanks @shakkernerd and @vincentkoc.
  • Control UI Settings shortcut: open Settings with ⇧⌘, while leaving the browser-owned ⌘, shortcut unchanged. Thanks @shakkernerd.
  • Control UI chat layout: center the transcript on the composer axis, keep assistant and tool output left and user bubbles right within the same readable frame, and preserve custom message-width overrides. (#104474) Thanks @shakkernerd, @vincentkoc, and @zw-xysk.
  • Control UI composer footer: center the chat settings chip and model controls between the divider and the card edge instead of pinning them to the divider. (#105866)
  • Control UI assistant actions: keep assistant name and time first while placing hover actions beside them on the left instead of at the far edge. Thanks @shakkernerd.
  • Cron model selection: choose an agent-turn model in Control UI Quick Create and show configured or default models in cron job rows and details. Thanks @ly85206559, @joshavant, and @vincentkoc.
  • Control UI GitHub previews: show issue and pull request state, title, author, activity, comments, and change statistics in hover and keyboard-focus cards.
  • Logbook work journal: add a disabled-by-default bundled plugin that turns paired-node screen snapshots into a private timeline, daily standup, and timeline-grounded Q&A in a plugin-contributed Control UI tab. Thanks @vincentkoc.
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar navigation: show a small customizable pinned destination set, keep the remaining pages under More, move Settings to the footer, and persist sidebar customization in the browser. Thanks @vincentkoc.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd and @vincentkoc.
  • Android chat code highlighting: render fenced Kotlin, Swift, TypeScript, JavaScript, Python, Bash, and JSON blocks with bounded, theme-aware syntax colors while preserving plain rendering for unknown, partial, or oversized blocks.
  • Gateway TTS playback: add an operator-scoped tts.speak RPC that returns configured-provider speech as inline whole-clip audio for remote clients. (#100708)
  • Workboard dispatch cap: add a request-scoped --max-starts override while preserving the default cap, sequential starts, and one-card-per-owner guard. (#100174) Thanks @souvikDevloper, @Souvikalp, and @jwest75674.
  • Plugin install provenance warnings: require explicit --force acknowledgement for arbitrary executable plugin sources in CLI and chat installs, keep trusted ClawHub, bundled, official-catalog, and tracked-update flows frictionless, and restrict Crestodian installs to trusted sources. Thanks @jesse-merhi and @vincentkoc.
  • Custodian rich setup controls: render the Gateway's sanitized wizard steps as native selects, multiselects, text fields, and masked secret inputs while preserving text-only chat compatibility. (#114631) Thanks @jesse-merhi and @shakkernerd.

Fixes

  • Codex subagent fan-out: settle successful terminal yields immediately and preserve requester ownership so completed children reliably resume their parent. Thanks @vincentkoc.
  • Control UI session companion: load bounded visible session context before answering, keep unavailable questions retryable, and prevent private companion reference wrappers from appearing as answers. Fixes #120746 Thanks @shakkernerd and @maweibin.
  • Telegram live locations: expose initial, moving, and stopped live-location updates through the channel-neutral message_received hook without starting agent turns for edits.
  • Updater plugin convergence: keep pre-plugin doctor passes from installing configured plugins before the updater's plugin sweep, while preserving the final post-plugin migration pass and preventing ambient update-phase state from leaking into fresh doctor processes. Thanks @vincentkoc.
  • Control UI browser tab identity: keep selected tab styling, accessibility, focus, address, and page snapshot aligned across in-place navigation and tab reordering. Fixes #120745 Thanks @shakkernerd and @vincentkoc.
  • Control UI staged attachments: preserve unsent images, files, pasted images, and large pasted text across same-tab route and narrow split-pane remounts while keeping pane close, mismatched pane/session/Gateway remounts, application shutdown, and hard reload as cleanup boundaries. Fixes #121519 Thanks @shakkernerd and @vincentkoc.
  • Control UI browser annotations: keep marked screenshots and generated page context together in structured composer cards, preserve user-written drafts when annotations are removed or replaced, retain complete unsent annotation packages across same-tab route and active split-pane remounts, and offer bounded Undo without restoring removed context into another session. Fixes #120744 Thanks @shakkernerd and @vincentkoc.
  • Control UI profile avatar refreshes: carry canonical content revisions through mutation responses and live presence so rapid replacements refresh every connected browser without stale cache rollback. Thanks @shakkernerd and @vincentkoc.
  • Control UI appearance accessibility: keep the unavailable custom-theme card announced as an Import command while preserving selected-state semantics for selectable themes and text sizes. Thanks @shakkernerd.
  • Control UI dashboard index refresh: keep an open Dashboards page current after session changes, agent-scope updates, and Gateway reconnects while preserving the last safe list until replacement hydration completes. Fixes #120602 Thanks @shakkernerd and @vincentkoc.
  • Browser extension relay security: require canonical 64-character relay secrets and safe WebSocket pairing URLs, and recheck OpenClaw tab-group consent at the extension edge before every authority-bearing existing-tab command. Thanks @vincentkoc and @joshavant.
  • Control UI debug diagnostics: keep last-good status, health, model, and heartbeat snapshots visible when refreshes fail, show the failure inside Snapshots, isolate it from Manual RPC state, and prevent older manual calls from overwriting newer ones. Thanks @shakkernerd, @vincentkoc, and @maweibin.
  • Control UI read-only preferences: keep personal preference edits browser-local without attempting unauthorized config writes or claiming server sync, preserve offline intent for a later authorized reconnect, and restore the current server value on local reset. Thanks @shakkernerd and @vincentkoc.
  • Control UI owner handoff: give browsers opened by host-issued dashboard and graphical onboarding links durable administrator access, including same-browser recovery from a limited credential, while keeping generic, Telegram, mobile, and ordinary scope-upgrade paths bounded. Thanks @shakkernerd and @vincentkoc.
  • Control UI agent and skill permissions: gate Agents, Skills, Skill Workshop, and delayed mutation dispatches by the current Gateway method catalog and operator scopes while preserving read-only browsing and legacy Gateway compatibility. Fixes #119176 Thanks @shakkernerd and @vincentkoc.
  • Guided onboarding skip-UI routing: keep openclaw onboard --skip-ui and openclaw setup --skip-ui on guided onboarding while skipping both browser and terminal handoffs, instead of silently switching to the classic wizard. Thanks @shakkernerd.
  • Telegram durable ingress: preserve pre-identity control-lane ownership during replay and attempt each drain snapshot row only once per pass, preventing targeted commands from spinning the spool and blocking polling shutdown. Thanks @vincentkoc.
  • Control UI operator session permissions: honor Gateway-advertised operator scopes for new-thread creation, thread management, checkpoints, and sharing controls while preserving read-only navigation and legacy Gateway compatibility. Fixes #117786 Thanks @shakkernerd and @vincentkoc.
  • Control UI delayed session commands: bind slash-command mutations and confirmed resets to their originating Gateway, recheck current operator scopes after asynchronous work, and retain reset authorization through queued delivery so reconnects cannot target a replacement connection. Thanks @shakkernerd and @vincentkoc.
  • Control UI archived session deletion: send archive-gated delete requests from Sessions-page row and mixed-selection actions so write-scoped operators can remove archived threads while active-session deletion remains admin-only. Thanks @shakkernerd, @joshavant, and @vincentkoc.
  • Control UI command recovery: keep delayed detached and immediate command failures scoped to their submitting session, preserving failed drafts and attachments for that pane without overwriting the active session. Fixes #116846 Thanks @shakkernerd and @vincentkoc.
  • Microsoft Teams message-tool replies: keep automatic live previews from duplicating a message already delivered to the current Teams conversation, while preserving distinct follow-up text and cross-conversation sends. Fixes #116397. (#116398) Thanks @a-tokyo, @vincentkoc, and @maweibin.
  • Buzz plugin packaging: keep the live QA runner on the shipped QA runner SDK surface and remove the obsolete package shrinkwrap so standalone npm and ClawHub package builds use current host exports and dependency resolutions. Thanks @shakkernerd and @vincentkoc.
  • Control UI sharing connection isolation: discard stale visibility and membership mutation results after switching gateways or accounts so previous-connection refreshes and errors cannot update the replacement connection. Fixes #116800 Thanks @shakkernerd and @vincentkoc.
  • Control UI session refreshes: preserve explicitly queued list filters and background hydration across later Gateway event invalidation, while keeping append pagination followed by a canonical refresh. Fixes #116697 Thanks @shakkernerd and @vincentkoc.
  • Gateway device clock skew: sign device proofs with the Gateway-issued challenge timestamp across TypeScript, Control UI, browser extension, Android, Apple, Linux, and watchOS clients so incorrect local clocks no longer block authentication, while retaining no-challenge compatibility for pre-challenge Control UI servers and older watch-node HTTP endpoints and keeping nonce binding and freshness checks enforced. Fixes #103455 Thanks @joshavant and @vincentkoc.
  • Control UI dynamic deep links: reuse the initial route loader result when publishing real agent, session, dashboard, Workboard, Memory, and Plugins paths, avoiding redundant route-loader work during startup. Thanks @shakkernerd and @vincentkoc.
  • Linux gateway service ownership: refuse user-scope systemd publication and activation when the same gateway unit name is already owned or cannot be verified in the system scope, including --force, with actionable recovery guidance instead of creating restart-looping dual managers. Fixes #116129 Thanks @vincentkoc Thanks @obviyus and @vincentkoc.
  • macOS remote tunnel lifecycle: prevent cancelled or superseded restart backoffs from recreating SSH tunnels, and join a tunnel create that another caller started while the actor was suspended.
  • macOS location permission requests: coalesce concurrent prompts so every caller resumes, and stop cancelled timeouts from opening Settings or completing a newer request. Thanks @vincentkoc.
  • macOS Voice Wake cancellation: stop superseded silence, capture, and recognizer-restart timers immediately so cancelled work cannot restart the microphone pipeline or keep stale monitor loops alive.
  • Meeting node audio retention: bound captured audio and terminal retention for Google Meet, Teams, and Zoom node-host sessions, make close idempotent, and force stalled bridge processes down after the graceful shutdown window. Thanks @vincentkoc and @obviyus.
  • Control UI update reconciliation: preserve an unresolved managed-update request across disconnects, accept the replacement Gateway version when it proves success, and otherwise show explicit recovery guidance instead of trusting an unrelated cached update result or failing silently. Fixes #116075 Thanks @shakkernerd and @vincentkoc.
  • Control UI model readiness: put AI setup first when no model is selectable, distinguish signed-in credentials from ready providers, and route accounts with no exposed models directly to provider recovery instead of leading with disabled default controls. Thanks @shakkernerd and @vincentkoc.
  • Control UI Talk session isolation: stop active realtime Talk media and retire its callbacks before chat session changes, Gateway disconnects, or pane disposal so previous-session audio, transcript, camera, and status updates cannot leak into the next view. Thanks @shakkernerd and @vincentkoc.
  • Control UI Realtime tool calls: execute OpenAI WebRTC tools only from completed responses, bound retained call identities and UTF-8 arguments, and ignore provisional or late duplicate events so long Talk sessions cannot grow tool state without limit. Thanks @vincentkoc and @maweibin.
  • Gateway reconnect event ordering: reset the shared TypeScript client's outer event-sequence baseline for each replacement WebSocket, preventing gap recovery from comparing unrelated connection generations across Control UI, TUI, SDK, and browser extension clients. Thanks @shakkernerd and @vincentkoc.
  • Skill Workshop offline apply: preserve configless local proposal apply after upgrades under exclusive Gateway startup ownership, while keeping running Gateway snapshot invalidation fail-closed when CLI credentials are unavailable. Thanks @vincentkoc.
  • macOS and Control UI keyboard navigation: let Tab traverse links and controls inside embedded Dashboard, browser, and Canvas web views, and keep shortcuts working on non-Latin keyboard layouts without firing during IME composition.
  • Control UI session diffs: hide unchanged checkout modifications and untracked files that already existed when a thread started, so the diff panel attributes only files touched by that session. Fixes #115628. Thanks @vincentkoc.
  • Code Mode small-model repair: give malformed pre-dispatch exec calls one bounded correction turn, expose typed failure-phase and bridge-dispatch evidence, and stop retries after nested tools begin. Fixes #115311 Thanks @vincentkoc.
  • Shared state corruption recovery: evict only the exact cached SQLite owner after proven read or write corruption so a repaired database recovers without a Gateway restart while caller-injected handles remain untouched. Fixes #114269 Thanks @rizquuula and @vincentkoc.
  • Dev-channel updates: finish package-to-git switches in a fresh CLI process even when source SHA and version metadata are unchanged, preventing stale hashed chunks from loading after the global package root changes. Thanks @joshavant and @vincentkoc.
  • Parallels release smoke: preserve Windows installer reboot results across Parallels, wait for WSL MSI/default-version readiness, force explicit test-owned gateway stops, and reset Linux package, config, and cache state before install lanes, preventing false prerequisite, safety-gate, and stale-config failures. Thanks @vincentkoc, @joshavant, and @shakkernerd.
  • OpenAI Realtime Talk auth: remove the non-public Codex OAuth realtime fallback and require an OpenAI Platform API key for Talk, Voice Call, and Discord realtime voice, preventing OAuth-only gateways from advertising a browser session that the live service rejects. Fixes #115021 Thanks @shakkernerd, @vincentkoc, @maweibin, and @joshavant.
  • Codex native subagent handoff: tell Codex harness turns to use sessionsyield for later-turn child completion delivery, reserve waitagent for immediately blocked same-turn steps, and omit the guidance when yielding is unavailable. Fixes #115443 Thanks @shakkernerd and @vincentkoc Thanks @bek91, @vincentkoc, and @shakkernerd.
  • Codex native controls: stop misclassifying valid thinking/fast runtime controls as provider overrides so Codex routes keep their native controls, while provider-native objects and invalid values stay fail-closed. Thanks @VACInc, @vincentkoc, and @shakkernerd.
  • State snapshot verification: run SQLite snapshot verification in a separate process so worker-thread file closes no longer drop the Gateway's POSIX WAL locks, eliminating spurious WAL misses and I/O errors. Thanks @VACInc, @vincentkoc, and @zw-xysk.
  • Reply latency with model policies: reuse one immutable plugin-metadata snapshot per model-selection run instead of repeating plugin discovery, cutting reply delay when a model policy is configured. Thanks @VACInc, @vincentkoc, and @shakkernerd.
  • Claude cache after stalls: recover stalled Claude CLI sessions by forking from the last pre-turn checkpoint so native cache continuity survives without duplicating the pending prompt, with a cold reseed fallback for CLIs without checkpoint support. Thanks @VACInc, @vincentkoc, and @obviyus.
  • Control UI initial prompts: keep accepted first messages visible across Gateway transport reconnects by binding the process-local handoff to the logical browser client instead of the per-handshake hello snapshot. Thanks @vincentkoc.
  • Gateway exec deny fallback: fail closed immediately when shell-expanded arguments prevent an allowlisted command from producing an enforceable execution plan and effective policy is ask=off with askFallback=deny, instead of registering an approval that can only time out. Fixes #113191 Thanks @shakkernerd and @vincentkoc Thanks @jrvanwinkle and @vincentkoc.
  • Cron local-provider preflight: report the guarded-fetch deadline as a bounded preflight timeout, preserve concrete nested non-timeout errors, and carry the failure reason into fallback warnings. Thanks @shakkernerd, @vincentkoc, and @zw-xysk.
  • Buzz lifecycle recovery: isolate relay and room-role failures to the Buzz account reconnect loop, prevent subscription cleanup from terminating the Gateway, and clear stale channel errors after successful reconnects. Thanks @shakkernerd and @vincentkoc.
  • Buzz standalone sends: let openclaw message send and other non-Gateway processes open a bounded authenticated relay connection, publish the message, and close cleanly while running Gateways continue to reuse their active connection. Thanks @shakkernerd.
  • Buzz presence: publish nonblocking online presence when the Gateway connects, refresh it without overlapping heartbeat writes, and let Buzz's final-connection cleanup provide accurate offline state across reconnects and multiple Gateway instances. Thanks @shakkernerd and @vincentkoc.
  • Buzz bot profiles: persist optional Buzz account names, publish them as bot display names without delaying Gateway startup, preserve existing profile metadata, and include configured owner attestations so Buzz can show verified provenance. Thanks @shakkernerd, @vincentkoc, and @joshavant.
  • Buzz agent identity: register connected bots in Buzz's agent directory without overwriting existing profile policy, so later room invitations retain the Bot role instead of downgrading the identity to a normal member. Thanks @shakkernerd.
  • Buzz guided setup: reuse or generate the bot identity automatically, wait for Bot-role approval before falling back to identity-preserving Retry/Back controls, select single-room defaults, preserve advanced access settings, accept normal room messages by default without relying on composer mentions, verify setup without posting test messages, finish targeted channel setup directly, derive new bot profiles from the routed agent identity, and authorize fresh setups from Buzz's live room roster without per-message relay queries. Thanks @shakkernerd, @vincentkoc, and @joshavant.
  • Buzz resumable setup: persist paused bot identities, resume disabled setup in place, retry authenticated room discovery without rotating keys, require verified Bot-role room membership instead of accepting unverified room UUIDs, and give accurate CLI authorization guidance for generated identities that Buzz desktop cannot discover. Thanks @shakkernerd.
  • Buzz inbound authorization: apply shared room sender and command authorization before agent dispatch, allow authorized control commands to bypass mention gating, and preserve Buzz thread/reply identifiers through delivery. Thanks @shakkernerd and @vincentkoc.
  • ClickClack split-origin setup codes: consume versioned exact claim endpoints without appending a second claim path, validate the returned canonical API base, preserve private API transport overrides, and keep legacy setup URLs working. Fixes #111919 Thanks @shakkernerd and @vincentkoc.
  • Standalone plugin files: let manifestless files explicitly listed in plugins.load.paths pass config validation and load independently when several files share a directory. Thanks @vincentkoc.
  • Control UI terminal error messages: preserve message-only assistant output beginning with Error: or a warning marker instead of treating text prefixes as synthetic failures. Thanks @shakkernerd, @vincentkoc, and @zw-xysk.
  • Channel outbound echo suppression: drop recently emitted platform message and source identities at shared inbound admission and migrate Discord thread unbinds off channel-local expiry state, preventing delayed webhook copies from re-entering agents. Thanks @vincentkoc.
  • Reef startup reconciliation: contain retryable relay failures during startup without supervisor restart loops, while preserving definitive-error and cancellation handling. Thanks @Yigtwxx and @vincentkoc.
  • Codex stale-session replies: stop model fallback after another gateway supersedes a Codex session generation and deliver a safe retry notice instead of abandoning the message silently. Thanks @vincentkoc, @shakkernerd, and @obviyus.
  • Bounded input and provider responses: cap pasted auth/config input and enforce wall-clock deadlines across generated-media downloads, polling JSON, and failed response details so oversized or slow-drip streams cannot exceed resource budgets (thanks @Pick-cat). Thanks @vincentkoc.
  • LINE durable inbound media: retry transient content preparation, network, and response-stream failures through durable ingress so media-only messages are not acknowledged before their attachment is saved. Thanks @edenfunf, @vincentkoc, and @shakkernerd.
  • Cloud worker derived workspace caches: exclude Python caches, dependency trees, and macOS metadata symmetrically from outbound sync and inbound reconciliation so local cache rewrites cannot fence later cloud results or worker reclaim. Thanks @vincentkoc.
  • Codex model status diagnostics: report a configured Codex route as unavailable when its harness plugin is disabled, missing, or quarantined, while preserving the separate credential result and making models status --check fail instead of silently treating fallback execution as healthy. Thanks @shakkernerd and @vincentkoc.
  • Gateway control-plane rate limiting: use per-method buckets with a 30-per-minute budget so interactive admin writes remain responsive while retaining runaway-loop protection.
  • External supervisor restart health: accept device-identity policy closes only when the replacement gateway lock and listener PID agree, preventing OCM-managed restarts from timing out after a successful handoff. Thanks @shakkernerd, @vincentkoc, and @joshavant.
  • ACPX cleanup process inspection: bound host process-table reads so stalled ps calls cannot hang gateway startup or session cleanup while retaining fail-closed ownership checks. Thanks @Alix-007 and @vincentkoc.
  • Cron lifecycle conflict retries: preserve execution-phase retry decisions across scheduled, manual, and startup-recovered runs so post-execution claim conflicts cannot replay completed messages or tools. Fixes #108428 Thanks @yetval and @vincentkoc.
  • Discord gateway metadata deadline: carry the existing lookup deadline through DNS and proxy preflight, request headers, and response bodies so stalled gateway startup aborts cleanly. Thanks @hugenshen, @vincentkoc, and @shakkernerd.
  • Control UI cloud session thinking: expose reasoning level in the New Session model picker and persist the selected level before cloud dispatch. Thanks @vincentkoc.
  • iOS fresh-install setup: atomically redact spent setup credentials before Keychain cleanup so a deferred item deletion no longer disconnects a successfully paired device. Fixes #107591 Thanks @dagmarjeeves-lab and @vincentkoc.
  • Tlon SSE connect cleanup: disarm opening deadlines after failed HTTP responses and rejected stream opens so reconnect attempts cannot leave stale timers behind. Thanks @hugenshen and @vincentkoc.
  • LINE reply-token media kinds: honor video and audio metadata on inbound replies, share the canonical media builder with proactive sends, and fail visibly instead of recording empty media-only deliveries. Thanks @edenfunf and @vincentkoc.
  • Mattermost websocket connection deadlines: bound opening handshakes so stalled TCP peers cannot hang channel startup indefinitely and reconnect control resumes after timeout. Thanks @hugenshen, @vincentkoc, and @obviyus.
  • Queued TTS retries: copy local outbound media into queue-owned storage before enqueueing so voice replies survive producer temp cleanup and restart recovery, retain referenced artifacts through retry backoff, and prune unreferenced spool files after one day. Fixes #108501 Thanks @masatohoshino, @vincentkoc, and @obviyus.
  • Feishu app registration deadlines: bound OAuth device-registration requests to 10 seconds through the guarded fetch boundary so setup cannot hang indefinitely on stalled response headers. Thanks @hugenshen, @shakkernerd, and @vincentkoc.
  • LINE control-command mentions: detect authorized slash commands before mention stripping so inline group and direct-message controls preserve the original ingress metadata. Thanks @edenfunf and @vincentkoc.
  • Feishu document image reads: bound remote document-image headers and stalled bodies with the selected account timeout, parse document Markdown through the plugin's MDAST pipeline, preserve image/block alignment, and reject failed upload input before creating empty image blocks. Thanks @Alix-007 and @vincentkoc.
  • ClawHub registry reads: retry bounded HTTP 500 responses alongside other transient gateway failures so multi-package release scans survive isolated registry errors. Thanks @vincentkoc.
  • Slack Socket Mode health: report connected Socket Mode transports as degraded when auth.test fails or the configured bot token resolves to a user without bot_id, while preserving healthy enterprise-org installs. Thanks @zw-xysk and @vincentkoc.
  • Synology Chat response limits: bound user-list response reads, stop oversized streams immediately, and retain stale cached identities when a NAS exceeds the supported envelope. Thanks @zw-xysk and @vincentkoc.
  • Usage date ranges: exclude legacy transcript rows without timestamps from finite session ranges while preserving them in all-time totals, and rebuild older usage caches before serving the new semantics. Fixes #89709 Thanks @TurboTheTurtle, @shakkernerd, and @vincentkoc Thanks @syfvb, @shakkernerd, and @vincentkoc.
  • LINE group history races: retain ambient group messages received during an active mention turn for the next turn while consuming the pre-turn snapshot exactly once. Thanks @edenfunf and @vincentkoc.
  • Mattermost progress command details: accept the documented streaming.preview.commandText and streaming.progress.commandText modes in channel config validation and bundled metadata. Thanks @shakkernerd and @vincentkoc.
  • 1Password authorization handoff: persist nonce-bound pending approvals in shared plugin state so hook and tool execution across broker instances remain single-use and fail closed. Thanks @vincentkoc and @obviyus.
  • Control UI chat transcripts: preserve loaded history across session and pane returns, bound automatic backscroll loading, virtualize long transcripts, retain hidden native run boundaries, and keep prepends, streaming, and responsive layouts from flickering or jumping. Thanks @shakkernerd and @vincentkoc.
  • Codex dynamic tool outcomes: use the shared tool-result failure contract for arbitrary lifecycle metadata, preventing successful Skill Workshop results from being displayed and persisted as failed calls. Fixes #107684 Thanks @shakkernerd, @vincentkoc, @maweibin, and @obviyus.
  • Codex /status context freshness: consume exact per-response usage from Codex app servers that emit rawResponse/completed; when exact usage is unavailable or omitted, keep context unknown instead of reusing cumulative lifetime totals. Thanks @wuqxuan and @vincentkoc.
  • Codex resumed permissions: apply stored per-session approval and sandbox overrides to primary resumed harness turns so /codex permissions survives later messages and gateway restarts. Thanks @shakkernerd.
  • Nested resource ignores: honor slash-free patterns and escaped literal exclamation marks in nested ignore files during skill and resource discovery. Thanks @moguangyu5-design and @vincentkoc.
  • Proxy bypass precedence: honor blank lower-case noproxy values shadowing upper-case NOPROXY consistently with Undici, and reuse the canonical matcher for Telegram fallback selection. Thanks @vincentkoc.
  • Tokenjuice exec compaction: avoid retaining raw command output inside compacted middleware metadata, preventing large successful compactions from failing the middleware details-size guard. Thanks @vincentkoc.
  • Agent git package identities: strip refs before hosted-repository parsing and reject traversal segments so GitLab branch refs resolve to the canonical managed install path. Thanks @vincentkoc.
  • Tlon custom S3 uploads: pass storage endpoints through the AWS SDK's native parser so custom S3-compatible uploads no longer fail before presigning.
  • Signal active-run controls: keep authorized stop, status, approval, and queue-read controls responsive during active turns while preserving ordinary and stateful turns in canonical session admission, and cancel every pending group sender lane on stop. Thanks @arduano and @vincentkoc.
  • Agent auth storage locks: surface normal release failures while avoiding redundant release attempts after proper-lockfile reports a compromised lock. Thanks @vincentkoc and @joshavant.
  • Paired-node session catalogs: authorize bundled Anthropic and Codex catalog requests to invoke their read-only node commands from Control UI read flows, restoring remote Claude/Codex rows and terminal resume availability. Fixes #107406 Thanks @vincentkoc.
  • Sandbox recreate confirmation: treat Clack cancellation as a decline so Ctrl-C cannot proceed with container removal.
  • Microsoft Teams HTML text: decode HTML5 entities consistently in quoted and Graph-fetched messages while preserving literal escaped entity text. Thanks @vincentkoc.
  • ClawHub plugin API ranges: delegate each supported comparator to semver so tilde, partial-wildcard, and prerelease caret bounds are correct while preserving OpenClaw version normalization and the existing restricted range grammar. (#106877) Thanks @vincentkoc.
  • Web Readability relative links: seed parsed documents with the request URL so article links resolve correctly while removing the plugin's duplicate lazy-loader facade. (#106860) Thanks @vincentkoc and @shakkernerd.
  • Browser auto-routing: fall back to the Gateway host when an implicitly selected browser node reports that its control host is unreachable, while preserving explicit node pins and ambiguous action failures. Thanks @vincentkoc and @shakkernerd.
  • Discord voice participant context: maintain the live Gateway voice-state roster and include current channel participants in authorized voice agent turns so agents can answer who is present. Thanks @vincentkoc and @shakkernerd.
  • OC Path JSONC insertion: patch object and array insertions through jsonc-parser so comments, trailing commas, and CRLF formatting survive. (#106847)
  • Windows winget installs: continue in the current PowerShell session when winget installs Node.js before the machine PATH update becomes visible, avoiding a false Node.js not found failure. (#106862) Thanks @vincentkoc.
  • Control UI realtime Talk feedback: request browser echo cancellation, noise suppression, and automatic gain control for every microphone transport, and keep PCM capture processors connected through zero-gain sinks so microphone input cannot play locally. Thanks @vincentkoc.
  • Agent source-reply recovery: preserve current-chat delivery evidence for message sends executed through Code Mode, preventing successful replies from triggering a redundant retry and misleading delivery-failure diagnostic. Thanks @vincentkoc and @joshavant.
  • Gateway in-process restarts: clear stale SIGUSR1 restart state and resume prepared host suspensions before rebuilding runtime admission, preventing restart cooldowns or paused scheduling from leaking into the next lifecycle. Thanks @vincentkoc and @shakkernerd.
  • ClickClack durable media delivery: route media replies through required delivery, reuse owner-scoped upload and message nonces across retries, repair persisted attachment state without rereading source media, fail closed when an older ClickClack server cannot prove an unknown send, and use the selected provider and model's runtime output budget instead of a channel-level token cap. Thanks @jjjhenriksen, @shakkernerd, and @vincentkoc.
  • Deepgram realtime custom endpoints: validate Voice Call streaming base URLs with secret-safe errors, preserve explicit ws:// and wss:// endpoints, and map HTTP schemes to their matching WebSocket transport for dedicated and self-hosted deployments. (#105334) Thanks @dwc1997, @vincentkoc, and @zw-xysk.
  • Control UI New Session reconnects: rediscover agents, nodes, repository branches, and folder-browser state, refresh derived workspaces, gate unvalidated devices, and block ambiguous retries after Gateway client replacement while preserving the typed task and explicit choices. Fixes #106372 Thanks @vincentkoc and @shakkernerd.
  • macOS remote node readiness: take the main-session key from the node hello snapshot instead of opening an operator connection during node admission, preventing remote tunnel recovery from leaving Computer Use and node exec stuck in lifecycle transition. Thanks @vincentkoc.
  • Claude CLI context budgets: honor Anthropic model and per-agent contextTokens limits by passing the effective limit to Claude Code's native auto-compactor and persisting the same prepared budget in OpenClaw session state. Fixes #80933. (#93198) Thanks @mushuiyu886, @gorkem2020, @vincentkoc, and @shakkernerd.
  • Transcript read failures: propagate permission and I/O failures from streaming JSONL session reads instead of treating unreadable transcripts as empty. Thanks @zenglingbiao, @shakkernerd, and @vincentkoc.
  • Restart sentinel diagnostics: report SQLite read/write and legacy-file cleanup failures while preserving best-effort restart recovery behavior. Thanks @zenglingbiao, @wendy-chsy, @vincentkoc, and @shakkernerd.
  • Native app connection and relay reliability: keep Android disconnects stopped across Activity recreation, fail remote camera commands without opening permission prompts, refresh mobile node registration after capability changes, surface iOS onboarding connection failures, cancel stale Talk owners on session switches, reject invalid Watch acknowledgments, preserve Watch events received during startup, and prevent older agent overview requests from replacing newer gateway state. Thanks @vincentkoc and @joshavant.
  • Gateway source watch: hand the configured port off from the installed service before starting the tmux watcher, preserve failed panes for attach/capture, and keep explicit alternate-port watches side by side with the managed Gateway. Thanks @vincentkoc.
  • Claude CLI max-turn diagnostics: preserve terminal max-turn results with OpenClaw and Claude session context, warn when tool actions may already have run, and stop unsafe auth-profile or model replay for potentially side-effecting turns. (#94130) Thanks @zhangguiping-xydt, @tdrose01, @vincentkoc, and @shakkernerd.
  • Provider network retries: align provider read/poll/download and agent-wait recovery for transient connection errors, retry bounded provider ENOTFOUND failures while leaving gateway ENOTFOUND and non-idempotent create operations fail-fast. (#101496) Thanks @xialonglee, @joshavant, and @vincentkoc.
  • Session retry classification: stop permanent provider errors whose identifiers or payload details merely contain 429/5xx digit sequences from re-sending full context, and share bounded rate-limit-window parsing across retry paths. (#105258) Thanks @destire-mio, @yetval, and @vincentkoc.
  • LINE directive templates: suppress confirms and buttons with blank required fields or unlabeled actions while preserving valid titleless buttons and surrounding reply text. (#105520) Thanks @edenfunf.
  • SQLite maintenance schema validation: reject current-version global and agent databases with missing or drifted canonical tables, constraints, indexes, triggers, or table options before compaction, while accepting supported additive-migration layouts. Thanks @vincentkoc.
  • Matrix bootstrap diagnostics: preserve complete UTF-8 code points in bounded stdout and stderr tails so crypto dependency failures do not show replacement characters at retention boundaries. (#105475) Thanks @qingminlong and @vincentkoc.
  • iOS Watch relay commands: allow paired iPhone nodes to advertise and invoke watch.status and watch.notify through the default Gateway policy while preserving the direct watchOS node's fixed minimal command surface. Thanks @vincentkoc and @shakkernerd.
  • Swabble status config: honor the global --config path when reading service status instead of silently using the default configuration. Thanks @vincentkoc and @shakkernerd.
  • Gradium TTS credential egress: reject non-HTTPS, foreign-host, and hostname-lookalike base URLs before dispatching API keys, and pin guarded transport to Gradium's documented API hostname. Thanks @zhangguiping-xydt and @vincentkoc.
  • ClawHub retry timing: reject fractional delay-seconds and calendar-normalized invalid Retry-After dates so runtime and release reads stay on their bounded fallback schedule. (#105479) Thanks @qingminlong, @masatohoshino, @CadanHu, @vincentkoc, and @obviyus.
  • Gateway command SecretRefs: preserve authoritative active-snapshot values when another command secret remains unresolved, falling back locally only for missing paths instead of emitting a per-turn secrets.resolve failure. Thanks @SunnyShu0925 and @vincentkoc.
  • Cron delivery status: keep successful isolated agent turns at status=ok when downstream delivery fails, while preserving the send failure separately in delivery state and run logs. Thanks @Alix-007 and @vincentkoc.
  • Channel ingress recovery: tombstone and scrub malformed durable ingress payloads without letting corrupt rows hide or starve later valid messages. Thanks @Pick-cat.
  • Discord thread archive defaults: inherit each parent channel's configured auto-archive duration for binding-created threads instead of forcing 60 minutes, while preserving explicit overrides. (#103413) Thanks @wings1029.
  • Installed plugin loading: make native-module fallback use jiti's transform path instead of retrying the same synchronous ESM load, preventing Node 24 startup races when official plugins import SDK contract modules. Thanks @vincentkoc.
  • QA profile channel execution: partition mixed Crabline channel scenarios into one aggregate host suite so taxonomy-backed profile commands and evidence workflows no longer abort before execution.
  • Plugin SDK API baseline: cover every public entrypoint, preserve complete declaration shapes without source-line churn, and run baseline and export-surface guards from changed-file validation. Thanks @vincentkoc and @zw-xysk.
  • Official plugin beta compatibility: keep the exact beta.5 session-store helper imports working over SQLite through the documented deprecation window, preventing installed Codex and Feishu plugins from failing during package acceptance and upgrades. Thanks @vincentkoc and @shakkernerd.
  • SQLite terminal session recovery: track physical transcript mutation time in the agent database so killed or timed-out main sessions rotate when transcript writes outlive the registry update, while preserving legacy transcript mtimes during doctor import. Thanks @vincentkoc and @shakkernerd.
  • Gateway chat typecheck: import chat event types from their owning protocol schema after the retired aggregate type module was removed, restoring full project typechecks. Thanks @vincentkoc.
  • Packaged Crabbox commands: include the lease-freshness helper imported by the published wrapper so crabbox:* commands do not fail with ERRMODULENOT_FOUND in npm installs. Thanks @shakkernerd and @vincentkoc.
  • Plugin session catalogs: reject unknown catalog filters, report catalogs as plugin capabilities, and preserve them in SDK registration captures instead of silently returning empty results or classifying catalog-only plugins as capability-free. Thanks @vincentkoc.
  • Gateway service audit: treat POSIX shell -c wrappers as opaque for the gateway-subcommand check, avoiding false missing-command warnings for shell-wrapped macOS LaunchAgents without parsing inner commands or ports. Fixes #81751. (#81778) Thanks @liaoandi and @vincentkoc.
  • Memory filename search: index paths separately from chunk bodies so exact full-path, basename, and stem queries rank the intended memory file first without changing body BM25 scores, snippets, or embeddings. (#94102) Thanks @Pick-cat and @vincentkoc.
  • Outbound channel bootstrap: suppress repeated failed plugin activation for the same channel, config, and registry generation while retrying after config or registry reloads. (#100377) Thanks @xialonglee and @vincentkoc.
  • OpenAI Realtime client-secret deadlines: bound voice and transcription secret acquisition to 30 seconds through the guarded fetch boundary while preserving authentication and bounded response parsing. (#102860) Thanks @Alix-007, @Leon-SK668, @vincentkoc, and @shakkernerd.
  • Gateway client watchdog: keep transport-stall detection active for unbounded and mixed pending requests so dead sockets reject pending requests, reconnect, and never replay rejected requests. (#103407) Thanks @NianJiuZst and @vincentkoc.
  • iOS Share Extension drafts: preserve legitimate shared text beginning with scaffold-like prefixes, remove only exact legacy scaffold lines, avoid treating scheme-like prose as a URL, and deduplicate host-mirrored content. (#103453) Thanks @lin-hongkuan, @harjothkhara, @vincentkoc, and @joshavant.
  • Telegram reasoning previews: reposition split reasoning previews through deferred deletion so prior preview messages do not remain stale while preserving client scroll position. (#97828) Thanks @ly-wang19 and @kyle20026.
  • Feishu native-card threading: normalize whitespace reply targets once and reuse the shared reply mode for card and media parts so native-card topic replies stay in their thread. (#102804) Thanks @sunlit-deng and @vincentkoc.
  • Plain-text XML tool calls: repair zero-argument calls and keep byte/character-bounded stream normalization from leaking incomplete or oversized tool syntax while preserving visible suffix text. (#102933, #103220, #103585) Thanks @wangyan2026, @qingminglong, @wuqxuan, @ZOOWH, @aniruddhaadak80, @vincentkoc, and @maweibin.
  • QQBot token requests: bound token acquisition with the shared 30-second guarded-fetch deadline so stalled singleflight callers fail together, clean up, and can retry. (#102897) Thanks @maweibin, @vincentkoc, and @obviyus.
  • Canvas A2UI validation: reject malformed or unsupported JSONL at CLI, agent-tool, and final node-invoke boundaries while preserving native v0.8 dispatch. (#103713) Thanks @qingminglong and @vincentkoc.
  • Twilio RCS inbound routing: normalize RCS consumer addresses only after signed webhook validation so sender matching and sessions work without changing outbound RCS semantics. (#102373) Thanks @clawSean and @vincentkoc.
  • ClickClack output sanitization: strip internal tool and XML scaffolding at the sender boundary, suppress scaffold-only sends, and preserve optional modern delivery IDs. (#103142) Thanks @masatohoshino, @vincentkoc, @maweibin, and @zw-xysk.
  • CLI installer cleanup: remove Node staging directories and pnpm workspace-rewrite temporary files on failure. Thanks @SebTardif and @vincentkoc.
  • Agent-core truncation: avoid empty-output crashes when head truncation receives negative line or byte ceilings. (#103425) Thanks @qingminglong and @vincentkoc.
  • Windows Node resolution: preserve the current executable when resolving bare case-insensitive node.exe entries under hostile PATH values. (#103907) Thanks @soldforaloss and @vincentkoc.
  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762) Thanks @vincentkoc and @shakkernerd.
  • Agent abort cleanup: serialize prompt lock reacquisition with terminal cleanup so canceled embedded runs do not self-contend on session locks for up to 60 seconds. Thanks @vincentkoc.
  • Chutes OAuth deadlines: bound token exchange, profile lookup, and refresh requests, and keep issued tokens when optional userinfo enrichment stalls. (#102026) Thanks @Alix-007 and @vincentkoc.
  • Control UI workspace avatars: inline validated agent avatar files in bootstrap and identity responses so Personal card images render without unauthenticated avatar-route requests, while preserving configured emoji precedence. (#102892, #97602) Thanks @LZY3538, @mtuwei, and @vincentkoc.
  • Exec safe-bin flags: auto-approve curated read-only boolean flags for default stdin-only filters while keeping unknown flags, tail follow/retry modes, file operands, and custom profiles fail-closed. (#88953) Thanks @yetval and @vincentkoc.
  • iOS session mutations: scope rename, archive, pin, delete, and fork requests to the selected agent, preserving the parent agent for forked sessions so multi-agent chat actions cannot mutate or create sessions under the wrong agent. (#103366, #103415) Thanks @lin-hongkuan and @harjothkhara.
  • Model pin hot reload and fallback: keep explicit /model selections authoritative across Telegram config reloads and model fallback, capture one live config snapshot per assembled turn, and leave fallback candidates turn-local instead of persisting them over the user's pin. (#103324) Thanks @obviyus and @vincentkoc.
  • Swift protocol initializers: default every schema-optional generated initializer parameter to nil so additive protocol fields no longer break SDK construction call sites.
  • Telegram DM conversation context: correlate rendered outbound messages with stable transcript identities across chunked, rich-fallback, media, and streamed delivery, preventing Markdown replies from appearing twice while retaining the full transcript when a cached multipart projection is incomplete. (#102257, #102469) Thanks @crabkun, @consoleaf, @chenyangjun-xy, and @vincentkoc.
  • OpenCode Go MiMo catalog: stop exposing the deprecated mimo-v2-omni and mimo-v2-pro aliases that reject agent requests, and keep release validation on the active MiMo V2.5 routes. (#103311, #103329) Thanks @krissding, @vincentkoc, and @joshavant.
  • Audit time filters: reject impossible calendar dates for openclaw audit --after and --before instead of rolling them into unintended intervals, while preserving timezone-less timestamp semantics. (#103433) Thanks @qingminglong and @vincentkoc.
  • OpenAI-compatible streamed tool calls: execute complete native tool calls from streams that end with SSE data: [DONE] but omit finish_reason, while keeping transport EOF and visible-text cases fail-closed. (#98124, #97994) Thanks @SunnyShu0925, @wszhhx, @vincentkoc, and @maweibin.
  • xAI provider aliases: preserve Grok 4.3 and Grok 4.5 thinking profiles, fast-model routing, and encrypted reasoning replay when models use the shipped x-ai provider alias instead of clamping valid thinking requests to minimal. (#103315) Thanks @vincentkoc and @shakkernerd.
  • Doctor state isolation: prevent automated update and Gateway watch repair from importing and archiving default-home exec or plugin-binding approvals when OPENCLAWSTATEDIR points elsewhere, keep implicit CLI preflight notice-only, and reserve cross-state imports for direct operator doctor runs. (#103247, #103317) Thanks @vincentkoc.
  • Doctor clean-state guidance: stop suggesting openclaw doctor --fix after a clean run with no config changes while preserving targeted repair hints. (#103233) Thanks @kewang-pika, @nonplace, and @vincentkoc.
  • Google music generation: retry one unblocked Lyria response that omits its contractually required audio while keeping prompt blocks and terminal generation stops non-retryable. (#103318) Thanks @shakkernerd.
  • OpenCode Zen model catalog: refresh the provider-owned static seed for Claude Sonnet 5, Grok 4.5, Hy3 Free, Kimi K2.7 Code, and MiniMax M3 with verified routing, pricing, limits, and input capabilities, remove retired free-tier rows, and expose the same catalog through unauthenticated model listing. (#103184) Thanks @vincentkoc, @shakkernerd, and @joshavant.
  • Managed browser launch: surface asynchronous Chrome bootstrap and runtime spawn failures as browser errors while keeping Gateway alive, and retain process error handling through later lifecycle failures. Thanks @vincentkoc and @shakkernerd.
  • Browser node-proxy downloads: transfer every action-produced download to the Gateway media store, align a 10 MiB per-file and 16 MiB aggregate transport budget, and rewrite plural download paths to Gateway-local files without traversing page-controlled result data. Thanks @vincentkoc.
  • Gateway startup migrations: release the shared migration lease before exiting when the selected config changes during startup, allowing immediate retries instead of blocking readiness until the five-minute lease expires. (#103145) Thanks @joshavant, @vincentkoc, and @shakkernerd.
  • Apple timeout recovery: return promptly from shared operation deadlines and caller cancellation even when platform work ignores cancellation, while isolating late Gateway handshakes and cleaning up location and permission waiters. (#103066) Thanks @NianJiuZst and @vincentkoc.
  • Claude CLI warm sessions: preserve managed stdio continuity when Claude writes no native transcript, fall back to bounded OpenClaw history only when the exact live child disappears or changes, and keep stateless runs from persisting CLI bindings. (#96841) Thanks @bradreaves, @vincentkoc, and @shakkernerd.
  • CLI plugin listing: skip state-migration runtime loading when no legacy inputs exist, reducing packaged cold-start memory while preserving migrations for legacy plugin indexes and configured session stores. Thanks @vincentkoc.
  • Unicode-safe bounded text: preserve complete UTF-16 surrogate pairs when shortening previews, prompts, diagnostics, labels, session keys, link metadata, and identity values across Control UI, CLI, Gateway, plugins, QA, memory, and Android surfaces. (#102625, #102626, #102627, #102816, #102823, #102833, #102877, #102949, #102963, #102969, #102988, #103010, #103034, #103210, #103341, #103487, #103543, #103580, #103646) Thanks @zhangguiping-xydt, @wings1029, @wangyan2026, @Pandah97, @MoerAI, @SunnyShu0925, @zhangqueping, @zw-xysk, @cxbAsDev, @lzyyzznl, @coder-master-0915, @LeonidasLux, @mushuiyu886, @ly85206559, @Simon-XYDT, @lsr911, @vincentkoc, @cursoragent, @chengzhichao-xydt, and @wangmiao0668000666.
  • Cron list table: sanitize and size bounded cells by terminal display width so CJK, emoji, combining marks, and terminal-control input cannot corrupt alignment or output. (#103616) Thanks @mushuiyu886 and @vincentkoc.
  • CLI model tables: sanitize, truncate, and pad model-list cells by rendered terminal width so emoji, CJK, and other wide graphemes keep columns aligned. (#102819) Thanks @Kevin23-design and @vincentkoc.
  • Skills prompt compaction: preserve every included skill identity before using the remaining prompt budget for shortened, UTF-16-safe descriptions, retaining trigger guidance without exceeding the hard limit. (#88426) Thanks @abel-zer0, @vincentkoc, @mushuiyu886, @cursoragent, @chengzhichao-xydt, @wangmiao0668000666, and @Pandah97.
  • Channel Markdown code tables: size columns by rendered display width so CJK, emoji, and mixed-width cells stay aligned across shared Telegram and Discord output. (#55596, #55512) Thanks @sparkyrider and @zjy282.
  • QQ Bot approval previews: wrap long sanitized commands and metadata at grapheme boundaries with visible continuation markers and safe fences, keeping desktop QQ reviews readable without changing command content. (#102119, #101979) Thanks @Bartok9, @xuzhi5858, @vincentkoc, @maweibin, @mushuiyu886, and @cursoragent.
  • Codex computer control: publish fixed-length coordinate pairs as homogeneous array schemas so Codex app-server can start threads with the computer tool instead of rejecting tuple-valued items. Thanks @vincentkoc.
  • Google Chat request deadlines: bound control calls to 30 seconds while giving media transfers size-aware total budgets and a separate 30-second stalled-body guard, preventing hung Chat API requests without breaking large attachment uploads. (#102227) Thanks @hugenshen, @vincentkoc, and @shakkernerd.
  • Google Gemini prefixed model IDs: recognize google/gemini- and models/gemini- when selecting multimodal function-response behavior, preserving the Gemini 2 image fallback without regressing Gemini 3 inline image responses. (#102382) Thanks @LiLan0125, @yetval, and @vincentkoc.
  • Generated provider model catalogs: keep MiniMax and NVIDIA catalog rows when they advertise audio or video metadata while projecting runtime model inputs to text/image, preventing configured multimodal primaries from being dropped and falling back. (#97858, #97048) Thanks @ly-wang19, @zackchiutw, @shakkernerd, and @vincentkoc.
  • DeepSeek catalog metadata: align V4 Flash and Pro pricing with DeepSeek's current cache-hit, cache-miss, and output rates; refresh exact catalog metadata written by older onboarding flows; and document the July 24 retirement of the legacy deepseek-chat and deepseek-reasoner compatibility names. (#103192) Thanks @vincentkoc.
  • CLI audio transcript files: treat inferred Whisper and Parakeet text files as authoritative so empty or missing output cannot expose progress/status stdout as user speech. (#87393, #87384) Thanks @kesslerio.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • SecretRef model credentials: keep resolved provider secrets behind process-local sentinels through auth storage, stream setup, SDK configuration, and managed local-provider probing, then inject plaintext only at the final network or provider-plugin boundary while retaining exact-value log redaction. (#102008) Thanks @vincentkoc and @shakkernerd.
  • Lean local model shell access: keep exec directly visible beside the default structured Tool Search controls so coding-tuned local models can use their shell fallback instead of searching for missing domain tools. Thanks @vincentkoc and @maweibin.
  • OAuth refresh contention diagnostics: keep local lock paths out of user-facing refresh failures and avoid duplicate failure prefixes while preserving structured provider and profile classification. Thanks @vincentkoc and @shakkernerd.
  • Exec approval prompts: keep background-disabled fallback warnings out of pending gateway/node approvals and show them only after a command actually runs in the foreground. Thanks @vincentkoc.
  • Direct poll delivery: route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. Thanks @NianJiuZst, @vincentkoc, and @shakkernerd.
  • Agent wait hard-timeout snapshots: preserve canonical hard-timeout phase and timestamps when the outer agent.wait timer wins the retry-grace race, while leaving queue, draining, and restart-cancelled waits correctable. Thanks @Pick-cat and @vincentkoc.
  • Control UI typed approvals: send /approve commands immediately through the authorized Gateway command path while an agent run is blocked instead of queueing the command behind that run. Thanks @vincentkoc and @shakkernerd.
  • Microsoft Teams Graph response bounds: cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. Thanks @Alix-007 and @vincentkoc.
  • Packaged speech runtime: stop treating package-backed speech-core as a bundled plugin sidecar, restoring TTS startup in npm installs while release checks keep true activation-bypassing facades package-complete. (#89425) Thanks @zhangguiping-xydt and @vincentkoc Thanks @ant1b0t and @vincentkoc.
  • Codex app-server protocol: require app-server 0.142 or newer, remove pre-0.142 wire-shape compatibility, and teach Codex to retrieve deferred native spawnagent through toolsearch so native subagent task mirroring works on search-capable models. Thanks @vincentkoc and @shakkernerd.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator and @vincentkoc.
  • CJK Markdown emphasis: render adjacent Chinese, Japanese, and Korean emphasis punctuation through the shared Markdown pipeline instead of leaking literal markers across channels. (#101120) Thanks @nicknmorty. Thanks @j08577600-jpg.
  • Backup retry cleanup: close partial archive output handles and isolate each retry path after live-write failures, preventing Windows EBUSY locks from cascading across attempts or leaving stale temp archives. . Thanks @ZOOWH, @LiLan0125, @vincentkoc, @joshavant, @shakkernerd, and @obviyus.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup. Thanks @vincentkoc.
  • Delivery recovery pacing: pace eligible outbound and restart-continuation replays after gateway startup so outage backlogs do not burst into channel rate limits, while preserving the wall-clock recovery budget. (#101058) Thanks @ZengWen-DT, @vincentkoc, and @obviyus Thanks @aniruddhaadak80, @vincentkoc, and @obviyus.
  • Outbound pre-connect recovery: clear stale platform-send evidence atomically when a connect or DNS failure proves no request was sent, allowing queued Discord and other channel messages to replay after connectivity returns without weakening the unknown-send duplicate guard. (#100979) Thanks @SunnyShu0925 and @vincentkoc Thanks @tiffanychum and @vincentkoc.
  • Discord streamed finals: send completion replies as fresh messages so inactive channels become unread, while preserving targeted mentions without escalating @everyone or @here. (#99662) Thanks @davelutztx and @vincentkoc.
  • OpenAI-compatible SSE parsing: recognize event streams mislabeled as JSON without prepending a second data: prefix, preserving valid streamed responses from non-conforming providers. Thanks @ZengWen-DT and @vincentkoc.
  • LM Studio embedding preload: honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. Thanks @zak-li, @ZOOWH, and @hxz398.
  • Provider overload messaging: keep rate-limited responses classified for retry and fallback behavior while using overload wording when the provider supplies no explicit retry detail. Thanks @SunnyShu0925 and @vincentkoc.
  • Microsoft Teams attachment metadata: bound Bot Framework attachmentInfo JSON reads and cancel oversized streams before they can exhaust Gateway memory. Thanks @ly85206559 and @vincentkoc.
  • Agent auth copy order: preserve the source agent's portable auth-profile precedence when copying credentials to a new agent while excluding skipped profiles and transient auth state. Thanks @machine3at, @vincentkoc, and @shakkernerd.
  • Memory session repair: keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so memory status --fix preserves healthy daily state. Thanks @Alix-007 and @vincentkoc.
  • Remote browser CDP policy: allow the configured CDP control host through an existing hostname allowlist without widening page navigation policy, while keeping strict-policy discovery bound to the configured control authority. (#100819) Thanks @NianJiuZst and @vincentkoc Thanks @SarinV and @vincentkoc.
  • Config unset diagnostics: explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. Thanks @moeghashim.
  • Crestodian command probes: contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. Thanks @lsr911, @vincentkoc, and @zw-xysk.
  • Feishu mention forwarding: fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. Thanks @zhangguiping-xydt.
  • Cron edit delivery: preserve each job's implicit delivery mode when applying partial delivery updates, so disabling best-effort delivery no longer turns detached job announcements off. Thanks @machine3at, @vincentkoc, and @shakkernerd.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • Control UI file previews: keep large Skill Workshop files responsive with cached, offscreen-contained text chunks while preserving wrapped content, stable file switching, full-file copy, and clean focus behavior. Thanks @xianshishan, @shakkernerd, and @vincentkoc.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan. Thanks @vincentkoc.
  • Control UI agent model labels: show each selected agent's effective model in the Default picker option instead of the global model. (#77440) Thanks @hyspacex and @vincentkoc Thanks @jwong-art and @vincentkoc.
  • Control UI inbound image previews: render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#89591) Thanks @sweetcornna and @shakkernerd Thanks @vergissberlin and @shakkernerd.
  • Small-context compaction: cap the effective reserve against the known model context window so small local models do not enter compaction from the first token. Thanks @vincentkoc.
  • Detail-less provider failures: keep opaque upstream failures from cooling API-key auth profiles while preserving WHAM-backed OpenAI OAuth health checks and configured model fallback. (#100600) Thanks @fengjikui, @shakkernerd, and @vincentkoc Thanks @fabasi, @shakkernerd, and @vincentkoc.
  • Plugin install diagnostics: suppress the misleading hook-pack fallback after plugin install failures only when the hook manifest is absent, while preserving actionable malformed hook-pack errors. Thanks @vincentkoc and @obviyus.
  • Config validation diagnostics: emit each unchanged sanitized validation-warning payload once per config path, reset deduplication after a clean validation, and preserve the warning fingerprint across transient invalid reads and failed refreshes. (#25574) Thanks @vincentkoc, @masatohoshino, @CadanHu, and @shakkernerd Thanks @mcaxtr, @masatohoshino, @CadanHu, @vincentkoc, and @shakkernerd.
  • Config size-drop guard: compare writes against canonical bytes for parseable object configs instead of raw BOM and indentation overhead, while preserving raw audit telemetry and the conservative malformed-input fallback. (#71865) Thanks @vincentkoc. Thanks @balric-seo.
  • Control UI coalesced updates: show a clear queued-restart completion banner when an update joins an already-running Gateway restart. Thanks @goutamadwant and @vincentkoc.
  • Control UI connection errors: preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. Thanks @ruanrrn, @vincentkoc, and @zw-xysk.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • TUI startup status: show starting up during post-connect initialization without overwriting active-run or reconnect state. Thanks @ml12580 and @vincentkoc.
  • Control UI restart recovery: recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. Thanks @ZengWen-DT, @vincentkoc, and @shakkernerd.
  • TUI active Gateway ports: follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#42461) Thanks @haishmg and @vincentkoc Thanks @jackm1688 and @vincentkoc.
  • Apple chat run recovery: restore active responses from canonical Gateway history after reconnects, foreground resumes, and event gaps, while preserving gateway user-turn identity across Codex and Copilot transcript mirrors to prevent duplicate rows. Thanks @vincentkoc.
  • Claude CLI streamed replies: preserve assistant text already received from Claude CLI when its terminal result envelope is empty, preventing false empty-response failover after a complete streamed answer. Thanks @totobusnello, @vincentkoc, and @shakkernerd.
  • Phone identity normalization: canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. Thanks @morluto and @vincentkoc.
  • Tlon scry response bounds: cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. Thanks @hugenshen and @vincentkoc.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Agent tool-call decoding: preserve surrogate-range numeric HTML entities as literal text while still decoding valid supplementary-plane values, preventing malformed model output from injecting lone UTF-16 surrogates into tool arguments. Thanks @mikasa0818, @vincentkoc, @shakkernerd, @maweibin, and @zw-xysk.
  • Gateway event dispatch: catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. Thanks @cxbAsDev, @vincentkoc, and @shakkernerd.
  • Ollama fallback routing: classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. Thanks @TurboTheTurtle and @vincentkoc.
  • Diffs rendering: render viewer and image output from one SSR preload, preserve language-pack highlighting through hydration, normalize language hints case-insensitively, skip identical before/after inputs with an explicit changed result, report truthful file-render and input errors, cache hash-pinned viewer runtimes, and prefer canonical file settings over stale aliases. Thanks @vincentkoc, @joshavant, and @zw-xysk.
  • Remote browser reliability: bound persistent Playwright tab enumeration by the existing remote CDP timeout budget and retire timed-out connection attempts so late completions cannot restore a stuck connection. (#58968) Thanks @HemantSudarshan and @KeaneYan.
  • Browser tab adoption: preserve the prior implicit tab and stable aliases when new MCP, Playwright, or CDP targets fail final safety validation, abort after creation, or cannot be rediscovered; validate labels before creating tabs and limit managed cleanup to adopted targets. Thanks @hugenshen and @vincentkoc.
  • Browser attachment downloads: return managed URL, filename, and path metadata when direct Playwright navigation starts an attachment download, while validating final URLs before saving bytes and preserving single-owner explicit downloads. (#48045) Thanks @zhangguiping-xydt and @vincentkoc Thanks @roinou532 and @vincentkoc.
  • Browser action downloads: return managed URL, filename, and path metadata when agent actions trigger downloads, while preserving explicit ownership, validating final URLs before saving bytes, and quarantining policy-denied tabs without closing them. (#93250) Thanks @sunlit-deng and @vincentkoc Thanks @scorpiord and @vincentkoc.
  • Managed browser cookie persistence: initialize new isolated macOS headless profiles with a non-interactive encryption key while preserving existing profile keys, and close Chromium through CDP before bounded signal fallback so persistent logins survive graceful browser and Gateway restarts. (#96704) Thanks @TurboTheTurtle, @vincentkoc, and @shakkernerd.
  • MCP OAuth response bounds: reject body-less foreign error bodies without calling their inherently unbounded text fallback, while preserving HTTP status and headers for safe SDK diagnostics. Thanks @Pick-cat, @shakkernerd, and @vincentkoc.
  • Tlon image upload bounds: cap remote image fetches before upload and fail closed on oversized or stalled responses instead of buffering them without a limit. Thanks @hugenshen and @vincentkoc.
  • Mattermost block streaming: preserve complete, non-duplicated text and tool blocks in draft preview mode, and honor normal block streaming when preview streaming is disabled. (#87449) Thanks @yetval, @Senseonics-AI, and @vincentkoc.
  • Control UI approval prompts: keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. Thanks @haruaiclone-droid and @vincentkoc.
  • macOS service SecretRefs: preserve generated env-file values for SecretRefs that remain in config when stale Gateway LaunchAgents are repaired or reinstalled without those variables in the invoking shell. Thanks @mushuiyu886, @vincentkoc, and @zw-xysk.
  • Anthropic OAuth callbacks: keep the provider-required localhost redirect URI stable while allowing the local callback listener to bind an explicit loopback host. Thanks @xialonglee and @vincentkoc.
  • Prompt-release media delivery: accept active-leaf-preserving side appends while an embedded run temporarily releases its session lock, so successive message-tool media replies merge without a false session-takeover failure. . Thanks @scotthuang, @vincentkoc, @Andy312432, and @shakkernerd.
  • Control UI Skills filters: align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. . Thanks @evan-YM, @joshavant, and @vincentkoc.
  • Control UI completed-run state: bind active and completed updates to run identities so stale completions keep Send available while newer runs remain active. . Thanks @tiffanychum, @vincentkoc, and @shakkernerd.
  • Control UI context usage: keep stale cached totals visible as approximate without triggering warning styling or Compact actions. Thanks @bladin.
  • Control UI file previews: remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. . Thanks @xianshishan and @vincentkoc.
  • Control UI autonomous tool failures: preserve an earlier Tool error outcome across later autonomous recovery turns. . Thanks @qingminglong and @vincentkoc.
  • Agent empty replies: surface a visible failure when a completed interactive turn has no deliverable reply, including queued follow-ups, while preserving explicit silence, pending continuations, and committed side effects, honoring queued send policies, and treating compaction notices as progress. Thanks @mushuiyu886 and @vincentkoc.
  • Child process output safety: prevent stdout/stderr pipe failures from crashing agent exec sessions, local TUI shell commands, and bounded process execution. . Thanks @cxbAsDev and @vincentkoc.
  • Docker sandbox command output: fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. Thanks @cxbAsDev and @vincentkoc.
  • Background refresh isolation: keep remote skill-bin refreshes running when one node fails, and contain periodic subagent-sweeper failures without hiding errors from direct callers. . Thanks @cxbAsDev and @vincentkoc.
  • Skill scan diagnostics: report directory enumeration failures through the existing resource diagnostics instead of silently dropping affected skills. Thanks @wendy-chsy.
  • Exec output sanitization: remove complete ANSI sequences and render residual C0/C1 controls as visible escapes instead of silently discarding output bytes. Thanks @LavyaTandel.
  • Assistant visible text: unwrap leaked standalone <parameter> tags while preserving their content and literal code/XML examples. Thanks @nankingjing and @maweibin.
  • Android microphone capture: treat negative AudioRecord.read results as fatal shared-session errors so both transcription and Talk capture stop cleanly after device loss. Thanks @NianJiuZst and @vincentkoc.
  • Android push-to-talk lifecycle: serialize gateway PTT preparation with app foreground and Manual Mic ownership so stale background or retry work cannot restart, replace, or tear down a newer capture. (#99840) Thanks @xialonglee and @joshavant.
  • Lean local-model tools: trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. Thanks @vincentkoc.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds. Thanks @joshavant.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197) Thanks @vincentkoc.
  • iOS QR gateway handoff: stop VisionKit before delivering scanned setup codes, and keep deferred auth, approval, Watch, and foreground-node work bound to its originating gateway across reconnects. Thanks @PollyBot13, @vincentkoc, and @shakkernerd.
  • Agent terminal failures: surface a safe interactive reply when an agent run ends without visible output, while preserving completed message-tool delivery and heartbeat-specific guidance. Thanks @moeedahmed, @vincentkoc, and @maweibin.
  • MCP loopback tool results: preserve schema-valid text, image, and embedded-resource content through HTTP tool calls while rendering malformed or protocol-incompatible blocks as safe text. Thanks @tzy-17, @vincentkoc, @shakkernerd, and @maweibin.
  • Control UI tool-result images: render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. Thanks @lzyyzznl, @vincentkoc, @shakkernerd, and @maweibin.
  • Control UI live tool ordering: keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. Thanks @Pick-cat and @vincentkoc.
  • Plugin approval diagnostics: distinguish request validation rejections, expired wait decisions, and unavailable Gateways while keeping approval failures fail-closed. Thanks @tzy-17 and @vincentkoc.
  • IRC Unicode messages: split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. Thanks @llagy009, @vincentkoc, @mushuiyu886, and @cursoragent.
  • OpenAI realtime voice greetings: prevent server VAD from creating a second outbound greeting while an explicit greeting response owns the turn, without disabling caller interruption. Thanks @giodl73-repo.
  • Realtime voice tools: filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. Thanks @vincentkoc.
  • Discord voice status: treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. Thanks @asock and @vincentkoc.
  • Discord voice accounts: isolate @discordjs/voice connections by Discord account and recover auto-join when gateway readiness predates listener registration. Thanks @geekhuashan and @vincentkoc.
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Cron duration validation: reject positive durations that truncate below one millisecond instead of silently scheduling a zero-duration interval. Thanks @qingminglong and @vincentkoc.
  • Skill workshop proposals: preserve the terminal newline in generated proposal Markdown while still rejecting blank raw content. Thanks @anyech.
  • Agent tool inputs and LSP startup: treat blank optional integer arguments as absent, and fail embedded LSP startup immediately when its child process cannot spawn. . Thanks @snotty, @cxbAsDev, and @vincentkoc.
  • Gateway and memory diagnostics: report failed start-session persistence and close-time memory work instead of silently discarding those failures. . Thanks @masatohoshino, @lin-hongkuan, and @vincentkoc.
  • Unicode and plugin package verification: match native slice semantics for reversed UTF-16 bounds, and reject published plugin packages that omit openclaw.plugin.json. . Thanks @Simon-XYDT, @849261680, and @vincentkoc.
  • Android invoke cancellation: preserve coroutine cancellation through camera handlers and the Gateway invoke boundary so cancelled work cannot emit a stale result. Thanks @xialonglee, @vincentkoc, and @shakkernerd.
  • Codex native hook relay diagnostics: avoid bridge registry writes before the local relay server begins listening. Thanks @nankingjing, @joshavant, and @vincentkoc.
  • Voice Call completed status: resolve finalized calls from the full retained event store across Gateway, tool, and CLI status paths while preserving active-call lookup performance. Thanks @Darren2030, @vincentkoc, and @maweibin.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Message delivery status: report failed and partially failed best-effort channel delivery instead of returning a success-shaped message-tool result. Thanks @masatohoshino, @vincentkoc, and @shakkernerd.
  • WhatsApp credential recovery: restore malformed primary auth state from a valid backup during startup. Thanks @LeonidasLux and @shakkernerd.
  • WhatsApp quoted replies: preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. Thanks @Bartok9 and @vincentkoc.
  • WhatsApp reconnect catch-up: admit recently missed Baileys append messages during a bounded reconnect window while preserving startup stale-history guards. Thanks @VishalJ99 and @vincentkoc.
  • WhatsApp restart recovery: stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. Thanks @openperf.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • Plugin module identity: keep OpenClaw package chunks on Node's native module graph when jiti transforms plugin entries, preventing duplicate evaluation and class identity drift. Thanks @vincentkoc.
  • Shell completion repair: generate core-only caches during doctor and update repair while preserving full plugin command completion for onboarding and explicit user rebuilds. Thanks @joshavant.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Windows Scheduled Task recovery: keep clean early exits inside the existing bounded launch poll, falling back only when neither the task process nor Gateway listener becomes observable. Thanks @vincentkoc.
  • iMessage group warnings: suppress the false drop-all startup warning when an effective group sender allowlist can admit groups, and point true empty-allowlist configurations at the correct remedy. Thanks @vincentkoc.
  • Control UI mobile login: keep Gateway recovery guidance visible after connection failures, make the disconnected gate scroll safely on constrained screens, and improve mobile keyboard and tap-target behavior. Thanks @vincentkoc.
  • TUI streaming: render delta-only assistant events in live Gateway and embedded TUI sessions instead of waiting for the final response. Thanks @flashosophy.
  • Model aliases: resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. Thanks @sahilsatralkar, @vincentkoc, and @shakkernerd.
  • TUI new-session hooks: create /new sessions through the shared Gateway lifecycle so command and session hooks receive the completed parent transcript in both Gateway and embedded modes, while preventing rollover during an active turn. (#49918) Thanks @BingqingLyu, @vincentkoc, and @shakkernerd Thanks @LonExplorer-coder, @vincentkoc, and @shakkernerd.
  • TUI abort diagnostics: show sanitized tool argument-validation summaries for aborted runs in both Gateway and local TUI modes without exposing raw model arguments. Thanks @wsyjh8.
  • iOS Watch replies: persist queued quick replies in the gateway-scoped chat outbox and submit them through idempotent chat delivery, preventing losses, duplicates, and cross-gateway sends after reconnects. Thanks @NianJiuZst, @vincentkoc, and @shakkernerd.
  • iOS Gateway auth retry: restrict stored device-token retry to parsed loopback hosts and reject wildcard bind addresses, preventing remote lookalike hostnames from receiving trusted retry credentials. Thanks @ly85206559 and @vincentkoc.
  • Amazon Bedrock control-plane deadlines: bound model discovery and application inference-profile lookups, preserve caller cancellation, and close short-lived SDK clients after each request path. Thanks @Alix-007, @vincentkoc, @shakkernerd, and @obviyus.
  • Bedrock Mantle discovery: bound model-catalog fetch time and response size, and release rejected response bodies so stalled, oversized, or failed provider responses fall back safely. Thanks @zhangguiping-xydt, @vincentkoc, and @shakkernerd.
  • Discord thread-title prompts: truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. Thanks @Alix-007, @vincentkoc, @mushuiyu886, and @cursoragent.
  • Task state migration: canonicalize legacy not-requested delivery statuses during sidecar import and existing shared-database open so upgraded task registries and linked TaskFlows recover without manual SQL, and surface rejected persisted values in compact console diagnostics. Thanks @bek91, @shakkernerd, and @vincentkoc.
  • Reply pre-delivery recovery: bound each pre-delivery callback with an owner-overridable deadline, release serialized reply lanes after hung plugin work, and preserve durable final-delivery retry state only when transport never started. (#104256) Thanks @NianJiuZst, @BenjaminBrossi, @vincentkoc, and @obviyus.
  • Signal native quote replies: preserve the active inbound message as a native quote across agent, explicit, durable, and chunked sends while keeping reply-mode policy inside the Signal plugin. (#105347) Thanks @jesse-merhi and @vincentkoc.
  • Media-store remote downloads: bound response-header waits and stalled bodies, close abandoned redirect and error responses, and remove partial temp files so hung sources cannot pin callers. (#104624) Thanks @hugenshen and @vincentkoc.
  • Cron llama.cpp tool schemas: keep the model-facing cron declaration schema compatible with llama.cpp while retaining gateway and runtime nonblank validation. Fixes #107449. Thanks @lee-xydt. Thanks @Patt92.
  • System-agent recovery guidance: direct browser and app users to Settings or the OpenClaw host instead of terminal-only exit guidance while preserving the required stop, onboard, and restart lifecycle. (#114633) Thanks @jesse-merhi.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.8.1-beta.2
  • Registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.8.1-beta.2.tgz
  • npm integrity: sha512-k4cwlyFOuXN5wN6NOH/gqxupGuvMkOr5OV2Eh7MJmmGFh86wvWSTrGBkL4XkNTg/kszWzGbotI8wKlZ468EjsQ==
  • Exact-SHA npm preflight: https://github.com/openclaw/openclaw/actions/runs/31865167546
  • Official npm plugin publication: https://github.com/openclaw/openclaw/actions/runs/31863860804 and https://github.com/openclaw/openclaw/actions/runs/31864674947; independent registry/runtime verification passed for the effective 89-package external set.
  • Signed tag target: 8f382a202ff1e15833394b481615dcdda99b04d7
  • Publication provenance: the core publisher timed out while fetching the prior beta tag, and Fish Audio's package-level trusted publisher rejected OIDC. Their exact preflight tarballs were published through credential-isolated fallbacks. Registry signatures and tarball identities verify, but npm OIDC provenance is unavailable for openclaw, the three core subpackages, and @openclaw/fish-audio-speech.
  • ClawHub was not published by this limited npm-only beta path; existing ClawHub selectors remain on the previous release.
  • Post-publication Full Release Validation: https://github.com/openclaw/openclaw/actions/runs/31871527419 — failed. Normal CI, packaged Telegram, Docker runtime assets, clean install/update, all published plugin runtime checks, targeted plugin Docker lanes, and an isolated Gateway-backed live model turn passed. The run confirmed an unbound context-engine session can fall back to the default agent, and also exposed release tooling/test-fixture failures. Do not promote this beta to stable without a fixed successor and green full validation.
v2026.7.1-2 [Aug 4, 2026] details → github →

# openclaw 2026.7.1-2

Fixes

  • npm plugin updates: accept singleton-array metadata from newer npm clients so tracked official plugins can install and update to correction releases. (#108336)
v2026.7.1-1 [Aug 4, 2026] details → github →

# openclaw 2026.7.1-1

Fixes

  • Codex progress replies: keep app-server turns running after delivered progress messages so GPT/Codex reaches its authoritative terminal response instead of stopping mid-turn. (#106961, #108487) Thanks @joshavant.
  • Memory Core startup repair: recover derived legacy-index and cache-sidecar conflicts without trapping the Gateway in a fatal restart loop, while keeping structural vector-store corruption retryable. (#107220, #108652) Thanks @goutam-adwant.
  • WSL state permissions: tolerate EROFS from guarded chmod operations only when the existing state path is already private, preserving fail-closed handling for broad permissions. (#108250, #108258)
  • Legacy migration recovery: keep reviewed migration residue nonfatal during startup instead of blocking otherwise healthy upgrades. (#106101)
  • Managed plugin updates: recover stale npm lock metadata so official managed plugins can update cleanly. (#107294, #107866)
v2026.6.34 [Aug 8, 2026] details → github →

# openclaw 2026.6.34

2026.6.34

Highlights

  • Safer browser and network boundaries: sandboxed browser routes, trusted DNS targets, custom browser origins, and loopback provider endpoints now reject unsafe access paths. (#97958, #38290, #103075, #110693) Thanks @eleqtrizit, @brunowowk, @mosidevv, @pgondhi987, and @lsr911.
  • More resilient agent and provider runs: retained session writes, provider fallbacks, stream progress handling, and stdio failures now recover without silently ending active work. (#96100, #97128, #90908, #99803, #100521) Thanks @xialonglee, @sallyom, @richwilson-bloom, @LiuwqGit, @vincentkoc, @yetval, @shengting, and @cxbAsDev.
  • Stronger channel recovery: pending channel work resumes after recovery, acknowledgements are idempotent, and sustained Discord gateway bursts stay bounded. (#79811, #97041, #104919, #109108, #110954, #103793, #94016) Thanks @indulgeback, @cuiyuxin-gif, @Pick-cat, @Glucksberg, @evan-YM, @zhangguiping-xydt, @yetval, @sheyanmin, and @thomasthelen-kibeauftragter.
  • Safer operator diagnostics: command and status surfaces keep owner-only actions protected and prevent credentials from appearing in account URLs or summaries. (#98260, #107754, #105017) Thanks @eleqtrizit, @joshavant, @ooiuuii, @aniruddhaadak80, and @tzy-17.
  • More robust local runtime state: SQLite checkpoints, workspace reads, gateway process signalling, plugin HTTP responses, and dependency handling no longer turn transient host conditions into failed runs. (#99067, #100910, #102125, #109590, #112406) Thanks @ooiuuii, @masatohoshino, @vincentkoc, @mushuiyu886, and @krissding.

Changes

  • Extended-stable hardening: this maintenance release carries targeted security and reliability repairs without adding new release-line features.

Fixes

  • OpenCode Go: use the documented hy3 model identifier instead of the failing hy3-preview alias.
  • Codex native subagents: retain the parent app-server subscription and recognize multi-agent V2 child activity until a yielded child completion reaches its requester.
  • Dependency security: updates production dependency resolutions for patched brace-expansion, PostCSS, fast-uri, ip-address, and Undici versions. (#113428, #118804)
  • Execution and transport safety: browser, sandbox, exec, MCP, and secret-resolution paths reject unsafe inputs and handle stream failures without crashing the host process.
  • Delivery and channel stability: outbound receipts, delivery evidence, channel lifecycle, health monitoring, and gateway queues recover cleanly under retries, restarts, and overload.
  • Gateway and storage reliability: plugin responses, process probes, workspace bootstrap reads, and SQLite writes tolerate expected transient failures while preserving correct state.

Upcoming deprecations

  • Plugin SDK migration: beforeagentstart, root openclaw/plugin-sdk imports, providerAuthEnvVars, and channelEnvVars are scheduled for removal after July 24. Migrate to the modern hook stages, focused SDK subpath imports, and manifest setup descriptors. See Plugin SDK migration and plugin manifests.

Complete contribution record

This audited record covers the complete v2026.6.33..496c84bf6159bd09ce2c2a261c354ea641757b19 history plus release-validation backports: 25 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #96100 Related #95915. Thanks @xialonglee, @sallyom, and @richwilson-bloom.
  • PR #79811 Related #79753. Thanks @indulgeback and @cuiyuxin-gif.
  • PR #97041 Thanks @Pick-cat and @vincentkoc.
  • PR #97128 Related #96518. Thanks @LiuwqGit, @vincentkoc, and @yetval.
  • PR #90908 Thanks @shengting.
  • PR #97958 Thanks @eleqtrizit.
  • PR #98260 Thanks @eleqtrizit.
  • PR #99803 Thanks @cxbAsDev and @vincentkoc.
  • PR #99067 Related #99066. Thanks @ooiuuii.
  • PR #100521 Thanks @cxbAsDev.
  • PR #100910 Thanks @masatohoshino and @vincentkoc.
  • PR #102125 Thanks @mushuiyu886.
  • PR #38290 Related #46520. Thanks @brunowowk and @mosidevv.
  • PR #103075 Thanks @pgondhi987.
  • PR #104919 Related #104903. Thanks @Glucksberg and @evan-YM.
  • PR #107754 Related #98633, #102932, #105427. Thanks @joshavant, @ooiuuii, and @aniruddhaadak80.
  • PR #109108 Thanks @zhangguiping-xydt.
  • PR #105017 Thanks @tzy-17.
  • PR #109590 Thanks @krissding.
  • PR #110693 Thanks @lsr911.
  • PR #110954 Thanks @zhangguiping-xydt.
  • PR #103793 Thanks @yetval.
  • PR #94016 Related #94008. Thanks @sheyanmin and @thomasthelen-kibeauftragter.
  • PR #112406 Thanks @vincentkoc.
  • PR #107938.

Release verification

Extended-stable Gateway release: npm and container images only. GitHub Releases has one repository-wide Latest flag, not a per-channel Latest; this page is intentionally not Latest. The npm and container extended-stable selectors currently resolve to 2026.6.34.

v2026.7.2-beta.7 pre [Aug 2, 2026] details → github →

# openclaw 2026.7.2-beta.7

2026.7.2

Highlights

  • State safety and recovery: protect persisted data with a quarantine store that survives primary-database damage, crash-recoverable SQLite snapshots, crash-durable filesystem publication, schema-upgrade data-loss rejection, and rollback-writer snapshot recovery. (#110453, #113367, #113453, #113473, #113580) Thanks @vincentkoc.
  • Durable channel delivery: keep accepted messages recoverable across gateway restarts and local crashes through the shared ingress drain and dead-letter recovery, covering Telegram, Signal, Slack, QQBot, Twitch, Synology Chat, Tlon, IRC, and Zalo User. #108656, #107246, #109911 (#108924, #107288, #109907, #109910, #110844, #110852, #110899, #110910, #110914, #110916, #111029) Thanks @obviyus and @edenfunf.
  • Session rewind and branching: rewind or fork conversations from individual messages, switch transcript branches across web and native apps, fork upstream Codex sessions, preserve branch-safe queued sends, reject stale-pane writes, and restore prompt images after a fork. (#110660, #110857, #110886, #111149, #112056, #112284, #113073, #113945) Thanks @vincentkoc.
  • Interactive MCP Apps and dashboards: host ticketed MCP Apps with bound tools, resources, and bounded context updates; open them from channel replies, pin them to durable dashboards, harden their shared sandbox, and let native plugins declare them directly. #109851, #110451, #113218 (#109861, #109807, #110515, #111211, #111212, #111524, #111687, #111748, #113224) Thanks @fuller-stack-dev.
  • Questions and approvals everywhere: let agents ask structured questions with option cards across web, channels, macOS, and native apps, while approvals gain push notifications, history, fair queuing, headless resolution, Claude tool-request relay, reviewer detail, and clearer formatted prompts. #85954 (#108505, #108709, #108776, #109922, #110242, #110372, #110584, #110681, #110989, #111060, #112918, #113027, #113193) Thanks @omarshahine.
  • Meetings and realtime Talk: join Teams, Zoom, and Google Meet calls with default-enabled meeting plugins and durable transcript collection, while realtime Talk adds OpenAI and Gemini video and requires a supported OpenAI Platform API key instead of the rejected Codex OAuth fallback. #86425, #113353, #115021 (#109579, #109719, #109964, #111048, #113022, #113053, #113122, #113354, #115211) Thanks @shushushv, @Solvely-Colin, and @vincentkoc.
  • Wear OS companion: add the phone-proxied Wear companion with home-screen agent/session/model selection, realtime Talk controls, audio-reactive playback, and an instant-talk tile. #108781 (#108835, #109341, #109433, #109483, #110661, #111516, #112721) Thanks @sibbl, @IWhatsskill, and @Solvely-Colin.
  • Guided setup and local inference: guide setup across browser, Linux, and macOS with local-provider detection, strongest-model selection, downloadable models, lean mode, memory imports, and an in-process RAM-gated llama.cpp/Gemma path. #108604 (#108605, #108868, #108977, #109250, #109444, #109585, #110054, #110141, #110596, #113476)

Changes

  • Models and providers: add Claude Opus 5 across catalog and runtime, Kimi K3, and GPT Live realtime support with the supported Platform API authentication path. (#113391, #113392, #113633; related #113412; #113909, #113354; related #113353) Thanks @fuller-stack-dev, @vincentkoc, and @Solvely-Colin.
  • Local inference and setup: detect local inference providers during onboarding, add in-process llama.cpp GGUF inference and Baseten Model API support, discover models from live provider catalogs, and offer model downloads from web and macOS setup. (#108605; related #108604; #109444, #108708; related #108665; #112412; related #112405; #113476) Thanks @fuller-stack-dev.
  • Sessions and dashboards: add rewind/fork and branch switching across web and native chat, session boards and dashboards, archived/visibility/draft/incognito session states, and suggestion queues with typing indicators. (#110660, #110857, #110886, #111149, #110644, #110960, #112554, #112787, #113006, #113127, #113173)
  • Native apps: bring Quick Chat to macOS and Linux with streaming, routing, context capture, dictation, and model controls; add Linux desktop integration and signed updates; add multi-gateway apps and mobile dashboards; and expand Wear OS companion/Talk support. (#109720, #109947, #110285, #110631, #110632, #110635, #110994, #109236, #108770, #111932; related #111931; #112163, #109341, #109433; related #108781; #109483, #112721) Thanks @sibbl, @IWhatsskill, @Solvely-Colin, and @vincentkoc.
  • Meetings: add Teams and Zoom meeting guests, enable Teams, Zoom, and Google Meet plugins by default, and automatically collect durable meeting transcripts. (#109964, #111048, #113022, #113053, #113122)
  • Channels: add the Buzz plugin, Slack user-identity and Agent View modes, Telegram Bot API rich blocks and native Markdown lists, and richer Matrix formatting. (#113419, #109837, #103895; related #103673; #107986, #113158, #113199) Thanks @Patrick-Erichsen and @obviyus.
  • Browser and MCP Apps: add a secure per-tab browser copilot, batch browser CLI, bounded page-question extraction, a ticketed MCP App host and Control UI bridge, and manifest-declared MCP Apps for native plugins. (#109817, #111457, #113861, #109861; related #109851; #109807, #113224; related #113218) Thanks @anagnorisis2peripeteia, @FMLS, @cursoragent, @hxy91819, and @fuller-stack-dev.
  • Memory: add fast active-memory recall, default cross-conversation recall for personal installs, guided imports from Claude Code/Codex/Hermes, and a dedicated Memory settings page. (#108043, #110597, #108977, #114037)
  • Scheduling: add per-job dynamic cadence, gated script payloads, durable schedule-source streaming, cron-backed heartbeat monitors, heartbeat-task conversion, current-conversation defaults, and /loop. (#110978, #111112, #112387, #112585, #113165, #114328)
  • Fish Audio speech: add hosted S2.1 synthesis with streaming, voice notes, voice discovery, and telephony, plus local Fish S2 Pro reference-voice streaming in native macOS Talk. (#115790) Thanks @Rheingold777, @ImLukeF, and @Conan-Scott.
  • Control UI setup: continue verified model setup into Custodian, explain that the web app is ready without a channel, and offer an optional dismissible path to Channels. (#116078, #116079) Thanks @vincentkoc.
  • Buzz messaging: preserve Markdown and structured room content, then add room- and thread-scoped typing indicators with reconnect-safe lifecycle handling. (#116096, #116194) Thanks @shakkernerd.
  • Automations naming: rename the scheduler-facing cron agent tool and visible CLI/UI surfaces to Automations while retaining the compatible CLI alias. (#114841, #114854, #114853) Thanks @omarshahine.
  • DuckDuckGo search: move DuckDuckGo search into the plugin boundary so provider ownership, installation, and runtime behavior stay outside core. (#116740) Thanks @vincentkoc.

Fixes

  • Security and authorization: prevent channel allowlists from granting owner access, keep session exports inside the workspace, close a forged-marker/web-search boundary bypass, prevent non-owner ACP session exposure, reject unsafe explicit approval IDs, harden secret redaction and exec/OAuth approvals, validate downloaded install scripts, and prevent insecure secrets-plan writes. (#107403; related #104984; #104708; related #102391; #110417, #110745; related #103055; #111055, #112947, #112952, #112953, #112956, #112946, #112957, #113307; related #90013; #113707) Thanks @obviyus, @yetval, @VACInc, @pgondhi987, and @SebTardif.
  • SQLite and data safety: commit session indexes before transcript eviction, preserve state through maintenance races and live-WAL verification, reject invalid backups and schema data loss, make snapshot publication crash-recoverable, retain complete backups after interrupted commits, and evict only the exact corrupted cached database owner so repairs recover without a Gateway restart. (#108378, #113216; related #113209, #113210, #113211; #113287; related #113265; #113367, #113473, #113607, #114016, #114278) Thanks @yetval, @vincentkoc, @VACInc, and @rizquuula.
  • Channel delivery: stop Telegram durable-ingress loss across restarts and persist offsets only after spool writes, preserve Discord/iMessage/WhatsApp traffic across crashes or restarts, restore assistant context and interrupted turns after restart, suppress outbound echoes, deliver ingress retries whose queued run was dropped, report finalized Telegram previews to plugins, explain invalid native queue arguments instead of false model-failure fallbacks, validate native settings, and preserve Telegram ingress outcomes. (#107288; related #107246; #113368; related #113315; #110274, #110409, #110418, #112548; related #112520; #112562, #114058, #114531, #111341, #115891; related #115888; #116214; related #116171; #116726; related #116688; #116773) Thanks @obviyus, @carlosjarenom, @JesusSerrano-Seimako, @vincentkoc, @edenfunf, @joshavant, and @hannesrudolph.
  • Sessions and transcripts: preserve final replies, active turns, Codex-bound history, and transcript cursors; prevent repeated tool-call IDs from poisoning sessions; close lifecycle races and cross-agent deadlocks; keep migrated transcripts usable after restart; keep restart prompts on the active transcript tail; and preserve TUI session state across switches and reconnects. (#107799; related #106594; #110389, #110518; related #109443; #112016, #112988, #114477; related #103077, #103089, #113005, #114187; #114524, #114504, #116077, #116399, #117260) Thanks @joshavant, @lockhartheavyindustries, @flashosophy, @yetval, @realaudreyserber-afk, @hvhoon, and @vincentkoc.
  • Install and upgrade: preserve working installs on unsupported Node and npm 12, isolate source postinstall state, repair missing native adapters, keep versioned plugins off source paths, avoid dirty source builds, repair plugin config during upgrades, stabilize package-to-dev switches, restore production installs after the TypeBox package removal, ship documented plugin SDK typings, and discover external web-search plugins on fresh installs. (#106994; related #106870; #108100; related #107290; #111514; related #111513; #111682, #112829; related #112827; #113094, #113324, #113856, #113821, #114090, #114215; related #113975; #114327, #115292, #116333, #116345) Thanks @woohahahaaa, @fuller-stack-dev, @vincentkoc, @sallyom, @alxfyvwebaccts-png, and @pash-openai.
  • Provider reliability: prevent false Codex exhaustion and silent replies, honor Anthropic Retry-After, preserve selected Claude CLI profiles and adopted chats, remove the rejected Codex OAuth realtime fallback, recover stalled Claude CLI sessions without losing native cache continuity, reuse plugin metadata during model selection, bound stalled provider response bodies, and stabilize Ollama/LM Studio/local-model discovery. (#110381; related #96815; #110980, #111072; related #103849; #112458; related #95612, #107668; #113078, #113393, #114397, #114094; related #114086; #114288, #114405, #114582, #115211; related #115021; #113866, #114117, #109088) Thanks @xxw77, @yetval, @fuller-stack-dev, @cstreeter, @josh-cornelius, @lanyoung, @LeonidasLux, @BomBastikDE, @vincentkoc, @VACInc, and @SunnyShu0925.
  • Agent and Codex runtime: bound malformed Code Mode repair to one correction turn, preserve valid native Codex controls, keep promoted approvals from blocking unattended runs, and retain the original requester when an approval is promoted. (#115729; related #115311; #107588, #116117, #116152) Thanks @vincentkoc and @VACInc.
  • Cron reliability: restore one-shot and startup catch-up jobs, preserve script state and scheduled authority across restarts, accept benign same-generation updates, bind jobs to the durable store session, unblock completed jobs behind slower batches, and trim job IDs before exact lookup. (#107236, #110351; related #102236; #111292; related #111271, #111272, #111273, #111274; #112483, #113088; related #113085; #114421, #114441, #110849) Thanks @SL4N, @yetval, @joshavant, @metahacker, @efpiva, @nocodet888-arch, and @vincentkoc.
  • Compaction and response delivery: account for CJK text in compaction estimates and treat nocompactableentries as a benign skip. (#114386; related #103930; #114449; related #114385) Thanks @qingminglong, @revision-co-ltd, @loulanyue, and @alfredjbclaw.
  • Platform and transport reliability: respect debug-proxy response backpressure, cancel early-woken meeting audio timers, preserve Windows PATH delimiters in node status, and prevent duplicate user/system systemd Gateway ownership with actionable recovery guidance. (#114076; related #105701; #114526, #114505, #116162; related #116129) Thanks @qingminglong, @aniruddhaadak80, @IWhatsskill, @vincentkoc, and @obviyus.
  • Channel edge cases: settle Feishu outbound delivery, surface Signal recipient failures, and support reverse-proxy paths in Matrix homeserver URLs. (#113152, #111960; related #111959; #93516; related #102885) Thanks @joshavant, @ooiuuii, and @Papilionidae.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.2-beta.7
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.2-beta.7.tgz
  • integrity: sha512-raD4Z96RcZ5XY0cdtqsRRQVhPv8JOHgA4vK/0D2/BsF9czI3d5w9O1xhYGKGsNKXp+3A0HipL6oeV0zKRK/lAA==
  • release SHA: dabe1915362e20c25704af91612a32a8f4c96e83
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.2-beta.7/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/30738213764
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/30714148718
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/30714067986
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/30738340512
  • plugin ClawHub publish: no normal OIDC candidates
  • plugin ClawHub bootstrap: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/30738341581
  • npm Telegram beta E2E: not supplied
v2026.7.2-beta.6 pre [Aug 1, 2026] details → github →

# openclaw 2026.7.2-beta.6

2026.7.2

Highlights

  • State safety and recovery: protect persisted data with a quarantine store that survives primary-database damage, crash-recoverable SQLite snapshots, crash-durable filesystem publication, schema-upgrade data-loss rejection, and rollback-writer snapshot recovery. (#110453, #113367, #113453, #113473, #113580) Thanks @vincentkoc.
  • Durable channel delivery: keep accepted messages recoverable across gateway restarts and local crashes through the shared ingress drain and dead-letter recovery, covering Telegram, Signal, Slack, QQBot, Twitch, Synology Chat, Tlon, IRC, and Zalo User. #108656, #107246, #109911 (#108924, #107288, #109907, #109910, #110844, #110852, #110899, #110910, #110914, #110916, #111029) Thanks @obviyus and @edenfunf.
  • Session rewind and branching: rewind or fork conversations from individual messages, switch transcript branches across web and native apps, fork upstream Codex sessions, preserve branch-safe queued sends, reject stale-pane writes, and restore prompt images after a fork. (#110660, #110857, #110886, #111149, #112056, #112284, #113073, #113945) Thanks @vincentkoc.
  • Interactive MCP Apps and dashboards: host ticketed MCP Apps with bound tools, resources, and bounded context updates; open them from channel replies, pin them to durable dashboards, harden their shared sandbox, and let native plugins declare them directly. #109851, #110451, #113218 (#109861, #109807, #110515, #111211, #111212, #111524, #111687, #111748, #113224) Thanks @fuller-stack-dev.
  • Questions and approvals everywhere: let agents ask structured questions with option cards across web, channels, macOS, and native apps, while approvals gain push notifications, history, fair queuing, headless resolution, Claude tool-request relay, reviewer detail, and clearer formatted prompts. #85954 (#108505, #108709, #108776, #109922, #110242, #110372, #110584, #110681, #110989, #111060, #112918, #113027, #113193) Thanks @omarshahine.
  • Meetings and realtime Talk: join Teams, Zoom, and Google Meet calls with default-enabled meeting plugins and durable transcript collection, while realtime Talk adds OpenAI and Gemini video and requires a supported OpenAI Platform API key instead of the rejected Codex OAuth fallback. #86425, #113353, #115021 (#109579, #109719, #109964, #111048, #113022, #113053, #113122, #113354, #115211) Thanks @shushushv, @Solvely-Colin, and @vincentkoc.
  • Wear OS companion: add the phone-proxied Wear companion with home-screen agent/session/model selection, realtime Talk controls, audio-reactive playback, and an instant-talk tile. #108781 (#108835, #109341, #109433, #109483, #110661, #111516, #112721) Thanks @sibbl, @IWhatsskill, and @Solvely-Colin.
  • Guided setup and local inference: guide setup across browser, Linux, and macOS with local-provider detection, strongest-model selection, downloadable models, lean mode, memory imports, and an in-process RAM-gated llama.cpp/Gemma path. #108604 (#108605, #108868, #108977, #109250, #109444, #109585, #110054, #110141, #110596, #113476)

Changes

  • Models and providers: add Claude Opus 5 across catalog and runtime, Kimi K3, and GPT Live realtime support with the supported Platform API authentication path. (#113391, #113392, #113633; related #113412; #113909, #113354; related #113353) Thanks @fuller-stack-dev, @vincentkoc, and @Solvely-Colin.
  • Local inference and setup: detect local inference providers during onboarding, add in-process llama.cpp GGUF inference and Baseten Model API support, discover models from live provider catalogs, and offer model downloads from web and macOS setup. (#108605; related #108604; #109444, #108708; related #108665; #112412; related #112405; #113476) Thanks @fuller-stack-dev.
  • Sessions and dashboards: add rewind/fork and branch switching across web and native chat, session boards and dashboards, archived/visibility/draft/incognito session states, and suggestion queues with typing indicators. (#110660, #110857, #110886, #111149, #110644, #110960, #112554, #112787, #113006, #113127, #113173)
  • Native apps: bring Quick Chat to macOS and Linux with streaming, routing, context capture, dictation, and model controls; add Linux desktop integration and signed updates; add multi-gateway apps and mobile dashboards; and expand Wear OS companion/Talk support. (#109720, #109947, #110285, #110631, #110632, #110635, #110994, #109236, #108770, #111932; related #111931; #112163, #109341, #109433; related #108781; #109483, #112721) Thanks @sibbl, @IWhatsskill, @Solvely-Colin, and @vincentkoc.
  • Meetings: add Teams and Zoom meeting guests, enable Teams, Zoom, and Google Meet plugins by default, and automatically collect durable meeting transcripts. (#109964, #111048, #113022, #113053, #113122)
  • Channels: add the Buzz plugin, Slack user-identity and Agent View modes, Telegram Bot API rich blocks and native Markdown lists, and richer Matrix formatting. (#113419, #109837, #103895; related #103673; #107986, #113158, #113199) Thanks @Patrick-Erichsen and @obviyus.
  • Browser and MCP Apps: add a secure per-tab browser copilot, batch browser CLI, bounded page-question extraction, a ticketed MCP App host and Control UI bridge, and manifest-declared MCP Apps for native plugins. (#109817, #111457, #113861, #109861; related #109851; #109807, #113224; related #113218) Thanks @anagnorisis2peripeteia, @FMLS, @cursoragent, @hxy91819, and @fuller-stack-dev.
  • Memory: add fast active-memory recall, default cross-conversation recall for personal installs, guided imports from Claude Code/Codex/Hermes, and a dedicated Memory settings page. (#108043, #110597, #108977, #114037)
  • Scheduling: add per-job dynamic cadence, gated script payloads, durable schedule-source streaming, cron-backed heartbeat monitors, heartbeat-task conversion, current-conversation defaults, and /loop. (#110978, #111112, #112387, #112585, #113165, #114328)
  • Fish Audio speech: add hosted S2.1 synthesis with streaming, voice notes, voice discovery, and telephony, plus local Fish S2 Pro reference-voice streaming in native macOS Talk. (#115790) Thanks @Rheingold777, @ImLukeF, and @Conan-Scott.
  • Control UI setup: continue verified model setup into Custodian, explain that the web app is ready without a channel, and offer an optional dismissible path to Channels. (#116078, #116079) Thanks @vincentkoc.
  • Buzz messaging: preserve Markdown and structured room content, then add room- and thread-scoped typing indicators with reconnect-safe lifecycle handling. (#116096, #116194) Thanks @shakkernerd.
  • Automations naming: rename the scheduler-facing cron agent tool and visible CLI/UI surfaces to Automations while retaining the compatible CLI alias. (#114841, #114854, #114853) Thanks @omarshahine.
  • DuckDuckGo search: move DuckDuckGo search into the plugin boundary so provider ownership, installation, and runtime behavior stay outside core. (#116740) Thanks @vincentkoc.

Fixes

  • Security and authorization: prevent channel allowlists from granting owner access, keep session exports inside the workspace, close a forged-marker/web-search boundary bypass, prevent non-owner ACP session exposure, reject unsafe explicit approval IDs, harden secret redaction and exec/OAuth approvals, validate downloaded install scripts, and prevent insecure secrets-plan writes. (#107403; related #104984; #104708; related #102391; #110417, #110745; related #103055; #111055, #112947, #112952, #112953, #112956, #112946, #112957, #113307; related #90013; #113707) Thanks @obviyus, @yetval, @VACInc, @pgondhi987, and @SebTardif.
  • SQLite and data safety: commit session indexes before transcript eviction, preserve state through maintenance races and live-WAL verification, reject invalid backups and schema data loss, make snapshot publication crash-recoverable, retain complete backups after interrupted commits, and evict only the exact corrupted cached database owner so repairs recover without a Gateway restart. (#108378, #113216; related #113209, #113210, #113211; #113287; related #113265; #113367, #113473, #113607, #114016, #114278) Thanks @yetval, @vincentkoc, @VACInc, and @rizquuula.
  • Channel delivery: stop Telegram durable-ingress loss across restarts and persist offsets only after spool writes, preserve Discord/iMessage/WhatsApp traffic across crashes or restarts, restore assistant context and interrupted turns after restart, suppress outbound echoes, deliver ingress retries whose queued run was dropped, report finalized Telegram previews to plugins, validate native settings, and preserve Telegram ingress outcomes. (#107288; related #107246; #113368; related #113315; #110274, #110409, #110418, #112548; related #112520; #112562, #114058, #114531, #111341, #115891; related #115888; #116214; related #116171; #116773) Thanks @obviyus, @carlosjarenom, @JesusSerrano-Seimako, @vincentkoc, @edenfunf, and @joshavant.
  • Sessions and transcripts: preserve final replies, active turns, Codex-bound history, and transcript cursors; prevent repeated tool-call IDs from poisoning sessions; close lifecycle races and cross-agent deadlocks; keep migrated transcripts usable after restart; and preserve TUI session state across switches and reconnects. (#107799; related #106594; #110389, #110518; related #109443; #112016, #112988, #114477; related #103077, #103089, #113005, #114187; #114524, #114504, #116077, #116399) Thanks @joshavant, @lockhartheavyindustries, @flashosophy, @yetval, @realaudreyserber-afk, @hvhoon, and @vincentkoc.
  • Install and upgrade: preserve working installs on unsupported Node and npm 12, isolate source postinstall state, repair missing native adapters, keep versioned plugins off source paths, avoid dirty source builds, repair plugin config during upgrades, stabilize package-to-dev switches, restore production installs after the TypeBox package removal, ship documented plugin SDK typings, and discover external web-search plugins on fresh installs. (#106994; related #106870; #108100; related #107290; #111514; related #111513; #111682, #112829; related #112827; #113094, #113324, #113856, #113821, #114090, #114215; related #113975; #114327, #115292, #116333, #116345) Thanks @woohahahaaa, @fuller-stack-dev, @vincentkoc, @sallyom, @alxfyvwebaccts-png, and @pash-openai.
  • Provider reliability: prevent false Codex exhaustion and silent replies, honor Anthropic Retry-After, preserve selected Claude CLI profiles and adopted chats, remove the rejected Codex OAuth realtime fallback, recover stalled Claude CLI sessions without losing native cache continuity, reuse plugin metadata during model selection, bound stalled provider response bodies, and stabilize Ollama/LM Studio/local-model discovery. (#110381; related #96815; #110980, #111072; related #103849; #112458; related #95612, #107668; #113078, #113393, #114397, #114094; related #114086; #114288, #114405, #114582, #115211; related #115021; #113866, #114117, #109088) Thanks @xxw77, @yetval, @fuller-stack-dev, @cstreeter, @josh-cornelius, @lanyoung, @LeonidasLux, @BomBastikDE, @vincentkoc, @VACInc, and @SunnyShu0925.
  • Agent and Codex runtime: bound malformed Code Mode repair to one correction turn, preserve valid native Codex controls, keep promoted approvals from blocking unattended runs, and retain the original requester when an approval is promoted. (#115729; related #115311; #107588, #116117, #116152) Thanks @vincentkoc and @VACInc.
  • Cron reliability: restore one-shot and startup catch-up jobs, preserve script state and scheduled authority across restarts, accept benign same-generation updates, bind jobs to the durable store session, unblock completed jobs behind slower batches, and trim job IDs before exact lookup. (#107236, #110351; related #102236; #111292; related #111271, #111272, #111273, #111274; #112483, #113088; related #113085; #114421, #114441, #110849) Thanks @SL4N, @yetval, @joshavant, @metahacker, @efpiva, @nocodet888-arch, and @vincentkoc.
  • Compaction and response delivery: account for CJK text in compaction estimates and treat nocompactableentries as a benign skip. (#114386; related #103930; #114449; related #114385) Thanks @qingminglong, @revision-co-ltd, @loulanyue, and @alfredjbclaw.
  • Platform and transport reliability: respect debug-proxy response backpressure, cancel early-woken meeting audio timers, preserve Windows PATH delimiters in node status, and prevent duplicate user/system systemd Gateway ownership with actionable recovery guidance. (#114076; related #105701; #114526, #114505, #116162; related #116129) Thanks @qingminglong, @aniruddhaadak80, @IWhatsskill, @vincentkoc, and @obviyus.
  • Channel edge cases: settle Feishu outbound delivery, surface Signal recipient failures, and support reverse-proxy paths in Matrix homeserver URLs. (#113152, #111960; related #111959; #93516; related #102885) Thanks @joshavant, @ooiuuii, and @Papilionidae.

Complete contribution record

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

v2026.7.2-beta.5 pre [Jul 28, 2026] details → github →

# openclaw 2026.7.2-beta.5

2026.7.2

Highlights

  • State safety and recovery: protect persisted data with a quarantine store that survives primary-database damage, crash-recoverable SQLite snapshots, crash-durable filesystem publication, schema-upgrade data-loss rejection, and rollback-writer snapshot recovery. (#110453, #113367, #113453, #113473, #113580) Thanks @vincentkoc.
  • Durable channel delivery: keep accepted messages recoverable across gateway restarts and local crashes through the shared ingress drain and dead-letter recovery, covering Telegram, Signal, Slack, QQBot, Twitch, Synology Chat, Tlon, IRC, and Zalo User. #108656, #107246, #109911 (#108924, #107288, #109907, #109910, #110844, #110852, #110899, #110910, #110914, #110916, #111029) Thanks @obviyus and @edenfunf.
  • Session rewind and branching: rewind or fork conversations from individual messages, switch transcript branches across web and native apps, fork upstream Codex sessions, preserve branch-safe queued sends, reject stale-pane writes, and restore prompt images after a fork. (#110660, #110857, #110886, #111149, #112056, #112284, #113073, #113945)
  • Interactive MCP Apps and dashboards: host ticketed MCP Apps with bound tools, resources, and bounded context updates; open them from channel replies, pin them to durable dashboards, harden their shared sandbox, and let native plugins declare them directly. #109851, #110451, #113218 (#109861, #109807, #110515, #111211, #111212, #111524, #111687, #111748, #113224) Thanks @fuller-stack-dev.
  • Questions and approvals everywhere: let agents ask structured questions with option cards across web, channels, macOS, and native apps, while approvals gain push notifications, history, fair queuing, headless resolution, Claude tool-request relay, reviewer detail, and clearer formatted prompts. #85954 (#108505, #108709, #108776, #109922, #110242, #110372, #110584, #110681, #110989, #111060, #112918, #113027, #113193) Thanks @omarshahine.
  • Meetings and realtime Talk: join Teams, Zoom, and Google Meet calls with default-enabled meeting plugins and durable transcript collection, while realtime Talk adds OpenAI and Gemini video plus GPT Live through Codex OAuth. #86425, #113353 (#109579, #109719, #109964, #111048, #113022, #113053, #113122, #113354) Thanks @shushushv and @Solvely-Colin.
  • Wear OS companion: add the phone-proxied Wear companion with home-screen agent/session/model selection, realtime Talk controls, audio-reactive playback, and an instant-talk tile. #108781 (#108835, #109341, #109433, #109483, #110661, #111516, #112721) Thanks @sibbl, @IWhatsskill, and @Solvely-Colin.
  • Guided setup and local inference: guide setup across browser, Linux, and macOS with local-provider detection, strongest-model selection, downloadable models, lean mode, memory imports, and an in-process RAM-gated llama.cpp/Gemma path. #108604 (#108605, #108868, #108977, #109250, #109444, #109585, #110054, #110141, #110596, #113476)

Changes

  • Models and providers: add Claude Opus 5 across catalog and runtime, Kimi K3, and GPT Live through Codex OAuth. (#113391, #113392, #113633; related #113412; #113909, #113354; related #113353) Thanks @fuller-stack-dev, @vincentkoc, and @Solvely-Colin.
  • Local inference and setup: detect local inference providers during onboarding, add in-process llama.cpp GGUF inference and Baseten Model API support, discover models from live provider catalogs, and offer model downloads from web and macOS setup. (#108605; related #108604; #109444, #108708; related #108665; #112412; related #112405; #113476) Thanks @fuller-stack-dev.
  • Sessions and dashboards: add rewind/fork and branch switching across web and native chat, session boards and dashboards, archived/visibility/draft/incognito session states, and suggestion queues with typing indicators. (#110660, #110857, #110886, #111149, #110644, #110960, #112554, #112787, #113006, #113127, #113173)
  • Native apps: bring Quick Chat to macOS and Linux with streaming, routing, context capture, dictation, and model controls; add Linux desktop integration and signed updates; add multi-gateway apps and mobile dashboards; and expand Wear OS companion/Talk support. (#109720, #109947, #110285, #110631, #110632, #110635, #110994, #109236, #108770, #111932; related #111931; #112163, #109341, #109433; related #108781; #109483, #112721) Thanks @sibbl, @IWhatsskill, @Solvely-Colin, and @vincentkoc.
  • Meetings: add Teams and Zoom meeting guests, enable Teams, Zoom, and Google Meet plugins by default, and automatically collect durable meeting transcripts. (#109964, #111048, #113022, #113053, #113122)
  • Channels: add the Buzz plugin, Slack user-identity and Agent View modes, Telegram Bot API rich blocks and native Markdown lists, and richer Matrix formatting. (#113419, #109837, #103895; related #103673; #107986, #113158, #113199) Thanks @Patrick-Erichsen and @obviyus.
  • Browser and MCP Apps: add a secure per-tab browser copilot, batch browser CLI, bounded page-question extraction, a ticketed MCP App host and Control UI bridge, and manifest-declared MCP Apps for native plugins. (#109817, #111457, #113861, #109861; related #109851; #109807, #113224; related #113218) Thanks @anagnorisis2peripeteia, @FMLS, @cursoragent, @hxy91819, and @fuller-stack-dev.
  • Memory: add fast active-memory recall, default cross-conversation recall for personal installs, guided imports from Claude Code/Codex/Hermes, and a dedicated Memory settings page. (#108043, #110597, #108977, #114037)
  • Scheduling: add per-job dynamic cadence, gated script payloads, durable schedule-source streaming, cron-backed heartbeat monitors, heartbeat-task conversion, current-conversation defaults, and /loop. (#110978, #111112, #112387, #112585, #113165, #114328)

Fixes

  • Security and authorization: prevent channel allowlists from granting owner access, keep session exports inside the workspace, close a forged-marker/web-search boundary bypass, prevent non-owner ACP session exposure, reject unsafe explicit approval IDs, harden secret redaction and exec/OAuth approvals, validate downloaded install scripts, and prevent insecure secrets-plan writes. (#107403; related #104984; #104708; related #102391; #110417, #110745; related #103055; #111055, #112947, #112952, #112953, #112956, #112946, #112957, #113307; related #90013; #113707) Thanks @obviyus, @yetval, @VACInc, @pgondhi987, and @SebTardif.
  • SQLite and data safety: commit session indexes before transcript eviction, preserve state through maintenance races and live-WAL verification, reject invalid backups and schema data loss, make snapshot publication crash-recoverable, and retain complete backups after interrupted commits. (#108378, #113216; related #113209, #113210, #113211; #113287; related #113265; #113367, #113473, #113607, #114016) Thanks @yetval, @vincentkoc, and @VACInc.
  • Channel delivery: stop Telegram durable-ingress loss across restarts and persist offsets only after spool writes, preserve Discord/iMessage/WhatsApp traffic across crashes or restarts, restore assistant context and interrupted turns after restart, keep queued replies alive, and emit a fallback when a visible turn returns no reply. (#107288; related #107246; #113368; related #113315; #110274, #110409, #110418, #112548; related #112520; #112562, #114058, #114531) Thanks @obviyus, @carlosjarenom, and @JesusSerrano-Seimako.
  • Sessions and transcripts: preserve final replies, active turns, Codex-bound history, and transcript cursors; prevent repeated tool-call IDs from poisoning sessions; close lifecycle races and cross-agent deadlocks; and prevent TUI cross-session leaks and lost streams. (#107799; related #106594; #110389, #110518; related #109443; #112016, #112988, #114477; related #103077, #103089, #113005, #114187; #114524, #114504) Thanks @joshavant, @lockhartheavyindustries, @flashosophy, @yetval, @realaudreyserber-afk, and @hvhoon.
  • Install and upgrade: preserve working installs on unsupported Node and npm 12, isolate source postinstall state, repair missing native adapters, keep versioned plugins off source paths, avoid dirty source builds, repair plugin config during upgrades, stop packages from deleting UI/runtime files, finish ClawHub uninstall, surface empty npm-install failures, and discover external web-search plugins on fresh installs. (#106994; related #106870; #108100; related #107290; #111514; related #111513; #111682, #112829; related #112827; #113094, #113324, #113856, #113821, #114090, #114215; related #113975; #114327) Thanks @woohahahaaa, @fuller-stack-dev, @vincentkoc, @sallyom, and @alxfyvwebaccts-png.
  • Provider reliability: prevent false Codex exhaustion and silent replies, honor Anthropic Retry-After, preserve selected Claude CLI profiles and adopted chats, recover Codex Computer Use and user-home app-server routes, retry transient device polling, correct OpenAI onboarding, and stabilize Ollama/LM Studio/local-model discovery. (#110381; related #96815; #110980, #111072; related #103849; #112458; related #95612, #107668; #113078, #113393, #114397, #114094; related #114086; #114288, #114405, #114582) Thanks @xxw77, @yetval, @fuller-stack-dev, @cstreeter, @josh-cornelius, @lanyoung, @LeonidasLux, and @BomBastikDE.
  • Cron reliability: restore one-shot and startup catch-up jobs, preserve script state and scheduled authority across restarts, accept benign same-generation updates, bind jobs to the durable store session, unblock completed jobs behind slower batches, and trim job IDs before exact lookup. (#107236, #110351; related #102236; #111292; related #111271, #111272, #111273, #111274; #112483, #113088; related #113085; #114421, #114441, #110849) Thanks @SL4N, @yetval, @joshavant, @metahacker, @efpiva, and @nocodet888-arch.
  • Compaction and response delivery: account for CJK text in compaction estimates and treat nocompactableentries as a benign skip. (#114386; related #103930; #114449; related #114385) Thanks @qingminglong, @revision-co-ltd, @loulanyue, and @alfredjbclaw.
  • Platform and transport reliability: respect debug-proxy response backpressure, cancel early-woken meeting audio timers, and preserve Windows PATH delimiters in node status. (#114076; related #105701; #114526, #114505) Thanks @qingminglong, @aniruddhaadak80, and @IWhatsskill.
  • Channel edge cases: settle Feishu outbound delivery, surface Signal recipient failures, and support reverse-proxy paths in Matrix homeserver URLs. (#113152, #111960; related #111959; #93516; related #102885) Thanks @joshavant, @ooiuuii, and @Papilionidae.

Complete contribution record

This audited record covers the complete a5b2e4167de860fe3fe3da7284cd5f36883560c8..1d326e4f917a6527a737781918a733360c89eed1 history: 3908 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #107116 Related #107106.
  • PR #107147
  • PR #107148
  • PR #107123
  • PR #107146 Thanks @vincentkoc.
  • PR #107142
  • PR #107156
  • PR #107150
  • PR #104259 Thanks @yyj-xydt.
  • PR #107151
  • PR #107157
  • PR #106899 Related #106838. Thanks @bek91.
  • PR #106995 Thanks @joshavant.
  • PR #107086
  • PR #107072 Thanks @zhangguiping-xydt.
  • PR #107103 Thanks @zw-xysk.
  • PR #107165
  • PR #106384 Thanks @ZengWen-DT and @wangmiao0668000666.
  • PR #107169
  • PR #107168
  • PR #107101
  • PR #107174 Thanks @fuller-stack-dev.
  • PR #107178
  • PR #107189
  • PR #107190
  • PR #96554 Thanks @ruizcrp.
  • PR #107196
  • PR #107197
  • PR #107194
  • PR #107177
  • PR #107201
  • PR #107206
  • PR #107210
  • PR #107186
  • PR #107213
  • PR #107217
  • PR #107173
  • PR #107204
  • PR #107231
  • PR #107200 Related #107183.
  • PR #106069 Related #106014. Thanks @krissding and @jalfaro2876.
  • PR #107181
  • PR #107212
  • PR #107208
  • PR #107233
  • PR #107235
  • PR #107050 Related #105512.
  • PR #107198
  • PR #107241
  • PR #107232
  • PR #103918 Thanks @mmaps and @pgondhi987.
  • PR #107245
  • PR #107167
  • PR #106479 Related #105530. Thanks @ml12580 and @mnowrot.
  • PR #107162 Related #107112.
  • PR #107247
  • PR #103914 Thanks @mmaps and @pgondhi987.
  • PR #107249
  • PR #107254
  • PR #107259
  • PR #107258 Thanks @pgondhi987.
  • PR #107270
  • PR #107166 Related #107153.
  • PR #107242
  • PR #107264
  • PR #107260
  • PR #107271
  • PR #107252
  • PR #107284
  • PR #107009 Related #104804.
  • PR #107286
  • PR #107275
  • PR #107253
  • PR #107287
  • PR #107282
  • PR #107122 Thanks @wahaha1223.
  • PR #107291
  • PR #107214
  • PR #107293
  • PR #107296
  • PR #107298
  • PR #107307
  • PR #107301
  • PR #107272
  • PR #101253 Thanks @RomneyDa.
  • PR #106178 Thanks @QiuYuang and @Monkey-wusky and @maweibin.
  • PR #107312
  • PR #107310
  • PR #107297
  • PR #107025
  • PR #107319
  • PR #107236 Thanks @SL4N.
  • PR #107321
  • PR #107326
  • PR #107328
  • PR #107331
  • PR #107238 Related #106875. Thanks @SL4N and @dr00-eth.
  • PR #107316
  • PR #106498 Thanks @hugenshen.
  • PR #107332
  • PR #99404 Thanks @snowzlmbot.
  • PR #107193
  • PR #102271 Thanks @RomneyDa.
  • PR #107340
  • PR #107342
  • PR #105001 Thanks @zhangguiping-xydt.
  • PR #107345
  • PR #107338
  • PR #107311
  • PR #105883 Thanks @Alix-007.
  • PR #107353
  • PR #107351
  • PR #107337
  • PR #107354
  • PR #107357
  • PR #107349 Related #107313.
  • PR #107288 Related #107246. Thanks @obviyus.
  • PR #107358 Thanks @fuller-stack-dev.
  • PR #107370
  • PR #107361 Related #107335.
  • PR #107188 Thanks @joshavant.
  • PR #107379
  • PR #107380
  • PR #107383
  • PR #106997
  • PR #107385
  • PR #107387
  • PR #107336 Related #107318.
  • PR #107390
  • PR #107339 Related #107322. Thanks @obviyus.
  • PR #107392
  • PR #107382
  • PR #107396
  • PR #107356
  • PR #107371
  • PR #107398
  • PR #107395
  • PR #107400
  • PR #107377
  • PR #107381
  • PR #107373
  • PR #107365 Thanks @ly-wang19.
  • PR #107407
  • PR #107386 Thanks @hugenshen.
  • PR #107405
  • PR #107410 Related #107406.
  • PR #107409 Related #22676. Thanks @ZHOUKAILIAN and @UberKitten.
  • PR #107360 Thanks @Alix-007.
  • PR #107412
  • PR #107414
  • PR #107348
  • PR #107417
  • PR #107420
  • PR #107421
  • PR #106359 Related #106229. Thanks @obviyus.
  • PR #107427
  • PR #107428
  • PR #107431
  • PR #107432
  • PR #107435
  • PR #107438
  • PR #107436
  • PR #107440
  • PR #107443
  • PR #107445
  • PR #107411
  • PR #107444
  • PR #107372
  • PR #99051 Related #98805.
  • PR #107403 Related #104984. Thanks @obviyus and @yetval.
  • PR #107455
  • PR #107456
  • PR #107457
  • PR #107424
  • PR #107460
  • PR #107458
  • PR #107459
  • PR #105886 Thanks @Alix-007.
  • PR #107462 Thanks @vincentkoc.
  • PR #107470
  • PR #107472
  • PR #107475
  • PR #107476
  • PR #107483
  • PR #107474 Thanks @lonexreb.
  • PR #107485
  • PR #107402
  • PR #107540
  • PR #107542
  • PR #107477
  • PR #107545
  • PR #107548
  • PR #104216 Thanks @zhangguiping-xydt.
  • PR #107553
  • PR #107554
  • PR #107560
  • PR #107567
  • PR #107569
  • PR #107563
  • PR #107570
  • PR #107369 Thanks @pash-openai.
  • PR #107572
  • PR #107576
  • PR #107578
  • PR #106066 Thanks @zhangguiping-xydt.
  • PR #107451
  • PR #107043
  • PR #102068 Related #101789. Thanks @tzy-17 and @jwest75674.
  • PR #107583
  • PR #107584
  • PR #107585
  • PR #107561
  • PR #107422 Related #103309. Thanks @arduano.
  • PR #102114 Thanks @wm0018.
  • PR #107594
  • PR #89821 Thanks @BunsDev.
  • PR #107602
  • PR #107481
  • PR #107573
  • PR #107599
  • PR #107612
  • PR #107419
  • PR #106035 Thanks @Alix-007.
  • PR #107618
  • PR #107621
  • PR #78022 Thanks @fransqaas.
  • PR #107613
  • PR #107577 Related #107216.
  • PR #107229 Thanks @fuller-stack-dev.
  • PR #107606
  • PR #107637
  • PR #107640
  • PR #107144 Thanks @SunnyShu0925.
  • PR #107636
  • PR #107234 Thanks @wahaha1223 and @cursoragent.
  • PR #104708 Related #102391. Thanks @VACInc and @yetval.
  • PR #107652
  • PR #107315 Thanks @smthfoxy.
  • PR #107654
  • PR #107263 Thanks @wahaha1223.
  • PR #107646
  • PR #107364 Related #107289.
  • PR #107243 Related #107133. Thanks @felirami and @Tony-ooo.
  • PR #107191 Thanks @qingminglong.
  • PR #107653
  • PR #107625 Related #107624.
  • PR #107616
  • PR #107143 Thanks @SunnyShu0925.
  • PR #107665
  • PR #107675
  • PR #107678
  • PR #107598
  • PR #107674 Related #107669.
  • PR #104120 Thanks @Alix-007.
  • PR #107689
  • PR #102197 Thanks @jesse-merhi.
  • PR #107690 Thanks @shakkernerd.
  • PR #107695
  • PR #107696
  • PR #107677
  • PR #107692
  • PR #107631
  • PR #107680
  • PR #107705
  • PR #107320
  • PR #107706
  • PR #107673
  • PR #107709
  • PR #107711
  • PR #107710 Thanks @shakkernerd.
  • PR #107714
  • PR #107715
  • PR #107716
  • PR #107724
  • PR #107726
  • PR #107697 Related #107685.
  • PR #106258 Related #106249. Thanks @moguangyu5-design.
  • PR #107730
  • PR #107723
  • PR #107728
  • PR #94494 Related #94482. Thanks @xialonglee and @aaronedell.
  • PR #107733
  • PR #107670 Related #104294.
  • PR #99394 Related #97074. Thanks @xialonglee and @Lvan185.
  • PR #107737
  • PR #107747
  • PR #107749
  • PR #107642
  • PR #107748
  • PR #107745
  • PR #107753
  • PR #107740
  • PR #107756
  • PR #107738
  • PR #107757
  • PR #107758
  • PR #107617 Thanks @mushuiyu886.
  • PR #107760
  • PR #104901 Thanks @zhangguiping-xydt.
  • PR #107763
  • PR #107767
  • PR #107759 Related #107755.
  • PR #107454 Thanks @wahaha1223.
  • PR #107774
  • PR #107775
  • PR #107776
  • PR #107772
  • PR #106484 Thanks @hugenshen.
  • PR #104940 Related #104762. Thanks @jackjin1997.
  • PR #107779
  • PR #107768
  • PR #107777 Related #107769.
  • PR #107784
  • PR #107781
  • PR #104629 Thanks @hugenshen.
  • PR #107783
  • PR #105066 Thanks @qingminglong.
  • PR #107762
  • PR #107634
  • PR #107780
  • PR #107796
  • PR #107789 Related #107766.
  • PR #107764
  • PR #107807 Related #107684. Thanks @shakkernerd.
  • PR #107808
  • PR #107801
  • PR #107791 Related #107782.
  • PR #101708 Thanks @Pick-cat.
  • PR #107817
  • PR #107806
  • PR #107819
  • PR #107826
  • PR #107633
  • PR #107794 Thanks @fuller-stack-dev.
  • PR #107827
  • PR #107799 Related #106594. Thanks @joshavant and @lockhartheavyindustries.
  • PR #107828
  • PR #107830
  • PR #104824 Thanks @yetval.
  • PR #107803 Thanks @fuller-stack-dev and @jalehman.
  • PR #107822
  • PR #107809 Thanks @fuller-stack-dev and @jalehman.
  • PR #107837
  • PR #107838
  • PR #107848 Related #107840.
  • PR #107849
  • PR #107793
  • PR #107294 Related #106604. Thanks @harjothkhara and @Cyb3rb1ade.
  • PR #107859
  • PR #107854
  • PR #107858
  • PR #107862 Thanks @fuller-stack-dev.
  • PR #107844
  • PR #107754 Related #98633, #102932, #105427. Thanks @joshavant and @ooiuuii and @aniruddhaadak80.
  • PR #107836 Thanks @fuller-stack-dev.
  • PR #107869
  • PR #107870
  • PR #107884
  • PR #107874
  • PR #107471
  • PR #107887
  • PR #107893 Thanks @shakkernerd.
  • PR #107865
  • PR #107892
  • PR #107900
  • PR #107820 Related #107818. Thanks @jalehman.
  • PR #107898
  • PR #107773 Related #107770. Thanks @joshavant.
  • PR #107907 Thanks @shakkernerd.
  • PR #107912
  • PR #107913
  • PR #107798 Related #107797.
  • PR #107923
  • PR #107924
  • PR #107688 Related #107627.
  • PR #95996 Thanks @kklouzal and @fuller-stack-dev.
  • PR #107906
  • PR #107936
  • PR #107940 Thanks @hannesrudolph.
  • PR #107949
  • PR #107951
  • PR #107953
  • PR #107954
  • PR #107932
  • PR #107927
  • PR #107908
  • PR #107965 Thanks @shakkernerd.
  • PR #107966
  • PR #107699 Thanks @Alix-007.
  • PR #107938
  • PR #107700 Thanks @Alix-007.
  • PR #107701 Thanks @Alix-007.
  • PR #107702 Thanks @Alix-007.
  • PR #107973
  • PR #107960
  • PR #107543 Thanks @mcaxtr.
  • PR #107778 Related #107736. Thanks @jincheng-xydt and @crash2kx.
  • PR #106959
  • PR #107786
  • PR #107993
  • PR #107987
  • PR #108003
  • PR #107997 Related #107992.
  • PR #107604 Related #105683. Thanks @lee-xydt and @aniruddhaadak80.
  • PR #108008
  • PR #107317 Thanks @zhangguiping-xydt.
  • PR #107961 Thanks @Patrick-Erichsen.
  • PR #107771 Related #106933. Thanks @ekinnee and @montajebii.
  • PR #104516 Thanks @Monkey-wusky.
  • PR #107066 Thanks @mcaxtr.
  • PR #108013
  • PR #108017
  • PR #107989 Related #104108. Thanks @ObliviateRickLin and @yetval.
  • PR #106473 Thanks @sunlit-deng.
  • PR #107977
  • PR #107969
  • PR #107955
  • PR #105470 Thanks @qingminlong.
  • PR #107063 Related #106189. Thanks @mushuiyu886 and @aaajiao.
  • PR #106826 Related #106379. Thanks @snowzlmbot.
  • PR #107976
  • PR #107983
  • PR #108020
  • PR #106293 Thanks @qingminglong and @omarshahine.
  • PR #107285 Thanks @xydt-tanshanshan.
  • PR #107703 Thanks @Alix-007.
  • PR #107970 Related #107952.
  • PR #108004
  • PR #107985
  • PR #108026
  • PR #108022
  • PR #107948
  • PR #106397 Thanks @Alix-007.
  • PR #105584 Related #103078. Thanks @yetval.
  • PR #107926 Related #107850.
  • PR #107894
  • PR #108038
  • PR #108037
  • PR #108018 Related #108016.
  • PR #107718 Thanks @Leon-SK668.
  • PR #107393 Thanks @ZengWen-DT.
  • PR #108040
  • PR #108045
  • PR #104853 Thanks @VectorPeak.
  • PR #108052 Thanks @RomneyDa.
  • PR #108041
  • PR #108043
  • PR #108048
  • PR #106737 Thanks @IWhatsskill.
  • PR #108051
  • PR #108046
  • PR #107881 Thanks @RomneyDa.
  • PR #106395 Thanks @Alix-007.
  • PR #108054
  • PR #106994 Related #106870.
  • PR #108057 Related #108055.
  • PR #108047
  • PR #108067
  • PR #108032
  • PR #108058
  • PR #103369 Thanks @Alix-007.
  • PR #108076
  • PR #108042 Related #106556, #106778. Thanks @nocode-ananas and @sebastian-openclaw.
  • PR #108062 Related #108027, #108028.
  • PR #108015 Thanks @RomneyDa.
  • PR #107863 Related #107526. Thanks @ZengWen-DT and @aniruddhaadak80.
  • PR #108078
  • PR #104430 Thanks @yetval.
  • PR #108034
  • PR #108099
  • PR #108095
  • PR #107404 Thanks @IWhatsskill.
  • PR #108093
  • PR #107717 Thanks @Leon-SK668.
  • PR #108096
  • PR #108090
  • PR #107638 Thanks @sunlit-deng.
  • PR #108111
  • PR #105381 Related #105380. Thanks @edenfunf.
  • PR #108108
  • PR #92294 Thanks @yetval.
  • PR #108112
  • PR #108118
  • PR #108113
  • PR #108035
  • PR #108125
  • PR #108105 Related #95597, #97913, #99268, #106277. Thanks @viernesmybot and @100yenadmin and @obviyus and @xudonggang123.
  • PR #108132
  • PR #108123 Related #108097, #108098.
  • PR #108139
  • PR #108121
  • PR #108100 Related #107290. Thanks @woohahahaaa.
  • PR #108129
  • PR #108009 Thanks @miorbnli.
  • PR #107719 Thanks @Leon-SK668.
  • PR #108101 Thanks @Leon-SK668.
  • PR #108091
  • PR #108094 Thanks @QiuYuang.
  • PR #107478 Thanks @wangmiao0668000666.
  • PR #106926 Thanks @mushuiyu886 and @wangmiao0668000666.
  • PR #108150
  • PR #103589 Thanks @RomneyDa.
  • PR #108138
  • PR #108115
  • PR #108122 Thanks @yetval.
  • PR #108159 Thanks @hannesrudolph.
  • PR #108162
  • PR #108137
  • PR #108170
  • PR #108158 Thanks @RomneyDa.
  • PR #108146
  • PR #103604 Thanks @RomneyDa.
  • PR #108081
  • PR #108169
  • PR #108171
  • PR #108179
  • PR #108173
  • PR #108147 Related #102930. Thanks @yungchentang and @aniruddhaadak80.
  • PR #108074
  • PR #107903
  • PR #108145 Thanks @ZengWen-DT.
  • PR #108019 Thanks @mushuiyu886.
  • PR #108191
  • PR #108102 Thanks @Leon-SK668.
  • PR #108151 Thanks @mushuiyu886.
  • PR #108181
  • PR #108201
  • PR #107986 Thanks @obviyus.
  • PR #108203
  • PR #108219
  • PR #108202
  • PR #108221
  • PR #108210
  • PR #108223
  • PR #108130 Thanks @qingminglong.
  • PR #108227
  • PR #108205
  • PR #108234
  • PR #108228
  • PR #108248
  • PR #108207
  • PR #108214
  • PR #108164 Thanks @Alix-007.
  • PR #108239
  • PR #108243
  • PR #108240 Thanks @Leon-SK668.
  • PR #108153
  • PR #86386 Related #48949. Thanks @larry-xue and @AndrzejXIAO.
  • PR #97827 Related #95109. Thanks @VACInc and @kzzalews.
  • PR #105780 Related #105787. Thanks @morluto.
  • PR #108260
  • PR #107442
  • PR #95729 Thanks @Pick-cat and @altaywtf.
  • PR #108259
  • PR #108254 Related #96815, #100556, #106375. Thanks @xxw77 and @CryptoKylan and @ximanuki.
  • PR #108264 Thanks @obviyus.
  • PR #108261
  • PR #108266
  • PR #108275
  • PR #108189 Thanks @RomneyDa.
  • PR #108282
  • PR #108279 Thanks @RomneyDa.
  • PR #108271 Thanks @shakkernerd.
  • PR #108285
  • PR #97224 Thanks @marchpure.
  • PR #108295
  • PR #102903 Thanks @chengzhichao-xydt.
  • PR #108230 Thanks @QiuYuang.
  • PR #108309
  • PR #108308
  • PR #103582 Related #103551. Thanks @lin-hongkuan and @obviyus.
  • PR #107731 Related #107425. Thanks @wuqxuan and @Countermarch.
  • PR #108290 Related #108289.
  • PR #108301
  • PR #108296 Thanks @RomneyDa.
  • PR #108317
  • PR #108325
  • PR #108311 Related #106719, #107305. Thanks @aniruddhaadak80 and @Kenmege.
  • PR #108247
  • PR #108110 Related #107933. Thanks @Last-emo-boy.
  • PR #108334
  • PR #108332 Thanks @shakkernerd.
  • PR #108338
  • PR #108336 Related #107219, #107226, #107842. Thanks @marius-stauchner and @Marvinthebored and @Kian-Thomas-West.
  • PR #108347
  • PR #107802 Related #107746. Thanks @jincheng-xydt and @kostrse.
  • PR #108340
  • PR #108354 Related #98348, #107172, #107497. Thanks @billcshi and @collinsman and @aniruddhaadak80.
  • PR #106803 Thanks @IWhatsskill.
  • PR #107574 Thanks @IWhatsskill.
  • PR #108199 Thanks @IWhatsskill.
  • PR #108307 Thanks @IWhatsskill.
  • PR #108363
  • PR #108346 Related #108318.
  • PR #106538 Thanks @Pick-cat.
  • PR #108376
  • PR #103116 Thanks @Leon-SK668.
  • PR #104968 Thanks @wings1029.
  • PR #108371
  • PR #108212 Related #108186. Thanks @lsr911 and @ooiuuii.
  • PR #108390
  • PR #108157 Thanks @Alix-007.
  • PR #108381 Related #108366.
  • PR #104966 Thanks @wings1029.
  • PR #108343 Thanks @RomneyDa.
  • PR #108380
  • PR #89745 Related #89709. Thanks @TurboTheTurtle and @syfvb.
  • PR #108375 Related #108288.
  • PR #108400
  • PR #105089 Thanks @zw-xysk.
  • PR #108377
  • PR #108385
  • PR #105556 Thanks @zw-xysk.
  • PR #108410
  • PR #108415
  • PR #108414
  • PR #108398 Related #107962, #107964.
  • PR #108417
  • PR #106497 Thanks @hugenshen and @Solvely-Colin.
  • PR #102698 Thanks @zhangguiping-xydt and @RomneyDa.
  • PR #104663 Thanks @Alix-007.
  • PR #108437
  • PR #108426
  • PR #108416
  • PR #108024
  • PR #103294 Related #108399. Thanks @xydt-tanshanshan.
  • PR #108430 Thanks @RomneyDa.
  • PR #108418 Thanks @RomneyDa.
  • PR #108450
  • PR #108420
  • PR #108451
  • PR #108429 Thanks @RomneyDa.
  • PR #108454
  • PR #108424
  • PR #108448
  • PR #108458
  • PR #108457 Related #108445.
  • PR #108433 Thanks @joshavant.
  • PR #108468
  • PR #108463 Thanks @RomneyDa.
  • PR #108467 Thanks @RomneyDa.
  • PR #108472
  • PR #108476
  • PR #108434 Related #108431. Thanks @joshavant.
  • PR #108481
  • PR #108386
  • PR #108478
  • PR #108479 Thanks @RomneyDa.
  • PR #108484
  • PR #108253 Thanks @sunlit-deng.
  • PR #108422
  • PR #108480
  • PR #108483
  • PR #108365 Thanks @zhangguiping-xydt.
  • PR #108127 Thanks @sunlit-deng.
  • PR #108492
  • PR #108493
  • PR #108497
  • PR #108487 Related #106961. Thanks @joshavant and @bruhsh.
  • PR #104585 Thanks @hugenshen.
  • PR #108500
  • PR #108503
  • PR #108464 Thanks @RomneyDa.
  • PR #108419
  • PR #108160 Thanks @qingminglong.
  • PR #105793 Thanks @morluto.
  • PR #108515
  • PR #107230 Related #107225. Thanks @edenfunf.
  • PR #105549 Thanks @hugenshen.
  • PR #108465 Thanks @RomneyDa.
  • PR #108516
  • PR #108204 Thanks @zhangguiping-xydt.
  • PR #108521
  • PR #108523
  • PR #108510 Related #108507.
  • PR #108504
  • PR #108513
  • PR #105553 Thanks @hugenshen.
  • PR #106515 Related #106512. Thanks @edenfunf.
  • PR #108512 Thanks @yyj-xydt.
  • PR #108538
  • PR #104836 Thanks @Alix-007.
  • PR #108518 Thanks @zhangguiping-xydt and @SunnyShu0925.
  • PR #108547
  • PR #108268 Thanks @mushuiyu886.
  • PR #108163 Thanks @Alix-007.
  • PR #108258 Related #108250. Thanks @goutamadwant and @j7l9.
  • PR #108499
  • PR #108531 Thanks @RomneyDa.
  • PR #108539 Thanks @RomneyDa.
  • PR #108564
  • PR #108563
  • PR #108589
  • PR #108423 Related #103636. Thanks @joshavant and @andududu.
  • PR #108583
  • PR #108594
  • PR #107367 Related #107363. Thanks @edenfunf.
  • PR #108603 Related #108595.
  • PR #108609
  • PR #108612
  • PR #108611
  • PR #108617 Thanks @fuller-stack-dev.
  • PR #108508 Related #107933.
  • PR #108620 Related #108610.
  • PR #108597
  • PR #108615 Related #108600.
  • PR #108626 Related #99270, #105184, #107447. Thanks @obviyus and @sgh6688 and @compoodment.
  • PR #108505
  • PR #108628 Related #108595.
  • PR #108627 Related #108608.
  • PR #108633
  • PR #108394 Thanks @keshavbotagent and @obviyus.
  • PR #106412 Thanks @zenglingbiao.
  • PR #108165 Thanks @Alix-007.
  • PR #108592
  • PR #108161 Thanks @Alix-007.
  • PR #108292 Thanks @qingminglong.
  • PR #107883 Thanks @wahaha1223.
  • PR #108551 Related #108550. Thanks @moguangyu5-design.
  • PR #108641
  • PR #108166 Thanks @Alix-007.
  • PR #108403 Thanks @SunnyShu0925.
  • PR #108638
  • PR #108546 Thanks @krissding.
  • PR #108064 Thanks @Alix-007.
  • PR #108605 Related #108604.
  • PR #108065 Thanks @Alix-007.
  • PR #108063 Thanks @Alix-007.
  • PR #108606 Thanks @Alix-007.
  • PR #108648
  • PR #108616 Thanks @Alix-007.
  • PR #108621 Thanks @Alix-007.
  • PR #108283
  • PR #108619 Thanks @Alix-007.
  • PR #106396 Thanks @Alix-007.
  • PR #105893 Thanks @Alix-007.
  • PR #106100 Related #105433. Thanks @MoerAI and @aniruddhaadak80.
  • PR #108575 Thanks @RomneyDa.
  • PR #108537 Thanks @RomneyDa.
  • PR #108679 Related #108659.
  • PR #108652 Related #107220. Thanks @liewjiajun.
  • PR #108674
  • PR #108630 Related #108511. Thanks @zhangguiping-xydt and @snotty.
  • PR #106398 Thanks @Alix-007.
  • PR #108405 Thanks @IWhatsskill.
  • PR #108634 Thanks @joshavant.
  • PR #108103 Thanks @Leon-SK668.
  • PR #108636 Related #108598. Thanks @hosanxiv and @lamkan0210.
  • PR #108197 Related #108196. Thanks @xianshishan.
  • PR #108167
  • PR #107619 Thanks @Pick-cat.
  • PR #108455 Related #107415. Thanks @harjothkhara and @rodja.
  • PR #108669 Thanks @fuller-stack-dev.
  • PR #104841 Thanks @Alix-007.
  • PR #107325 Thanks @maweibin.
  • PR #98143 Related #97521. Thanks @Pick-cat and @wangmiao0668000666.
  • PR #107720 Thanks @Leon-SK668.
  • PR #107346 Thanks @ZengWen-DT.
  • PR #108717
  • PR #108715
  • PR #108661 Related #107224. Thanks @foxrainhy.
  • PR #108643
  • PR #108680 Related #104977. Thanks @yetval.
  • PR #104288 Thanks @Alix-007.
  • PR #106850 Related #106824. Thanks @wuqxuan and @yetval.
  • PR #104835 Thanks @Alix-007.
  • PR #108696
  • PR #108721
  • PR #108668 Related #106920. Thanks @zyc-sudo.
  • PR #95010 Thanks @zats.
  • PR #106393 Thanks @zenglingbiao.
  • PR #108697 Related #104721. Thanks @amknight and @SunnyShu0925 and @dennisd-hub.
  • PR #108646
  • PR #107751 Related #107416. Thanks @wsyjh8 and @pipe-gale01.
  • PR #95480 Related #89231. Thanks @mikasa0818 and @CameronWeller.
  • PR #104580 Thanks @hugenshen.
  • PR #108728
  • PR #108651
  • PR #108440
  • PR #108682 Related #108428. Thanks @yetval.
  • PR #106036 Thanks @Alix-007.
  • PR #108714 Related #108244. Thanks @Jeehut.
  • PR #108736
  • PR #106385 Thanks @zenglingbiao and @wendy-chsy.
  • PR #107847 Related #107846. Thanks @ooiuuii.
  • PR #108649 Related #107224. Thanks @foxrainhy.
  • PR #108672 Thanks @Alix-007.
  • PR #107610 Thanks @hugenshen.
  • PR #108745
  • PR #108650 Thanks @Alix-007.
  • PR #108602 Thanks @RomneyDa.
  • PR #108360 Related #107449. Thanks @lee-xydt and @Patt92.
  • PR #105240 Thanks @zhangguiping-xydt and @Solvely-Colin.
  • PR #108725
  • PR #106456 Thanks @Pick-cat.
  • PR #106416 Related #106408. Thanks @baanish.
  • PR #107644 Related #107579. Thanks @yu-xin-c and @oc-jarvis.
  • PR #105263 Related #105187. Thanks @NianJiuZst and @aniruddhaadak80.
  • PR #108752
  • PR #108739
  • PR #108694
  • PR #108756 Related #108753.
  • PR #108750
  • PR #106376 Related #105523. Thanks @xialonglee and @Evgeniy-Rodin.
  • PR #108330 Thanks @Pick-cat.
  • PR #107735 Related #102206. Thanks @joshavant and @solavrc.
  • PR #108678 Related #107682. Thanks @yetval.
  • PR #108241 Thanks @NianJiuZst.
  • PR #106485 Thanks @hugenshen.
  • PR #108502 Related #108501. Thanks @masatohoshino.
  • PR #108768
  • PR #108685 Thanks @Alix-007.
  • PR #108775
  • PR #108700 Thanks @Alix-007.
  • PR #108663
  • PR #108763
  • PR #108744 Related #108286. Thanks @jamiezigelbaum.
  • PR #108780
  • PR #108778
  • PR #93293 Related #84139. Thanks @mushuiyu886 and @MarkMa84.
  • PR #108772
  • PR #108765
  • PR #108351 Related #96163. Thanks @edenfunf and @tancolo.
  • PR #105978 Thanks @zw-xysk.
  • PR #108743 Thanks @Alix-007.
  • PR #108770
  • PR #108760
  • PR #106541 Thanks @Pick-cat and @cursoragent.
  • PR #108683 Related #95131, #105445, #107262. Thanks @a-m-a-r-a and @laurenceputra and @ndj888.
  • PR #108701 Thanks @Alix-007.
  • PR #106407 Thanks @zenglingbiao.
  • PR #108699 Thanks @Alix-007.
  • PR #108698 Thanks @Alix-007.
  • PR #108543 Related #108535.
  • PR #96267 Thanks @snowzlmbot.
  • PR #108766 Thanks @Alix-007.
  • PR #108785
  • PR #108755 Thanks @Alix-007.
  • PR #107691 Related #107467. Thanks @LeonidasLux and @Valkster70.
  • PR #108787
  • PR #108548 Thanks @VectorPeak.
  • PR #108741 Thanks @Alix-007.
  • PR #108667 Thanks @RileyJJY.
  • PR #105544 Thanks @abnershang.
  • PR #108718 Thanks @Alix-007.
  • PR #108576 Thanks @zhangguiping-xydt.
  • PR #108723 Thanks @Alix-007.
  • PR #106864 Related #106863. Thanks @LeC-D.
  • PR #108584 Related #107628. Thanks @joshavant and @ostehost.
  • PR #108758
  • PR #108735
  • PR #108853
  • PR #108857
  • PR #108596 Thanks @wahaha1223.
  • PR #108578 Related #108571. Thanks @zhanxingxin1998.
  • PR #108875
  • PR #108791 Thanks @Alix-007.
  • PR #108807
  • PR #108870
  • PR #108561 Thanks @wangmiao0668000666.
  • PR #108879
  • PR #108886
  • PR #108805 Thanks @Alix-007.
  • PR #105301 Thanks @hugenshen.
  • PR #108556 Related #108524. Thanks @arkyu2077 and @JasmineZhangHM and @yetval.
  • PR #95722 Thanks @Pick-cat.
  • PR #108798
  • PR #108655 Thanks @Monkey-wusky.
  • PR #105724 Related #104806. Thanks @algal.
  • PR #108838
  • PR #108810 Thanks @Alix-007.
  • PR #108730 Related #108427. Thanks @mushuiyu886 and @yetval.
  • PR #108657 Thanks @yyj-xydt.
  • PR #107979 Thanks @fuller-stack-dev.
  • PR #107813 Thanks @wuqxuan.
  • PR #103799 Related #103590. Thanks @lonexreb and @MoChouBlog.
  • PR #106799 Thanks @henkterharmsel.
  • PR #101730 Thanks @zhangguiping-xydt.
  • PR #108871 Related #108786, #108824.
  • PR #108348 Thanks @hugenshen.
  • PR #108880
  • PR #108637 Related #108447. Thanks @hosanxiv and @yuso-agent-it-hal.
  • PR #108788
  • PR #108114 Thanks @0xghost42.
  • PR #106638 Related #106637. Thanks @edenfunf.
  • PR #108855
  • PR #107734 Related #107732. Thanks @edenfunf.
  • PR #108804 Thanks @Alix-007.
  • PR #108684 Thanks @Alix-007.
  • PR #108894 Thanks @Alix-007.
  • PR #108397 Thanks @yetval.
  • PR #108797
  • PR #108734 Related #108277. Thanks @ZengWen-DT and @chenyanchen.
  • PR #108350 Related #107341. Thanks @ianalloway and @danieljimz.
  • PR #108873 Thanks @Alix-007.
  • PR #108579 Related #108572. Thanks @zhanxingxin1998.
  • PR #108545 Thanks @zhangguiping-xydt.
  • PR #108913
  • PR #108779 Related #107591. Thanks @dagmarjeeves-lab.
  • PR #108364 Thanks @qingminglong.
  • PR #108910
  • PR #108914
  • PR #104989 Thanks @yetval.
  • PR #108917
  • PR #108761 Thanks @ZengWen-DT.
  • PR #108903
  • PR #107480 Thanks @zhangguiping-xydt.
  • PR #108895 Thanks @Alix-007.
  • PR #108670 Thanks @Alix-007.
  • PR #108911 Thanks @Alix-007.
  • PR #108887 Related #108362. Thanks @buhrclaw.
  • PR #108577 Related #108570. Thanks @zhanxingxin1998.
  • PR #108485 Thanks @VACInc.
  • PR #108868
  • PR #108926 Related #108432. Thanks @jincheng-xydt and @bluedepth.
  • PR #108929
  • PR #108932
  • PR #108355 Thanks @qingminglong.
  • PR #108930
  • PR #107657 Related #107434. Thanks @ZengWen-DT and @FayAndXan.
  • PR #108938
  • PR #108935 Related #104413. Thanks @ObliviateRickLin and @gustav-bliss.
  • PR #108942
  • PR #108941
  • PR #108072 Thanks @sunlit-deng.
  • PR #108321 Thanks @wahaha1223.
  • PR #108757 Thanks @sunlit-deng.
  • PR #108706 Thanks @krissding.
  • PR #108927
  • PR #108950 Thanks @Pick-cat.
  • PR #108947
  • PR #108726 Related #107917. Thanks @ZengWen-DT and @geekforlife.
  • PR #108921
  • PR #108815 Thanks @mushuiyu886.
  • PR #108771 Thanks @Alix-007.
  • PR #108889
  • PR #108964
  • PR #108960
  • PR #108949
  • PR #108298 Thanks @xydt-juyaohui.
  • PR #108218 Thanks @qingminglong.
  • PR #108567 Thanks @VectorPeak.
  • PR #104495 Related #103954. Thanks @destire-mio and @casper-bot-wodinga.
  • PR #106453 Thanks @ZOOWH.
  • PR #108558 Thanks @lsr911.
  • PR #108622 Related #82281. Thanks @lonexreb and @bolovinclaw.
  • PR #108368 Thanks @hugenshen.
  • PR #106421 Thanks @ZOOWH.
  • PR #108276 Thanks @chengzhichao-xydt.
  • PR #108369 Thanks @SunnyShu0925.
  • PR #108759 Related #108255. Thanks @LZY3538 and @gorkem2020.
  • PR #108983
  • PR #108382 Thanks @xydigitLybnnnn.
  • PR #108937 Thanks @Alix-007.
  • PR #108777 Thanks @sunlit-deng.
  • PR #108990
  • PR #108449 Thanks @Yehonal.
  • PR #108966 Related #97180, #104779, #108517. Thanks @inemtsev and @belfortfilho.
  • PR #108335 Thanks @mushuiyu886.
  • PR #108339 Related #107708. Thanks @wangyan2026 and @NossieUK.
  • PR #108737
  • PR #108396 Thanks @SunnyShu0925.
  • PR #108281 Thanks @Canvinus.
  • PR #108992 Thanks @Alix-007.
  • PR #108783 Thanks @lsr911.
  • PR #108790 Thanks @Sedrak-Hovhannisyan.
  • PR #106399 Thanks @ly85206559.
  • PR #108972 Thanks @Alix-007.
  • PR #109013
  • PR #108834 Related #107916. Thanks @geekforlife.
  • PR #107327 Related #107292. Thanks @SymbolStar and @delimir.
  • PR #108800 Thanks @lsr911.
  • PR #108991 Related #108632.
  • PR #109022
  • PR #108751 Related #108152. Thanks @LavyaTandel and @CarelvanHeerden.
  • PR #106400 Thanks @ly85206559.
  • PR #108392 Related #103802. Thanks @ekinnee and @sazora.
  • PR #108401 Thanks @yetval.
  • PR #109051
  • PR #109028
  • PR #107323 Related #107255. Thanks @paulpitchford.
  • PR #108689 Related #107856. Thanks @destire-mio and @Igallta.
  • PR #108825
  • PR #108708 Related #108665.
  • PR #108833
  • PR #108863
  • PR #108940 Thanks @zhangguiping-xydt and @wanyongstar.
  • PR #108922 Thanks @wahaha1223.
  • PR #108877
  • PR #108023 Related #108021. Thanks @ooiuuii.
  • PR #108928 Thanks @ZengWen-DT.
  • PR #108050 Related #108049. Thanks @ooiuuii.
  • PR #103829 Related #103773. Thanks @lonexreb and @mlyon-web.
  • PR #109083
  • PR #108948 Thanks @wahaha1223.
  • PR #108806 Thanks @RileyJJY.
  • PR #108973 Thanks @Alix-007.
  • PR #109110
  • PR #108209 Thanks @ZengWen-DT.
  • PR #109102
  • PR #109119 Related #109105.
  • PR #108156 Thanks @qingminglong.
  • PR #108826 Thanks @zenglingbiao.
  • PR #108848 Thanks @wahaha1223.
  • PR #108816 Thanks @sunlit-deng.
  • PR #109141
  • PR #108813 Thanks @zhangguiping-xydt.
  • PR #108840 Thanks @wings1029.
  • PR #109117
  • PR #109075 Related #108664. Thanks @chac4l.
  • PR #108866
  • PR #109142 Related #109099.
  • PR #108900
  • PR #109090
  • PR #109107 Thanks @Alix-007.
  • PR #108742
  • PR #109127 Thanks @Alix-007.
  • PR #108828
  • PR #109162 Thanks @shakkernerd.
  • PR #109118
  • PR #109154
  • PR #108832 Thanks @zenglingbiao.
  • PR #108408 Thanks @wangmiao0668000666.
  • PR #104431
  • PR #109166
  • PR #109115 Thanks @Alix-007.
  • PR #108817
  • PR #109005
  • PR #108882
  • PR #106545 Thanks @mmaps and @pgondhi987.
  • PR #109157
  • PR #108675
  • PR #109188
  • PR #108252 Thanks @wahaha1223.
  • PR #109181
  • PR #108784 Thanks @RomneyDa.
  • PR #109182
  • PR #109195
  • PR #109144
  • PR #109192
  • PR #108862 Thanks @wings1029.
  • PR #108904 Related #107917. Thanks @geekforlife.
  • PR #108618 Thanks @Monkey-wusky.
  • PR #109201
  • PR #108709
  • PR #109184
  • PR #108823 Thanks @Leon-SK668.
  • PR #106370 Thanks @Monkey-wusky.
  • PR #98644 Thanks @ZengWen-DT and @Monkey-wusky.
  • PR #102470 Thanks @zw-xysk and @Monkey-wusky.
  • PR #101728 Thanks @wings1029 and @Monkey-wusky.
  • PR #109169
  • PR #109140
  • PR #108827 Related #108587. Thanks @NianJiuZst and @andrea-kingautomation.
  • PR #109211
  • PR #109146 Thanks @Alix-007.
  • PR #108977
  • PR #109229
  • PR #108835 Thanks @sibbl.
  • PR #108710 Thanks @bladin.
  • PR #109223
  • PR #109238
  • PR #109147
  • PR #109052 Thanks @Pick-cat and @cursoragent.
  • PR #109222
  • PR #108776
  • PR #106840 Related #106839. Thanks @bill-starfoundry.
  • PR #109151
  • PR #109056 Thanks @sallyom.
  • PR #109242
  • PR #108856 Thanks @wings1029.
  • PR #109244
  • PR #109226
  • PR #109252
  • PR #109183
  • PR #109255
  • PR #109248
  • PR #105086 Thanks @xydigit-zt.
  • PR #109257 Thanks @RomneyDa.
  • PR #109246 Thanks @RomneyDa.
  • PR #108858 Thanks @wings1029.
  • PR #108801 Related #104377. Thanks @DaigoSoup and @Inhum.
  • PR #109236
  • PR #108897 Thanks @tzy-17.
  • PR #109259
  • PR #109271
  • PR #109260
  • PR #109266
  • PR #109064 Thanks @Alix-007.
  • PR #109273 Thanks @shakkernerd.
  • PR #108898 Thanks @tzy-17.
  • PR #109202 Thanks @NianJiuZst.
  • PR #109272 Thanks @RomneyDa.
  • PR #108353 Related #108349. Thanks @MohandesD.
  • PR #108955 Thanks @RileyJJY and @lilikobe.
  • PR #109289
  • PR #109164 Thanks @wangmiao0668000666.
  • PR #109298
  • PR #109296
  • PR #94697 Related #76259. Thanks @xydigit-zt and @GulfStreamOutdoors.
  • PR #109297 Thanks @RomneyDa.
  • PR #109239 Thanks @Alix-007.
  • PR #109194
  • PR #109281 Related #109280.
  • PR #109232 Thanks @mushuiyu886.
  • PR #109160
  • PR #109000 Thanks @wangmiao0668000666.
  • PR #109284
  • PR #101746 Thanks @wings1029.
  • PR #101696 Thanks @sunlit-deng.
  • PR #109279 Related #109277.
  • PR #109314
  • PR #109322
  • PR #109108 Thanks @zhangguiping-xydt.
  • PR #109150
  • PR #109267 Thanks @RomneyDa.
  • PR #109318
  • PR #109243 Thanks @mushuiyu886 and @xydt-juyaohui.
  • PR #103781 Thanks @xydigit-zt.
  • PR #109320
  • PR #109326
  • PR #109290 Related #109288.
  • PR #109215 Thanks @mushuiyu886.
  • PR #109323
  • PR #108830 Thanks @Leon-SK668.
  • PR #106496 Thanks @hugenshen.
  • PR #109332
  • PR #106077 Thanks @tzy-17.
  • PR #109335 Related #109334.
  • PR #109007 Thanks @zhangguiping-xydt.
  • PR #109315 Thanks @RomneyDa.
  • PR #109333
  • PR #105017 Thanks @tzy-17.
  • PR #109339 Thanks @RomneyDa.
  • PR #109311
  • PR #108851
  • PR #109338
  • PR #101268 Thanks @Pick-cat.
  • PR #109330
  • PR #109149 Thanks @RileyJJY.
  • PR #109342
  • PR #109343
  • PR #109309
  • PR #109317
  • PR #109366 Thanks @shakkernerd.
  • PR #109336
  • PR #109348
  • PR #109324 Related #109321. Thanks @krissding and @JunnanZ.
  • PR #109358
  • PR #109206 Thanks @ZengWen-DT.
  • PR #109372 Thanks @RomneyDa.
  • PR #109205 Thanks @ZengWen-DT.
  • PR #109373
  • PR #109369
  • PR #109354
  • PR #99504 Related #99470. Thanks @maweibin and @Veda-openclaw.
  • PR #109345
  • PR #109383
  • PR #109371
  • PR #109377 Thanks @RomneyDa.
  • PR #109179 Thanks @wahaha1223.
  • PR #109344
  • PR #109196 Thanks @zhangguiping-xydt and @Monkey-wusky.
  • PR #109398 Thanks @shakkernerd.
  • PR #109319 Thanks @Alix-007.
  • PR #109253 Thanks @Alix-007.
  • PR #109346
  • PR #88919 Thanks @plexustech2006.
  • PR #109341 Thanks @sibbl.
  • PR #109220 Thanks @zw-xysk and @SunnyShu0925.
  • PR #109241 Thanks @Alix-007.
  • PR #109328
  • PR #109410
  • PR #109347
  • PR #98251 Related #98250. Thanks @ooiuuii.
  • PR #101792 Thanks @100yenadmin.
  • PR #109199 Thanks @mushuiyu886.
  • PR #109207 Thanks @mushuiyu886.
  • PR #109426
  • PR #109429 Thanks @shakkernerd.
  • PR #109287 Related #109219. Thanks @ZengWen-DT and @devodriqroberts.
  • PR #109430
  • PR #109380
  • PR #109071 Thanks @zhangguiping-xydt.
  • PR #109254
  • PR #109294 Thanks @pacoa-kdbg.
  • PR #109167 Thanks @qingminglong.
  • PR #109359
  • PR #108829 Thanks @iloveleon19 and @dodoma0919.
  • PR #107825 Related #107823. Thanks @ooiuuii.
  • PR #109438
  • PR #109374
  • PR #109425
  • PR #108953 Thanks @sunlit-deng.
  • PR #108764
  • PR #109250
  • PR #90799 Related #99131. Thanks @wangwllu and @shakkernerd and @jwest75674.
  • PR #103323 Thanks @NianJiuZst.
  • PR #108184 Thanks @Leon-SK668.
  • PR #99396 Related #99395. Thanks @smthfoxy.
  • PR #98236 Thanks @jalehman and @smthfoxy.
  • PR #109457
  • PR #109413
  • PR #108193 Thanks @Leon-SK668.
  • PR #109365
  • PR #108208 Thanks @Leon-SK668.
  • PR #109475
  • PR #109466
  • PR #109445
  • PR #108120 Thanks @ZengWen-DT.
  • PR #109480
  • PR #108172 Thanks @Leon-SK668.
  • PR #101354 Thanks @100yenadmin.
  • PR #105217 Thanks @qingminlong.
  • PR #104840 Thanks @zhangguiping-xydt.
  • PR #109489
  • PR #105158 Thanks @mushuiyu886.
  • PR #109331
  • PR #100237 Related #100235. Thanks @ooiuuii.
  • PR #105105 Thanks @qingminlong.
  • PR #109258
  • PR #98022 Thanks @ooiuuii.
  • PR #109507
  • PR #109393
  • PR #109481 Thanks @Leon-SK668.
  • PR #109505
  • PR #109444
  • PR #109469 Thanks @Leon-SK668.
  • PR #109513
  • PR #109454 Thanks @wings1029.
  • PR #109517
  • PR #109453 Thanks @wings1029.
  • PR #109212
  • PR #109530
  • PR #109546
  • PR #109553
  • PR #109422
  • PR #109560
  • PR #109539
  • PR #101752 Related #88353. Thanks @zhangguiping-xydt and @100yenadmin.
  • PR #109541
  • PR #96250 Related #96203. Thanks @xydt-tanshanshan and @roybelen.
  • PR #95852 Related #95780. Thanks @yetval and @jpplaisted.
  • PR #101826 Thanks @100yenadmin.
  • PR #90779 Related #90296. Thanks @joelnishanth and @cursoragent and @jerrywang241220-create.
  • PR #109586
  • PR #109418 Thanks @Patrick-Erichsen.
  • PR #101748 Related #101172. Thanks @PollyBot13.
  • PR #109510 Thanks @Patrick-Erichsen.
  • PR #109614
  • PR #109605
  • PR #109596
  • PR #109548
  • PR #109557
  • PR #109587
  • PR #109575
  • PR #109441
  • PR #109433 Related #108781. Thanks @IWhatsskill.
  • PR #106526 Related #104854. Thanks @ekinnee.
  • PR #109485 Thanks @wahaha1223.
  • PR #109592 Thanks @ZengWen-DT.
  • PR #92011 Related #92271. Thanks @MertBasar0.
  • PR #101265 Related #101204. Thanks @snowzlmbot.
  • PR #109591 Thanks @ZengWen-DT.
  • PR #97492 Related #97489. Thanks @LZY3538 and @shadow-enthusiast.
  • PR #109625
  • PR #109631
  • PR #109589 Thanks @ZengWen-DT.
  • PR #109629 Thanks @Patrick-Erichsen.
  • PR #109590 Thanks @krissding.
  • PR #109579 Related #86425. Thanks @shushushv.
  • PR #109497
  • PR #109628
  • PR #69707 Thanks @badgerbees.
  • PR #109363
  • PR #109362
  • PR #98422 Related #98419. Thanks @ooiuuii.
  • PR #109612 Related #109405. Thanks @wuqxuan and @NOVA-Openclaw.
  • PR #108924 Related #108656. Thanks @obviyus.
  • PR #109610 Thanks @zhangguiping-xydt.
  • PR #109635
  • PR #109630
  • PR #109361
  • PR #109640
  • PR #109648
  • PR #109593
  • PR #109519 Thanks @Monkey-wusky.
  • PR #109464 Thanks @wahaha1223.
  • PR #109627 Related #101148. Thanks @100yenadmin.
  • PR #109403 Thanks @ekinnee.
  • PR #70737 Related #67397, #68972, #69811. Thanks @Patrick-Erichsen and @ekinnee and @MSCHKY and @raydoomed and @akessel56.
  • PR #109636
  • PR #109442 Thanks @wahaha1223.
  • PR #109386
  • PR #109633
  • PR #109540 Thanks @ZengWen-DT.
  • PR #109655 Thanks @NianJiuZst.
  • PR #109585
  • PR #109653
  • PR #109663
  • PR #109233 Thanks @yetval.
  • PR #97233 Thanks @marchpure.
  • PR #109008 Thanks @YangManBOBO.
  • PR #109576 Thanks @LZY3538.
  • PR #109494 Thanks @Alix-007.
  • PR #109477 Thanks @Leon-SK668.
  • PR #109671
  • PR #109665
  • PR #109660
  • PR #109624
  • PR #109666
  • PR #109468 Thanks @Leon-SK668.
  • PR #108985 Related #108466. Thanks @aspalagin and @consoleaf.
  • PR #109686
  • PR #109168 Thanks @qingminglong.
  • PR #109394 Thanks @Pick-cat.
  • PR #109508 Thanks @Monkey-wusky.
  • PR #109689
  • PR #109651
  • PR #109696
  • PR #109683
  • PR #109237 Thanks @yetval.
  • PR #108969 Related #108968. Thanks @masatohoshino.
  • PR #109615 Thanks @Yigtwxx.
  • PR #109706
  • PR #109525 Thanks @Monkey-wusky.
  • PR #109089 Thanks @xydigit-zt.
  • PR #109476 Thanks @mushuiyu886.
  • PR #77158 Thanks @zeroaltitude.
  • PR #109695
  • PR #109714
  • PR #109685
  • PR #109417 Thanks @ZengWen-DT and @wahaha1223.
  • PR #109687
  • PR #109694
  • PR #109688
  • PR #109722
  • PR #109719 Thanks @shushushv.
  • PR #109715
  • PR #90610 Thanks @ooiuuii.
  • PR #89491 Related #81865. Thanks @abnershang.
  • PR #109676 Related #109352. Thanks @ZengWen-DT and @andrea-kingautomation.
  • PR #45315 Related #45314. Thanks @christopherwoodall.
  • PR #109705
  • PR #109556
  • PR #109622
  • PR #109737
  • PR #109411 Related #108666.
  • PR #109717
  • PR #109325 Thanks @Alix-007.
  • PR #109739
  • PR #109749
  • PR #108967 Related #108774. Thanks @Yigtwxx and @xiayinjin-oss.
  • PR #86900 Related #58838. Thanks @tanshanshan and @aaron-he-zhu.
  • PR #109604 Thanks @wangmiao0668000666.
  • PR #107999 Related #107998. Thanks @ooiuuii.
  • PR #109757
  • PR #109762
  • PR #109724
  • PR #77213 Related #75814. Thanks @BunsDev and @kAIborg24.
  • PR #109752
  • PR #109772
  • PR #109776
  • PR #68685 Related #68664. Thanks @Tmalone1250 and @Tam3000.
  • PR #109764
  • PR #109716 Related #109316.
  • PR #109769
  • PR #109720
  • PR #109681
  • PR #109780
  • PR #109790
  • PR #109740
  • PR #109677 Thanks @wangmiao0668000666.
  • PR #109766
  • PR #109718 Thanks @ZengWen-DT and @cursoragent.
  • PR #109801
  • PR #109701 Thanks @Monkey-wusky.
  • PR #109778 Related #95560. Thanks @Footree.
  • PR #109617 Thanks @wangmiao0668000666.
  • PR #109710 Thanks @wangmiao0668000666.
  • PR #109618 Thanks @wangmiao0668000666.
  • PR #109818
  • PR #109609 Thanks @mushuiyu886.
  • PR #109664 Thanks @ZengWen-DT.
  • PR #109674 Thanks @ZengWen-DT.
  • PR #109669 Thanks @qingminlong and @wangmiao0668000666.
  • PR #109721 Thanks @krissding.
  • PR #109702 Thanks @krissding.
  • PR #109773
  • PR #109708 Thanks @wangmiao0668000666.
  • PR #109667 Thanks @ZengWen-DT and @cursoragent.
  • PR #109698 Thanks @LZY3538.
  • PR #109803
  • PR #109750 Thanks @zhangguiping-xydt.
  • PR #109845
  • PR #109728 Thanks @Monkey-wusky.
  • PR #109863
  • PR #109804
  • PR #109826
  • PR #93559 Related #92569. Thanks @zhanxingxin1998 and @StarbloomConsultingHub.
  • PR #109755
  • PR #109731 Thanks @xydt-juyaohui.
  • PR #109873
  • PR #109690 Thanks @DaigoSoup.
  • PR #109892
  • PR #109877
  • PR #109894
  • PR #109899
  • PR #109725 Thanks @pgondhi987.
  • PR #109887 Thanks @IWhatsskill.
  • PR #109827
  • PR #109866
  • PR #109888
  • PR #109886 Related #76722. Thanks @xialonglee and @oscarhyc.
  • PR #109895
  • PR #109799
  • PR #101472 Thanks @cxbAsDev.
  • PR #109915
  • PR #109917
  • PR #109907
  • PR #109841
  • PR #98390 Related #98389. Thanks @ooiuuii.
  • PR #95368 Thanks @zats.
  • PR #109679
  • PR #109921
  • PR #109910
  • PR #109432 Thanks @mushuiyu886.
  • PR #109580 Related #109299. Thanks @wuqxuan and @pacoa-kdbg.
  • PR #89783 Thanks @GeekyMax and @heyumeng154-alt.
  • PR #109819
  • PR #109926
  • PR #109925
  • PR #109929
  • PR #109916 Thanks @krissding.
  • PR #109936
  • PR #109874
  • PR #95604 Thanks @kklouzal.
  • PR #109934
  • PR #109844 Related #109842.
  • PR #108136 Related #108133. Thanks @ooiuuii.
  • PR #109919
  • PR #109901
  • PR #109791
  • PR #92340 Related #91677. Thanks @Ren1104.
  • PR #109796
  • PR #109200 Thanks @IWhatsskill.
  • PR #99079 Related #99078. Thanks @ooiuuii.
  • PR #109964
  • PR #95838 Related #95811. Thanks @DinoMC.
  • PR #109954
  • PR #109987
  • PR #109712
  • PR #109483 Thanks @IWhatsskill.
  • PR #109876
  • PR #109905 Related #109893.
  • PR #109668
  • PR #109709
  • PR #109999
  • PR #110000
  • PR #79882 Thanks @shebson.
  • PR #109751
  • PR #110012
  • PR #110013
  • PR #109977
  • PR #109813
  • PR #110041
  • PR #96230 Thanks @zhangguiping-xydt and @hxy91819.
  • PR #110042
  • PR #110030 Related #109838.
  • PR #109995
  • PR #110019
  • PR #110062
  • PR #110029 Related #110018.
  • PR #109966
  • PR #110076
  • PR #109805 Thanks @wangmiao0668000666.
  • PR #109914 Thanks @IWhatsskill.
  • PR #110078
  • PR #110014
  • PR #93833 Related #93781. Thanks @zhangguiping-xydt and @BSG2000.
  • PR #109828 Thanks @Yigtwxx.
  • PR #109810
  • PR #109682 Thanks @YangManBOBO.
  • PR #109947
  • PR #99287 Related #99269. Thanks @ooiuuii and @obviyus.
  • PR #109743 Thanks @tzy-17 and @Patrick-Erichsen.
  • PR #109952
  • PR #110054
  • PR #110088
  • PR #106942 Thanks @ZengWen-DT and @cursoragent.
  • PR #110106
  • PR #110135
  • PR #104967 Thanks @qingminglong.
  • PR #109399 Thanks @RomneyDa.
  • PR #109564 Thanks @RomneyDa.
  • PR #110100 Related #110070.
  • PR #106365 Thanks @xialonglee.
  • PR #110127
  • PR #109355 Related #108442. Thanks @jalehman and @wrytn.
  • PR #110098
  • PR #110104
  • PR #108304 Thanks @amknight.
  • PR #110121
  • PR #109811
  • PR #109809
  • PR #109808
  • PR #109922
  • PR #110117
  • PR #110177 Related #110150.
  • PR #110161
  • PR #110133
  • PR #110116
  • PR #110169
  • PR #110193 Related #110025. Thanks @joshavant and @headbouyJB.
  • PR #110158
  • PR #110094
  • PR #110111
  • PR #110170 Thanks @zhangguiping-xydt.
  • PR #110096 Thanks @abnershang.
  • PR #108453 Related #108421. Thanks @smoe.
  • PR #110191 Related #110152. Thanks @jalehman and @MasterBailey1.
  • PR #109742 Thanks @tzy-17 and @Patrick-Erichsen.
  • PR #110141
  • PR #110089
  • PR #110105
  • PR #109837
  • PR #110159
  • PR #110205
  • PR #110090
  • PR #110107
  • PR #110173
  • PR #110092
  • PR #109857 Related #109300. Thanks @Leon-SK668 and @pacoa-kdbg.
  • PR #110083 Related #109832. Thanks @wangyan2026 and @jalehman and @jonasserry.
  • PR #110081
  • PR #110118
  • PR #110211
  • PR #110218
  • PR #110130 Thanks @IWhatsskill.
  • PR #110220 Related #110209.
  • PR #109913 Thanks @chengzhichao-xydt.
  • PR #109291 Thanks @RomneyDa.
  • PR #105108 Thanks @qingminglong.
  • PR #103513 Thanks @mikasa0818.
  • PR #110228
  • PR #105013 Thanks @qingminglong.
  • PR #110226
  • PR #105903 Related #105694. Thanks @wm0018 and @aniruddhaadak80.
  • PR #109869 Thanks @mushuiyu886.
  • PR #110200 Thanks @VACInc.
  • PR #109741 Thanks @tzy-17 and @Patrick-Erichsen.
  • PR #110196
  • PR #110233 Thanks @VACInc.
  • PR #107046 Thanks @lzw112.
  • PR #110238
  • PR #109350 Thanks @RomneyDa.
  • PR #109282 Thanks @RomneyDa.
  • PR #105477 Thanks @wings1029.
  • PR #104935 Thanks @VectorPeak.
  • PR #110172
  • PR #110246
  • PR #110241 Related #109191. Thanks @Patrick-Erichsen and @Johannes-Berggren.
  • PR #103512 Thanks @mikasa0818.
  • PR #110174
  • PR #110245
  • PR #110095
  • PR #109870 Thanks @zhangguiping-xydt.
  • PR #109817 Thanks @anagnorisis2peripeteia.
  • PR #110215
  • PR #110252
  • PR #110183
  • PR #98541 Thanks @zenglingbiao.
  • PR #98543 Thanks @zenglingbiao.
  • PR #98546 Thanks @zenglingbiao.
  • PR #108883 Thanks @zenglingbiao.
  • PR #105633 Thanks @HermanZeng.
  • PR #110242
  • PR #110255
  • PR #109955 Related #109941. Thanks @DaigoSoup and @jalehman and @thomaswillner.
  • PR #98802 Thanks @zenglingbiao.
  • PR #98667 Thanks @zenglingbiao.
  • PR #98801 Thanks @zenglingbiao.
  • PR #98795 Thanks @zenglingbiao.
  • PR #98797 Thanks @zenglingbiao.
  • PR #98670 Thanks @zenglingbiao.
  • PR #98668 Thanks @zenglingbiao.
  • PR #106386 Thanks @wangmiao0668000666.
  • PR #110272
  • PR #109173 Thanks @wanyongstar.
  • PR #109174 Thanks @wanyongstar.
  • PR #110027 Thanks @wanyongstar.
  • PR #110026 Thanks @wanyongstar.
  • PR #104209 Thanks @masatohoshino.
  • PR #110275
  • PR #103518 Thanks @maweibin.
  • PR #110274
  • PR #110264 Thanks @Patrick-Erichsen.
  • PR #109903 Thanks @ZengWen-DT and @cursoragent.
  • PR #103855 Thanks @Leon-SK668 and @Alix-007.
  • PR #110273 Thanks @Patrick-Erichsen.
  • PR #110268
  • PR #110283
  • PR #110289
  • PR #106454 Thanks @ZOOWH.
  • PR #110288
  • PR #110221
  • PR #110291
  • PR #110290
  • PR #101998 Related #101988. Thanks @LiLan0125 and @NianJiuZst and @hfgwq2dgx8-tech.
  • PR #98480 Thanks @sheyanmin.
  • PR #109794 Thanks @ZengWen-DT and @cursoragent.
  • PR #110267
  • PR #110287
  • PR #106420 Thanks @ZOOWH.
  • PR #110207 Thanks @VACInc.
  • PR #105297 Thanks @mushuiyu886.
  • PR #106027 Related #106005. Thanks @morluto.
  • PR #110259
  • PR #110248
  • PR #110167
  • PR #110311
  • PR #110310 Related #110306.
  • PR #104851 Thanks @zhangguiping-xydt.
  • PR #110254
  • PR #110298
  • PR #110223
  • PR #110312
  • PR #110269
  • PR #110314 Thanks @IWhatsskill.
  • PR #110034 Related #110033. Thanks @masatohoshino.
  • PR #110316
  • PR #110308
  • PR #110327
  • PR #110285
  • PR #110335 Related #110322.
  • PR #110317
  • PR #110295
  • PR #110239 Thanks @VACInc.
  • PR #110225
  • PR #110276
  • PR #110332
  • PR #110341
  • PR #110353
  • PR #110351 Related #102236. Thanks @yetval.
  • PR #110361
  • PR #110326
  • PR #110227
  • PR #110381 Related #96815. Thanks @xxw77.
  • PR #109621 Thanks @zhangguiping-xydt.
  • PR #109861 Related #109851. Thanks @fuller-stack-dev.
  • PR #109230 Thanks @zhangguiping-xydt.
  • PR #110357
  • PR #110271
  • PR #110409
  • PR #108909 Thanks @zhangguiping-xydt.
  • PR #110366 Related #108976. Thanks @virtt.
  • PR #110406
  • PR #109800 Thanks @Pick-cat.
  • PR #110417
  • PR #110279 Thanks @wanyongstar.
  • PR #110281 Thanks @wanyongstar.
  • PR #110413
  • PR #110418 Thanks @obviyus.
  • PR #110426 Thanks @fuller-stack-dev.
  • PR #110315 Thanks @IWhatsskill.
  • PR #110364
  • PR #110369 Related #110340.
  • PR #110391 Related #110354.
  • PR #109807 Thanks @fuller-stack-dev.
  • PR #110396
  • PR #110395
  • PR #110375
  • PR #110360 Related #110320.
  • PR #108569 Related #108550. Thanks @tzy-17 and @moguangyu5-design.
  • PR #110365
  • PR #110028 Thanks @wanyongstar.
  • PR #110282 Thanks @wanyongstar.
  • PR #101453 Thanks @xialonglee.
  • PR #110422 Related #110420. Thanks @shakkernerd.
  • PR #110424
  • PR #110386
  • PR #110213 Related #110137. Thanks @MatthewSynthia and @tailzaarapp.
  • PR #110389
  • PR #110446
  • PR #105874 Thanks @xialonglee.
  • PR #110358 Related #110343.
  • PR #110448
  • PR #106081 Thanks @tzy-17.
  • PR #106181 Thanks @xialonglee.
  • PR #110428
  • PR #106241 Related #106136. Thanks @xialonglee and @iamtornado.
  • PR #108925 Thanks @DaigoSoup and @jalehman.
  • PR #110085 Thanks @mushuiyu886.
  • PR #109927 Thanks @zhangguiping-xydt.
  • PR #110449
  • PR #110305 Thanks @zhangguiping-xydt.
  • PR #110339
  • PR #110323
  • PR #110445
  • PR #109210 Thanks @Pick-cat.
  • PR #110456
  • PR #105163 Thanks @dwc1997.
  • PR #110091
  • PR #110459
  • PR #110403 Thanks @zhangguiping-xydt.
  • PR #89864 Related #87303. Thanks @dwc1997 and @singlesue88m-create.
  • PR #110452
  • PR #110278 Thanks @zhangguiping-xydt.
  • PR #110453
  • PR #110447 Related #110439. Thanks @shakkernerd.
  • PR #104340 Thanks @xialonglee.
  • PR #110461
  • PR #110462
  • PR #98567 Thanks @dwc1997.
  • PR #110454
  • PR #98663 Thanks @dwc1997.
  • PR #109652 Thanks @zhangguiping-xydt.
  • PR #110460 Related #110247.
  • PR #98569 Thanks @dwc1997.
  • PR #110006 Thanks @mushuiyu886.
  • PR #109440 Thanks @harjothkhara.
  • PR #110330 Thanks @mushuiyu886.
  • PR #110470
  • PR #110371
  • PR #107984 Related #107981. Thanks @ceckert.
  • PR #110469
  • PR #110484
  • PR #110486
  • PR #109111 Thanks @Pick-cat.
  • PR #110481 Related #110473.
  • PR #110479
  • PR #110007 Thanks @mushuiyu886.
  • PR #110474
  • PR #110478 Thanks @Pick-cat.
  • PR #110496
  • PR #110487
  • PR #110472
  • PR #109878 Thanks @mushuiyu886.
  • PR #108310 Thanks @Pick-cat.
  • PR #110494
  • PR #110509
  • PR #110476
  • PR #110363
  • PR #100140 Related #99611. Thanks @davemorin and @vincentkoc.
  • PR #110508
  • PR #107942 Related #107941. Thanks @moguangyu5-design.
  • PR #110517
  • PR #110497
  • PR #109185 Thanks @Pick-cat.
  • PR #110331
  • PR #110520 Thanks @Pick-cat.
  • PR #110524
  • PR #110372
  • PR #110523
  • PR #110530
  • PR #110463 Thanks @wanyongstar.
  • PR #110525 Thanks @fuller-stack-dev.
  • PR #109822
  • PR #110522
  • PR #110477
  • PR #110518 Related #109443. Thanks @joshavant and @flashosophy.
  • PR #110468
  • PR #110548 Thanks @zhangguiping-xydt.
  • PR #110505 Related #110503.
  • PR #110528 Thanks @wanyongstar.
  • PR #110493
  • PR #110122 Thanks @zhangguiping-xydt.
  • PR #110502 Thanks @VectorPeak.
  • PR #110532
  • PR #110557
  • PR #107752 Thanks @danseerintel.
  • PR #110549
  • PR #109176 Thanks @wanyongstar.
  • PR #109247 Thanks @NianJiuZst.
  • PR #110556
  • PR #109486 Thanks @Leon-SK668.
  • PR #106163 Thanks @xialonglee.
  • PR #109982 Thanks @Alix-007.
  • PR #110533
  • PR #110292 Thanks @shaoohh.
  • PR #109968 Thanks @Alix-007.
  • PR #110380
  • PR #99312 Related #99311. Thanks @ceckert.
  • PR #109501 Thanks @Alix-007.
  • PR #110540
  • PR #110566
  • PR #109428 Thanks @Alix-007.
  • PR #109114 Thanks @Alix-007.
  • PR #109037 Thanks @Alix-007.
  • PR #110543
  • PR #108970 Thanks @zhangguiping-xydt.
  • PR #110574
  • PR #110550
  • PR #110563
  • PR #101773 Thanks @cxbAsDev.
  • PR #110491
  • PR #107990 Thanks @cxbAsDev.
  • PR #101775 Thanks @cxbAsDev.
  • PR #106532 Thanks @cxbAsDev.
  • PR #110466
  • PR #110541 Thanks @totobusnello.
  • PR #110551 Thanks @tzy-17 and @Patrick-Erichsen.
  • PR #105910 Thanks @xialonglee.
  • PR #110585
  • PR #105863 Thanks @xialonglee.
  • PR #110534
  • PR #110596
  • PR #101774 Thanks @cxbAsDev.
  • PR #110277 Thanks @zhangguiping-xydt.
  • PR #110587 Related #110586.
  • PR #110010 Thanks @xydigit-zt.
  • PR #110552 Thanks @tzy-17 and @Patrick-Erichsen.
  • PR #100229 Related #100162. Thanks @zhangguiping-xydt and @rich533.
  • PR #103786 Thanks @xialonglee.
  • PR #108116 Thanks @chengzhichao-xydt.
  • PR #110589 Thanks @mushuiyu886.
  • PR #110554 Thanks @tzy-17 and @Patrick-Erichsen.
  • PR #109463 Thanks @zenglingbiao.
  • PR #110416
  • PR #110607 Related #110606.
  • PR #110609
  • PR #110567
  • PR #110595
  • PR #110610
  • PR #110583
  • PR #106073 Thanks @snowzlmbot.
  • PR #110069 Thanks @mushuiyu886.
  • PR #110405 Thanks @mushuiyu886.
  • PR #110614
  • PR #110613
  • PR #110576
  • PR #110036 Thanks @cxbAsDev.
  • PR #110620
  • PR #101776 Thanks @cxbAsDev.
  • PR #109906 Thanks @mushuiyu886.
  • PR #110423 Thanks @cygnostik.
  • PR #109452 Thanks @mushuiyu886.
  • PR #110617 Related #110616.
  • PR #109427
  • PR #110622
  • PR #109792
  • PR #110604
  • PR #110482
  • PR #110630
  • PR #110581
  • PR #110621
  • PR #110597
  • PR #110625
  • PR #110626
  • PR #110560
  • PR #110648
  • PR #104420 Thanks @cxbAsDev.
  • PR #110628
  • PR #101442 Thanks @cxbAsDev.
  • PR #101772 Thanks @cxbAsDev.
  • PR #110629
  • PR #110623
  • PR #110605
  • PR #110664
  • PR #110654
  • PR #110632
  • PR #110584
  • PR #110687
  • PR #110651
  • PR #108333 Thanks @cxbAsDev.
  • PR #110666
  • PR #110627 Thanks @Pick-cat.
  • PR #101448 Thanks @cxbAsDev.
  • PR #110347
  • PR #109265 Thanks @Alix-007.
  • PR #110646
  • PR #110705 Related #110701. Thanks @shakkernerd.
  • PR #110475
  • PR #110660
  • PR #110698
  • PR #110707
  • PR #110720
  • PR #110495 Thanks @VectorPeak.
  • PR #101429 Thanks @cxbAsDev.
  • PR #110732
  • PR #110708
  • PR #110483 Thanks @zhangguiping-xydt.
  • PR #110615
  • PR #110631
  • PR #101447 Thanks @cxbAsDev.
  • PR #110751
  • PR #110753
  • PR #110480 Thanks @zhangguiping-xydt.
  • PR #109329 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #110787
  • PR #110611
  • PR #110682
  • PR #110788
  • PR #110799
  • PR #110800
  • PR #110801
  • PR #110653
  • PR #110806
  • PR #110740
  • PR #110644
  • PR #110807
  • PR #110810
  • PR #110392
  • PR #110809
  • PR #110635
  • PR #110618
  • PR #110798
  • PR #110808 Thanks @fuller-stack-dev.
  • PR #110728
  • PR #110838
  • PR #110443 Thanks @ZengWen-DT.
  • PR #110527
  • PR #110431 Related #110411.
  • PR #110762 Thanks @mcaxtr.
  • PR #110812
  • PR #110817
  • PR #110833
  • PR #110779
  • PR #110845
  • PR #110844
  • PR #110863
  • PR #110441 Thanks @ZengWen-DT.
  • PR #110398 Thanks @RomneyDa.
  • PR #110839
  • PR #110856
  • PR #110864
  • PR #110852
  • PR #110830
  • PR #110846
  • PR #107879 Related #107804. Thanks @Solvely-Colin.
  • PR #110374 Thanks @jalehman.
  • PR #110869
  • PR #110894
  • PR #110811 Related #108693. Thanks @JeffSteinbok.
  • PR #110575 Related #110109. Thanks @c-h-.
  • PR #110892
  • PR #110890
  • PR #110895
  • PR #110870
  • PR #110899
  • PR #110874
  • PR #110816
  • PR #110857
  • PR #110904
  • PR #110163 Thanks @IWhatsskill.
  • PR #110891
  • PR #110909
  • PR #110889
  • PR #110910
  • PR #110821
  • PR #110914
  • PR #110912 Related #110911.
  • PR #110905
  • PR #110919
  • PR #110897 Thanks @RomneyDa.
  • PR #110913
  • PR #110916
  • PR #110139 Thanks @IWhatsskill.
  • PR #110922 Related #110572.
  • PR #110893 Related #110394. Thanks @omarshahine.
  • PR #102255 Related #102238. Thanks @zw-xysk and @yetval.
  • PR #110931 Related #110930.
  • PR #110934
  • PR #110936
  • PR #110146 Thanks @IWhatsskill.
  • PR #110832
  • PR #110938
  • PR #110359
  • PR #105830 Related #105413. Thanks @SymbolStar and @4symmetry19.
  • PR #110442 Thanks @ZengWen-DT.
  • PR #110951
  • PR #110924 Thanks @mushuiyu886.
  • PR #110949
  • PR #110945
  • PR #110674 Thanks @ZengWen-DT.
  • PR #110944 Related #108692. Thanks @JeffSteinbok.
  • PR #110888
  • PR #110681
  • PR #110933
  • PR #110675 Thanks @ZengWen-DT.
  • PR #110759 Thanks @tzy-17.
  • PR #110943
  • PR #105784 Thanks @mushuiyu886.
  • PR #109026 Thanks @hugenshen and @web-flow.
  • PR #109945 Thanks @xydt-juyaohui.
  • PR #110677 Thanks @ZengWen-DT.
  • PR #110957
  • PR #110410 Thanks @sheyanmin.
  • PR #109044 Thanks @hugenshen.
  • PR #110925
  • PR #110958
  • PR #110966
  • PR #109047 Thanks @hugenshen.
  • PR #109691 Thanks @ZengWen-DT.
  • PR #110967
  • PR #110676 Thanks @ZengWen-DT.
  • PR #110970
  • PR #110908 Related #110859.
  • PR #105274 Thanks @mushuiyu886.
  • PR #110959
  • PR #110591 Thanks @cxbAsDev.
  • PR #110017 Thanks @xydt-juyaohui.
  • PR #110977 Related #110965.
  • PR #110427 Thanks @zenglingbiao.
  • PR #110961 Related #110955.
  • PR #110791 Thanks @fuller-stack-dev.
  • PR #90263 Thanks @fuller-stack-dev.
  • PR #109823 Thanks @Yigtwxx.
  • PR #110927
  • PR #110981
  • PR #110980
  • PR #110594 Thanks @cxbAsDev.
  • PR #109904 Related #100954. Thanks @Yigtwxx and @aniruddhaadak80.
  • PR #110148 Thanks @Yigtwxx.
  • PR #110655 Thanks @Yigtwxx.
  • PR #110973
  • PR #110983
  • PR #109161 Thanks @xydt-juyaohui.
  • PR #110918 Thanks @Yigtwxx.
  • PR #110985
  • PR #110401 Thanks @Leon-SK668.
  • PR #110969 Related #79553. Thanks @akang1798.
  • PR #110952
  • PR #110971
  • PR #110516 Thanks @cxbAsDev.
  • PR #110991
  • PR #110747 Thanks @tzy-17.
  • PR #110968 Thanks @RomneyDa.
  • PR #110984
  • PR #110906
  • PR #110999
  • PR #110978
  • PR #110661 Thanks @IWhatsskill.
  • PR #111009
  • PR #98941 Thanks @miorbnli.
  • PR #98098 Thanks @lwy-2.
  • PR #101079 Thanks @cxbAsDev.
  • PR #110750 Thanks @tzy-17.
  • PR #111011
  • PR #108249 Thanks @amknight.
  • PR #108849 Thanks @zenglingbiao.
  • PR #111002
  • PR #110760 Thanks @mushuiyu886.
  • PR #111021
  • PR #111024 Thanks @fuller-stack-dev.
  • PR #111015
  • PR #111012 Related #110996.
  • PR #111022
  • PR #111027
  • PR #111001
  • PR #110756 Thanks @tzy-17.
  • PR #107895 Thanks @mushuiyu886.
  • PR #111034 Related #97523. Thanks @yetval.
  • PR #110992
  • PR #111007
  • PR #110412 Related #109488. Thanks @alexzhu0 and @mcaxtr and @evelea.
  • PR #111017
  • PR #111003
  • PR #111029 Related #109911. Thanks @edenfunf.
  • PR #110052 Thanks @omarshahine.
  • PR #110515 Related #110451. Thanks @fuller-stack-dev.
  • PR #99115 Thanks @cxbAsDev.
  • PR #110693 Thanks @lsr911.
  • PR #110993
  • PR #111040
  • PR #104904 Related #104783. Thanks @MonkeyLeeT and @Solvely-Colin and @a0903018269.
  • PR #111047
  • PR #111049 Related #103729. Thanks @yetval.
  • PR #108200 Thanks @zenglingbiao.
  • PR #109053 Thanks @hugenshen.
  • PR #109487 Thanks @zenglingbiao.
  • PR #109462 Thanks @zenglingbiao.
  • PR #111000
  • PR #111042
  • PR #110731 Thanks @zhangguiping-xydt.
  • PR #101830 Related #76233. Thanks @yetval and @100yenadmin.
  • PR #111048
  • PR #110684 Thanks @mushuiyu886.
  • PR #98074 Thanks @mpz4life.
  • PR #110994
  • PR #110300 Thanks @shaoohh.
  • PR #111043
  • PR #111036
  • PR #111069
  • PR #110903 Thanks @mushuiyu886.
  • PR #111072 Related #103849. Thanks @yetval.
  • PR #111030
  • PR #111055
  • PR #110745 Related #103055. Thanks @yetval.
  • PR #111035
  • PR #111075
  • PR #104140 Thanks @qingminglong.
  • PR #111066
  • PR #110886
  • PR #111013
  • PR #110956 Thanks @christiandesantis.
  • PR #111095
  • PR #103812 Thanks @yetval.
  • PR #111089
  • PR #111096 Related #111059.
  • PR #110948
  • PR #111097
  • PR #110878 Thanks @mushuiyu886.
  • PR #104211 Related #102017. Thanks @MonkeyLeeT and @commonweavelabs-crypto.
  • PR #110939
  • PR #111103
  • PR #110921 Related #110920. Thanks @edenfunf.
  • PR #111094 Thanks @mcaxtr.
  • PR #111091
  • PR #110536 Thanks @wahaha1223.
  • PR #111109
  • PR #111116 Thanks @fuller-stack-dev.
  • PR #111119
  • PR #106018 Related #105940. Thanks @tiffanychum and @yetval.
  • PR #111105 Thanks @ZengWen-DT.
  • PR #110954 Thanks @zhangguiping-xydt.
  • PR #111081 Thanks @sunlit-deng.
  • PR #110060 Related #102392. Thanks @yetval.
  • PR #108378 Thanks @yetval.
  • PR #111112
  • PR #111124 Thanks @fuller-stack-dev.
  • PR #103793 Thanks @yetval.
  • PR #111106 Thanks @ZengWen-DT.
  • PR #111134 Related #111130.
  • PR #109011 Related #65656, #109006. Thanks @edenfunf and @myericho.
  • PR #111056 Thanks @ZengWen-DT.
  • PR #111063 Related #111062. Thanks @aspalagin.
  • PR #111136
  • PR #111032
  • PR #110755 Thanks @SunnyShu0925.
  • PR #111046
  • PR #111150
  • PR #110678 Thanks @YangManBOBO.
  • PR #110960
  • PR #105911 Related #105679. Thanks @momothemage and @aniruddhaadak80.
  • PR #111038
  • PR #110053 Related #109979. Thanks @LiLan0125 and @mcaxtr and @danharvey.
  • PR #111099 Thanks @Alix-007.
  • PR #111156
  • PR #108789 Related #108337. Thanks @Bartok9 and @pr10mail5.
  • PR #111137
  • PR #111179
  • PR #111147
  • PR #111178
  • PR #111145 Thanks @fuller-stack-dev.
  • PR #111188
  • PR #111189
  • PR #111186
  • PR #111204
  • PR #111207
  • PR #110754 Thanks @mcaxtr.
  • PR #111140
  • PR #110987
  • PR #111212 Thanks @fuller-stack-dev.
  • PR #110797 Thanks @FMLS.
  • PR #111228
  • PR #111052
  • PR #111234
  • PR #111230
  • PR #111078 Thanks @LZY3538.
  • PR #111167 Thanks @fuller-stack-dev.
  • PR #111238 Thanks @fuller-stack-dev.
  • PR #111168 Thanks @fuller-stack-dev.
  • PR #111093 Thanks @Alix-007.
  • PR #111169 Thanks @fuller-stack-dev.
  • PR #105929 Related #105926.
  • PR #111060
  • PR #111077 Thanks @LZY3538.
  • PR #111245
  • PR #111076 Thanks @LZY3538.
  • PR #110932
  • PR #111214
  • PR #103706 Related #103668. Thanks @jincheng-xydt.
  • PR #111061 Thanks @Alix-007.
  • PR #111114
  • PR #111149
  • PR #110995
  • PR #111259
  • PR #111265
  • PR #111263
  • PR #111268
  • PR #111249
  • PR #111267 Related #110325.
  • PR #110941
  • PR #111211 Thanks @fuller-stack-dev.
  • PR #111280
  • PR #110976
  • PR #111142
  • PR #111224
  • PR #111014
  • PR #111216 Thanks @clifton.
  • PR #111158
  • PR #111221
  • PR #110862 Thanks @zhangguiping-xydt.
  • PR #107614 Thanks @zhangguiping-xydt.
  • PR #110989
  • PR #111297 Related #110325.
  • PR #111039
  • PR #111292 Related #111271, #111272, #111273, #111274.
  • PR #111044
  • PR #111104
  • PR #108323 Related #108238. Thanks @hxy91819 and @vivi-lucky2020.
  • PR #111311
  • PR #111244
  • PR #107991 Thanks @hxy91819.
  • PR #111315
  • PR #111215 Thanks @zhangguiping-xydt.
  • PR #111322
  • PR #110667 Thanks @zhangguiping-xydt.
  • PR #110384 Thanks @zhangguiping-xydt.
  • PR #111309
  • PR #111287
  • PR #111293
  • PR #111318
  • PR #111331 Related #111310.
  • PR #111300 Related #111270.
  • PR #111286
  • PR #111289
  • PR #111326
  • PR #110231 Related #110237. Thanks @amknight.
  • PR #111348
  • PR #111345
  • PR #111225
  • PR #111324 Related #110201.
  • PR #110831
  • PR #111194
  • PR #111341
  • PR #111298
  • PR #111041
  • PR #111371
  • PR #111033 Thanks @IWhatsskill.
  • PR #111173
  • PR #111384
  • PR #111335
  • PR #111385
  • PR #111388
  • PR #111379
  • PR #111393
  • PR #111395
  • PR #111369
  • PR #111410 Related #111402.
  • PR #111417
  • PR #111350
  • PR #111413
  • PR #111394
  • PR #111423
  • PR #111414
  • PR #111427
  • PR #104054 Thanks @zhangguiping-xydt.
  • PR #111424
  • PR #111429 Related #111415.
  • PR #108974 Thanks @zhangguiping-xydt.
  • PR #111431
  • PR #111409
  • PR #111418
  • PR #111382
  • PR #111426
  • PR #111073 Thanks @RomneyDa.
  • PR #111449
  • PR #111444
  • PR #111389
  • PR #111433
  • PR #111223 Related #104548. Thanks @metaforismo and @leonme.
  • PR #111440
  • PR #111416
  • PR #111477
  • PR #111456
  • PR #111421
  • PR #111467
  • PR #111473
  • PR #111333 Thanks @VectorPeak.
  • PR #111353 Thanks @Yigtwxx.
  • PR #111428 Thanks @mushuiyu886.
  • PR #111390 Related #111387. Thanks @litang9.
  • PR #111380 Thanks @zhangguiping-xydt.
  • PR #111327 Thanks @zenglingbiao.
  • PR #111483
  • PR #111337
  • PR #111446 Related #111432.
  • PR #111276 Thanks @YangManBOBO.
  • PR #111323 Thanks @zenglingbiao.
  • PR #111374 Thanks @mushuiyu886.
  • PR #108509 Related #108498. Thanks @vyctorbrzezowski.
  • PR #111490
  • PR #111378 Related #72948. Thanks @masatohoshino and @mayank6136.
  • PR #105241
  • PR #111190
  • PR #111447
  • PR #111493 Thanks @shakkernerd.
  • PR #111459 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #111494
  • PR #111451
  • PR #111475 Related #111450.
  • PR #111430
  • PR #111495
  • PR #111501
  • PR #111505 Related #111401.
  • PR #111502
  • PR #111507 Related #111484.
  • PR #111509
  • PR #111504
  • PR #111514 Related #111513.
  • PR #111511
  • PR #111515
  • PR #111218
  • PR #111521
  • PR #111141 Related #107228. Thanks @Marvinthebored and @Peetiegonzalez.
  • PR #111474 Thanks @sallyom.
  • PR #111517
  • PR #111529
  • PR #111411
  • PR #111518
  • PR #111531
  • PR #111465
  • PR #111533
  • PR #111503
  • PR #111339
  • PR #107017 Thanks @mcaxtr.
  • PR #111537
  • PR #111535
  • PR #111540
  • PR #111555
  • PR #111556
  • PR #111560
  • PR #111553
  • PR #111554
  • PR #111557 Related #111232.
  • PR #111448 Thanks @xydigit-zt.
  • PR #111562
  • PR #111565
  • PR #111235 Thanks @ZengWen-DT.
  • PR #111201 Thanks @ZengWen-DT.
  • PR #111197 Thanks @ZengWen-DT.
  • PR #111460 Thanks @mushuiyu886.
  • PR #111441 Thanks @mushuiyu886.
  • PR #111364 Thanks @Yigtwxx.
  • PR #111445
  • PR #111558
  • PR #111524
  • PR #111530
  • PR #111253 Thanks @mushuiyu886.
  • PR #111618
  • PR #111340 Thanks @zenglingbiao.
  • PR #111607
  • PR #111282 Thanks @zenglingbiao.
  • PR #111605
  • PR #109767 Thanks @ZengWen-DT and @cursoragent and @sallyom.
  • PR #111569
  • PR #111260 Thanks @LZY3538.
  • PR #110721 Thanks @hugenshen and @sallyom.
  • PR #111613
  • PR #111481
  • PR #111210 Thanks @Alix-007.
  • PR #111231 Thanks @hugenshen.
  • PR #111288 Thanks @zenglingbiao.
  • PR #111375 Thanks @FMLS.
  • PR #111583
  • PR #111610
  • PR #111645
  • PR #111314 Thanks @hugenshen.
  • PR #108007 Thanks @jesse-merhi.
  • PR #111184 Thanks @YangManBOBO.
  • PR #111659
  • PR #111642
  • PR #111598
  • PR #111177 Thanks @YangManBOBO.
  • PR #111668
  • PR #111677
  • PR #111665
  • PR #111656
  • PR #111261 Thanks @LZY3538.
  • PR #111680
  • PR #111608
  • PR #111685
  • PR #111681
  • PR #111532
  • PR #111664
  • PR #111694
  • PR #111679 Thanks @fuller-stack-dev.
  • PR #111691 Thanks @fuller-stack-dev.
  • PR #111689
  • PR #111701 Related #111627.
  • PR #111678
  • PR #111686
  • PR #111640
  • PR #111670
  • PR #111693
  • PR #111707
  • PR #111644
  • PR #111703
  • PR #111714
  • PR #111615
  • PR #111724
  • PR #111698
  • PR #111652 Thanks @pgondhi987.
  • PR #111653 Thanks @pgondhi987.
  • PR #111748 Thanks @fuller-stack-dev.
  • PR #111749
  • PR #111674 Thanks @ZengWen-DT.
  • PR #111619
  • PR #111758
  • PR #111113 Thanks @zenglingbiao.
  • PR #111648
  • PR #111726
  • PR #111757
  • PR #111710 Related #111597.
  • PR #111111 Thanks @VectorPeak.
  • PR #111772
  • PR #111761
  • PR #111088 Thanks @Leon-SK668.
  • PR #111571
  • PR #111651 Thanks @pgondhi987.
  • PR #110881 Thanks @mushuiyu886.
  • PR #111800
  • PR #111655 Related #111684. Thanks @Solvely-Colin.
  • PR #110824 Thanks @Alix-007.
  • PR #110725 Thanks @zhangguiping-xydt and @hxy91819.
  • PR #110741 Thanks @Leon-SK668 and @altaywtf.
  • PR #111824 Related #111820. Thanks @dineshsuthar123.
  • PR #111687
  • PR #111744 Related #111742. Thanks @ooiuuii and @altaywtf.
  • PR #111855
  • PR #111871
  • PR #111834
  • PR #111876
  • PR #111486 Thanks @zhangguiping-xydt.
  • PR #111867
  • PR #111891
  • PR #111869 Related #111862. Thanks @jalehman.
  • PR #111516 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #111883
  • PR #111911
  • PR #111783
  • PR #111916
  • PR #111907
  • PR #111918
  • PR #111909
  • PR #111927 Related #111919. Thanks @shakkernerd.
  • PR #111928
  • PR #111914
  • PR #111929
  • PR #111933
  • PR #111682 Thanks @fuller-stack-dev.
  • PR #111672 Thanks @fuller-stack-dev.
  • PR #111932 Related #111931.
  • PR #111953 Thanks @fuller-stack-dev.
  • PR #111831 Related #111643. Thanks @Solvely-Colin.
  • PR #111963 Thanks @Patrick-Erichsen.
  • PR #111949 Thanks @jalehman.
  • PR #111803 Thanks @mushuiyu886.
  • PR #110297 Related #107655. Thanks @joshavant and @AyitLabs.
  • PR #111967 Thanks @Patrick-Erichsen.
  • PR #111787
  • PR #111796
  • PR #111975
  • PR #111974
  • PR #111920
  • PR #110256 Thanks @paulcam206.
  • PR #111935 Thanks @Patrick-Erichsen.
  • PR #111984 Thanks @RomneyDa.
  • PR #111087 Related #111050. Thanks @omarshahine.
  • PR #110345 Related #109025. Thanks @joshavant and @andersonjeccel.
  • PR #111986 Related #111973.
  • PR #111720
  • PR #111997
  • PR #109960 Thanks @RileyJJY.
  • PR #111988
  • PR #111996
  • PR #109561 Thanks @lzyyzznl.
  • PR #109499 Thanks @SunnyShu0925.
  • PR #110008 Thanks @Monkey-wusky.
  • PR #111980 Thanks @RomneyDa.
  • PR #110784 Thanks @Alix-007.
  • PR #110002 Thanks @wahaha1223.
  • PR #111987 Thanks @fuller-stack-dev.
  • PR #109498 Thanks @zw-xysk.
  • PR #109451 Thanks @wahaha1223.
  • PR #109950 Thanks @sunlit-deng.
  • PR #109699 Related #109550. Thanks @chengzhichao-xydt and @TrueHOOHA.
  • PR #112009 Thanks @fuller-stack-dev.
  • PR #112010
  • PR #108012 Thanks @sunlit-deng.
  • PR #110546 Thanks @Pick-cat.
  • PR #111269 Thanks @hugenshen.
  • PR #112008 Thanks @RomneyDa.
  • PR #111329
  • PR #111989
  • PR #112011
  • PR #108987 Thanks @sunlit-deng.
  • PR #107978 Thanks @yetval.
  • PR #111699
  • PR #109495 Thanks @RileyJJY.
  • PR #112015 Thanks @RomneyDa.
  • PR #112016
  • PR #110001 Thanks @YangManBOBO.
  • PR #109923 Thanks @wangmiao0668000666.
  • PR #104093 Thanks @mikasa0818.
  • PR #110772 Thanks @cxbAsDev and @penggaolai.
  • PR #112026
  • PR #109697 Thanks @LZY3538.
  • PR #109446 Related #109421. Thanks @dr00-eth.
  • PR #111866
  • PR #106635 Thanks @ZOOWH.
  • PR #111977
  • PR #111120 Thanks @xydt-juyaohui.
  • PR #109532 Thanks @Leon-SK668.
  • PR #111983
  • PR #109116 Thanks @Alix-007.
  • PR #111995
  • PR #104564 Thanks @qingminlong.
  • PR #112021 Thanks @fuller-stack-dev.
  • PR #111152 Thanks @zenglingbiao.
  • PR #112044
  • PR #106314 Thanks @wahaha1223 and @cursoragent.
  • PR #105487 Related #105423. Thanks @zw-xysk and @aniruddhaadak80.
  • PR #111769 Thanks @chenyangjun-xy.
  • PR #112059
  • PR #110704 Related #103905. Thanks @xydigit-zt and @chrisbaker2000.
  • PR #112043
  • PR #104930 Thanks @chengzhichao-xydt.
  • PR #111183 Thanks @wahaha1223.
  • PR #112019
  • PR #104810 Thanks @chengzhichao-xydt.
  • PR #112028 Related #112023.
  • PR #103377 Thanks @miorbnli.
  • PR #104850 Thanks @chengzhichao-xydt.
  • PR #109042 Thanks @Alix-007.
  • PR #102329 Related #102324. Thanks @ZOOWH and @yetval.
  • PR #109989 Thanks @zw-xysk.
  • PR #105085 Thanks @qingminlong.
  • PR #105307 Related #105199. Thanks @ObliviateRickLin and @aniruddhaadak80.
  • PR #104727 Thanks @Super-Cabbage.
  • PR #96482 Thanks @winger007.
  • PR #109909 Thanks @chengzhichao-xydt.
  • PR #112046
  • PR #109729 Thanks @ZengWen-DT and @cursoragent.
  • PR #110537 Thanks @wahaha1223.
  • PR #112035
  • PR #103658 Thanks @mikasa0818.
  • PR #109401 Thanks @ZengWen-DT.
  • PR #104335 Thanks @owen-ever.
  • PR #107121 Thanks @lzyyzznl.
  • PR #112081 Thanks @wahaha1223.
  • PR #111968 Thanks @fuller-stack-dev.
  • PR #112063
  • PR #106502 Thanks @sunlit-deng.
  • PR #101816 Thanks @masatohoshino.
  • PR #90169 Thanks @goldmar.
  • PR #95493 Related #95441. Thanks @openperf and @fanyangCS.
  • PR #111435 Thanks @Yigtwxx.
  • PR #109788 Related #109275. Thanks @TianT1209 and @ccaum.
  • PR #112071
  • PR #89721 Thanks @xiaobao-k8s.
  • PR #112070 Related #112068. Thanks @fuller-stack-dev.
  • PR #112083
  • PR #112062
  • PR #105547 Thanks @qingminlong.
  • PR #112066
  • PR #98320 Related #98311. Thanks @TUARAN and @yetval.
  • PR #112036 Thanks @Patrick-Erichsen.
  • PR #103622 Thanks @chengzhichao-xydt.
  • PR #104707 Thanks @NarahariRaghava.
  • PR #112076
  • PR #112108
  • PR #101511 Thanks @mikasa0818.
  • PR #108943 Thanks @QiuYuang.
  • PR #109431 Thanks @masatohoshino.
  • PR #111669
  • PR #112074
  • PR #95514 Related #95291. Thanks @mikasa0818 and @phoenixyy.
  • PR #112170 Thanks @vincentkoc.
  • PR #112171 Thanks @RomneyDa.
  • PR #112107
  • PR #112031
  • PR #104250 Thanks @mikasa0818.
  • PR #112162
  • PR #104347 Related #104320. Thanks @ObliviateRickLin and @dale-goes-fast.
  • PR #82798 Related #82621. Thanks @joshavant and @aounakram.
  • PR #111841 Related #111520. Thanks @xialonglee and @Patrick-Erichsen.
  • PR #112172 Thanks @vincentkoc.
  • PR #109509 Thanks @Leon-SK668.
  • PR #112190 Thanks @vincentkoc.
  • PR #112073
  • PR #112191
  • PR #109986 Thanks @LZY3538.
  • PR #95713 Related #95696. Thanks @0xghost42 and @davidxu00.
  • PR #112065 Thanks @RomneyDa.
  • PR #94019 Thanks @evan-YM.
  • PR #112047 Thanks @RomneyDa.
  • PR #103171 Related #98437. Thanks @HOYALIM and @alvelda.
  • PR #108014 Thanks @miorbnli.
  • PR #99772 Related #99620. Thanks @SunnyShu0925 and @mattpodolak.
  • PR #112161
  • PR #112165 Thanks @vincentkoc.
  • PR #112168 Thanks @vincentkoc.
  • PR #112197
  • PR #103209 Thanks @wangmiao0668000666.
  • PR #103266 Thanks @mikasa0818 and @wangmiao0668000666.
  • PR #107261 Thanks @cyberic68.
  • PR #90998 Thanks @clawSean.
  • PR #112039
  • PR #112201 Thanks @RomneyDa.
  • PR #112208
  • PR #112025 Thanks @RomneyDa.
  • PR #104278 Thanks @mikasa0818.
  • PR #112186
  • PR #112163
  • PR #112181 Thanks @vincentkoc.
  • PR #112185 Thanks @vincentkoc.
  • PR #112199 Thanks @RomneyDa.
  • PR #86711 Related #72013. Thanks @SebTardif and @scipher888.
  • PR #112038
  • PR #112224 Thanks @vincentkoc.
  • PR #92196 Related #44540. Thanks @yetval and @markclawbot.
  • PR #112209
  • PR #112203 Thanks @RomneyDa.
  • PR #112210 Related #112205, #112206, #112207.
  • PR #88203 Related #88111. Thanks @TurboTheTurtle and @Cuttingwater.
  • PR #112184
  • PR #112037 Related #111971.
  • PR #97059 Thanks @harjothkhara.
  • PR #112228 Related #112218. Thanks @vincentkoc.
  • PR #112233
  • PR #89096 Thanks @shawnduggan.
  • PR #112239
  • PR #112060
  • PR #112082
  • PR #112237
  • PR #112012
  • PR #112006
  • PR #112254 Thanks @vincentkoc.
  • PR #111835 Thanks @masatohoshino.
  • PR #112216
  • PR #109313 Related #109218. Thanks @SebTardif and @altaywtf and @devodriqroberts.
  • PR #112258
  • PR #112188
  • PR #112221
  • PR #112180
  • PR #109647 Thanks @zhangguiping-xydt.
  • PR #112279 Thanks @vincentkoc.
  • PR #112276
  • PR #112261
  • PR #112290
  • PR #112291
  • PR #112287 Thanks @vincentkoc.
  • PR #112296
  • PR #112267
  • PR #98631 Related #98591. Thanks @liuhao1024 and @haruaiclone-droid.
  • PR #112262
  • PR #112301 Thanks @RomneyDa.
  • PR #112235 Related #112234. Thanks @RomneyDa.
  • PR #112249 Thanks @RomneyDa.
  • PR #111872 Thanks @Pick-cat and @cursoragent and @altaywtf.
  • PR #112293
  • PR #105162 Related #105164. Thanks @Papilionidae.
  • PR #111998
  • PR #112211 Thanks @RomneyDa.
  • PR #107137 Related #106765. Thanks @yangxiansheng and @donald-g-beckett.
  • PR #112195
  • PR #101906 Thanks @masatohoshino.
  • PR #105040 Related #105036. Thanks @moguangyu5-design.
  • PR #105807 Related #105803. Thanks @moguangyu5-design.
  • PR #99643 Related #99601. Thanks @mushuiyu886 and @34262315716.
  • PR #109177 Thanks @ZOOWH.
  • PR #109815 Thanks @ZengWen-DT and @cursoragent.
  • PR #112175
  • PR #103808 Thanks @fengjikui.
  • PR #103751 Related #100988. Thanks @849261680 and @1231CheGites.
  • PR #101037 Thanks @mushuiyu886.
  • PR #105039 Thanks @ObliviateRickLin.
  • PR #112299 Related #111643. Thanks @Solvely-Colin.
  • PR #111281 Thanks @mushuiyu886.
  • PR #91553 Related #42798. Thanks @TUARAN and @archerhpagent.
  • PR #109139 Thanks @Alix-007.
  • PR #104637 Related #104538. Thanks @ObliviateRickLin and @Omarks906.
  • PR #105567 Thanks @lzyyzznl.
  • PR #102481 Thanks @qingminglong.
  • PR #111209 Thanks @mushuiyu886.
  • PR #104234 Thanks @mikasa0818.
  • PR #109875 Related #109293. Thanks @lee-xydt and @pacoa-kdbg.
  • PR #111266 Thanks @mushuiyu886.
  • PR #107626 Thanks @Pick-cat.
  • PR #111164 Thanks @chenyangjun-xy.
  • PR #65359 Related #65305. Thanks @maxreith.
  • PR #108140 Thanks @qingminglong.
  • PR #103970 Thanks @harjothkhara.
  • PR #111307 Thanks @Yigtwxx.
  • PR #111239 Thanks @mushuiyu886.
  • PR #110593 Thanks @cxbAsDev.
  • PR #112056
  • PR #87986 Related #87985. Thanks @shbernal.
  • PR #102537 Related #102323. Thanks @TUARAN and @yetval.
  • PR #78139 Thanks @kate.
  • PR #98053 Related #86387. Thanks @lzyyzznl and @7inRivulet.
  • PR #99542 Thanks @masatohoshino.
  • PR #104265 Thanks @goldmar.
  • PR #112406 Thanks @vincentkoc.
  • PR #112381 Related #112377. Thanks @fuller-stack-dev.
  • PR #112337
  • PR #112418 Thanks @pash-openai.
  • PR #112354 Thanks @fuller-stack-dev.
  • PR #112379
  • PR #112284
  • PR #101328 Thanks @giodl73-repo.
  • PR #104111 Thanks @aaroneden and @obviyus.
  • PR #112387
  • PR #112302
  • PR #112334 Thanks @VACInc.
  • PR #112321 Related #112217, #112219, #112220.
  • PR #107935 Related #105423. Thanks @LZY3538 and @aniruddhaadak80.
  • PR #112426 Thanks @vincentkoc.
  • PR #112413 Thanks @jalehman.
  • PR #112444 Thanks @vincentkoc.
  • PR #112443 Thanks @jalehman.
  • PR #112260
  • PR #112400 Related #112040.
  • PR #109057 Related #108945. Thanks @aspalagin and @junwei1213.
  • PR #101755 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #101973 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112415
  • PR #112434
  • PR #112412 Related #112405. Thanks @fuller-stack-dev.
  • PR #112467 Thanks @fuller-stack-dev.
  • PR #112457 Related #112454. Thanks @fuller-stack-dev.
  • PR #112471
  • PR #102228 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112441
  • PR #112433 Related #112242.
  • PR #103895 Related #103673. Thanks @Patrick-Erichsen.
  • PR #112357
  • PR #102296 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112308
  • PR #112335
  • PR #112338 Related #112336.
  • PR #112482 Thanks @Patrick-Erichsen.
  • PR #112393 Related #91171. Thanks @mikasa0818 and @wolfeee.
  • PR #100146 Thanks @SunnyShu0925.
  • PR #111527
  • PR #112484
  • PR #112491
  • PR #112448
  • PR #111122 Thanks @yetval and @jalehman.
  • PR #112236 Thanks @RomneyDa.
  • PR #112502
  • PR #112493
  • PR #112503
  • PR #112488
  • PR #112339 Related #112315.
  • PR #112506 Thanks @RomneyDa.
  • PR #105356 Thanks @solavrc.
  • PR #111636 Thanks @Alix-007.
  • PR #105884 Thanks @Alix-007.
  • PR #112497 Thanks @fuller-stack-dev.
  • PR #112507 Related #98674. Thanks @athuljayaram.
  • PR #112510
  • PR #112378 Thanks @jalehman.
  • PR #112414 Thanks @jalehman.
  • PR #92261 Thanks @skocher.
  • PR #112319
  • PR #112511
  • PR #103866 Related #103864. Thanks @niks999.
  • PR #112458 Related #95612, #107668. Thanks @fuller-stack-dev and @cstreeter and @josh-cornelius.
  • PR #112526
  • PR #112529 Thanks @RomneyDa.
  • PR #90579 Related #90557. Thanks @wangwllu.
  • PR #112531 Thanks @Patrick-Erichsen.
  • PR #112430 Thanks @IWhatsskill.
  • PR #112465 Thanks @RomneyDa.
  • PR #112532
  • PR #112536
  • PR #112333
  • PR #112527
  • PR #112543
  • PR #112541
  • PR #112538
  • PR #112545
  • PR #112546
  • PR #112489
  • PR #112548 Related #112520.
  • PR #112535
  • PR #112523
  • PR #112550 Related #112549.
  • PR #112552
  • PR #112553
  • PR #112534 Thanks @moeedahmed.
  • PR #112566
  • PR #112557
  • PR #112539
  • PR #110216 Thanks @VACInc and @Serhii-Leniv.
  • PR #110280 Thanks @RomneyDa.
  • PR #112483 Thanks @joshavant.
  • PR #112232
  • PR #112563
  • PR #112544
  • PR #112562
  • PR #112569 Thanks @RomneyDa.
  • PR #112593 Related #100635. Thanks @HOYALIM and @aniruddhaadak80.
  • PR #112570
  • PR #112574
  • PR #112571
  • PR #112241
  • PR #112601
  • PR #112587
  • PR #112568
  • PR #112599
  • PR #112554
  • PR #112565
  • PR #112255
  • PR #112597
  • PR #112542
  • PR #109786 Thanks @Leon-SK668.
  • PR #112602
  • PR #112613
  • PR #112607 Related #112604. Thanks @joshavant.
  • PR #112610
  • PR #112578
  • PR #112594
  • PR #112600
  • PR #112628
  • PR #112353 Related #112347.
  • PR #112521
  • PR #112633
  • PR #112635
  • PR #110565 Related #108738. Thanks @joshavant and @colabiu.
  • PR #112639
  • PR #112401 Related #112399.
  • PR #112646
  • PR #112629
  • PR #112420
  • PR #112442 Related #112425.
  • PR #112658
  • PR #112632
  • PR #112663
  • PR #112245 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #102306 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112286
  • PR #112396
  • PR #112676
  • PR #112559 Thanks @pgondhi987.
  • PR #112560 Thanks @pgondhi987.
  • PR #95824 Thanks @ats3v and @jacobtomlinson.
  • PR #102383 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112530 Thanks @sallyom.
  • PR #102406 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112671
  • PR #112651
  • PR #112662
  • PR #112649
  • PR #112673
  • PR #112692
  • PR #112699
  • PR #112715
  • PR #98245 Thanks @yetval.
  • PR #102427 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112704
  • PR #112567
  • PR #102959 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #110235 Thanks @stantheman0128 and @cursoragent.
  • PR #112585
  • PR #108278 Thanks @xydt-juyaohui and @ly85206559 and @LiuwqGit.
  • PR #111258 Thanks @LZY3538.
  • PR #111860 Related #111858. Thanks @ooiuuii.
  • PR #112325 Thanks @masatohoshino.
  • PR #112755 Thanks @rune-dandelion-cult.
  • PR #112013 Thanks @karmafeast and @ronan-dandelion-cult.
  • PR #112752
  • PR #111877 Related #111832. Thanks @xbrxr03 and @AJH763 and @gwy-origin.
  • PR #112757
  • PR #106474 Thanks @sunlit-deng.
  • PR #106859 Thanks @sunlit-deng and @YangManBOBO.
  • PR #112759
  • PR #112590 Thanks @RomneyDa.
  • PR #112766
  • PR #112768
  • PR #109419 Thanks @wahaha1223 and @ZengWen-DT.
  • PR #112770 Related #112750. Thanks @fuller-stack-dev.
  • PR #111256 Thanks @LZY3538.
  • PR #112767
  • PR #111905 Thanks @mushuiyu886.
  • PR #112778
  • PR #96132 Thanks @yetval.
  • PR #89912 Thanks @jalehman.
  • PR #112780
  • PR #112783
  • PR #112779
  • PR #112776
  • PR #112746
  • PR #112785
  • PR #112786
  • PR #112738 Related #112735.
  • PR #112777
  • PR #112793
  • PR #112792
  • PR #112739
  • PR #112772
  • PR #112775
  • PR #112789
  • PR #112721 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #112788
  • PR #112753
  • PR #112769
  • PR #112781
  • PR #112176 Thanks @jesse-merhi.
  • PR #112809
  • PR #102982 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #112558 Thanks @fuller-stack-dev.
  • PR #112815 Thanks @RomneyDa.
  • PR #112582 Thanks @RomneyDa.
  • PR #112812
  • PR #112813
  • PR #112494 Thanks @RomneyDa.
  • PR #112603 Thanks @RomneyDa.
  • PR #112805
  • PR #112802
  • PR #112807 Related #112806. Thanks @joshavant.
  • PR #112817
  • PR #112533 Thanks @RomneyDa.
  • PR #112829 Related #112827. Thanks @fuller-stack-dev.
  • PR #111391 Thanks @giodl73-repo.
  • PR #112524 Thanks @RomneyDa.
  • PR #112836 Thanks @fuller-stack-dev.
  • PR #112794 Related #112795. Thanks @joshavant.
  • PR #112723 Related #112688. Thanks @metaforismo and @hoon0093.
  • PR #112845 Thanks @RomneyDa.
  • PR #112840 Thanks @RomneyDa.
  • PR #112782
  • PR #111861
  • PR #112850
  • PR #112841 Thanks @RomneyDa.
  • PR #112763 Related #112718, #112719.
  • PR #112860 Thanks @RomneyDa.
  • PR #112821
  • PR #112853
  • PR #112866 Thanks @fuller-stack-dev.
  • PR #112859 Thanks @fuller-stack-dev.
  • PR #112874 Thanks @RomneyDa.
  • PR #112880 Related #112743.
  • PR #112879
  • PR #108436 Related #91243. Thanks @omarshahine.
  • PR #112873
  • PR #112875
  • PR #112883
  • PR #112868 Related #112862.
  • PR #112892
  • PR #112899
  • PR #112803
  • PR #112901 Related #111485. Thanks @alfred429.
  • PR #112894
  • PR #112903
  • PR #112872
  • PR #112900
  • PR #112904
  • PR #112897
  • PR #112915
  • PR #112914
  • PR #112885
  • PR #112923
  • PR #112889
  • PR #112907
  • PR #112924 Thanks @fuller-stack-dev.
  • PR #112928 Related #112869, #112870.
  • PR #112878
  • PR #112884
  • PR #112881
  • PR #112891
  • PR #111641 Thanks @RileyJJY.
  • PR #112926
  • PR #112921
  • PR #112935
  • PR #112919
  • PR #112939 Related #77966. Thanks @BIGWOO.
  • PR #112937
  • PR #112942 Thanks @fuller-stack-dev.
  • PR #112944
  • PR #112922
  • PR #112913
  • PR #112940
  • PR #112918
  • PR #112959
  • PR #112887
  • PR #112968
  • PR #112858 Thanks @fuller-stack-dev.
  • PR #112931
  • PR #112972
  • PR #112969
  • PR #112977
  • PR #112993
  • PR #112992
  • PR #112916
  • PR #112169 Thanks @vincentkoc.
  • PR #112997 Thanks @vincentkoc.
  • PR #112985
  • PR #112936
  • PR #112999 Thanks @vincentkoc.
  • PR #113002 Thanks @omarshahine.
  • PR #113003
  • PR #112988
  • PR #112911
  • PR #112798
  • PR #113007
  • PR #112910
  • PR #112981
  • PR #113015
  • PR #112744 Related #112064. Thanks @metaforismo and @anupamchugh.
  • PR #113016
  • PR #113017
  • PR #112740
  • PR #113004
  • PR #112787
  • PR #113010
  • PR #113026
  • PR #112929
  • PR #113022
  • PR #113023
  • PR #113024
  • PR #112989
  • PR #113027
  • PR #113020
  • PR #113037
  • PR #113028
  • PR #112909 Related #112741.
  • PR #112756
  • PR #113025
  • PR #113053
  • PR #112938
  • PR #113040
  • PR #113039 Thanks @Solvely-Colin.
  • PR #113050
  • PR #113052 Related #112742.
  • PR #112980 Thanks @Alix-007.
  • PR #113061
  • PR #113006
  • PR #113058
  • PR #112453
  • PR #108916 Thanks @RileyJJY.
  • PR #113076
  • PR #113046
  • PR #113075
  • PR #113045 Thanks @giodl73-repo.
  • PR #113094
  • PR #113072
  • PR #113099
  • PR #113078 Thanks @fuller-stack-dev.
  • PR #113102
  • PR #113071
  • PR #106890 Related #106825. Thanks @yangxiansheng and @yetval.
  • PR #113114
  • PR #113100
  • PR #112331
  • PR #112967
  • PR #113117
  • PR #113113 Thanks @fuller-stack-dev.
  • PR #113116
  • PR #113112 Related #113108.
  • PR #113120
  • PR #113110
  • PR #113122
  • PR #113042
  • PR #113129
  • PR #113132
  • PR #113118
  • PR #113134
  • PR #113133 Thanks @Patrick-Erichsen.
  • PR #113101 Related #112995, #112996.
  • PR #113073
  • PR #113135
  • PR #113127
  • PR #112478 Related #112341. Thanks @loulanyue and @p0pfan.
  • PR #113138
  • PR #110037 Thanks @giodl73-repo.
  • PR #113142
  • PR #113141
  • PR #113145
  • PR #113153
  • PR #113103 Thanks @zenglingbiao.
  • PR #108342 Thanks @giodl73-repo.
  • PR #113150
  • PR #113151 Thanks @jalehman.
  • PR #113154
  • PR #113088 Related #113085. Thanks @metahacker.
  • PR #113158
  • PR #113157
  • PR #113163 Related #113161. Thanks @fuller-stack-dev.
  • PR #113155
  • PR #113165
  • PR #113167
  • PR #113175
  • PR #113179
  • PR #113156
  • PR #113174
  • PR #113152 Thanks @joshavant.
  • PR #113187 Related #113186. Thanks @joshavant.
  • PR #113178 Related #113177. Thanks @joshavant.
  • PR #113173
  • PR #113199
  • PR #113202 Thanks @joshavant.
  • PR #113201
  • PR #97881 Thanks @yetval.
  • PR #111457 Thanks @FMLS and @cursoragent and @hxy91819.
  • PR #113212 Thanks @vincentkoc.
  • PR #112963
  • PR #113216 Related #113209, #113210, #113211. Thanks @vincentkoc.
  • PR #113230
  • PR #113235
  • PR #113229 Thanks @vincentkoc.
  • PR #113240
  • PR #112947 Thanks @pgondhi987.
  • PR #113242
  • PR #113237
  • PR #112952 Thanks @pgondhi987.
  • PR #112661 Related #111809. Thanks @joshavant and @andersonjeccel.
  • PR #113228 Related #113227. Thanks @vincentkoc.
  • PR #113247
  • PR #113222
  • PR #113250
  • PR #113223
  • PR #113245
  • PR #113258 Thanks @vincentkoc.
  • PR #112834 Related #112826. Thanks @RomneyDa.
  • PR #112837 Related #112830. Thanks @RomneyDa.
  • PR #113214 Related #113213. Thanks @vincentkoc.
  • PR #113248
  • PR #113260 Thanks @vincentkoc.
  • PR #113261 Related #113255. Thanks @vincentkoc.
  • PR #113254
  • PR #113243
  • PR #113224 Related #113218. Thanks @fuller-stack-dev.
  • PR #113239
  • PR #113234
  • PR #113238
  • PR #113236
  • PR #113268 Thanks @vincentkoc.
  • PR #113225
  • PR #113256
  • PR #113269
  • PR #113277 Thanks @vincentkoc.
  • PR #113278 Thanks @vincentkoc.
  • PR #113276 Thanks @vincentkoc.
  • PR #113283 Thanks @vincentkoc.
  • PR #112954 Thanks @pgondhi987.
  • PR #113246
  • PR #113280 Thanks @vincentkoc.
  • PR #113279
  • PR #113287 Related #113265. Thanks @vincentkoc.
  • PR #112953 Thanks @pgondhi987.
  • PR #113289 Thanks @vincentkoc.
  • PR #112955 Thanks @pgondhi987.
  • PR #111818 Related #111817. Thanks @ooiuuii and @altaywtf.
  • PR #113295 Thanks @vincentkoc.
  • PR #112956 Thanks @pgondhi987.
  • PR #113296
  • PR #112946 Thanks @pgondhi987.
  • PR #112957 Thanks @pgondhi987.
  • PR #113303
  • PR #113299
  • PR #113298 Thanks @vincentkoc.
  • PR #113302 Related #113293. Thanks @vincentkoc.
  • PR #113297
  • PR #113316 Related #113305. Thanks @vincentkoc.
  • PR #113317 Thanks @vincentkoc.
  • PR #113313 Related #113304. Thanks @vincentkoc.
  • PR #113332
  • PR #113131
  • PR #101981 Thanks @giodl73-repo.
  • PR #113335
  • PR #113339
  • PR #113343
  • PR #113334
  • PR #113193 Related #85954. Thanks @omarshahine.
  • PR #113350
  • PR #113338
  • PR #113336 Thanks @vincentkoc.
  • PR #113356
  • PR #113324 Thanks @vincentkoc.
  • PR #113364
  • PR #113363
  • PR #113373
  • PR #113355
  • PR #113367 Thanks @vincentkoc.
  • PR #113381
  • PR #113382 Thanks @vincentkoc.
  • PR #113384 Thanks @vincentkoc.
  • PR #113385 Thanks @vincentkoc.
  • PR #113386
  • PR #112773 Thanks @giodl73-repo.
  • PR #113387
  • PR #111108 Thanks @scotthuang and @Patrick-Erichsen.
  • PR #113322 Thanks @fr-meyer.
  • PR #113390 Thanks @vincentkoc.
  • PR #113393 Thanks @fuller-stack-dev.
  • PR #113397
  • PR #113391 Thanks @fuller-stack-dev.
  • PR #113399 Thanks @vincentkoc.
  • PR #113400
  • PR #113406
  • PR #113409 Related #113195. Thanks @shakkernerd and @timme0126.
  • PR #113407
  • PR #113416
  • PR #113414
  • PR #113392
  • PR #113420 Thanks @vincentkoc.
  • PR #113418
  • PR #113307 Related #90013. Thanks @SebTardif.
  • PR #113428 Thanks @vincentkoc.
  • PR #113424 Related #113410. Thanks @fuller-stack-dev.
  • PR #113413 Thanks @fuller-stack-dev.
  • PR #113439 Related #113438. Thanks @joshavant.
  • PR #113404 Thanks @vincentkoc.
  • PR #113452 Thanks @vincentkoc.
  • PR #113448 Thanks @joshavant.
  • PR #113457
  • PR #113450
  • PR #113459 Thanks @vincentkoc.
  • PR #113461 Thanks @vincentkoc.
  • PR #113468 Related #112842. Thanks @RomneyDa.
  • PR #113472
  • PR #113476
  • PR #113453
  • PR #113482
  • PR #113484 Thanks @vincentkoc.
  • PR #113473 Thanks @vincentkoc.
  • PR #113498 Thanks @vincentkoc.
  • PR #113499
  • PR #113464 Related #113463. Thanks @fuller-stack-dev.
  • PR #113512 Thanks @vincentkoc.
  • PR #112678
  • PR #113518 Thanks @vincentkoc.
  • PR #113496
  • PR #113519 Thanks @vincentkoc.
  • PR #113522 Thanks @vincentkoc.
  • PR #113523 Thanks @vincentkoc.
  • PR #113528 Thanks @vincentkoc.
  • PR #113525 Thanks @vincentkoc.
  • PR #113529 Thanks @vincentkoc.
  • PR #113544 Thanks @vincentkoc.
  • PR #113547
  • PR #113531 Thanks @vincentkoc.
  • PR #113541
  • PR #113539
  • PR #113526 Thanks @fuller-stack-dev.
  • PR #113540
  • PR #113552
  • PR #113555 Thanks @vincentkoc.
  • PR #113556 Thanks @vincentkoc.
  • PR #113534
  • PR #113538
  • PR #113558
  • PR #113160
  • PR #113559
  • PR #113536
  • PR #113537
  • PR #113542
  • PR #113533
  • PR #113543
  • PR #113568 Thanks @vincentkoc.
  • PR #113569
  • PR #112958
  • PR #113581 Thanks @vincentkoc.
  • PR #113572
  • PR #113580 Thanks @vincentkoc.
  • PR #113573
  • PR #113489 Thanks @bdjben.
  • PR #113574
  • PR #113586 Thanks @vincentkoc.
  • PR #113570
  • PR #113585
  • PR #113349 Related #101768. Thanks @destire-mio and @qingminglong.
  • PR #113589 Thanks @vincentkoc.
  • PR #113514 Thanks @Leviathan256.
  • PR #113583
  • PR #111956 Related #111948. Thanks @TheAngryPit and @CassieMei.
  • PR #113591 Thanks @vincentkoc.
  • PR #111946 Related #111945. Thanks @ooiuuii.
  • PR #113588
  • PR #111898 Thanks @zhangguiping-xydt.
  • PR #113595 Thanks @vincentkoc.
  • PR #113532
  • PR #113592 Thanks @vincentkoc.
  • PR #113486 Related #113483. Thanks @RomneyDa.
  • PR #113535
  • PR #113597 Thanks @vincentkoc.
  • PR #113557
  • PR #113601
  • PR #113603
  • PR #113604 Thanks @vincentkoc.
  • PR #113594
  • PR #113596
  • PR #113590
  • PR #113608 Thanks @vincentkoc.
  • PR #113259 Thanks @lzw112.
  • PR #113602
  • PR #112855 Related #112854. Thanks @fr-meyer.
  • PR #113610 Thanks @vincentkoc.
  • PR #113607 Thanks @vincentkoc.
  • PR #112951 Related #112950. Thanks @metahacker.
  • PR #82366 Related #81715. Thanks @honor2030 and @KrasimirKralev.
  • PR #113609
  • PR #102293 Thanks @sallyom.
  • PR #113613
  • PR #113618 Thanks @vincentkoc.
  • PR #113614
  • PR #113617
  • PR #113627 Thanks @vincentkoc.
  • PR #113624 Thanks @vincentkoc.
  • PR #113615
  • PR #113629
  • PR #113619
  • PR #113636 Thanks @vincentkoc.
  • PR #113628 Thanks @RomneyDa.
  • PR #113635
  • PR #111951 Related #111950. Thanks @ooiuuii.
  • PR #113621
  • PR #113634
  • PR #113616
  • PR #113633 Related #113412. Thanks @vincentkoc and @fuller-stack-dev.
  • PR #113639
  • PR #113623
  • PR #113642
  • PR #113638
  • PR #113632
  • PR #112644 Thanks @masatohoshino.
  • PR #113644
  • PR #113571
  • PR #113576
  • PR #113493
  • PR #113648
  • PR #111962 Related #111961. Thanks @ooiuuii.
  • PR #113637
  • PR #113626
  • PR #113649
  • PR #113653
  • PR #112053 Related #112049. Thanks @ooiuuii.
  • PR #113646
  • PR #110485 Thanks @ralf003 and @altaywtf.
  • PR #112057 Thanks @Hilbert-Gowin.
  • PR #113645
  • PR #112691 Thanks @AAliKKhan.
  • PR #112251 Thanks @shawnduggan.
  • PR #113671
  • PR #113670
  • PR #113659
  • PR #113657
  • PR #113545 Thanks @santhiprakash.
  • PR #112640 Related #112637. Thanks @a-tokyo.
  • PR #113669
  • PR #112751 Thanks @Patrick-Erichsen.
  • PR #112416 Thanks @609NFT.
  • PR #113650
  • PR #113688 Related #113677.
  • PR #113682 Thanks @vincentkoc.
  • PR #113675
  • PR #113091 Thanks @ericcaiwx-star.
  • PR #113664
  • PR #113668
  • PR #113687
  • PR #113647
  • PR #113683
  • PR #113692
  • PR #113696
  • PR #113684
  • PR #112295 Related #112294. Thanks @tjpaulsondev.
  • PR #113700
  • PR #113652 Thanks @vincentkoc.
  • PR #113685
  • PR #113455
  • PR #113674
  • PR #113689
  • PR #113691
  • PR #112556 Thanks @sunlit-deng.
  • PR #113703
  • PR #113695
  • PR #113697
  • PR #112369 Thanks @wangmiao0668000666.
  • PR #113681
  • PR #113710
  • PR #113460 Thanks @eugene-harold-krabs.
  • PR #113711
  • PR #113708 Thanks @vincentkoc.
  • PR #113727
  • PR #113728 Thanks @vincentkoc.
  • PR #113719
  • PR #113106 Thanks @zenglingbiao.
  • PR #113722
  • PR #112983 Related #112712. Thanks @Sanjays2402 and @Greg2805.
  • PR #113600
  • PR #113716
  • PR #113726
  • PR #113723
  • PR #113738
  • PR #113698
  • PR #113109 Thanks @zenglingbiao.
  • PR #113690
  • PR #113720
  • PR #113707
  • PR #113714
  • PR #113715
  • PR #113730
  • PR #113686
  • PR #113741 Thanks @wangmiao0668000666.
  • PR #113718
  • PR #113744
  • PR #113745
  • PR #113747
  • PR #113737
  • PR #113717
  • PR #113725
  • PR #113752
  • PR #113753
  • PR #113724
  • PR #113713
  • PR #113758
  • PR #113759
  • PR #113760
  • PR #113761
  • PR #113762
  • PR #113757 Thanks @fuller-stack-dev.
  • PR #113765
  • PR #113769
  • PR #113184
  • PR #113768
  • PR #113764
  • PR #113782
  • PR #113777
  • PR #113775
  • PR #113749
  • PR #113767
  • PR #113786
  • PR #113790
  • PR #113785
  • PR #113772
  • PR #113780
  • PR #113793
  • PR #113779
  • PR #113784 Thanks @fuller-stack-dev.
  • PR #113789
  • PR #113776
  • PR #113781
  • PR #113795
  • PR #113803
  • PR #113800
  • PR #113660
  • PR #113771
  • PR #113806
  • PR #113811
  • PR #113818
  • PR #113820
  • PR #113804
  • PR #113812
  • PR #113805
  • PR #113794
  • PR #113827
  • PR #113656 Thanks @PollyBot13 and @altaywtf.
  • PR #113832
  • PR #113799
  • PR #113839
  • PR #113837
  • PR #113841
  • PR #113843
  • PR #113798
  • PR #113830
  • PR #113858
  • PR #113807
  • PR #113855
  • PR #113856
  • PR #113821
  • PR #113840
  • PR #113871
  • PR #113865
  • PR #113791
  • PR #113870
  • PR #113819
  • PR #113877
  • PR #113876
  • PR #113875
  • PR #113815
  • PR #113879
  • PR #113881
  • PR #113862
  • PR #113850
  • PR #113848
  • PR #113861
  • PR #113867
  • PR #113889
  • PR #113892 Related #113191. Thanks @shakkernerd and @jrvanwinkle.
  • PR #113880
  • PR #113874
  • PR #113885
  • PR #113872
  • PR #113702
  • PR #113903
  • PR #113907
  • PR #113888
  • PR #113886
  • PR #113909
  • PR #113897
  • PR #113919
  • PR #113913
  • PR #113922
  • PR #113566 Related #113564. Thanks @obviyus.
  • PR #113354 Related #113353. Thanks @Solvely-Colin.
  • PR #113917
  • PR #113712
  • PR #113936
  • PR #113934
  • PR #113941
  • PR #113931
  • PR #113940
  • PR #113932
  • PR #113943
  • PR #113914
  • PR #113949
  • PR #113956
  • PR #113962
  • PR #113925
  • PR #113961
  • PR #113960
  • PR #113928
  • PR #113958
  • PR #113946
  • PR #113921 Related #113787. Thanks @CBruney.
  • PR #113929
  • PR #113963
  • PR #113942
  • PR #113964
  • PR #113926
  • PR #113944
  • PR #113969
  • PR #113970
  • PR #113951
  • PR #113947
  • PR #113937
  • PR #113857
  • PR #113967
  • PR #113957
  • PR #113882
  • PR #113952
  • PR #113950
  • PR #113973
  • PR #113948
  • PR #113977
  • PR #113976
  • PR #113971
  • PR #113938
  • PR #113933
  • PR #113981
  • PR #113993
  • PR #113989
  • PR #113979
  • PR #113945
  • PR #113999
  • PR #113997
  • PR #114001
  • PR #114000
  • PR #113974
  • PR #113982
  • PR #113918
  • PR #113965
  • PR #113988
  • PR #114002
  • PR #114005
  • PR #113985
  • PR #114008
  • PR #113733 Thanks @jesse-merhi.
  • PR #114009
  • PR #114018 Thanks @RomneyDa.
  • PR #114014
  • PR #114003
  • PR #114013
  • PR #114015
  • PR #114022
  • PR #114024
  • PR #114026
  • PR #114030
  • PR #114012
  • PR #113930
  • PR #114034
  • PR #114006
  • PR #114042
  • PR #114043
  • PR #114045
  • PR #114035
  • PR #112702 Thanks @yangxiansheng.
  • PR #113605 Thanks @RomneyDa.
  • PR #114040
  • PR #114038
  • PR #114051
  • PR #114048
  • PR #114052
  • PR #113471 Thanks @yt2102.
  • PR #114054
  • PR #114047
  • PR #114058
  • PR #114060
  • PR #114064
  • PR #114061
  • PR #114039
  • PR #114073
  • PR #114071
  • PR #114069
  • PR #114025 Related #114019.
  • PR #114078
  • PR #114059
  • PR #114080
  • PR #114074
  • PR #114063
  • PR #114090
  • PR #114033
  • PR #114096
  • PR #114085
  • PR #114099
  • PR #113419 Thanks @Patrick-Erichsen.
  • PR #114104 Thanks @RomneyDa.
  • PR #114115
  • PR #114120
  • PR #114122
  • PR #114121
  • PR #114131
  • PR #113883
  • PR #113197 Thanks @jesse-merhi.
  • PR #114144
  • PR #113906 Thanks @fuller-stack-dev.
  • PR #114153
  • PR #114156 Thanks @Patrick-Erichsen.
  • PR #114157
  • PR #114152 Thanks @Patrick-Erichsen.
  • PR #114056 Thanks @keshavbotagent and @jalehman.
  • PR #114130
  • PR #114205 Thanks @fuller-stack-dev.
  • PR #114016 Thanks @VACInc.
  • PR #114212
  • PR #114037
  • PR #114213
  • PR #114217
  • PR #107588 Thanks @VACInc.
  • PR #112000 Thanks @jesse-merhi.
  • PR #114221
  • PR #114216
  • PR #114218
  • PR #113667 Thanks @JesusSerrano-Seimako and @obviyus.
  • PR #114117 Thanks @VACInc.
  • PR #114224
  • PR #114227
  • PR #114226 Thanks @fuller-stack-dev.
  • PR #114223
  • PR #114219
  • PR #114220
  • PR #114232
  • PR #114231
  • PR #114228
  • PR #114225
  • PR #114229
  • PR #114235
  • PR #114233
  • PR #114230
  • PR #113834 Related #113825.
  • PR #113842 Related #113826.
  • PR #114237
  • PR #114243
  • PR #114236
  • PR #113502 Related #113480. Thanks @RomneyDa.
  • PR #114244
  • PR #114245
  • PR #114246
  • PR #114248
  • PR #114249
  • PR #113866 Thanks @VACInc.
  • PR #114247
  • PR #114259 Related #114142. Thanks @shakkernerd and @dragonclaw-dragonflydb.
  • PR #114258
  • PR #114215 Related #113975. Thanks @sallyom and @alxfyvwebaccts-png.
  • PR #114260
  • PR #114256
  • PR #113081 Related #113079. Thanks @edenfunf.
  • PR #114250 Related #114007.
  • PR #114265
  • PR #114257
  • PR #114134 Thanks @pgondhi987.
  • PR #114271
  • PR #114251
  • PR #113500 Thanks @joshavant.
  • PR #114112 Thanks @RomneyDa.
  • PR #114263
  • PR #114268
  • PR #114262
  • PR #114280 Thanks @yangxiansheng.
  • PR #114284
  • PR #113063 Related #113060. Thanks @dandriscoll.
  • PR #114288
  • PR #113905 Related #106598. Thanks @yanmo42 and @jackinx.
  • PR #114290
  • PR #105896 Related #105680. Thanks @momothemage and @aniruddhaadak80.
  • PR #114291
  • PR #114289
  • PR #114285
  • PR #114286
  • PR #114301
  • PR #114307
  • PR #114326
  • PR #114310
  • PR #114329
  • PR #114300
  • PR #114312
  • PR #114330
  • PR #114311
  • PR #114324
  • PR #114331
  • PR #114332
  • PR #114327
  • PR #114303
  • PR #114337
  • PR #114336
  • PR #114340
  • PR #114333
  • PR #114338
  • PR #114328
  • PR #114334
  • PR #114341
  • PR #114348
  • PR #113916 Thanks @interkelstar.
  • PR #114349
  • PR #114352
  • PR #113959 Thanks @ekinnee and @gucasbrg.
  • PR #114335
  • PR #114347
  • PR #112838 Related #112825. Thanks @RomneyDa.
  • PR #114325 Thanks @RomneyDa.
  • PR #114339
  • PR #113266 Thanks @xialonglee.
  • PR #114345
  • PR #114358
  • PR #114344
  • PR #114362
  • PR #114359
  • PR #114360 Thanks @1052326311.
  • PR #114363
  • PR #114356
  • PR #114365 Related #114238.
  • PR #114372
  • PR #114371
  • PR #114373
  • PR #114375
  • PR #114133 Thanks @pgondhi987.
  • PR #113884 Related #113823.
  • PR #114379
  • PR #114266
  • PR #114136 Thanks @pgondhi987.
  • PR #113783
  • PR #114384
  • PR #114369
  • PR #114394
  • PR #114380 Related #114354.
  • PR #114346
  • PR #113405 Thanks @fede-kamel.
  • PR #114378
  • PR #114397
  • PR #114381
  • PR #114391
  • PR #114366
  • PR #114404
  • PR #113935 Related #113451. Thanks @yetval and @xiaziteam.
  • PR #114396
  • PR #114393
  • PR #114407
  • PR #114395
  • PR #114410
  • PR #113465 Related #107571. Thanks @trpontes and @evan-YM and @crash2kx.
  • PR #114021 Thanks @santhiprakash.
  • PR #113966
  • PR #114417 Thanks @RomneyDa.
  • PR #114041 Thanks @zenglingbiao.
  • PR #113368 Related #113315. Thanks @carlosjarenom and @obviyus and @JesusSerrano-Seimako.
  • PR #114412
  • PR #114400
  • PR #114422
  • PR #114094 Related #114086. Thanks @lanyoung and @LeonidasLux and @BomBastikDE.
  • PR #114399
  • PR #114401
  • PR #114429
  • PR #114383 Related #113612.
  • PR #114421
  • PR #114377 Related #114374.
  • PR #114413
  • PR #114028 Thanks @santhiprakash.
  • PR #114420
  • PR #114443 Related #38829. Thanks @harjothkhara and @ZengWen-DT and @galen2017.
  • PR #114057 Thanks @santhiprakash.
  • PR #114418
  • PR #114451
  • PR #114433
  • PR #114415 Related #114398.
  • PR #112634 Related #109031. Thanks @lee-xydt and @shng-fujiwara.
  • PR #114426
  • PR #114441 Thanks @efpiva.
  • PR #114446 Related #111128. Thanks @Alex-YYYY.
  • PR #114444
  • PR #114436
  • PR #114455
  • PR #114425
  • PR #114405
  • PR #111743 Related #111741. Thanks @ooiuuii.
  • PR #114461 Related #96115, #111704. Thanks @cbertucci33 and @pallaoro.
  • PR #114463
  • PR #114392 Thanks @sunlit-deng.
  • PR #114469
  • PR #114132 Thanks @pgondhi987.
  • PR #114370 Related #114279. Thanks @WilShi and @synthalorian.
  • PR #93516 Related #102885. Thanks @Papilionidae.
  • PR #114353
  • PR #114470
  • PR #114474 Related #94529. Thanks @cunweilv-star.
  • PR #114481
  • PR #114408
  • PR #114126
  • PR #114439 Thanks @AJH763.
  • PR #114462 Related #114440.
  • PR #113654 Related #111906. Thanks @1052326311 and @dseravalli.
  • PR #56145 Related #42576. Thanks @vrurg.
  • PR #114368
  • PR #114450 Related #105078. Thanks @VectorPeak.
  • PR #114478
  • PR #114490 Related #114322. Thanks @kevin2966n.
  • PR #114457 Related #99174. Thanks @sunkencity999.
  • PR #114486
  • PR #114491 Related #83538. Thanks @Jerry-Xin and @swildcat10.
  • PR #114496
  • PR #114489 Related #104501. Thanks @ekinnee.
  • PR #114477 Related #103077, #103089, #113005, #114187. Thanks @yetval and @realaudreyserber-afk and @hvhoon.
  • PR #114495
  • PR #114479
  • PR #114367
  • PR #114275 Related #105668. Thanks @LZY3538 and @aniruddhaadak80.
  • PR #114512
  • PR #114508
  • PR #114494
  • PR #114514
  • PR #114519 Related #113282. Thanks @AIAT-AIandBusinessgrowth.
  • PR #114521 Related #114320. Thanks @kevin2966n.
  • PR #114520
  • PR #114432
  • PR #112166 Related #108331. Thanks @xialonglee and @obviyus and @Enominera.
  • PR #114499
  • PR #114524
  • PR #114453
  • PR #111709 Thanks @kesava500.
  • PR #112352 Thanks @kesava500.
  • PR #114528
  • PR #114516
  • PR #114533
  • PR #114504
  • PR #114498
  • PR #114540 Thanks @hugenshen.
  • PR #114537 Related #114321. Thanks @kevin2966n.
  • PR #114532
  • PR #114522
  • PR #114476
  • PR #113205 Related #113144, #113148. Thanks @licheer-zte and @yifanxiong272.
  • PR #114355
  • PR #114488 Related #114485.
  • PR #114539
  • PR #113070 Related #113069. Thanks @sasan1200.
  • PR #114531 Thanks @obviyus.
  • PR #112492 Related #112477. Thanks @harjothkhara and @alfredo-torrijos.
  • PR #114562
  • PR #114497
  • PR #114542
  • PR #114515
  • PR #114546 Related #105306. Thanks @Createsnow.
  • PR #114567
  • PR #114511
  • PR #114569 Related #111383. Thanks @metaforismo.
  • PR #114571
  • PR #111960 Related #111959. Thanks @ooiuuii.
  • PR #114548
  • PR #114509
  • PR #110399 Thanks @Leon-SK668.
  • PR #114549
  • PR #114386 Related #103930. Thanks @qingminglong and @revision-co-ltd.
  • PR #114568 Related #114563.
  • PR #114560
  • PR #114581
  • PR #114449 Related #114385. Thanks @loulanyue and @alfredjbclaw.
  • PR #114106 Thanks @RomneyDa.
  • PR #114556
  • PR #114582
  • PR #114559
  • PR #105931 Thanks @lsr911 and @altaywtf.
  • PR #114585
  • PR #107800 Related #106568. Thanks @harjothkhara and @altaywtf and @aniruddhaadak80.
  • PR #114564 Related #113252. Thanks @FatosLocos.
  • PR #114558
  • PR #114273 Related #106649. Thanks @LZY3538 and @aniruddhaadak80.
  • PR #114597
  • PR #114572
  • PR #114547
  • PR #113012 Thanks @liuhaiyang14 and @altaywtf.
  • PR #114607
  • PR #114606
  • PR #114616 Thanks @osolmaz.
  • PR #114500 Related #103735. Thanks @Maless88.
  • PR #113454 Thanks @giodl73-repo.
  • PR #97024 Thanks @0xghost42.
  • PR #114618
  • PR #114465
  • PR #114076 Related #105701. Thanks @qingminglong and @aniruddhaadak80.
  • PR #110849 Thanks @nocodet888-arch.
  • PR #114357
  • PR #114526 Thanks @IWhatsskill.
  • PR #114505 Thanks @IWhatsskill.
v2026.6.33 [Aug 8, 2026] details → github →

# openclaw 2026.6.33

2026.6.33

Highlights

  • Safer network and secret boundaries: provider streams, Discord REST responses, browser fetches, OAuth paths, and logs now cap hostile response sizes and keep Telegram credentials out of diagnostics. (#96989, #95412, #99428) Thanks @wangmiao0668000666, @Alix-007, @xialonglee, @liuhaiyang14, @Pick-cat, @mushuiyu886, @vincentkoc, @ZOOWH, @Pandah97, @solodmd, @zhangguiping-xydt, and @obviyus.
  • More reliable long-running agents: run release, liveness checks, and watchdog semantics now distinguish genuine stalls from active long model calls and wedged backends. (#102160) Thanks @obviyus, @kiagentkronos-cell, @alvelda, @alkor2000, and @vincentkoc.
  • Stronger channel delivery: Discord reconnects no longer silently drop queued messages or repeat ambiguous non-idempotent sends, while Telegram bot-to-bot and reply-fence handling preserve the intended thread and authorization result. (#100896, #103867, #106755) Thanks @tiffanychum, @Godecule, @yetval, @xialonglee, and @RomneyDa.
  • Safer credential recovery: service restarts preserve SecretRef-backed Telegram credentials, and OAuth repair no longer overwrites an already-valid destination profile. (#99124, #97541) Thanks @mushuiyu886, @1Wanker, @liuhao1024, @yetval, @Darren2030, @obviyus, and @RomneyDa.
  • Extended-stable updates: package installations can select, update from, and receive availability notices for the extended-stable channel without silently falling back to another release line. (#99811, #100438) Thanks @kevinslin.

Changes

  • Approval and tool authority: Codex app-server commands now require an actual human/plugin approval, exec auto-review stays bound to the exact resolved command, and narrow tool allowlists remain owned by the factory that constructs them. (#103430, #103457, #104213) Thanks @obviyus, @brokemac79, @Pandah97, @wangmiao0668000666, and @pgondhi987.
  • Scoped external tooling: external MCP loopback clients use short-lived session-bound attach grants instead of inheriting mutable child-process authority, and Gateway message actions retain trusted requester provenance and reject untrusted callers. (#102031) Thanks @pgondhi987, @Glucksberg, @wings1029, @Alix-007, @machine3at, and @anagnorisis2peripeteia.

Fixes

  • Authorization and disclosure: Gateway HTTP rejects disallowed browser origins before unauthenticated handling, permission repair stays confined to its intended include, MCP status output redacts secrets, and Gateway action bridges reject untrusted requesters. (#102881, #103267, #103396, #102031) Thanks @wangyan2026, @yetval, @NianJiuZst, @obviyus, @pgondhi987, and @brokemac79.
  • Gateway and process stability: agent-run caches are bounded, lock probes stop leaking file descriptors, close reasons preserve valid UTF-8, and heartbeat reads survive transient filesystem races. (#77973, #99291, #100047, #100389) Thanks @fede-kamel, @chenyangjun-xy, @zhangLei99586, @NarahariRaghava, @ogarciarevett, @markr9805, @849261680, @mushuiyu886, @vincentkoc, @wings1029, and @masatohoshino.
  • Provider and browser reliability: Anthropic-compatible partial streams stop hanging at their size bound, OpenAI Realtime uses the correct authentication and transcription secret flow, and remote CDP credentials stay out of responses. (#100686, #102518, #103139) Thanks @zhangguiping-xydt, @cxbAsDev, @sjf-oa, @sjf, @vincentkoc, and @obviyus.
  • Ingress and webhook safety: replayed Twilio requests are rejected under sustained traffic, corrupt queued channel rows are tombstoned without blocking later work, and Telegram tokens are redacted even when split across log chunks. (#101107, #105259, #103861) Thanks @zhangguiping-xydt, @vincentkoc, @mushuiyu886, @Pick-cat, and @xialonglee.

Complete contribution record

This audited record covers the complete v2026.6.11..db7af38c0b228fbd57613f7517bce02b056aa9ab history: 169 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #98835 Related #98672. Thanks @moguangyu5-design and @jalehman and @AaronFaby.
  • PR #96989 Thanks @wangmiao0668000666 and @vincentkoc.
  • PR #95412 Thanks @Alix-007.
  • PR #95108 Thanks @vincentkoc.
  • PR #97499 Thanks @wangmiao0668000666.
  • PR #102953 Thanks @ZOOWH.
  • PR #97551 Thanks @Alix-007 and @vincentkoc.
  • PR #97540 Thanks @Alix-007 and @vincentkoc.
  • PR #95416 Thanks @Alix-007 and @vincentkoc.
  • PR #97614 Thanks @cxbAsDev.
  • PR #97808 Thanks @Pick-cat.
  • PR #96445 Thanks @lin-hongkuan.
  • PR #97961 Thanks @eleqtrizit.
  • PR #97838 Thanks @pgondhi987.
  • PR #98455 Thanks @wings1029.
  • PR #100889 Thanks @mushuiyu886.
  • PR #77973 Related #77976. Thanks @fede-kamel and @vincentkoc.
  • PR #99291 Related #98958. Thanks @chenyangjun-xy and @zhangLei99586.
  • PR #99428 Related #96982. Thanks @xialonglee and @liuhaiyang14.
  • PR #98130 Thanks @Pick-cat.
  • PR #100047 Related #99976. Thanks @NarahariRaghava.
  • PR #100389 Related #99994. Thanks @ogarciarevett and @markr9805.
  • PR #98682 Thanks @wings1029.
  • PR #99479 Thanks @Pandah97.
  • PR #101079 Thanks @cxbAsDev.
  • PR #101160 Thanks @cxbAsDev.
  • PR #102105 Thanks @wangmiao0668000666.
  • PR #102450 Thanks @qingminglong.
  • PR #100483 Related #100423. Thanks @versatagent.
  • PR #102050 Thanks @Alix-007.
  • PR #102952 Related #55365. Thanks @lidge-jun and @Mdx2025.
  • PR #102160 Related #85826, #96168. Thanks @obviyus and @kiagentkronos-cell and @alvelda.
  • PR #96224 Related #77986. Thanks @eleqtrizit and @fede-kamel.
  • PR #96599 Thanks @sjf-oa and @sjf.
  • PR #96615 Related #96589. Thanks @liuhao1024 and @yetval.
  • PR #89812 Related #89626. Thanks @Petru2224.
  • PR #92274 Related #91527. Thanks @fsdwen and @zackchiutw.
  • PR #96396 Related #95784. Thanks @849261680 and @velvet-shark and @BryceMurray.
  • PR #96096 Related #85900. Thanks @849261680 and @velvet-shark and @fanispoulinakisai-boop.
  • PR #96831 Related #94083. Thanks @velvet-shark and @ooiuuii.
  • PR #96142 Related #95574. Thanks @brokemac79 and @riazrahaman.
  • PR #97044 Related #96983. Thanks @zw-xysk and @vincentkoc and @liuhaiyang14.
  • PR #94452 Related #94040. Thanks @mushuiyu886 and @xrow.
  • PR #96772 Thanks @wangmiao0668000666 and @vincentkoc.
  • PR #96042 Thanks @Alix-007 and @vincentkoc.
  • PR #96038 Thanks @Alix-007 and @vincentkoc.
  • PR #96031 Thanks @Alix-007.
  • PR #95103 Thanks @vincentkoc.
  • PR #97620 Thanks @Alix-007 and @vincentkoc.
  • PR #97693 Thanks @Alix-007.
  • PR #98496 Thanks @Pandah97.
  • PR #97784 Thanks @Alix-007.
  • PR #97140 Related #97091. Thanks @galiniliev.
  • PR #95543 Related #95474. Thanks @mikasa0818 and @ElliotDrel.
  • PR #97504 Thanks @hugenshen.
  • PR #90908 Thanks @shengting.
  • PR #97356 Thanks @miorbnli.
  • PR #97541 Related #97522. Thanks @liuhao1024 and @yetval.
  • PR #97520 Related #97313. Thanks @zhangguiping-xydt and @pmdvedar-ai.
  • PR #96544 Thanks @yetval and @vincentkoc.
  • PR #97579 Thanks @hugenshen.
  • PR #96644 Thanks @solodmd.
  • PR #97214 Thanks @masatohoshino and @vincentkoc.
  • PR #97372 Thanks @masatohoshino.
  • PR #95774 Thanks @mushuiyu886.
  • PR #95084 Related #90684. Thanks @jailbirt and @studentzhou-svg.
  • PR #97367 Thanks @masatohoshino.
  • PR #98693 Thanks @ZengWen-DT and @cursoragent.
  • PR #89817 Thanks @masatohoshino.
  • PR #96965 Related #96929. Thanks @zw-xysk and @YouToco.
  • PR #100107 Thanks @frank-beans.
  • PR #97861 Thanks @yetval.
  • PR #96444 Thanks @lin-hongkuan.
  • PR #96492 Thanks @yetval.
  • PR #97870 Thanks @eleqtrizit.
  • PR #98142 Thanks @RomneyDa.
  • PR #98226 Related #98225. Thanks @ooiuuii.
  • PR #99460 Related #99459. Thanks @ooiuuii.
  • PR #98354 Thanks @Pick-cat.
  • PR #98508 Thanks @lzyyzznl.
  • PR #93379 Related #77755. Thanks @xialonglee and @jiveshkalra.
  • PR #99070 Thanks @LeonidasLux.
  • PR #98720 Related #98463. Thanks @wangmiao0668000666 and @zhangLei99586.
  • PR #99800 Thanks @cxbAsDev and @vincentkoc.
  • PR #100744 Thanks @lsr911 and @vincentkoc.
  • PR #98262 Related #98239. Thanks @brokemac79.
  • PR #101366 Related #84600. Thanks @deepujain and @13884379776l.
  • PR #100835 Thanks @machine3at.
  • PR #102035 Thanks @pgondhi987.
  • PR #101617 Thanks @zhangguiping-xydt.
  • PR #101744 Thanks @hugenshen and @cursoragent.
  • PR #101739 Thanks @Alix-007.
  • PR #102089 Thanks @Alix-007.
  • PR #102661 Related #98038. Thanks @mabaty.
  • PR #102403 Thanks @yetval.
  • PR #102398 Thanks @yetval.
  • PR #102426 Thanks @pgondhi987.
  • PR #102840 Thanks @yetval.
  • PR #103441 Related #68691. Thanks @hobo-l-20230331 and @aaajiao.
  • PR #103267 Thanks @NianJiuZst.
  • PR #104015
  • PR #103619 Thanks @pgondhi987.
  • PR #104337 Related #104330.
  • PR #102881 Related #102834. Thanks @wangyan2026 and @yetval.
  • PR #105769 Thanks @mushuiyu886.
  • PR #102924 Thanks @hugenshen.
  • PR #106056 Thanks @pgondhi987.
  • PR #106806 Related #103056. Thanks @yetval.
  • PR #96143 Related #77616. Thanks @brokemac79 and @RomneyDa and @slideshow-dingo.
  • PR #97271 Thanks @hugenshen.
  • PR #96762 Thanks @wangmiao0668000666 and @vincentkoc.
  • PR #97235 Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #95542 Related #95519. Thanks @mikasa0818 and @altaywtf and @zjx111234.
  • PR #97571 Related #97564. Thanks @liuhao1024 and @nicelysalted.
  • PR #86088 Thanks @liaoandi and @altaywtf.
  • PR #99960 Thanks @masatohoshino and @vincentkoc.
  • PR #85296 Thanks @alkor2000 and @vincentkoc.
  • PR #100484 Thanks @vincentkoc and @litang9.
  • PR #100722 Related #98864. Thanks @cxbAsDev and @carterstebbins23-spec.
  • PR #94149 Related #84698. Thanks @ZengWen-DT and @cursoragent and @zus-assistant.
  • PR #96065 Thanks @Darren2030 and @obviyus.
  • PR #99124 Related #98107. Thanks @mushuiyu886 and @1Wanker.
  • PR #99931 Related #98357. Thanks @ooiuuii.
  • PR #91584 Thanks @hiragram and @openclaw-agent.
  • PR #100896 Related #56610. Thanks @tiffanychum and @Godecule.
  • PR #103867 Thanks @yetval.
  • PR #101378 Related #91489, #92054, #98573. Thanks @wendy-chsy and @Vilard7 and @arturomagdiel and @studiodevlabs.
  • PR #101394 Thanks @cxbAsDev.
  • PR #100686 Thanks @zhangguiping-xydt.
  • PR #102518
  • PR #103139
  • PR #103353 Related #103317.
  • PR #103247
  • PR #103430 Related #103427.
  • PR #103457 Related #103427.
  • PR #103617 Related #103610.
  • PR #103396 Related #103053. Thanks @obviyus and @yetval.
  • PR #103074 Thanks @pgondhi987.
  • PR #103822
  • PR #101107 Thanks @zhangguiping-xydt.
  • PR #103620 Thanks @pgondhi987.
  • PR #103861 Thanks @vincentkoc.
  • PR #105259 Thanks @Pick-cat.
  • PR #104213 Related #104208. Thanks @obviyus.
  • PR #104715 Thanks @Leon-SK668.
  • PR #105082
  • PR #102031 Thanks @pgondhi987.
  • PR #106755
  • PR #106854
  • PR #103994
  • PR #102996
  • PR #99811 Related #99808. Thanks @kevinslin.
  • PR #100438 Thanks @kevinslin.
  • PR #102759 Related #102757. Thanks @vincentkoc.
  • PR #102858
  • PR #102896
  • PR #103737 Thanks @vincentkoc.
  • PR #103759 Thanks @vincentkoc.
  • PR #103906
  • PR #104162 Related #104161. Thanks @vincentkoc.
  • PR #104697
  • PR #105746 Thanks @vincentkoc.
  • PR #99266 Thanks @RomneyDa.
  • PR #100448 Thanks @kevinslin.
  • PR #107832 Thanks @RomneyDa.
  • PR #99212
  • PR #107872 Thanks @RomneyDa.
  • PR #102600
  • PR #103204 Related #103189.

Release verification

Extended-stable Gateway release: npm and container images only. GitHub Releases has one repository-wide Latest flag, not a per-channel Latest; this page is intentionally not Latest. The moving extended-stable selectors may advance, so use the exact 2026.6.33 references below for this release.

v2026.7.2-beta.3 pre BREAKING [Jul 18, 2026] details → github →

# openclaw 2026.7.2-beta.3

2026.7.2

Highlights

  • Remote coding sessions: run Control UI sessions on cloud workers, open Codex and Claude catalog sessions in terminals on their owning hosts, and resume OpenCode and Pi sessions directly in a terminal. (#107670, #107086, #107200)
  • Native automation and nodes: bring Automations parity to mobile, add foreground Voice Wake on Android, and expose camera, location, and notification capabilities from headless Linux nodes. (#106355, #107081, #107193)
  • Safer channel operation: prevent Telegram durable-ingress loss after restarts, keep Signal stop and approval controls responsive during active turns, and stop channel allowlists from granting owner access. (#107288, #107422, #107403) Thanks @obviyus, @arduano, and @yetval.
  • Guided Control UI setup: configure model providers from Settings, onboard channels through a guided setup page, and choose images and models while creating sessions. (#106490, #106469, #107358) Thanks @alexandre-leng and @fuller-stack-dev.
  • Gateway and session recovery: prevent restart admission from wedging the Gateway, recover reply sessions after finalization stalls, and keep one-shot cron jobs enabled through lifecycle claim races. (#107339, #106792, #107236) Thanks @obviyus, @joshavant, @charliemeyer2000, and @SL4N.
  • Install and packaging: add Linux deb and AppImage bundles with Gateway guidance, publish them from stable main-based releases, and let Windows installs continue immediately after winget adds Node.js. (#106533, #106891, #106862)

Changes

  • External gateway supervision: add OPENCLAWSUPERVISORMODE=external for lifecycle owners such as OCM, preserving verified restart and deferral behavior without exposing native service authority, blocking native service mutation and self-update, and providing a versioned atomic restart-handoff consume contract. Thanks @shakkernerd.
  • ClickClack guided setup: configure ClickClack from openclaw onboard or openclaw channels add clickclack with URL, token, and workspace prompts, default-account env fallback, nonfatal live connection validation, and gateway-aware next steps that connect automatically when OpenClaw is already running. Thanks @shakkernerd.
  • ClickClack command menus: publish each bot's native OpenClaw commands to ClickClack composer autocomplete at gateway startup, with per-account opt-out and nonfatal compatibility handling for older tokens and servers. Thanks @shakkernerd and @vincentkoc.
  • Skill Workshop approvals: run agent-initiated apply, reject, and quarantine actions without an additional approval prompt by default while preserving skills.workshop.approvalPolicy: "pending" as an opt-in approval gate. Thanks @shakkernerd.
  • TUI fuzzy selectors: delegate list matching to pi-tui, adding slash-token and alpha-number matching while removing the local matcher fork.
  • macOS paired-node terminals: advertise duplex Codex and Claude terminal resume commands from the embedded node host and forward interactive input and cancellation through the native app bridge. (#107335)
  • Control UI catalog terminals: open eligible Codex and Claude Code sessions in the native CLI on their Gateway or paired-node host, with viewer-versus-terminal preferences, validated resume commands, and an interactive PTY relay. (#107086) Thanks @vincentkoc.
  • Skill Workshop history review: add a manual, newest-first session scan that progressively searches older substantial work for conservative skill ideas, stores only SQLite cursor metadata, and leaves up to three results as pending proposals even when autonomous self-learning is disabled. (#106182)
  • OpenAI GPT-5.6 defaults: use openai/gpt-5.6 (Sol alias) for fresh API-key setup and exact openai/gpt-5.6-sol for fresh Codex/OAuth setup, default Sol to medium reasoning across both runtimes, and preserve existing primaries, fallbacks, aliases, and explicit GPT-5.5 selections. (#103234)
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100194)
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046)
  • Control UI session workspace shortcut: expand or collapse the active Chat pane's session workspace rail with ⇧⌘B without changing the main app sidebar or the separate detail and Canvas preview panel. Thanks @shakkernerd.
  • Control UI Settings shortcut: open Settings with ⇧⌘, while leaving the browser-owned ⌘, shortcut unchanged. Thanks @shakkernerd.
  • Control UI chat layout: center the transcript on the composer axis, keep assistant and tool output left and user bubbles right within the same readable frame, and preserve custom message-width overrides. (#104474) Thanks @shakkernerd, @vincentkoc, and @zw-xysk.
  • Control UI composer footer: center the chat settings chip and model controls between the divider and the card edge instead of pinning them to the divider. (#105866)
  • Control UI assistant actions: keep assistant name and time first while placing hover actions beside them on the left instead of at the far edge. Thanks @shakkernerd.
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd and @vincentkoc.
  • Workboard dispatch cap: add a request-scoped --max-starts override while preserving the default cap, sequential starts, and one-card-per-owner guard. (#100174) Thanks @souvikDevloper, @Souvikalp, and @jwest75674.
  • Plugin install provenance warnings: require explicit --force acknowledgement for arbitrary executable plugin sources in CLI and chat installs, keep trusted ClawHub, bundled, official-catalog, and tracked-update flows frictionless, and restrict Crestodian installs to trusted sources. (#102197) Thanks @jesse-merhi.
  • Cloud workers: add session placement, dispatch, and worker-turn routing for remote session execution. (#106332)
  • Paired-node coding agents: discover OpenCode and Pi sessions and continue Codex and Claude catalog sessions through streaming CLI agent runs. (#106941, #106927, #105833)
  • Catalog sessions: create eligible catalog sessions directly from the Control UI sidebar. (#105810) Thanks @fuller-stack-dev.
  • Managed worktrees: configure cleanup limits by count and total size from Settings. (#106224)
  • Cron history: serve scheduled-run history from the task ledger. (#106392)
  • Coding-agent memory: import Codex and Claude Code memory into the Control UI. (#106406)
  • MCP isolation: scope MCP server connections to their requesting session. (#106359) Thanks @obviyus.
  • Discord voice: notify agents when voice-channel participants change. (#107004)
  • Codex usage: show the signed-in account email alongside app-server usage windows. (#106500)
  • Skill Workshop: scan prior session history for conservative, reviewable skill ideas. (#106766)
  • Task previews: show the latest tasks from the running-tasks status row. (#107297)
  • Session changes: show the active branch and local changed-file state in Control UI sessions. (#106835)
  • Channel progress: reserve progress drafts for long-running work and use the model's own preamble as the status headline. (#106026)
  • Codex CLI: bump the bundled plugin to Codex CLI 0.144.6 and align GPT-5.6 Codex context metadata with the upstream 272k limit.

Fixes

  • Cloud worker derived workspace caches: exclude Python caches, dependency trees, and macOS metadata symmetrically from outbound sync and inbound reconciliation so local cache rewrites cannot fence later cloud results or worker reclaim.
  • Codex model status diagnostics: report a configured Codex route as unavailable when its harness plugin is disabled, missing, or quarantined, while preserving the separate credential result and making models status --check fail instead of silently treating fallback execution as healthy. Thanks @shakkernerd.
  • Gateway control-plane rate limiting: use per-method buckets with a 30-per-minute budget so interactive admin writes remain responsive while retaining runaway-loop protection.
  • Signal shutdown delivery: drain already-accepted ingress before stopping the monitor so messages received immediately before shutdown finish processing instead of being dropped.
  • External supervisor restart health: accept device-identity policy closes only when the replacement gateway lock and listener PID agree, preventing OCM-managed restarts from timing out after a successful handoff. Thanks @shakkernerd.
  • ACPX cleanup process inspection: bound host process-table reads so stalled ps calls cannot hang gateway startup or session cleanup while retaining fail-closed ownership checks. Thanks @Alix-007.
  • Cron lifecycle conflict retries: preserve execution-phase retry decisions across scheduled, manual, and startup-recovered runs so post-execution claim conflicts cannot replay completed messages or tools. Fixes #108428. Thanks @yetval.
  • Discord gateway metadata deadline: carry the existing lookup deadline through DNS and proxy preflight, request headers, and response bodies so stalled gateway startup aborts cleanly. (#104580) Thanks @hugenshen.
  • Control UI cloud session thinking: expose reasoning level in the New Session model picker and persist the selected level before cloud dispatch.
  • iOS fresh-install setup: atomically redact spent setup credentials before Keychain cleanup so a deferred item deletion no longer disconnects a successfully paired device. Fixes #107591 Thanks @dagmarjeeves-lab and @vincentkoc.
  • Tlon SSE connect cleanup: disarm opening deadlines after failed HTTP responses and rejected stream opens so reconnect attempts cannot leave stale timers behind. (#104585) Thanks @hugenshen.
  • LINE reply-token media kinds: honor video and audio metadata on inbound replies, share the canonical media builder with proactive sends, and fail visibly instead of recording empty media-only deliveries. (#106515) Thanks @edenfunf.
  • Mattermost websocket connection deadlines: bound opening handshakes so stalled TCP peers cannot hang channel startup indefinitely and reconnect control resumes after timeout. (#105553) Thanks @hugenshen.
  • Queued TTS retries: copy local outbound media into queue-owned storage before enqueueing so voice replies survive producer temp cleanup and restart recovery, retain referenced artifacts through retry backoff, and prune unreferenced spool files after one day. Fixes #108501. (#108502) Thanks @masatohoshino.
  • Feishu app registration deadlines: bound OAuth device-registration requests to 10 seconds through the guarded fetch boundary so setup cannot hang indefinitely on stalled response headers. (#105549) Thanks @hugenshen.
  • LINE control-command mentions: detect authorized slash commands before mention stripping so inline group and direct-message controls preserve the original ingress metadata. (#107230) Thanks @edenfunf.
  • Feishu document image reads: bound remote document-image headers and stalled bodies with the selected account timeout, parse document Markdown through the plugin's MDAST pipeline, preserve image/block alignment, and reject failed upload input before creating empty image blocks. Thanks @Alix-007.
  • ClawHub registry reads: retry bounded HTTP 500 responses alongside other transient gateway failures so multi-package release scans survive isolated registry errors.
  • Slack Socket Mode health: report connected Socket Mode transports as degraded when auth.test fails or the configured bot token resolves to a user without bot_id, while preserving healthy enterprise-org installs. Thanks @zw-xysk.
  • Synology Chat response limits: bound user-list response reads, stop oversized streams immediately, and retain stale cached identities when a NAS exceeds the supported envelope. Thanks @zw-xysk.
  • Usage date ranges: exclude legacy transcript rows without timestamps from finite session ranges while preserving them in all-time totals, and rebuild older usage caches before serving the new semantics. Fixes #89709. Thanks @TurboTheTurtle.
  • LINE group history races: retain ambient group messages received during an active mention turn for the next turn while consuming the pre-turn snapshot exactly once. (#107367) Thanks @edenfunf.
  • Mattermost progress command details: accept the documented streaming.preview.commandText and streaming.progress.commandText modes in channel config validation and bundled metadata. Thanks @shakkernerd.
  • 1Password authorization handoff: persist nonce-bound pending approvals in shared plugin state so hook and tool execution across broker instances remain single-use and fail closed.
  • Control UI chat transcripts: preserve loaded history across session and pane returns, bound automatic backscroll loading, virtualize long transcripts, retain hidden native run boundaries, and keep prepends, streaming, and responsive layouts from flickering or jumping. Thanks @shakkernerd.
  • Codex dynamic tool outcomes: use the shared tool-result failure contract for arbitrary lifecycle metadata, preventing successful Skill Workshop results from being displayed and persisted as failed calls. Fixes #107684. Thanks @shakkernerd.
  • Codex /status context freshness: consume exact per-response usage from Codex app servers that emit rawResponse/completed; when exact usage is unavailable or omitted, keep context unknown instead of reusing cumulative lifetime totals. (#107813) Thanks @wuqxuan.
  • Nested resource ignores: honor slash-free patterns and escaped literal exclamation marks in nested ignore files during skill and resource discovery. Thanks @moguangyu5-design.
  • Proxy bypass precedence: honor blank lower-case noproxy values shadowing upper-case NOPROXY consistently with Undici, and reuse the canonical matcher for Telegram fallback selection.
  • Tokenjuice exec compaction: avoid retaining raw command output inside compacted middleware metadata, preventing large successful compactions from failing the middleware details-size guard.
  • Agent git package identities: strip refs before hosted-repository parsing and reject traversal segments so GitLab branch refs resolve to the canonical managed install path. Thanks @vincentkoc.
  • Tlon custom S3 uploads: pass storage endpoints through the AWS SDK's native parser so custom S3-compatible uploads no longer fail before presigning.
  • Signal active-run controls: keep authorized stop, status, approval, and queue-read controls responsive during active turns while preserving ordinary and stateful turns in canonical session admission, and cancel every pending group sender lane on stop. (#107422) Thanks @arduano.
  • Agent auth storage locks: surface normal release failures while avoiding redundant release attempts after proper-lockfile reports a compromised lock.
  • Paired-node session catalogs: authorize bundled Anthropic and Codex catalog requests to invoke their read-only node commands from Control UI read flows, restoring remote Claude/Codex rows and terminal resume availability. Fixes #107406 Thanks @vincentkoc.
  • Sandbox recreate confirmation: treat Clack cancellation as a decline so Ctrl-C cannot proceed with container removal.
  • Microsoft Teams HTML text: decode HTML5 entities consistently in quoted and Graph-fetched messages while preserving literal escaped entity text.
  • ClawHub plugin API ranges: delegate each supported comparator to semver so tilde, partial-wildcard, and prerelease caret bounds are correct while preserving OpenClaw version normalization and the existing restricted range grammar. (#106877)
  • Web Readability relative links: seed parsed documents with the request URL so article links resolve correctly while removing the plugin's duplicate lazy-loader facade. (#106860)
  • Browser auto-routing: fall back to the Gateway host when an implicitly selected browser node reports that its control host is unreachable, while preserving explicit node pins and ambiguous action failures.
  • Discord voice participant context: maintain the live Gateway voice-state roster and include current channel participants in authorized voice agent turns so agents can answer who is present. Thanks @vincentkoc.
  • OC Path JSONC insertion: patch object and array insertions through jsonc-parser so comments, trailing commas, and CRLF formatting survive. (#106847)
  • Windows winget installs: continue in the current PowerShell session when winget installs Node.js before the machine PATH update becomes visible, avoiding a false Node.js not found failure. (#106862)
  • Control UI realtime Talk feedback: request browser echo cancellation, noise suppression, and automatic gain control for every microphone transport, and keep PCM capture processors connected through zero-gain sinks so microphone input cannot play locally.
  • Agent source-reply recovery: preserve current-chat delivery evidence for message sends executed through Code Mode, preventing successful replies from triggering a redundant retry and misleading delivery-failure diagnostic. Thanks @vincentkoc.
  • Gateway in-process restarts: clear stale SIGUSR1 restart state and resume prepared host suspensions before rebuilding runtime admission, preventing restart cooldowns or paused scheduling from leaking into the next lifecycle. Thanks @vincentkoc.
  • ClickClack durable media delivery: route media replies through required delivery, reuse owner-scoped upload and message nonces across retries, repair persisted attachment state without rereading source media, fail closed when an older ClickClack server cannot prove an unknown send, and use the selected provider and model's runtime output budget instead of a channel-level token cap. Thanks @jjjhenriksen and @shakkernerd.
  • Deepgram realtime custom endpoints: validate Voice Call streaming base URLs with secret-safe errors, preserve explicit ws:// and wss:// endpoints, and map HTTP schemes to their matching WebSocket transport for dedicated and self-hosted deployments. (#105334) Thanks @dwc1997, @vincentkoc, and @zw-xysk.
  • Control UI New Session reconnects: rediscover agents, nodes, repository branches, and folder-browser state, refresh derived workspaces, gate unvalidated devices, and block ambiguous retries after Gateway client replacement while preserving the typed task and explicit choices. Fixes #106372 Thanks @vincentkoc.
  • macOS remote node readiness: take the main-session key from the node hello snapshot instead of opening an operator connection during node admission, preventing remote tunnel recovery from leaving Computer Use and node exec stuck in lifecycle transition.
  • Claude CLI context budgets: honor Anthropic model and per-agent contextTokens limits by passing the effective limit to Claude Code's native auto-compactor and persisting the same prepared budget in OpenClaw session state. Fixes #80933. (#93198) Thanks @mushuiyu886 and @gorkem2020.
  • Transcript read failures: propagate permission and I/O failures from streaming JSONL session reads instead of treating unreadable transcripts as empty. (#106412) Thanks @zenglingbiao.
  • Restart sentinel diagnostics: report SQLite read/write and legacy-file cleanup failures while preserving best-effort restart recovery behavior. (#106385) Thanks @zenglingbiao and @wendy-chsy.
  • Native app connection and relay reliability: keep Android disconnects stopped across Activity recreation, fail remote camera commands without opening permission prompts, refresh mobile node registration after capability changes, surface iOS onboarding connection failures, cancel stale Talk owners on session switches, reject invalid Watch acknowledgments, preserve Watch events received during startup, and prevent older agent overview requests from replacing newer gateway state. Thanks @vincentkoc.
  • Gateway source watch: hand the configured port off from the installed service before starting the tmux watcher, preserve failed panes for attach/capture, and keep explicit alternate-port watches side by side with the managed Gateway. Thanks @vincentkoc.
  • Claude CLI max-turn diagnostics: preserve terminal max-turn results with OpenClaw and Claude session context, warn when tool actions may already have run, and stop unsafe auth-profile or model replay for potentially side-effecting turns. (#94130) Thanks @zhangguiping-xydt and @tdrose01.
  • Provider network retries: align provider read/poll/download and agent-wait recovery for transient connection errors, retry bounded provider ENOTFOUND failures while leaving gateway ENOTFOUND and non-idempotent create operations fail-fast. (#101496) Thanks @xialonglee.
  • Session retry classification: stop permanent provider errors whose identifiers or payload details merely contain 429/5xx digit sequences from re-sending full context, and share bounded rate-limit-window parsing across retry paths. (#105258) Thanks @destire-mio and @yetval.
  • LINE directive templates: suppress confirms and buttons with blank required fields or unlabeled actions while preserving valid titleless buttons and surrounding reply text. (#105520) Thanks @edenfunf.
  • SQLite maintenance schema validation: reject current-version global and agent databases with missing or drifted canonical tables, constraints, indexes, triggers, or table options before compaction, while accepting supported additive-migration layouts.
  • Matrix bootstrap diagnostics: preserve complete UTF-8 code points in bounded stdout and stderr tails so crypto dependency failures do not show replacement characters at retention boundaries. (#105475) Thanks @qingminlong.
  • iOS Watch relay commands: allow paired iPhone nodes to advertise and invoke watch.status and watch.notify through the default Gateway policy while preserving the direct watchOS node's fixed minimal command surface. Thanks @vincentkoc.
  • Swabble status config: honor the global --config path when reading service status instead of silently using the default configuration.
  • ClawHub retry timing: reject fractional delay-seconds and calendar-normalized invalid Retry-After dates so runtime and release reads stay on their bounded fallback schedule. (#105479) Thanks @qingminlong.
  • Discord thread archive defaults: inherit each parent channel's configured auto-archive duration for binding-created threads instead of forcing 60 minutes, while preserving explicit overrides. (#103413) Thanks @wings1029.
  • Installed plugin loading: make native-module fallback use jiti's transform path instead of retrying the same synchronous ESM load, preventing Node 24 startup races when official plugins import SDK contract modules. Thanks @vincentkoc.
  • QA profile channel execution: partition mixed Crabline channel scenarios into one aggregate host suite so taxonomy-backed profile commands and evidence workflows no longer abort before execution.
  • Plugin SDK API baseline: cover every public entrypoint, preserve complete declaration shapes without source-line churn, and run baseline and export-surface guards from changed-file validation. Thanks @vincentkoc and @zw-xysk.
  • SQLite terminal session recovery: track physical transcript mutation time in the agent database so killed or timed-out main sessions rotate when transcript writes outlive the registry update, while preserving legacy transcript mtimes during doctor import. Thanks @vincentkoc.
  • Gateway chat typecheck: import chat event types from their owning protocol schema after the retired aggregate type module was removed, restoring full project typechecks. Thanks @vincentkoc.
  • Packaged Crabbox commands: include the lease-freshness helper imported by the published wrapper so crabbox:* commands do not fail with ERRMODULENOT_FOUND in npm installs. Thanks @vincentkoc.
  • Plugin session catalogs: reject unknown catalog filters, report catalogs as plugin capabilities, and preserve them in SDK registration captures instead of silently returning empty results or classifying catalog-only plugins as capability-free. Thanks @vincentkoc.
  • Gateway service audit: treat POSIX shell -c wrappers as opaque for the gateway-subcommand check, avoiding false missing-command warnings for shell-wrapped macOS LaunchAgents without parsing inner commands or ports. Fixes #81751. (#81778) Thanks @liaoandi.
  • Outbound channel bootstrap: suppress repeated failed plugin activation for the same channel, config, and registry generation while retrying after config or registry reloads. (#100377) Thanks @xialonglee.
  • OpenAI Realtime client-secret deadlines: bound voice and transcription secret acquisition to 30 seconds through the guarded fetch boundary while preserving authentication and bounded response parsing. (#102860) Thanks @Alix-007 and @Leon-SK668.
  • Gateway client watchdog: keep transport-stall detection active for unbounded and mixed pending requests so dead sockets reject pending requests, reconnect, and never replay rejected requests. (#103407) Thanks @NianJiuZst.
  • iOS Share Extension drafts: preserve legitimate shared text beginning with scaffold-like prefixes, remove only exact legacy scaffold lines, avoid treating scheme-like prose as a URL, and deduplicate host-mirrored content. (#103453) Thanks @lin-hongkuan and @harjothkhara.
  • Telegram reasoning previews: reposition split reasoning previews through deferred deletion so prior preview messages do not remain stale while preserving client scroll position. (#97828) Thanks @ly-wang19 and @kyle20026.
  • Feishu native-card threading: normalize whitespace reply targets once and reuse the shared reply mode for card and media parts so native-card topic replies stay in their thread. (#102804) Thanks @sunlit-deng.
  • QQBot token requests: bound token acquisition with the shared 30-second guarded-fetch deadline so stalled singleflight callers fail together, clean up, and can retry. (#102897) Thanks @maweibin.
  • Canvas A2UI validation: reject malformed or unsupported JSONL at CLI, agent-tool, and final node-invoke boundaries while preserving native v0.8 dispatch. (#103713) Thanks @qingminglong.
  • Twilio RCS inbound routing: normalize RCS consumer addresses only after signed webhook validation so sender matching and sessions work without changing outbound RCS semantics. (#102373) Thanks @clawSean.
  • ClickClack output sanitization: strip internal tool and XML scaffolding at the sender boundary, suppress scaffold-only sends, and preserve optional modern delivery IDs. (#103142) Thanks @masatohoshino, @vincentkoc, and @zw-xysk.
  • Agent-core truncation: avoid empty-output crashes when head truncation receives negative line or byte ceilings. (#103425) Thanks @qingminglong.
  • Windows Node resolution: preserve the current executable when resolving bare case-insensitive node.exe entries under hostile PATH values. (#103907) Thanks @soldforaloss and @vincentkoc.
  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762)
  • Agent abort cleanup: serialize prompt lock reacquisition with terminal cleanup so canceled embedded runs do not self-contend on session locks for up to 60 seconds.
  • Chutes OAuth deadlines: bound token exchange, profile lookup, and refresh requests, and keep issued tokens when optional userinfo enrichment stalls. (#102026) Thanks @Alix-007.
  • Control UI workspace avatars: inline validated agent avatar files in bootstrap and identity responses so Personal card images render without unauthenticated avatar-route requests, while preserving configured emoji precedence. (#102892, #97602) Thanks @LZY3538 and @mtuwei.
  • Exec safe-bin flags: auto-approve curated read-only boolean flags for default stdin-only filters while keeping unknown flags, tail follow/retry modes, file operands, and custom profiles fail-closed. (#88953) Thanks @yetval.
  • iOS session mutations: scope rename, archive, pin, delete, and fork requests to the selected agent, preserving the parent agent for forked sessions so multi-agent chat actions cannot mutate or create sessions under the wrong agent. (#103366, #103415) Thanks @lin-hongkuan and @harjothkhara.
  • Swift protocol initializers: default every schema-optional generated initializer parameter to nil so additive protocol fields no longer break SDK construction call sites.
  • OpenCode Go MiMo catalog: stop exposing the deprecated mimo-v2-omni and mimo-v2-pro aliases that reject agent requests, and keep release validation on the active MiMo V2.5 routes. (#103311, #103329) Thanks @krissding.
  • Audit time filters: reject impossible calendar dates for openclaw audit --after and --before instead of rolling them into unintended intervals, while preserving timezone-less timestamp semantics. (#103433) Thanks @qingminglong.
  • OpenAI-compatible streamed tool calls: execute complete native tool calls from streams that end with SSE data: [DONE] but omit finish_reason, while keeping transport EOF and visible-text cases fail-closed. (#98124, #97994) Thanks @SunnyShu0925 and @wszhhx.
  • xAI provider aliases: preserve Grok 4.3 and Grok 4.5 thinking profiles, fast-model routing, and encrypted reasoning replay when models use the shipped x-ai provider alias instead of clamping valid thinking requests to minimal. (#103315)
  • Doctor state isolation: prevent automated update and Gateway watch repair from importing and archiving default-home exec or plugin-binding approvals when OPENCLAWSTATEDIR points elsewhere, keep implicit CLI preflight notice-only, and reserve cross-state imports for direct operator doctor runs. (#103247, #103317) Thanks @vincentkoc.
  • Doctor clean-state guidance: stop suggesting openclaw doctor --fix after a clean run with no config changes while preserving targeted repair hints. (#103233) Thanks @kewang-pika and @nonplace.
  • Google music generation: retry one unblocked Lyria response that omits its contractually required audio while keeping prompt blocks and terminal generation stops non-retryable. (#103318)
  • OpenCode Zen model catalog: refresh the provider-owned static seed for Claude Sonnet 5, Grok 4.5, Hy3 Free, Kimi K2.7 Code, and MiniMax M3 with verified routing, pricing, limits, and input capabilities, remove retired free-tier rows, and expose the same catalog through unauthenticated model listing. (#103184)
  • Managed browser launch: surface asynchronous Chrome bootstrap and runtime spawn failures as browser errors while keeping Gateway alive, and retain process error handling through later lifecycle failures. Thanks @vincentkoc.
  • Browser node-proxy downloads: transfer every action-produced download to the Gateway media store, align a 10 MiB per-file and 16 MiB aggregate transport budget, and rewrite plural download paths to Gateway-local files without traversing page-controlled result data.
  • Gateway startup migrations: release the shared migration lease before exiting when the selected config changes during startup, allowing immediate retries instead of blocking readiness until the five-minute lease expires. (#103145)
  • Apple timeout recovery: return promptly from shared operation deadlines and caller cancellation even when platform work ignores cancellation, while isolating late Gateway handshakes and cleaning up location and permission waiters. (#103066) Thanks @NianJiuZst.
  • Claude CLI warm sessions: preserve managed stdio continuity when Claude writes no native transcript, fall back to bounded OpenClaw history only when the exact live child disappears or changes, and keep stateless runs from persisting CLI bindings. (#96841) Thanks @bradreaves.
  • CLI plugin listing: skip state-migration runtime loading when no legacy inputs exist, reducing packaged cold-start memory while preserving migrations for legacy plugin indexes and configured session stores.
  • Unicode-safe bounded text: preserve complete UTF-16 surrogate pairs when shortening previews, prompts, diagnostics, labels, session keys, link metadata, and identity values across Control UI, CLI, Gateway, plugins, QA, memory, and Android surfaces. (#102625, #102626, #102627, #102816, #102823, #102833, #102877, #102949, #102963, #102969, #102988, #103010, #103034, #103210, #103341, #103487, #103543, #103580, #103646) Thanks @zhangguiping-xydt, @wings1029, @wangyan2026, @Pandah97, @MoerAI, @SunnyShu0925, @zhangqueping, @zw-xysk, @cxbAsDev, @lzyyzznl, @coder-master-0915, @LeonidasLux, @mushuiyu886, @ly85206559, @Simon-XYDT, @lsr911, @vincentkoc, @chengzhichao-xydt, and @wangmiao0668000666.
  • Cron list table: sanitize and size bounded cells by terminal display width so CJK, emoji, combining marks, and terminal-control input cannot corrupt alignment or output. (#103616) Thanks @mushuiyu886.
  • CLI model tables: sanitize, truncate, and pad model-list cells by rendered terminal width so emoji, CJK, and other wide graphemes keep columns aligned. (#102819) Thanks @Kevin23-design and @vincentkoc.
  • Skills prompt compaction: preserve every included skill identity before using the remaining prompt budget for shortened, UTF-16-safe descriptions, retaining trigger guidance without exceeding the hard limit. (#88426) Thanks @abel-zer0, @vincentkoc, @chengzhichao-xydt, @wangmiao0668000666, and @Pandah97.
  • Channel Markdown code tables: size columns by rendered display width so CJK, emoji, and mixed-width cells stay aligned across shared Telegram and Discord output. (#55596, #55512) Thanks @sparkyrider and @zjy282.
  • QQ Bot approval previews: wrap long sanitized commands and metadata at grapheme boundaries with visible continuation markers and safe fences, keeping desktop QQ reviews readable without changing command content. (#102119, #101979) Thanks @Bartok9 and @xuzhi5858.
  • Codex computer control: publish fixed-length coordinate pairs as homogeneous array schemas so Codex app-server can start threads with the computer tool instead of rejecting tuple-valued items.
  • Google Chat request deadlines: bound control calls to 30 seconds while giving media transfers size-aware total budgets and a separate 30-second stalled-body guard, preventing hung Chat API requests without breaking large attachment uploads. (#102227) Thanks @hugenshen.
  • Google Gemini prefixed model IDs: recognize google/gemini- and models/gemini- when selecting multimodal function-response behavior, preserving the Gemini 2 image fallback without regressing Gemini 3 inline image responses. (#102382) Thanks @LiLan0125 and @yetval.
  • Generated provider model catalogs: keep MiniMax and NVIDIA catalog rows when they advertise audio or video metadata while projecting runtime model inputs to text/image, preventing configured multimodal primaries from being dropped and falling back. (#97858, #97048) Thanks @ly-wang19 and @zackchiutw.
  • DeepSeek catalog metadata: align V4 Flash and Pro pricing with DeepSeek's current cache-hit, cache-miss, and output rates; refresh exact catalog metadata written by older onboarding flows; and document the July 24 retirement of the legacy deepseek-chat and deepseek-reasoner compatibility names. (#103192)
  • CLI audio transcript files: treat inferred Whisper and Parakeet text files as authoritative so empty or missing output cannot expose progress/status stdout as user speech. (#87393, #87384) Thanks @kesslerio.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Browser tab adoption: preserve the prior implicit tab and stable aliases when new MCP, Playwright, or CDP targets fail final safety validation, abort after creation, or cannot be rediscovered; validate labels before creating tabs and limit managed cleanup to adopted targets. (#105301) Thanks @hugenshen.
  • Mattermost block streaming: preserve complete, non-duplicated text and tool blocks in draft preview mode, and honor normal block streaming when preview streaming is disabled. (#87449) Thanks @yetval and @Senseonics-AI.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197)
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Amazon Bedrock control-plane deadlines: bound model discovery and application inference-profile lookups, preserve caller cancellation, and close short-lived SDK clients after each request path. Thanks @Alix-007 and @vincentkoc.
  • Reply pre-delivery recovery: bound each pre-delivery callback with an owner-overridable deadline, release serialized reply lanes after hung plugin work, and preserve durable final-delivery retry state only when transport never started. (#104256) Thanks @NianJiuZst and @BenjaminBrossi.
  • Signal native quote replies: preserve the active inbound message as a native quote across agent, explicit, durable, and chunked sends while keeping reply-mode policy inside the Signal plugin. (#105347) Thanks @jesse-merhi and @vincentkoc.
  • Media-store remote downloads: bound response-header waits and stalled bodies, close abandoned redirect and error responses, and remove partial temp files so hung sources cannot pin callers. (#104624) Thanks @hugenshen.
  • Cron llama.cpp tool schemas: keep the model-facing cron declaration schema compatible with llama.cpp while retaining gateway and runtime nonblank validation. Fixes #107449. (#108360) Thanks @lee-xydt and @Patt92.
  • Terminal sessions: preserve early keystrokes, enable paired-node terminal actions, authorize paired-node catalog reads, recover after stale Control UI connections, and keep slow clients attached under heavy output. (#107214, #107361, #107410, #107419, #107348) Thanks @vincentkoc and @zw-xysk.
  • Control UI configuration: auto-save validated edits, restore autosave gates, show unapplied-restart state, and keep normal content scrolling and selection behavior. (#107458, #107477, #107577, #107349)
  • Signal recovery: reconnect after stalled container handshakes, prevent overlapping daemons during restart, and preserve username targets during phone normalization. (#107386, #107409, #107365) Thanks @hugenshen, @ZHOUKAILIAN, @UberKitten, and @ly-wang19.
  • Authorization boundaries: require operator-admin authority for paired-node directory browsing and block prototype pollution in migration config merges. (#106004, #106116) Thanks @yangxiansheng, @joshavant, @yetval, and @ruel225.
  • Conversation identity: retain speaker attribution across group turns and reduce malformed Discord guild reply tool calls. (#107025, #107474) Thanks @lonexreb.
  • Provider setup: show OpenRouter OAuth denial errors, find credentials stored under auth aliases, and keep unresolved API-key providers visible for repair. (#105448, #106736, #106754) Thanks @VectorPeak and @altaywtf.
  • Claude and Codex sessions: keep Claude turns open for native background work, avoid Codex shutdown warnings after live updates, complete Codex onboarding login handoff, and retire completed hook relays. (#106347, #106418, #107174, #106899) Thanks @obviyus, @fuller-stack-dev, and @bek91.
  • Apple apps: connect iPhone and Watch clients to protocol-v3 Gateways, reject incomplete attachment shares, and honor the pinned Swift toolchain in iOS release archives. (#106294, #106513, #107188) Thanks @jincheng-xydt, @harjothkhara, and @joshavant.
  • Memory reliability: preserve UTF-8 across split QMD output, keep canonical cache rows during legacy migration, and accept leading-zero JSON content lengths. (#107263, #107243, #105916) Thanks @wahaha1223, @felirami, @Tony-ooo, @qingminlong, @vincentkoc, and @zw-xysk.
  • Skills and Workshop: keep globally installed ClawHub skills tracked, clean orphaned usage rows, surface verification errors, and default Workshop approvals to automatic handling. (#106479, #107144, #107143, #107690) Thanks @ml12580, @mnowrot, @SunnyShu0925, and @shakkernerd.
  • Bounded network calls: time out Google Chat authentication, Slack directory and read-mode calls, and Twitch user lookups instead of hanging. (#106178, #106643, #107103, #105883, #107360) Thanks @QiuYuang, @Monkey-wusky, @maweibin, @zw-xysk, and @Alix-007.
  • Channel delivery: warn when scalar streaming falls back and make ClickClack media delivery durable while using the selected model's runtime budget. (#106796, #105775) Thanks @jjjhenriksen.
  • Plugin management: honor standard ClawHub API comparators and let Control UI administrators enable installed plugins. (#106889, #106318)
  • Runtime configuration: preserve resolved cache-retention values, apply explicit environment-variable removals, and keep dispatched Workboard cards from sticking in running state. (#106069, #107258, #107271) Thanks @krissding, @jalfaro2876, and @pgondhi987.
  • Input and output safety: redact sensitive migration terminal output, normalize managed git-package identities, and avoid retaining raw command output in compacted Tokenjuice metadata. (#106806, #107637, #107705) Thanks @yetval.
  • Network and resource matching: share canonical NO_PROXY behavior and honor nested ignore patterns plus escaped literal exclamation marks. (#107711, #106258) Thanks @moguangyu5-design.
  • Markdown frontmatter: preserve coerced fallback values when YAML nodes cannot be represented directly.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.2-beta.3
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.2-beta.3.tgz
  • integrity: sha512-b1U1Q2/IrP3NX3ZWruiasWEJPjl2dq0Hm8ZByZrE7GwLqo78wu8eB7eJAqCEu29MtlBxLLSKz58SE01WUBf7dw==
  • release SHA: d111bef0eed5aefb1e7c5ac59801c1f0924495f1
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.2-beta.3/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/29664100317
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/29662726100
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/29660853502
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/29664738469
  • plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/29664739655
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/29664809781
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/29663308444
v2026.7.2-beta.2 pre BREAKING [Jul 17, 2026] details → github →

# openclaw 2026.7.2-beta.2

2026.7.2

Highlights

  • Remote coding sessions: run Control UI sessions on cloud workers, open Codex and Claude catalog sessions in terminals on their owning hosts, and resume OpenCode and Pi sessions directly in a terminal. (#107670, #107086, #107200)
  • Native automation and nodes: bring Automations parity to mobile, add foreground Voice Wake on Android, and expose camera, location, and notification capabilities from headless Linux nodes. (#106355, #107081, #107193)
  • Safer channel operation: prevent Telegram durable-ingress loss after restarts, keep Signal stop and approval controls responsive during active turns, and stop channel allowlists from granting owner access. (#107288, #107422, #107403) Thanks @obviyus, @arduano, and @yetval.
  • Guided Control UI setup: configure model providers from Settings, onboard channels through a guided setup page, and choose images and models while creating sessions. (#106490, #106469, #107358) Thanks @alexandre-leng and @fuller-stack-dev.
  • Gateway and session recovery: prevent restart admission from wedging the Gateway, recover reply sessions after finalization stalls, and keep one-shot cron jobs enabled through lifecycle claim races. (#107339, #106792, #107236) Thanks @obviyus, @joshavant, @charliemeyer2000, and @SL4N.
  • Install and packaging: add Linux deb and AppImage bundles with Gateway guidance, publish them from stable main-based releases, and let Windows installs continue immediately after winget adds Node.js. (#106533, #106891, #106862)

Changes

  • External gateway supervision: add OPENCLAWSUPERVISORMODE=external for lifecycle owners such as OCM, preserving verified restart and deferral behavior without exposing native service authority, blocking native service mutation and self-update, and providing a versioned atomic restart-handoff consume contract. Thanks @shakkernerd.
  • ClickClack guided setup: configure ClickClack from openclaw onboard or openclaw channels add clickclack with URL, token, and workspace prompts, default-account env fallback, nonfatal live connection validation, and gateway-aware next steps that connect automatically when OpenClaw is already running. Thanks @shakkernerd.
  • ClickClack command menus: publish each bot's native OpenClaw commands to ClickClack composer autocomplete at gateway startup, with per-account opt-out and nonfatal compatibility handling for older tokens and servers. Thanks @shakkernerd and @vincentkoc.
  • Skill Workshop approvals: run agent-initiated apply, reject, and quarantine actions without an additional approval prompt by default while preserving skills.workshop.approvalPolicy: "pending" as an opt-in approval gate. Thanks @shakkernerd.
  • TUI fuzzy selectors: delegate list matching to pi-tui, adding slash-token and alpha-number matching while removing the local matcher fork.
  • macOS paired-node terminals: advertise duplex Codex and Claude terminal resume commands from the embedded node host and forward interactive input and cancellation through the native app bridge. (#107335)
  • Control UI catalog terminals: open eligible Codex and Claude Code sessions in the native CLI on their Gateway or paired-node host, with viewer-versus-terminal preferences, validated resume commands, and an interactive PTY relay. (#107086) Thanks @vincentkoc.
  • Skill Workshop history review: add a manual, newest-first session scan that progressively searches older substantial work for conservative skill ideas, stores only SQLite cursor metadata, and leaves up to three results as pending proposals even when autonomous self-learning is disabled. (#106182)
  • OpenAI GPT-5.6 defaults: use openai/gpt-5.6 (Sol alias) for fresh API-key setup and exact openai/gpt-5.6-sol for fresh Codex/OAuth setup, default Sol to medium reasoning across both runtimes, and preserve existing primaries, fallbacks, aliases, and explicit GPT-5.5 selections. (#103234)
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100194)
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046)
  • Control UI session workspace shortcut: expand or collapse the active Chat pane's session workspace rail with ⇧⌘B without changing the main app sidebar or the separate detail and Canvas preview panel. Thanks @shakkernerd.
  • Control UI Settings shortcut: open Settings with ⇧⌘, while leaving the browser-owned ⌘, shortcut unchanged. Thanks @shakkernerd.
  • Control UI chat layout: center the transcript on the composer axis, keep assistant and tool output left and user bubbles right within the same readable frame, and preserve custom message-width overrides. (#104474) Thanks @shakkernerd, @vincentkoc, and @zw-xysk.
  • Control UI composer footer: center the chat settings chip and model controls between the divider and the card edge instead of pinning them to the divider. (#105866)
  • Control UI assistant actions: keep assistant name and time first while placing hover actions beside them on the left instead of at the far edge. Thanks @shakkernerd.
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd and @vincentkoc.
  • Workboard dispatch cap: add a request-scoped --max-starts override while preserving the default cap, sequential starts, and one-card-per-owner guard. (#100174) Thanks @souvikDevloper, @Souvikalp, and @jwest75674.
  • Plugin install provenance warnings: require explicit --force acknowledgement for arbitrary executable plugin sources in CLI and chat installs, keep trusted ClawHub, bundled, official-catalog, and tracked-update flows frictionless, and restrict Crestodian installs to trusted sources. (#102197) Thanks @jesse-merhi.
  • Cloud workers: add session placement, dispatch, and worker-turn routing for remote session execution. (#106332)
  • Paired-node coding agents: discover OpenCode and Pi sessions and continue Codex and Claude catalog sessions through streaming CLI agent runs. (#106941, #106927, #105833)
  • Catalog sessions: create eligible catalog sessions directly from the Control UI sidebar. (#105810) Thanks @fuller-stack-dev.
  • Managed worktrees: configure cleanup limits by count and total size from Settings. (#106224)
  • Cron history: serve scheduled-run history from the task ledger. (#106392)
  • Coding-agent memory: import Codex and Claude Code memory into the Control UI. (#106406)
  • MCP isolation: scope MCP server connections to their requesting session. (#106359) Thanks @obviyus.
  • Discord voice: notify agents when voice-channel participants change. (#107004)
  • Codex usage: show the signed-in account email alongside app-server usage windows. (#106500)
  • Skill Workshop: scan prior session history for conservative, reviewable skill ideas. (#106766)
  • Task previews: show the latest tasks from the running-tasks status row. (#107297)
  • Session changes: show the active branch and local changed-file state in Control UI sessions. (#106835)
  • Channel progress: reserve progress drafts for long-running work and use the model's own preamble as the status headline. (#106026)
  • Codex CLI: bump the bundled plugin to Codex CLI 0.144.4.

Fixes

  • External supervisor restart health: accept device-identity policy closes only when the replacement gateway lock and listener PID agree, preventing OCM-managed restarts from timing out after a successful handoff. Thanks @shakkernerd.
  • ACPX cleanup process inspection: bound host process-table reads so stalled ps calls cannot hang gateway startup or session cleanup while retaining fail-closed ownership checks. Thanks @Alix-007.
  • Cron lifecycle conflict retries: preserve execution-phase retry decisions across scheduled, manual, and startup-recovered runs so post-execution claim conflicts cannot replay completed messages or tools. Fixes #108428. Thanks @yetval.
  • Discord gateway metadata deadline: carry the existing lookup deadline through DNS and proxy preflight, request headers, and response bodies so stalled gateway startup aborts cleanly. (#104580) Thanks @hugenshen.
  • Control UI cloud session thinking: expose reasoning level in the New Session model picker and persist the selected level before cloud dispatch.
  • iOS fresh-install setup: atomically redact spent setup credentials before Keychain cleanup so a deferred item deletion no longer disconnects a successfully paired device. Fixes #107591 Thanks @dagmarjeeves-lab and @vincentkoc.
  • Tlon SSE connect cleanup: disarm opening deadlines after failed HTTP responses and rejected stream opens so reconnect attempts cannot leave stale timers behind. (#104585) Thanks @hugenshen.
  • LINE reply-token media kinds: honor video and audio metadata on inbound replies, share the canonical media builder with proactive sends, and fail visibly instead of recording empty media-only deliveries. (#106515) Thanks @edenfunf.
  • Mattermost websocket connection deadlines: bound opening handshakes so stalled TCP peers cannot hang channel startup indefinitely and reconnect control resumes after timeout. (#105553) Thanks @hugenshen.
  • Queued TTS retries: copy local outbound media into queue-owned storage before enqueueing so voice replies survive producer temp cleanup and restart recovery, retain referenced artifacts through retry backoff, and prune unreferenced spool files after one day. Fixes #108501. (#108502) Thanks @masatohoshino.
  • Feishu app registration deadlines: bound OAuth device-registration requests to 10 seconds through the guarded fetch boundary so setup cannot hang indefinitely on stalled response headers. (#105549) Thanks @hugenshen.
  • LINE control-command mentions: detect authorized slash commands before mention stripping so inline group and direct-message controls preserve the original ingress metadata. (#107230) Thanks @edenfunf.
  • Feishu document image reads: bound remote document-image headers and stalled bodies with the selected account timeout, parse document Markdown through the plugin's MDAST pipeline, preserve image/block alignment, and reject failed upload input before creating empty image blocks. Thanks @Alix-007.
  • ClawHub registry reads: retry bounded HTTP 500 responses alongside other transient gateway failures so multi-package release scans survive isolated registry errors.
  • Slack Socket Mode health: report connected Socket Mode transports as degraded when auth.test fails or the configured bot token resolves to a user without bot_id, while preserving healthy enterprise-org installs. Thanks @zw-xysk.
  • Synology Chat response limits: bound user-list response reads, stop oversized streams immediately, and retain stale cached identities when a NAS exceeds the supported envelope. Thanks @zw-xysk.
  • Usage date ranges: exclude legacy transcript rows without timestamps from finite session ranges while preserving them in all-time totals, and rebuild older usage caches before serving the new semantics. Fixes #89709. Thanks @TurboTheTurtle.
  • LINE group history races: retain ambient group messages received during an active mention turn for the next turn while consuming the pre-turn snapshot exactly once. (#107367) Thanks @edenfunf.
  • Mattermost progress command details: accept the documented streaming.preview.commandText and streaming.progress.commandText modes in channel config validation and bundled metadata. Thanks @shakkernerd.
  • 1Password authorization handoff: persist nonce-bound pending approvals in shared plugin state so hook and tool execution across broker instances remain single-use and fail closed.
  • Control UI chat transcripts: preserve loaded history across session and pane returns, bound automatic backscroll loading, virtualize long transcripts, retain hidden native run boundaries, and keep prepends, streaming, and responsive layouts from flickering or jumping. Thanks @shakkernerd.
  • Codex dynamic tool outcomes: use the shared tool-result failure contract for arbitrary lifecycle metadata, preventing successful Skill Workshop results from being displayed and persisted as failed calls. Fixes #107684. Thanks @shakkernerd.
  • Codex /status context freshness: consume exact per-response usage from Codex app servers that emit rawResponse/completed; when exact usage is unavailable or omitted, keep context unknown instead of reusing cumulative lifetime totals. (#107813) Thanks @wuqxuan.
  • Nested resource ignores: honor slash-free patterns and escaped literal exclamation marks in nested ignore files during skill and resource discovery. Thanks @moguangyu5-design.
  • Proxy bypass precedence: honor blank lower-case noproxy values shadowing upper-case NOPROXY consistently with Undici, and reuse the canonical matcher for Telegram fallback selection.
  • Tokenjuice exec compaction: avoid retaining raw command output inside compacted middleware metadata, preventing large successful compactions from failing the middleware details-size guard.
  • Agent git package identities: strip refs before hosted-repository parsing and reject traversal segments so GitLab branch refs resolve to the canonical managed install path. Thanks @vincentkoc.
  • Tlon custom S3 uploads: pass storage endpoints through the AWS SDK's native parser so custom S3-compatible uploads no longer fail before presigning.
  • Signal active-run controls: keep authorized stop, status, approval, and queue-read controls responsive during active turns while preserving ordinary and stateful turns in canonical session admission, and cancel every pending group sender lane on stop. (#107422) Thanks @arduano.
  • Agent auth storage locks: surface normal release failures while avoiding redundant release attempts after proper-lockfile reports a compromised lock.
  • Paired-node session catalogs: authorize bundled Anthropic and Codex catalog requests to invoke their read-only node commands from Control UI read flows, restoring remote Claude/Codex rows and terminal resume availability. Fixes #107406 Thanks @vincentkoc.
  • Sandbox recreate confirmation: treat Clack cancellation as a decline so Ctrl-C cannot proceed with container removal.
  • Microsoft Teams HTML text: decode HTML5 entities consistently in quoted and Graph-fetched messages while preserving literal escaped entity text.
  • ClawHub plugin API ranges: delegate each supported comparator to semver so tilde, partial-wildcard, and prerelease caret bounds are correct while preserving OpenClaw version normalization and the existing restricted range grammar. (#106877)
  • Web Readability relative links: seed parsed documents with the request URL so article links resolve correctly while removing the plugin's duplicate lazy-loader facade. (#106860)
  • Browser auto-routing: fall back to the Gateway host when an implicitly selected browser node reports that its control host is unreachable, while preserving explicit node pins and ambiguous action failures.
  • Discord voice participant context: maintain the live Gateway voice-state roster and include current channel participants in authorized voice agent turns so agents can answer who is present. Thanks @vincentkoc.
  • OC Path JSONC insertion: patch object and array insertions through jsonc-parser so comments, trailing commas, and CRLF formatting survive. (#106847)
  • Windows winget installs: continue in the current PowerShell session when winget installs Node.js before the machine PATH update becomes visible, avoiding a false Node.js not found failure. (#106862)
  • Control UI realtime Talk feedback: request browser echo cancellation, noise suppression, and automatic gain control for every microphone transport, and keep PCM capture processors connected through zero-gain sinks so microphone input cannot play locally.
  • Agent source-reply recovery: preserve current-chat delivery evidence for message sends executed through Code Mode, preventing successful replies from triggering a redundant retry and misleading delivery-failure diagnostic. Thanks @vincentkoc.
  • Gateway in-process restarts: clear stale SIGUSR1 restart state and resume prepared host suspensions before rebuilding runtime admission, preventing restart cooldowns or paused scheduling from leaking into the next lifecycle. Thanks @vincentkoc.
  • ClickClack durable media delivery: route media replies through required delivery, reuse owner-scoped upload and message nonces across retries, repair persisted attachment state without rereading source media, fail closed when an older ClickClack server cannot prove an unknown send, and use the selected provider and model's runtime output budget instead of a channel-level token cap. Thanks @jjjhenriksen and @shakkernerd.
  • Deepgram realtime custom endpoints: validate Voice Call streaming base URLs with secret-safe errors, preserve explicit ws:// and wss:// endpoints, and map HTTP schemes to their matching WebSocket transport for dedicated and self-hosted deployments. (#105334) Thanks @dwc1997, @vincentkoc, and @zw-xysk.
  • Control UI New Session reconnects: rediscover agents, nodes, repository branches, and folder-browser state, refresh derived workspaces, gate unvalidated devices, and block ambiguous retries after Gateway client replacement while preserving the typed task and explicit choices. Fixes #106372 Thanks @vincentkoc.
  • macOS remote node readiness: take the main-session key from the node hello snapshot instead of opening an operator connection during node admission, preventing remote tunnel recovery from leaving Computer Use and node exec stuck in lifecycle transition.
  • Claude CLI context budgets: honor Anthropic model and per-agent contextTokens limits by passing the effective limit to Claude Code's native auto-compactor and persisting the same prepared budget in OpenClaw session state. Fixes #80933. (#93198) Thanks @mushuiyu886 and @gorkem2020.
  • Transcript read failures: propagate permission and I/O failures from streaming JSONL session reads instead of treating unreadable transcripts as empty. (#106412) Thanks @zenglingbiao.
  • Restart sentinel diagnostics: report SQLite read/write and legacy-file cleanup failures while preserving best-effort restart recovery behavior. (#106385) Thanks @zenglingbiao and @wendy-chsy.
  • Native app connection and relay reliability: keep Android disconnects stopped across Activity recreation, fail remote camera commands without opening permission prompts, refresh mobile node registration after capability changes, surface iOS onboarding connection failures, cancel stale Talk owners on session switches, reject invalid Watch acknowledgments, preserve Watch events received during startup, and prevent older agent overview requests from replacing newer gateway state. Thanks @vincentkoc.
  • Gateway source watch: hand the configured port off from the installed service before starting the tmux watcher, preserve failed panes for attach/capture, and keep explicit alternate-port watches side by side with the managed Gateway. Thanks @vincentkoc.
  • Claude CLI max-turn diagnostics: preserve terminal max-turn results with OpenClaw and Claude session context, warn when tool actions may already have run, and stop unsafe auth-profile or model replay for potentially side-effecting turns. (#94130) Thanks @zhangguiping-xydt and @tdrose01.
  • Provider network retries: align provider read/poll/download and agent-wait recovery for transient connection errors, retry bounded provider ENOTFOUND failures while leaving gateway ENOTFOUND and non-idempotent create operations fail-fast. (#101496) Thanks @xialonglee.
  • Session retry classification: stop permanent provider errors whose identifiers or payload details merely contain 429/5xx digit sequences from re-sending full context, and share bounded rate-limit-window parsing across retry paths. (#105258) Thanks @destire-mio and @yetval.
  • LINE directive templates: suppress confirms and buttons with blank required fields or unlabeled actions while preserving valid titleless buttons and surrounding reply text. (#105520) Thanks @edenfunf.
  • SQLite maintenance schema validation: reject current-version global and agent databases with missing or drifted canonical tables, constraints, indexes, triggers, or table options before compaction, while accepting supported additive-migration layouts.
  • Matrix bootstrap diagnostics: preserve complete UTF-8 code points in bounded stdout and stderr tails so crypto dependency failures do not show replacement characters at retention boundaries. (#105475) Thanks @qingminlong.
  • iOS Watch relay commands: allow paired iPhone nodes to advertise and invoke watch.status and watch.notify through the default Gateway policy while preserving the direct watchOS node's fixed minimal command surface. Thanks @vincentkoc.
  • Swabble status config: honor the global --config path when reading service status instead of silently using the default configuration.
  • ClawHub retry timing: reject fractional delay-seconds and calendar-normalized invalid Retry-After dates so runtime and release reads stay on their bounded fallback schedule. (#105479) Thanks @qingminlong.
  • Discord thread archive defaults: inherit each parent channel's configured auto-archive duration for binding-created threads instead of forcing 60 minutes, while preserving explicit overrides. (#103413) Thanks @wings1029.
  • Installed plugin loading: make native-module fallback use jiti's transform path instead of retrying the same synchronous ESM load, preventing Node 24 startup races when official plugins import SDK contract modules. Thanks @vincentkoc.
  • QA profile channel execution: partition mixed Crabline channel scenarios into one aggregate host suite so taxonomy-backed profile commands and evidence workflows no longer abort before execution.
  • Plugin SDK API baseline: cover every public entrypoint, preserve complete declaration shapes without source-line churn, and run baseline and export-surface guards from changed-file validation. Thanks @vincentkoc and @zw-xysk.
  • SQLite terminal session recovery: track physical transcript mutation time in the agent database so killed or timed-out main sessions rotate when transcript writes outlive the registry update, while preserving legacy transcript mtimes during doctor import. Thanks @vincentkoc.
  • Gateway chat typecheck: import chat event types from their owning protocol schema after the retired aggregate type module was removed, restoring full project typechecks. Thanks @vincentkoc.
  • Packaged Crabbox commands: include the lease-freshness helper imported by the published wrapper so crabbox:* commands do not fail with ERRMODULENOT_FOUND in npm installs. Thanks @vincentkoc.
  • Plugin session catalogs: reject unknown catalog filters, report catalogs as plugin capabilities, and preserve them in SDK registration captures instead of silently returning empty results or classifying catalog-only plugins as capability-free. Thanks @vincentkoc.
  • Gateway service audit: treat POSIX shell -c wrappers as opaque for the gateway-subcommand check, avoiding false missing-command warnings for shell-wrapped macOS LaunchAgents without parsing inner commands or ports. Fixes #81751. (#81778) Thanks @liaoandi.
  • Outbound channel bootstrap: suppress repeated failed plugin activation for the same channel, config, and registry generation while retrying after config or registry reloads. (#100377) Thanks @xialonglee.
  • OpenAI Realtime client-secret deadlines: bound voice and transcription secret acquisition to 30 seconds through the guarded fetch boundary while preserving authentication and bounded response parsing. (#102860) Thanks @Alix-007 and @Leon-SK668.
  • Gateway client watchdog: keep transport-stall detection active for unbounded and mixed pending requests so dead sockets reject pending requests, reconnect, and never replay rejected requests. (#103407) Thanks @NianJiuZst.
  • iOS Share Extension drafts: preserve legitimate shared text beginning with scaffold-like prefixes, remove only exact legacy scaffold lines, avoid treating scheme-like prose as a URL, and deduplicate host-mirrored content. (#103453) Thanks @lin-hongkuan and @harjothkhara.
  • Telegram reasoning previews: reposition split reasoning previews through deferred deletion so prior preview messages do not remain stale while preserving client scroll position. (#97828) Thanks @ly-wang19 and @kyle20026.
  • Feishu native-card threading: normalize whitespace reply targets once and reuse the shared reply mode for card and media parts so native-card topic replies stay in their thread. (#102804) Thanks @sunlit-deng.
  • QQBot token requests: bound token acquisition with the shared 30-second guarded-fetch deadline so stalled singleflight callers fail together, clean up, and can retry. (#102897) Thanks @maweibin.
  • Canvas A2UI validation: reject malformed or unsupported JSONL at CLI, agent-tool, and final node-invoke boundaries while preserving native v0.8 dispatch. (#103713) Thanks @qingminglong.
  • Twilio RCS inbound routing: normalize RCS consumer addresses only after signed webhook validation so sender matching and sessions work without changing outbound RCS semantics. (#102373) Thanks @clawSean.
  • ClickClack output sanitization: strip internal tool and XML scaffolding at the sender boundary, suppress scaffold-only sends, and preserve optional modern delivery IDs. (#103142) Thanks @masatohoshino, @vincentkoc, and @zw-xysk.
  • Agent-core truncation: avoid empty-output crashes when head truncation receives negative line or byte ceilings. (#103425) Thanks @qingminglong.
  • Windows Node resolution: preserve the current executable when resolving bare case-insensitive node.exe entries under hostile PATH values. (#103907) Thanks @soldforaloss and @vincentkoc.
  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762)
  • Agent abort cleanup: serialize prompt lock reacquisition with terminal cleanup so canceled embedded runs do not self-contend on session locks for up to 60 seconds.
  • Chutes OAuth deadlines: bound token exchange, profile lookup, and refresh requests, and keep issued tokens when optional userinfo enrichment stalls. (#102026) Thanks @Alix-007.
  • Control UI workspace avatars: inline validated agent avatar files in bootstrap and identity responses so Personal card images render without unauthenticated avatar-route requests, while preserving configured emoji precedence. (#102892, #97602) Thanks @LZY3538 and @mtuwei.
  • Exec safe-bin flags: auto-approve curated read-only boolean flags for default stdin-only filters while keeping unknown flags, tail follow/retry modes, file operands, and custom profiles fail-closed. (#88953) Thanks @yetval.
  • iOS session mutations: scope rename, archive, pin, delete, and fork requests to the selected agent, preserving the parent agent for forked sessions so multi-agent chat actions cannot mutate or create sessions under the wrong agent. (#103366, #103415) Thanks @lin-hongkuan and @harjothkhara.
  • Swift protocol initializers: default every schema-optional generated initializer parameter to nil so additive protocol fields no longer break SDK construction call sites.
  • OpenCode Go MiMo catalog: stop exposing the deprecated mimo-v2-omni and mimo-v2-pro aliases that reject agent requests, and keep release validation on the active MiMo V2.5 routes. (#103311, #103329) Thanks @krissding.
  • Audit time filters: reject impossible calendar dates for openclaw audit --after and --before instead of rolling them into unintended intervals, while preserving timezone-less timestamp semantics. (#103433) Thanks @qingminglong.
  • OpenAI-compatible streamed tool calls: execute complete native tool calls from streams that end with SSE data: [DONE] but omit finish_reason, while keeping transport EOF and visible-text cases fail-closed. (#98124, #97994) Thanks @SunnyShu0925 and @wszhhx.
  • xAI provider aliases: preserve Grok 4.3 and Grok 4.5 thinking profiles, fast-model routing, and encrypted reasoning replay when models use the shipped x-ai provider alias instead of clamping valid thinking requests to minimal. (#103315)
  • Doctor state isolation: prevent automated update and Gateway watch repair from importing and archiving default-home exec or plugin-binding approvals when OPENCLAWSTATEDIR points elsewhere, keep implicit CLI preflight notice-only, and reserve cross-state imports for direct operator doctor runs. (#103247, #103317) Thanks @vincentkoc.
  • Doctor clean-state guidance: stop suggesting openclaw doctor --fix after a clean run with no config changes while preserving targeted repair hints. (#103233) Thanks @kewang-pika and @nonplace.
  • Google music generation: retry one unblocked Lyria response that omits its contractually required audio while keeping prompt blocks and terminal generation stops non-retryable. (#103318)
  • OpenCode Zen model catalog: refresh the provider-owned static seed for Claude Sonnet 5, Grok 4.5, Hy3 Free, Kimi K2.7 Code, and MiniMax M3 with verified routing, pricing, limits, and input capabilities, remove retired free-tier rows, and expose the same catalog through unauthenticated model listing. (#103184)
  • Managed browser launch: surface asynchronous Chrome bootstrap and runtime spawn failures as browser errors while keeping Gateway alive, and retain process error handling through later lifecycle failures. Thanks @vincentkoc.
  • Browser node-proxy downloads: transfer every action-produced download to the Gateway media store, align a 10 MiB per-file and 16 MiB aggregate transport budget, and rewrite plural download paths to Gateway-local files without traversing page-controlled result data.
  • Gateway startup migrations: release the shared migration lease before exiting when the selected config changes during startup, allowing immediate retries instead of blocking readiness until the five-minute lease expires. (#103145)
  • Apple timeout recovery: return promptly from shared operation deadlines and caller cancellation even when platform work ignores cancellation, while isolating late Gateway handshakes and cleaning up location and permission waiters. (#103066) Thanks @NianJiuZst.
  • Claude CLI warm sessions: preserve managed stdio continuity when Claude writes no native transcript, fall back to bounded OpenClaw history only when the exact live child disappears or changes, and keep stateless runs from persisting CLI bindings. (#96841) Thanks @bradreaves.
  • CLI plugin listing: skip state-migration runtime loading when no legacy inputs exist, reducing packaged cold-start memory while preserving migrations for legacy plugin indexes and configured session stores.
  • Unicode-safe bounded text: preserve complete UTF-16 surrogate pairs when shortening previews, prompts, diagnostics, labels, session keys, link metadata, and identity values across Control UI, CLI, Gateway, plugins, QA, memory, and Android surfaces. (#102625, #102626, #102627, #102816, #102823, #102833, #102877, #102949, #102963, #102969, #102988, #103010, #103034, #103210, #103341, #103487, #103543, #103580, #103646) Thanks @zhangguiping-xydt, @wings1029, @wangyan2026, @Pandah97, @MoerAI, @SunnyShu0925, @zhangqueping, @zw-xysk, @cxbAsDev, @lzyyzznl, @coder-master-0915, @LeonidasLux, @mushuiyu886, @ly85206559, @Simon-XYDT, @lsr911, @vincentkoc, @chengzhichao-xydt, and @wangmiao0668000666.
  • Cron list table: sanitize and size bounded cells by terminal display width so CJK, emoji, combining marks, and terminal-control input cannot corrupt alignment or output. (#103616) Thanks @mushuiyu886.
  • CLI model tables: sanitize, truncate, and pad model-list cells by rendered terminal width so emoji, CJK, and other wide graphemes keep columns aligned. (#102819) Thanks @Kevin23-design and @vincentkoc.
  • Skills prompt compaction: preserve every included skill identity before using the remaining prompt budget for shortened, UTF-16-safe descriptions, retaining trigger guidance without exceeding the hard limit. (#88426) Thanks @abel-zer0, @vincentkoc, @chengzhichao-xydt, @wangmiao0668000666, and @Pandah97.
  • Channel Markdown code tables: size columns by rendered display width so CJK, emoji, and mixed-width cells stay aligned across shared Telegram and Discord output. (#55596, #55512) Thanks @sparkyrider and @zjy282.
  • QQ Bot approval previews: wrap long sanitized commands and metadata at grapheme boundaries with visible continuation markers and safe fences, keeping desktop QQ reviews readable without changing command content. (#102119, #101979) Thanks @Bartok9 and @xuzhi5858.
  • Codex computer control: publish fixed-length coordinate pairs as homogeneous array schemas so Codex app-server can start threads with the computer tool instead of rejecting tuple-valued items.
  • Google Chat request deadlines: bound control calls to 30 seconds while giving media transfers size-aware total budgets and a separate 30-second stalled-body guard, preventing hung Chat API requests without breaking large attachment uploads. (#102227) Thanks @hugenshen.
  • Google Gemini prefixed model IDs: recognize google/gemini- and models/gemini- when selecting multimodal function-response behavior, preserving the Gemini 2 image fallback without regressing Gemini 3 inline image responses. (#102382) Thanks @LiLan0125 and @yetval.
  • Generated provider model catalogs: keep MiniMax and NVIDIA catalog rows when they advertise audio or video metadata while projecting runtime model inputs to text/image, preventing configured multimodal primaries from being dropped and falling back. (#97858, #97048) Thanks @ly-wang19 and @zackchiutw.
  • DeepSeek catalog metadata: align V4 Flash and Pro pricing with DeepSeek's current cache-hit, cache-miss, and output rates; refresh exact catalog metadata written by older onboarding flows; and document the July 24 retirement of the legacy deepseek-chat and deepseek-reasoner compatibility names. (#103192)
  • CLI audio transcript files: treat inferred Whisper and Parakeet text files as authoritative so empty or missing output cannot expose progress/status stdout as user speech. (#87393, #87384) Thanks @kesslerio.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Browser tab adoption: preserve the prior implicit tab and stable aliases when new MCP, Playwright, or CDP targets fail final safety validation, abort after creation, or cannot be rediscovered; validate labels before creating tabs and limit managed cleanup to adopted targets. (#105301) Thanks @hugenshen.
  • Mattermost block streaming: preserve complete, non-duplicated text and tool blocks in draft preview mode, and honor normal block streaming when preview streaming is disabled. (#87449) Thanks @yetval and @Senseonics-AI.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197)
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Amazon Bedrock control-plane deadlines: bound model discovery and application inference-profile lookups, preserve caller cancellation, and close short-lived SDK clients after each request path. Thanks @Alix-007 and @vincentkoc.
  • Reply pre-delivery recovery: bound each pre-delivery callback with an owner-overridable deadline, release serialized reply lanes after hung plugin work, and preserve durable final-delivery retry state only when transport never started. (#104256) Thanks @NianJiuZst and @BenjaminBrossi.
  • Signal native quote replies: preserve the active inbound message as a native quote across agent, explicit, durable, and chunked sends while keeping reply-mode policy inside the Signal plugin. (#105347) Thanks @jesse-merhi and @vincentkoc.
  • Media-store remote downloads: bound response-header waits and stalled bodies, close abandoned redirect and error responses, and remove partial temp files so hung sources cannot pin callers. (#104624) Thanks @hugenshen.
  • Cron llama.cpp tool schemas: keep the model-facing cron declaration schema compatible with llama.cpp while retaining gateway and runtime nonblank validation. Fixes #107449. (#108360) Thanks @lee-xydt and @Patt92.
  • Terminal sessions: preserve early keystrokes, enable paired-node terminal actions, authorize paired-node catalog reads, recover after stale Control UI connections, and keep slow clients attached under heavy output. (#107214, #107361, #107410, #107419, #107348) Thanks @vincentkoc and @zw-xysk.
  • Control UI configuration: auto-save validated edits, restore autosave gates, show unapplied-restart state, and keep normal content scrolling and selection behavior. (#107458, #107477, #107577, #107349)
  • Signal recovery: reconnect after stalled container handshakes, prevent overlapping daemons during restart, and preserve username targets during phone normalization. (#107386, #107409, #107365) Thanks @hugenshen, @ZHOUKAILIAN, @UberKitten, and @ly-wang19.
  • Authorization boundaries: require operator-admin authority for paired-node directory browsing and block prototype pollution in migration config merges. (#106004, #106116) Thanks @yangxiansheng, @joshavant, @yetval, and @ruel225.
  • Conversation identity: retain speaker attribution across group turns and reduce malformed Discord guild reply tool calls. (#107025, #107474) Thanks @lonexreb.
  • Provider setup: show OpenRouter OAuth denial errors, find credentials stored under auth aliases, and keep unresolved API-key providers visible for repair. (#105448, #106736, #106754) Thanks @VectorPeak and @altaywtf.
  • Claude and Codex sessions: keep Claude turns open for native background work, avoid Codex shutdown warnings after live updates, complete Codex onboarding login handoff, and retire completed hook relays. (#106347, #106418, #107174, #106899) Thanks @obviyus, @fuller-stack-dev, and @bek91.
  • Apple apps: connect iPhone and Watch clients to protocol-v3 Gateways, reject incomplete attachment shares, and honor the pinned Swift toolchain in iOS release archives. (#106294, #106513, #107188) Thanks @jincheng-xydt, @harjothkhara, and @joshavant.
  • Memory reliability: preserve UTF-8 across split QMD output, keep canonical cache rows during legacy migration, and accept leading-zero JSON content lengths. (#107263, #107243, #105916) Thanks @wahaha1223, @felirami, @Tony-ooo, @qingminlong, @vincentkoc, and @zw-xysk.
  • Skills and Workshop: keep globally installed ClawHub skills tracked, clean orphaned usage rows, surface verification errors, and default Workshop approvals to automatic handling. (#106479, #107144, #107143, #107690) Thanks @ml12580, @mnowrot, @SunnyShu0925, and @shakkernerd.
  • Bounded network calls: time out Google Chat authentication, Slack directory and read-mode calls, and Twitch user lookups instead of hanging. (#106178, #106643, #107103, #105883, #107360) Thanks @QiuYuang, @Monkey-wusky, @maweibin, @zw-xysk, and @Alix-007.
  • Channel delivery: warn when scalar streaming falls back and make ClickClack media delivery durable while using the selected model's runtime budget. (#106796, #105775) Thanks @jjjhenriksen.
  • Plugin management: honor standard ClawHub API comparators and let Control UI administrators enable installed plugins. (#106889, #106318)
  • Runtime configuration: preserve resolved cache-retention values, apply explicit environment-variable removals, and keep dispatched Workboard cards from sticking in running state. (#106069, #107258, #107271) Thanks @krissding, @jalfaro2876, and @pgondhi987.
  • Input and output safety: redact sensitive migration terminal output, normalize managed git-package identities, and avoid retaining raw command output in compacted Tokenjuice metadata. (#106806, #107637, #107705) Thanks @yetval.
  • Network and resource matching: share canonical NO_PROXY behavior and honor nested ignore patterns plus escaped literal exclamation marks. (#107711, #106258) Thanks @moguangyu5-design.
  • Markdown frontmatter: preserve coerced fallback values when YAML nodes cannot be represented directly.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.2-beta.2
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.2-beta.2.tgz
  • integrity: sha512-Pjp6VcPQtGF2Q2d6faFOJ75IGpTt3Xucuxclz//n4eP89Wds5wMhZzGf0Oiqd1uSncm5LgCcZzm31Igp6lOR0w==
  • release SHA: 54d98a47251d3216443f9446830dec1a0aaddc43
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.2-beta.2/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/29566151276
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/29548071521
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/29546250316
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/29566735890
  • plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/29566738448
  • plugin ClawHub bootstrap: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/29566741033
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/29553869058
v2026.7.2-beta.1 pre [Jul 15, 2026] details → github →

# openclaw 2026.7.2-beta.1

2026.7.2

Highlights

  • Remote coding sessions: run Control UI sessions on cloud workers, open Codex and Claude catalog sessions in terminals on their owning hosts, and resume OpenCode and Pi sessions directly in a terminal. (#107670, #107086, #107200)
  • Native automation and nodes: bring Automations parity to mobile, add foreground Voice Wake on Android, and expose camera, location, and notification capabilities from headless Linux nodes. (#106355, #107081, #107193)
  • Safer channel operation: prevent Telegram durable-ingress loss after restarts, keep Signal stop and approval controls responsive during active turns, and stop channel allowlists from granting owner access. (#107288, #107422, #107403) Thanks @obviyus, @arduano, and @yetval.
  • Guided Control UI setup: configure model providers from Settings, onboard channels through a guided setup page, and choose images and models while creating sessions. (#106490, #106469, #107358) Thanks @alexandre-leng and @fuller-stack-dev.
  • Gateway and session recovery: prevent restart admission from wedging the Gateway, recover reply sessions after finalization stalls, and keep one-shot cron jobs enabled through lifecycle claim races. (#107339, #106792, #107236) Thanks @obviyus, @joshavant, @charliemeyer2000, and @SL4N.
  • Install and packaging: add Linux deb and AppImage bundles with Gateway guidance, publish them from stable main-based releases, and let Windows installs continue immediately after winget adds Node.js. (#106533, #106891, #106862)

Changes

  • Cloud workers: add session placement, dispatch, and worker-turn routing for remote session execution. (#106332)
  • Paired-node coding agents: discover OpenCode and Pi sessions and continue Codex and Claude catalog sessions through streaming CLI agent runs. (#106941, #106927, #105833)
  • Catalog sessions: create eligible catalog sessions directly from the Control UI sidebar. (#105810) Thanks @fuller-stack-dev.
  • Managed worktrees: configure cleanup limits by count and total size from Settings. (#106224)
  • Cron history: serve scheduled-run history from the task ledger. (#106392)
  • Coding-agent memory: import Codex and Claude Code memory into the Control UI. (#106406)
  • MCP isolation: scope MCP server connections to their requesting session. (#106359) Thanks @obviyus.
  • Discord voice: notify agents when voice-channel participants change. (#107004)
  • Codex usage: show the signed-in account email alongside app-server usage windows. (#106500)
  • Skill Workshop: scan prior session history for conservative, reviewable skill ideas. (#106766)
  • Task previews: show the latest tasks from the running-tasks status row. (#107297)
  • Session changes: show the active branch and local changed-file state in Control UI sessions. (#106835)
  • Channel progress: reserve progress drafts for long-running work and use the model's own preamble as the status headline. (#106026)
  • Codex CLI: bump the bundled plugin to Codex CLI 0.144.4.

Fixes

  • Terminal sessions: preserve early keystrokes, enable paired-node terminal actions, authorize paired-node catalog reads, recover after stale Control UI connections, and keep slow clients attached under heavy output. (#107214, #107361, #107410, #107419, #107348) Thanks @vincentkoc and @zw-xysk.
  • Control UI configuration: auto-save validated edits, restore autosave gates, show unapplied-restart state, and keep normal content scrolling and selection behavior. (#107458, #107477, #107577, #107349)
  • Signal recovery: reconnect after stalled container handshakes, prevent overlapping daemons during restart, and preserve username targets during phone normalization. (#107386, #107409, #107365) Thanks @hugenshen, @ZHOUKAILIAN, @UberKitten, and @ly-wang19.
  • Authorization boundaries: require operator-admin authority for paired-node directory browsing and block prototype pollution in migration config merges. (#106004, #106116) Thanks @yangxiansheng, @joshavant, @yetval, and @ruel225.
  • Conversation identity: retain speaker attribution across group turns and reduce malformed Discord guild reply tool calls. (#107025, #107474) Thanks @lonexreb.
  • Provider setup: show OpenRouter OAuth denial errors, find credentials stored under auth aliases, and keep unresolved API-key providers visible for repair. (#105448, #106736, #106754) Thanks @VectorPeak and @altaywtf.
  • Claude and Codex sessions: keep Claude turns open for native background work, avoid Codex shutdown warnings after live updates, complete Codex onboarding login handoff, and retire completed hook relays. (#106347, #106418, #107174, #106899) Thanks @obviyus, @fuller-stack-dev, and @bek91.
  • Apple apps: connect iPhone and Watch clients to protocol-v3 Gateways, reject incomplete attachment shares, and honor the pinned Swift toolchain in iOS release archives. (#106294, #106513, #107188) Thanks @jincheng-xydt, @harjothkhara, and @joshavant.
  • Memory reliability: preserve UTF-8 across split QMD output, keep canonical cache rows during legacy migration, and accept leading-zero JSON content lengths. (#107263, #107243, #105916) Thanks @wahaha1223, @felirami, @Tony-ooo, @qingminlong, @vincentkoc, and @zw-xysk.
  • Skills and Workshop: keep globally installed ClawHub skills tracked, clean orphaned usage rows, surface verification errors, and default Workshop approvals to automatic handling. (#106479, #107144, #107143, #107690) Thanks @ml12580, @mnowrot, @SunnyShu0925, and @shakkernerd.
  • Bounded network calls: time out Google Chat authentication, Slack directory and read-mode calls, and Twitch user lookups instead of hanging. (#106178, #106643, #107103, #105883, #107360) Thanks @QiuYuang, @Monkey-wusky, @maweibin, @zw-xysk, and @Alix-007.
  • Channel delivery: warn when scalar streaming falls back and make ClickClack media delivery durable while using the selected model's runtime budget. (#106796, #105775) Thanks @jjjhenriksen.
  • Plugin management: honor standard ClawHub API comparators and let Control UI administrators enable installed plugins. (#106889, #106318)
  • Runtime configuration: preserve resolved cache-retention values, apply explicit environment-variable removals, and keep dispatched Workboard cards from sticking in running state. (#106069, #107258, #107271) Thanks @krissding, @jalfaro2876, and @pgondhi987.
  • Input and output safety: redact sensitive migration terminal output, normalize managed git-package identities, and avoid retaining raw command output in compacted Tokenjuice metadata. (#106806, #107637, #107705) Thanks @yetval.
  • Network and resource matching: share canonical NO_PROXY behavior and honor nested ignore patterns plus escaped literal exclamation marks. (#107711, #106258) Thanks @moguangyu5-design.
  • Markdown frontmatter: preserve coerced fallback values when YAML nodes cannot be represented directly.

Complete contribution record

This audited record covers the complete b81666ca6af25c86cc099983a4358cdc5ea9ced8..c7bcc28371df3b94fa7b2d5dd7195c053cc7192a history: 2425 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Shipped baseline exclusions: v2026.7.1 (80 PRs: #90145, #91685, #98021, #98620, #99756, #99960, #100648, #101685, #102087, #102289, #102344, #102444, #102600, #102610, #102732, #102780, #102858, #102873, #102896, #102948, #102980, #103070, #103095, #103132, #103157, #103163, #103222, #103244, #103281, #103467, #103549, #103556, #103581, #103596, #103608, #103635, #103650, #103654, #103664, #103680, #103681, #103685, #103695, #103718, #103725, #103760, #103775, #103861, #103906, #103916, #103923, #103946, #103952, #103965, #104000, #104162, #104186, #104230, #104433, #104441, #104491, #104504, #104529, #104555, #104706, #104778, #104848, #104892, #104905, #104956, #104957, #105055, #105401, #105405, #105444, #105488, #105493, #105500, #105518, #106065).

Pull requests

  • PR #100361 Thanks @giodl73-repo.
  • PR #102316 Related #102312.
  • PR #102331 Thanks @steipete-oai.
  • PR #99221 Related #102219. Thanks @tobiasoort and @giodl73-repo.
  • PR #99065 Related #77922. Thanks @jacobtomlinson and @joshavant and @Mcamin.
  • PR #98299 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #101754 Thanks @wings1029.
  • PR #101630 Thanks @hugenshen and @cursoragent.
  • PR #101736 Thanks @chengzhichao-xydt and @Alix-007.
  • PR #102377 Thanks @Patrick-Erichsen.
  • PR #101617 Thanks @zhangguiping-xydt.
  • PR #102246 Thanks @mushuiyu886.
  • PR #98316 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #101375 Related #101286. Thanks @fengjikui and @redasadki.
  • PR #102332 Thanks @QiuYuang.
  • PR #102066 Thanks @mushuiyu886.
  • PR #101815 Thanks @VectorPeak.
  • PR #102225 Thanks @zw-xysk.
  • PR #102090 Thanks @wm0018.
  • PR #101976 Thanks @MoerAI.
  • PR #102378 Thanks @zw-xysk.
  • PR #102410 Thanks @steipete-oai.
  • PR #92517 Thanks @davefano and @davefano-agents.
  • PR #101946 Thanks @xydt-tanshanshan.
  • PR #102420 Related #102388.
  • PR #102085 Thanks @wm0018.
  • PR #102105 Thanks @wangmiao0668000666.
  • PR #102157 Thanks @wangmiao0668000666.
  • PR #102395 Thanks @wangmiao0668000666.
  • PR #102422 Related #102421.
  • PR #102266 Thanks @zw-xysk.
  • PR #101781 Thanks @hugenshen and @cursoragent.
  • PR #101934 Thanks @wm0018.
  • PR #88082 Thanks @lit26.
  • PR #102455
  • PR #102448
  • PR #102414 Thanks @zhangguiping-xydt.
  • PR #102407 Thanks @miorbnli.
  • PR #102438 Related #102430. Thanks @obviyus.
  • PR #102461
  • PR #102463
  • PR #102450 Thanks @qingminglong.
  • PR #102372 Related #102371. Thanks @kevinlin-openai and @kevinslin.
  • PR #102476
  • PR #102466 Thanks @chengzhichao-xydt.
  • PR #102464 Thanks @lsr911.
  • PR #102467 Thanks @lsr911.
  • PR #102470 Thanks @zw-xysk.
  • PR #102465
  • PR #102442 Thanks @ly85206559.
  • PR #102489 Related #102460.
  • PR #102492 Related #102446.
  • PR #102491 Related #102453.
  • PR #102483 Thanks @wings1029.
  • PR #102497
  • PR #102478 Thanks @qingminglong.
  • PR #101501
  • PR #101649 Thanks @Alix-007.
  • PR #102493 Related #102472. Thanks @obviyus.
  • PR #101506 Thanks @mikasa0818.
  • PR #101838 Related #101835. Thanks @qingminglong.
  • PR #102484 Thanks @wings1029.
  • PR #102477 Thanks @xydt-tanshanshan.
  • PR #101611 Thanks @fengjikui.
  • PR #102496 Thanks @chengzhichao-xydt.
  • PR #102526
  • PR #102518
  • PR #102511
  • PR #102523 Related #102517.
  • PR #101853 Related #101810. Thanks @NianJiuZst and @aniruddhaadak80.
  • PR #102125 Thanks @mushuiyu886.
  • PR #102431 Thanks @miorbnli.
  • PR #102500 Thanks @lsr911.
  • PR #102531
  • PR #102451 Thanks @QiuYuang.
  • PR #102509 Thanks @zhangguiping-xydt.
  • PR #102512 Thanks @lsr911.
  • PR #102513 Thanks @lsr911.
  • PR #102515 Thanks @lsr911.
  • PR #102525 Thanks @lsr911.
  • PR #102527 Thanks @lsr911.
  • PR #102536 Related #102528.
  • PR #102522 Thanks @lsr911.
  • PR #102516
  • PR #102149 Thanks @wangmiao0668000666.
  • PR #102558
  • PR #102436 Thanks @qingminglong.
  • PR #102309 Related #102308. Thanks @jmcte.
  • PR #102276 Related #102252. Thanks @harjothkhara and @yetval.
  • PR #102524 Thanks @lsr911.
  • PR #102195 Thanks @qingminglong.
  • PR #102389 Related #101837. Thanks @Supsumintong and @qingminglong.
  • PR #102549 Related #102548.
  • PR #101832 Related #101785. Thanks @MonkeyLeeT and @aniruddhaadak80.
  • PR #102559 Related #102498.
  • PR #102160 Related #85826, #96168. Thanks @obviyus and @kiagentkronos-cell and @alvelda.
  • PR #102479 Related #102471. Thanks @obviyus.
  • PR #101921 Thanks @realZachi.
  • PR #102539 Thanks @lsr911.
  • PR #102573 Related #102556.
  • PR #101411 Thanks @jcooley8.
  • PR #102542 Thanks @wings1029.
  • PR #102560 Thanks @lsr911.
  • PR #102564 Related #102540.
  • PR #80656 Thanks @samuelalake and @BunsDev.
  • PR #102565 Thanks @zhangguiping-xydt.
  • PR #102104 Thanks @wangmiao0668000666.
  • PR #102601 Related #102556, #102535.
  • PR #102547 Thanks @lsr911.
  • PR #102544 Thanks @maweibin.
  • PR #102583 Thanks @lsr911.
  • PR #102570 Thanks @lsr911.
  • PR #102561 Thanks @lsr911.
  • PR #102543 Thanks @qingminglong.
  • PR #102576 Thanks @lsr911.
  • PR #102590 Thanks @Pandah97.
  • PR #102591 Thanks @Pandah97.
  • PR #102347 Thanks @zw-xysk.
  • PR #102639
  • PR #102563 Related #102545.
  • PR #102551 Thanks @lsr911.
  • PR #102567 Thanks @lsr911.
  • PR #101744 Thanks @hugenshen and @cursoragent.
  • PR #101739 Thanks @Alix-007.
  • PR #102089 Thanks @Alix-007.
  • PR #102641
  • PR #49436 Thanks @BunsDev.
  • PR #102572 Thanks @lsr911.
  • PR #102592 Thanks @Pandah97.
  • PR #102161 Thanks @maweibin.
  • PR #89255 Thanks @sallyom and @joshavant.
  • PR #97105 Thanks @clawSean.
  • PR #102661 Related #98038. Thanks @mabaty.
  • PR #102660
  • PR #101423 Thanks @jcooley8.
  • PR #102593 Thanks @Pandah97.
  • PR #102443 Thanks @sunlit-deng.
  • PR #102663
  • PR #102586 Related #102503. Thanks @steipete-oai.
  • PR #102603 Thanks @Pandah97.
  • PR #102604 Thanks @Pandah97.
  • PR #102025 Thanks @Alix-007.
  • PR #102605 Thanks @Pandah97.
  • PR #102675
  • PR #102550 Thanks @qingminglong.
  • PR #102051 Thanks @SunnyShu0925.
  • PR #102481 Thanks @qingminglong.
  • PR #50483 Thanks @eulicesl.
  • PR #102413 Thanks @miorbnli.
  • PR #102070 Related #102057. Thanks @qingminglong.
  • PR #102328 Thanks @masatohoshino.
  • PR #101911 Thanks @snowzlmbot.
  • PR #102606 Thanks @Pandah97.
  • PR #102403 Thanks @yetval.
  • PR #102398 Thanks @yetval.
  • PR #102348 Related #102251. Thanks @HOYALIM and @yetval.
  • PR #102480 Thanks @sunlit-deng.
  • PR #102608 Thanks @lzyyzznl.
  • PR #102027 Thanks @Alix-007.
  • PR #102664 Related #102654.
  • PR #102704 Thanks @CG-Intelligence-Agent-Jack.
  • PR #102677 Related #102642.
  • PR #96994 Related #96639. Thanks @pengxuewu-lab and @MaBeitian.
  • PR #102607 Thanks @Pandah97.
  • PR #101856 Thanks @velanir-ai-manager.
  • PR #102611 Thanks @lzyyzznl.
  • PR #102714
  • PR #102633 Thanks @obviyus.
  • PR #102643 Related #102598. Thanks @obviyus.
  • PR #102494 Thanks @QiuYuang.
  • PR #101840 Related #101790.
  • PR #102688 Related #102673.
  • PR #102582 Related #102566. Thanks @Gary-Jia-new and @syfvb.
  • PR #102733 Related #99201. Thanks @sahilsatralkar.
  • PR #102599 Thanks @wings1029.
  • PR #102612 Thanks @lzyyzznl.
  • PR #102616 Thanks @lzyyzznl.
  • PR #102617 Thanks @lzyyzznl.
  • PR #79438 Thanks @Countermarch.
  • PR #101880 Related #101851.
  • PR #102618 Thanks @lzyyzznl.
  • PR #102621 Thanks @lzyyzznl.
  • PR #38290 Related #46520. Thanks @brunowowk and @mosidevv.
  • PR #102750
  • PR #101510 Thanks @mikasa0818.
  • PR #102622 Thanks @lzyyzznl.
  • PR #102748 Related #102706.
  • PR #100118 Thanks @SunnyShu0925.
  • PR #102760
  • PR #102743 Related #102579.
  • PR #102778 Thanks @vincentkoc.
  • PR #102764
  • PR #102634 Thanks @mushuiyu886.
  • PR #102753 Thanks @masatohoshino.
  • PR #102631 Thanks @maweibin.
  • PR #102624 Thanks @lzyyzznl.
  • PR #102793 Thanks @vincentkoc.
  • PR #102759 Related #102757. Thanks @vincentkoc.
  • PR #102028 Thanks @Alix-007.
  • PR #102758
  • PR #102783
  • PR #102745 Related #102423. Thanks @steipete-oai.
  • PR #102766 Related #102754.
  • PR #102789
  • PR #102791 Related #102751.
  • PR #102050 Thanks @Alix-007.
  • PR #102786 Related #102756.
  • PR #102777
  • PR #102809 Thanks @vincentkoc.
  • PR #102814 Thanks @sunlit-deng.
  • PR #102656 Thanks @Pandah97.
  • PR #102795
  • PR #102227 Thanks @hugenshen.
  • PR #102817
  • PR #102418 Thanks @pgondhi987.
  • PR #102625 Thanks @zhangguiping-xydt.
  • PR #102627 Thanks @wangyan2026.
  • PR #102842 Related #102841.
  • PR #102626 Thanks @wings1029.
  • PR #98582 Related #98283. Thanks @sforsethi.
  • PR #102382 Related #102320. Thanks @LiLan0125 and @yetval.
  • PR #102835 Related #102577.
  • PR #102829
  • PR #102833 Thanks @LeonidasLux.
  • PR #102848 Related #102821. Thanks @steipete-oai.
  • PR #102823 Thanks @Pandah97 and @SunnyShu0925 and @zhangqueping and @zw-xysk and @cxbAsDev and @lzyyzznl.
  • PR #102871
  • PR #102013 Thanks @masatohoshino.
  • PR #102867 Thanks @wm0018.
  • PR #102816 Thanks @MoerAI.
  • PR #97858 Related #97048. Thanks @ly-wang19 and @zackchiutw.
  • PR #102876 Thanks @snowzlmbot.
  • PR #102776
  • PR #102819 Thanks @Kevin23-design and @vincentkoc.
  • PR #102147 Thanks @coolmanns.
  • PR #87393 Related #87384. Thanks @kesslerio.
  • PR #102784 Related #102806.
  • PR #102902
  • PR #102830 Related #102055. Thanks @ZengWen-DT and @qingminglong.
  • PR #102810
  • PR #102825 Related #102393. Thanks @wangyan2026 and @yetval.
  • PR #102855 Thanks @maweibin.
  • PR #102856 Thanks @Alix-007.
  • PR #102808 Related #102806.
  • PR #102893 Related #102716.
  • PR #102869
  • PR #102872 Thanks @Alix-007.
  • PR #102905 Related #102457. Thanks @ZengWen-DT and @gorkem2020.
  • PR #102416 Thanks @pgondhi987.
  • PR #102942
  • PR #61396 Thanks @zeuming.
  • PR #102944
  • PR #102658 Thanks @ZengWen-DT.
  • PR #102426 Thanks @pgondhi987.
  • PR #102952 Related #55365. Thanks @lidge-jun and @Mdx2025.
  • PR #102946 Related #97027. Thanks @jamesachurchill.
  • PR #102901 Related #102895.
  • PR #95473 Thanks @kklouzal.
  • PR #102899 Related #102691.
  • PR #102968
  • PR #96537 Related #96490. Thanks @yangxiansheng and @riazrahaman.
  • PR #96686 Related #96677. Thanks @openperf and @lujiaweichn.
  • PR #97264 Thanks @tayoun.
  • PR #96400 Thanks @lin-hongkuan.
  • PR #102894 Related #102888. Thanks @vincentkoc.
  • PR #102986 Thanks @vincentkoc.
  • PR #96684 Thanks @wendy-chsy.
  • PR #102996
  • PR #103006
  • PR #102998 Thanks @jalehman.
  • PR #102877 Thanks @zhangguiping-xydt.
  • PR #103016
  • PR #102685 Thanks @zhangqueping.
  • PR #103010 Related #103001.
  • PR #102949 Thanks @mushuiyu886.
  • PR #102963 Thanks @mushuiyu886.
  • PR #102969 Thanks @mushuiyu886.
  • PR #102803 Thanks @steipete-oai.
  • PR #98338 Thanks @giodl73-repo and @Patrick-Erichsen.
  • PR #103002 Thanks @vincentkoc.
  • PR #98350 Thanks @giodl73-repo.
  • PR #103064 Thanks @shakkernerd.
  • PR #103030
  • PR #88426 Thanks @abel-zer0.
  • PR #103082
  • PR #102119 Related #101979. Thanks @Bartok9 and @xuzhi5858.
  • PR #103073 Related #103063. Thanks @vincentkoc.
  • PR #103085
  • PR #102988 Thanks @ly85206559.
  • PR #55596 Related #55512. Thanks @sparkyrider and @zjy282.
  • PR #99242 Thanks @eleqtrizit.
  • PR #102880 Related #102878.
  • PR #103090 Related #103086.
  • PR #103091
  • PR #103094
  • PR #103034 Thanks @Simon-XYDT.
  • PR #103102
  • PR #103105
  • PR #103098
  • PR #103107
  • PR #94419 Related #94418. Thanks @oliver-mee.
  • PR #101488 Thanks @mikasa0818.
  • PR #103104
  • PR #102186 Thanks @VACInc.
  • PR #102863 Thanks @Alix-007 and @Leon-SK668.
  • PR #103099
  • PR #101643 Thanks @sunlit-deng.
  • PR #102659 Thanks @ZengWen-DT.
  • PR #101652 Thanks @Alix-007.
  • PR #103114
  • PR #103109 Thanks @masatohoshino.
  • PR #103097 Related #103092.
  • PR #103123
  • PR #103110
  • PR #103093 Related #103079, #103080. Thanks @hoangsaga123.
  • PR #103120
  • PR #103100 Thanks @ly-wang19.
  • PR #102978 Thanks @qingminglong.
  • PR #102307 Related #99912. Thanks @SunnyShu0925 and @tyukara.
  • PR #103101 Thanks @lzw112.
  • PR #103106 Thanks @lzw112.
  • PR #101661 Thanks @Alix-007.
  • PR #103129 Related #103128.
  • PR #103122
  • PR #103111
  • PR #102813 Thanks @qingminglong.
  • PR #103134
  • PR #103136 Thanks @qingminglong.
  • PR #103127
  • PR #103140
  • PR #103130
  • PR #103138
  • PR #102947 Related #102934. Thanks @wm0018 and @aniruddhaadak80.
  • PR #102840 Thanks @yetval.
  • PR #103115 Thanks @Leon-SK668.
  • PR #103033 Related #103021. Thanks @tzy-17 and @wings1029 and @daphne-barretto.
  • PR #103066 Thanks @NianJiuZst.
  • PR #103151 Thanks @vincentkoc.
  • PR #102889 Related #102875. Thanks @lin-hongkuan and @sercada.
  • PR #102951 Thanks @aniruddhaadak80.
  • PR #99266 Thanks @RomneyDa.
  • PR #103119 Thanks @Leon-SK668.
  • PR #103156 Thanks @vincentkoc.
  • PR #102981 Related #102960. Thanks @NianJiuZst and @jgrandguillaume.
  • PR #103152 Thanks @obviyus.
  • PR #102866 Thanks @SunnyShu0925.
  • PR #102424 Thanks @maweibin.
  • PR #102999 Related #102910. Thanks @ZOOWH and @aniruddhaadak80.
  • PR #103139
  • PR #103149
  • PR #103126 Related #103125.
  • PR #103154
  • PR #103160
  • PR #103068 Thanks @NianJiuZst.
  • PR #103158
  • PR #102939 Thanks @qingminglong.
  • PR #103182 Related #103180.
  • PR #103177
  • PR #103167
  • PR #103195 Related #103187. Thanks @vincentkoc.
  • PR #103194 Related #102914. Thanks @MonkeyLeeT and @aniruddhaadak80.
  • PR #103225 Related #103221.
  • PR #90738 Related #89594. Thanks @colton-octaria and @clwilliams8 and @packwood and @cmc099.
  • PR #103224 Related #103203.
  • PR #103223 Related #103208.
  • PR #103217 Thanks @vincentkoc.
  • PR #103172
  • PR #103197 Related #103184.
  • PR #103175
  • PR #103237
  • PR #101078 Related #99919. Thanks @xialonglee and @vatsal28.
  • PR #102202 Related #101716. Thanks @Darren2030 and @aniruddhaadak80.
  • PR #102445 Related #102235. Thanks @wuqxuan and @hakanbaysal and @yetval.
  • PR #101023 Thanks @masatohoshino.
  • PR #103253
  • PR #102953 Thanks @ZOOWH.
  • PR #102409 Thanks @miorbnli.
  • PR #102805 Related #102632. Thanks @obviyus.
  • PR #102971 Related #102915. Thanks @ZOOWH and @aniruddhaadak80.
  • PR #103264 Thanks @vincentkoc.
  • PR #103259 Related #103257.
  • PR #103204 Related #103189.
  • PR #103243
  • PR #103260 Related #103242.
  • PR #103280 Related #103277.
  • PR #103241 Related #103192.
  • PR #96841 Related #96564. Thanks @bradreaves.
  • PR #103233 Related #80435. Thanks @kewang-pika and @nonplace.
  • PR #103247
  • PR #102987 Thanks @qingminglong.
  • PR #103278 Thanks @krissding.
  • PR #102635
  • PR #103293 Related #103270. Thanks @steipete-oai.
  • PR #102993 Related #102908. Thanks @MonkeyLeeT and @aniruddhaadak80.
  • PR #103268 Thanks @steipete-oai.
  • PR #102997 Thanks @snowzlmbot.
  • PR #103310
  • PR #103299 Related #103298.
  • PR #103321 Related #103319.
  • PR #103316 Related #103283.
  • PR #98124 Related #97994. Thanks @SunnyShu0925 and @wszhhx.
  • PR #102637 Related #102614.
  • PR #103289 Related #99031. Thanks @odrobnik.
  • PR #103328
  • PR #103252
  • PR #103349 Related #63829, #81205, #103088. Thanks @SunnyShu0925 and @fclwtt and @cuihaijun and @yetval.
  • PR #103351 Thanks @NianJiuZst.
  • PR #103338 Related #103333.
  • PR #97629 Related #97621. Thanks @krissding and @Marvinthebored.
  • PR #103343 Thanks @bradreaves.
  • PR #103357
  • PR #103096 Related #103013. Thanks @sahilsatralkar.
  • PR #103353 Related #103317.
  • PR #103345 Related #103320.
  • PR #103327
  • PR #103384 Related #103360.
  • PR #103372 Related #103347.
  • PR #103071 Thanks @zhangguiping-xydt.
  • PR #103326 Related #103318.
  • PR #98111 Related #93203. Thanks @iloveleon19 and @leonthe8th.
  • PR #103255 Thanks @mikasa0818.
  • PR #103399 Related #103392.
  • PR #103258 Thanks @mikasa0818.
  • PR #103266 Thanks @mikasa0818.
  • PR #103274 Thanks @lsr911.
  • PR #103404 Related #98290. Thanks @skoya.
  • PR #103275 Thanks @saju01.
  • PR #103411
  • PR #103406 Related #103403.
  • PR #76364 Related #76352. Thanks @neilofneils404 and @RayWoo.
  • PR #103419 Related #103388.
  • PR #103416 Related #103368. Thanks @steipete-oai.
  • PR #103214 Related #102800. Thanks @tzy-17 and @saltescapes.
  • PR #102169 Thanks @maweibin.
  • PR #103005 Related #102936. Thanks @LZY3538 and @aniruddhaadak80.
  • PR #103272 Thanks @lsr911.
  • PR #101696 Thanks @sunlit-deng.
  • PR #103430 Related #103427.
  • PR #103340 Related #103315.
  • PR #103075 Thanks @pgondhi987.
  • PR #103422 Related #103335.
  • PR #103329 Related #103311. Thanks @krissding.
  • PR #103410 Thanks @VectorPeak.
  • PR #103438 Related #103334.
  • PR #103284 Related #103246. Thanks @tzy-17 and @yetval.
  • PR #103344
  • PR #102925 Thanks @Pick-cat.
  • PR #103396 Related #103053. Thanks @obviyus and @yetval.
  • PR #103337
  • PR #102884 Thanks @chengzhichao-xydt.
  • PR #103446 Related #103389.
  • PR #103441 Related #68691. Thanks @hobo-l-20230331 and @aaajiao.
  • PR #103450 Thanks @masatohoshino.
  • PR #101740 Thanks @hugenshen.
  • PR #103352
  • PR #103218 Related #100944. Thanks @cxbAsDev and @boxeeboiler.
  • PR #103426 Related #103420.
  • PR #103469
  • PR #103220 Related #102933. Thanks @wuqxuan and @aniruddhaadak80.
  • PR #103470 Related #103250. Thanks @solavrc.
  • PR #103484 Thanks @steipete-oai.
  • PR #103074 Thanks @pgondhi987.
  • PR #103488 Related #103454.
  • PR #103393 Related #103378.
  • PR #103478
  • PR #103493
  • PR #103117 Thanks @Leon-SK668.
  • PR #102305 Related #102269. Thanks @SunnyShu0925 and @615Works.
  • PR #103457 Related #103427.
  • PR #103502 Related #103053. Thanks @yetval.
  • PR #103359
  • PR #103486 Related #103480.
  • PR #103504 Related #103451. Thanks @vincentkoc.
  • PR #97926 Related #97925. Thanks @rvdlaar.
  • PR #103501 Related #103489.
  • PR #103471
  • PR #103510 Related #103324. Thanks @obviyus.
  • PR #103508 Related #103500.
  • PR #103528 Related #103335.
  • PR #103476 Related #103462.
  • PR #103412
  • PR #103463 Related #103461.
  • PR #99536 Related #85714. Thanks @100yenadmin and @richardmqq.
  • PR #103561 Related #103544.
  • PR #99578 Related #99465. Thanks @100yenadmin.
  • PR #101765 Thanks @mmaps and @pgondhi987.
  • PR #103069 Thanks @NianJiuZst.
  • PR #103563
  • PR #101854 Thanks @mmaps and @pgondhi987.
  • PR #103576 Related #103575.
  • PR #103536 Related #103533.
  • PR #103178 Thanks @Pick-cat.
  • PR #103585 Thanks @ZOOWH.
  • PR #102507 Related #102267. Thanks @gorkem2020.
  • PR #103330 Thanks @joshavant.
  • PR #103593 Related #103574. Thanks @obviyus.
  • PR #102811 Related #102676. Thanks @ObliviateRickLin and @gorkem2020.
  • PR #103573
  • PR #87590 Related #87588. Thanks @bladin and @obviyus and @AnnieJun.
  • PR #102026 Thanks @Alix-007.
  • PR #94517 Related #13870. Thanks @bladin and @obviyus and @koome23.
  • PR #103595 Related #103517.
  • PR #103609 Related #103588.
  • PR #88953 Thanks @yetval.
  • PR #103601
  • PR #103617 Related #103610.
  • PR #102892 Related #97602. Thanks @LZY3538 and @mtuwei.
  • PR #103612 Related #103602.
  • PR #103525 Related #103507.
  • PR #103514 Related #103499.
  • PR #103625 Related #103570.
  • PR #103466 Related #103452.
  • PR #103448 Related #103444.
  • PR #103481 Related #103477.
  • PR #103313 Related #103202.
  • PR #103176 Related #103135.
  • PR #103464 Related #103459, #103460.
  • PR #103651 Related #103081. Thanks @jzmudzinski.
  • PR #103644
  • PR #103439 Related #103435.
  • PR #103656 Related #103655.
  • PR #103483 Related #103475.
  • PR #99097 Related #99096. Thanks @gorkem2020 and @altaywtf.
  • PR #103665 Related #78362. Thanks @Footree.
  • PR #103670 Related #103662.
  • PR #103671
  • PR #103629 Related #103626.
  • PR #103672 Related #103661.
  • PR #102486 Thanks @ragesaq and @shakkernerd.
  • PR #103682
  • PR #103657 Thanks @LZY3538.
  • PR #103669 Related #103666.
  • PR #103689
  • PR #103341 Thanks @zhangguiping-xydt.
  • PR #103020 Related #28506. Thanks @Alix-007 and @Leon-SK668 and @P5ina.
  • PR #87449 Related #87322. Thanks @yetval and @Senseonics-AI.
  • PR #103210 Thanks @lsr911.
  • PR #103072 Thanks @NianJiuZst.
  • PR #103487 Thanks @mushuiyu886.
  • PR #103722 Related #103643.
  • PR #103415 Related #103366. Thanks @lin-hongkuan and @harjothkhara.
  • PR #103432
  • PR #103743
  • PR #103543 Thanks @MoerAI.
  • PR #103737 Thanks @vincentkoc.
  • PR #103600
  • PR #103490 Related #103473. Thanks @xydt-lcy and @harjothkhara.
  • PR #103580 Thanks @zhangguiping-xydt.
  • PR #103767 Related #103766.
  • PR #103777 Related #103753.
  • PR #103790 Related #103749, #103754.
  • PR #103796 Thanks @vincentkoc.
  • PR #103772 Thanks @vincentkoc.
  • PR #102530 Related #102508. Thanks @ZengWen-DT and @mnktn-lab.
  • PR #103267 Thanks @NianJiuZst.
  • PR #103433 Thanks @qingminglong.
  • PR #103339 Thanks @miorbnli.
  • PR #103638 Related #103637. Thanks @royosherove.
  • PR #97966 Related #97877. Thanks @maweibin and @patelmm79.
  • PR #103748 Related #103554.
  • PR #103798
  • PR #103814 Related #103741. Thanks @sallyom.
  • PR #103759 Thanks @vincentkoc.
  • PR #103647 Related #103205.
  • PR #103769 Related #103768.
  • PR #103816 Related #103782.
  • PR #103810 Thanks @vincentkoc.
  • PR #103646 Thanks @mushuiyu886.
  • PR #103108 Thanks @IWhatsskill.
  • PR #103813 Thanks @zhangguiping-xydt.
  • PR #103822
  • PR #103805 Thanks @lshgdut.
  • PR #102262 Thanks @RomneyDa.
  • PR #91797 Thanks @gucasbrg.
  • PR #103815 Related #103245. Thanks @dankorotin.
  • PR #101107 Thanks @zhangguiping-xydt.
  • PR #90821 Related #66535. Thanks @Pick-cat and @xiaohuaxi.
  • PR #103594 Thanks @qingminglong.
  • PR #103709 Thanks @qingminglong.
  • PR #103833
  • PR #97259 Thanks @cavit99.
  • PR #103837
  • PR #103836 Related #92452. Thanks @jimmypuckett and @wodge73.
  • PR #103839 Related #103831.
  • PR #103832
  • PR #103645 Thanks @qingminglong.
  • PR #101712 Thanks @Pick-cat and @miorbnli.
  • PR #103843
  • PR #103821 Related #103554.
  • PR #102781 Related #102700.
  • PR #103569 Thanks @ZOOWH.
  • PR #103834 Related #103774.
  • PR #103848 Thanks @gucasbrg.
  • PR #103498
  • PR #103616 Thanks @mushuiyu886.
  • PR #103863 Related #103854.
  • PR #103878 Related #103875.
  • PR #103870 Thanks @shakkernerd.
  • PR #103526
  • PR #103649 Thanks @IWhatsskill.
  • PR #103886 Related #103869.
  • PR #103207 Related #103188. Thanks @vincentkoc.
  • PR #103889 Related #103896.
  • PR #103899
  • PR #103892 Related #103876.
  • PR #103707 Thanks @Pick-cat.
  • PR #103891 Thanks @vincentkoc.
  • PR #103894 Related #103885.
  • PR #103618
  • PR #103909 Thanks @lsr911.
  • PR #103628 Related #102244. Thanks @joshavant and @qwer2003tw.
  • PR #103925 Thanks @vincentkoc.
  • PR #103922 Related #103919.
  • PR #103809 Related #103800. Thanks @vincentkoc.
  • PR #103515 Related #44749, #78225. Thanks @coygeek and @aukei.
  • PR #103936 Related #103897.
  • PR #90817 Related #90766. Thanks @Pick-cat and @cursoragent and @Timofa.
  • PR #103943 Related #103942.
  • PR #103941
  • PR #103908 Thanks @mushuiyu886.
  • PR #103915 Thanks @hpumajun.
  • PR #103944 Related #103939.
  • PR #103945 Related #103902.
  • PR #103960 Related #103888.
  • PR #103951 Related #103851. Thanks @vincentkoc.
  • PR #103757 Thanks @zhangguiping-xydt.
  • PR #103964 Related #103887.
  • PR #103789 Thanks @zhangguiping-xydt.
  • PR #98105 Related #97996. Thanks @SunnyShu0925 and @sync-tachikoma.
  • PR #103967
  • PR #103966 Thanks @vincentkoc.
  • PR #103913 Thanks @vincentkoc.
  • PR #103219 Thanks @lsr911.
  • PR #103907 Thanks @soldforaloss.
  • PR #103548 Thanks @qingminglong.
  • PR #103971
  • PR #103962
  • PR #103972 Related #103969.
  • PR #103442 Thanks @zhangguiping-xydt.
  • PR #103738 Thanks @wings1029.
  • PR #103976 Related #103168. Thanks @theo674.
  • PR #103853
  • PR #103985
  • PR #103740 Thanks @wings1029.
  • PR #103994
  • PR #103999
  • PR #103996
  • PR #104008 Thanks @vincentkoc.
  • PR #104009
  • PR #103950
  • PR #103997
  • PR #104004
  • PR #103981 Thanks @soldforaloss and @vincentkoc.
  • PR #103425 Thanks @qingminglong.
  • PR #104002 Thanks @vincentkoc.
  • PR #104016
  • PR #104015
  • PR #104011 Related #104005.
  • PR #104013
  • PR #102897 Thanks @maweibin.
  • PR #103713 Thanks @qingminglong.
  • PR #96120 Thanks @armsteadj1 and @jalehman.
  • PR #102373 Thanks @clawSean.
  • PR #103142 Thanks @masatohoshino.
  • PR #104010 Related #104003.
  • PR #104007 Thanks @joshavant.
  • PR #104025
  • PR #104024
  • PR #104028 Related #104019.
  • PR #104001 Thanks @IWhatsskill.
  • PR #103727 Thanks @Leon-SK668.
  • PR #104030
  • PR #103408 Related #103400.
  • PR #102469 Thanks @chenyangjun-xy.
  • PR #103496 Thanks @qingminglong.
  • PR #104035
  • PR #104036
  • PR #104037
  • PR #104047
  • PR #104043 Related #103830. Thanks @joshavant and @NexusCivInt.
  • PR #104049
  • PR #103968
  • PR #104051
  • PR #104048
  • PR #104062
  • PR #104057 Related #104056.
  • PR #103989 Related #103987.
  • PR #104033 Related #104023.
  • PR #98479 Related #98476. Thanks @haruaiclone-droid.
  • PR #104066
  • PR #91828 Related #91154. Thanks @mushuiyu886 and @mlaihk.
  • PR #103653 Thanks @soldforaloss and @vincentkoc.
  • PR #101783 Thanks @zhangguiping-xydt and @obviyus.
  • PR #103893 Thanks @IWhatsskill.
  • PR #104073
  • PR #104061 Related #104040.
  • PR #104074
  • PR #102804 Thanks @sunlit-deng.
  • PR #103273 Thanks @NianJiuZst.
  • PR #97828 Related #80862. Thanks @ly-wang19 and @kyle20026.
  • PR #104097
  • PR #104012 Related #103986.
  • PR #104100 Thanks @wuqxuan and @ZOOWH and @qingminglong and @wangyan2026.
  • PR #104092
  • PR #103453 Related #103364. Thanks @lin-hongkuan and @harjothkhara.
  • PR #104099
  • PR #104090 Thanks @vincentkoc.
  • PR #99905 Thanks @joshavant.
  • PR #100908 Thanks @bdjben.
  • PR #90942 Related #90941. Thanks @sasan1200.
  • PR #91280 Related #53250. Thanks @deepujain and @yurtzy.
  • PR #51926 Related #51903. Thanks @Liuhaai.
  • PR #104124 Thanks @vincentkoc.
  • PR #103642 Thanks @qingminglong.
  • PR #104144 Related #104142. Thanks @obviyus.
  • PR #90759 Related #76888. Thanks @zhangguiping-xydt and @obviyus and @hoyanhan.
  • PR #102972 Thanks @zhangguiping-xydt and @obviyus.
  • PR #102859 Thanks @Alix-007 and @Leon-SK668.
  • PR #102062 Thanks @Alix-007.
  • PR #102862 Thanks @Alix-007 and @Leon-SK668.
  • PR #97007 Related #89551. Thanks @SunnyShu0925 and @syncword.
  • PR #104089 Related #104087.
  • PR #104174 Related #104163.
  • PR #104177 Related #104169.
  • PR #104137 Related #102064. Thanks @joshavant and @evie-openclaw-mytender.
  • PR #104154 Related #104153.
  • PR #104183 Related #14861. Thanks @slucasmyer.
  • PR #104166 Thanks @vincentkoc.
  • PR #104175 Thanks @vincentkoc.
  • PR #104187 Related #104167.
  • PR #104180 Related #104145.
  • PR #104147 Related #104135. Thanks @obviyus.
  • PR #104178
  • PR #104130 Related #104078.
  • PR #103583 Related #12602. Thanks @steipete-oai and @JonasBoury.
  • PR #104143 Related #104080.
  • PR #104112 Related #104077.
  • PR #104181 Thanks @vincentkoc.
  • PR #104125
  • PR #104193
  • PR #104155
  • PR #104119 Thanks @Leon-SK668.
  • PR #104200 Related #104197. Thanks @vincentkoc.
  • PR #104198
  • PR #104202 Related #104170.
  • PR #104203 Related #104081.
  • PR #104172 Related #104079.
  • PR #103547 Thanks @xialonglee.
  • PR #104210 Related #104199. Thanks @vincentkoc.
  • PR #87799 Related #73814, #90008. Thanks @SebTardif and @vincentkoc and @ItsMeForLua.
  • PR #104191 Related #104082.
  • PR #103555 Thanks @xialonglee.
  • PR #104227 Related #104083.
  • PR #104184 Related #104182.
  • PR #104242
  • PR #104233
  • PR #104229
  • PR #104252
  • PR #104238 Related #104206.
  • PR #103719 Related #103385. Thanks @cxbAsDev and @solavrc.
  • PR #104045 Related #103235.
  • PR #104228
  • PR #99086 Related #98620. Thanks @maweibin.
  • PR #104215
  • PR #104213 Related #104208. Thanks @obviyus.
  • PR #104247
  • PR #104237 Thanks @steipete-oai.
  • PR #95263 Thanks @hugenshen.
  • PR #104262
  • PR #104235
  • PR #103407 Thanks @NianJiuZst.
  • PR #104266
  • PR #104171 Related #104041.
  • PR #104291 Thanks @vincentkoc.
  • PR #104281 Thanks @steipete-oai.
  • PR #104207 Thanks @steipete-oai.
  • PR #102860 Thanks @Alix-007 and @Leon-SK668.
  • PR #104280 Thanks @jimmypuckett.
  • PR #103867 Thanks @yetval.
  • PR #104268
  • PR #102865 Thanks @Alix-007 and @Leon-SK668.
  • PR #104297 Thanks @vincentkoc.
  • PR #104287 Related #104231.
  • PR #104255 Related #104253.
  • PR #104300
  • PR #104239
  • PR #104303
  • PR #104305 Related #104304.
  • PR #103619 Thanks @pgondhi987.
  • PR #104299
  • PR #104306 Related #104214. Thanks @vincentkoc.
  • PR #104311
  • PR #104302 Related #104282.
  • PR #100377 Thanks @xialonglee.
  • PR #104307 Thanks @vincentkoc.
  • PR #102965 Thanks @chengzhichao-xydt.
  • PR #104310 Related #104309. Thanks @vincentkoc.
  • PR #104314
  • PR #104205 Related #104204.
  • PR #104316
  • PR #104296
  • PR #104150
  • PR #99972 Related #99603. Thanks @chenyangjun-xy and @NOVA-Openclaw.
  • PR #104329
  • PR #104332
  • PR #104331
  • PR #104324
  • PR #104334
  • PR #104341
  • PR #104328
  • PR #104345
  • PR #104337 Related #104330.
  • PR #104348 Related #104313.
  • PR #104349 Related #104346. Thanks @vincentkoc.
  • PR #104352 Thanks @vincentkoc.
  • PR #104350 Related #104338.
  • PR #104356
  • PR #104357
  • PR #104368 Related #104363.
  • PR #104387
  • PR #81778 Related #81751. Thanks @liaoandi.
  • PR #104374 Related #104365.
  • PR #97740 Related #97069. Thanks @saju01 and @jimmybrancaccio.
  • PR #104376
  • PR #104361 Related #104321.
  • PR #104370
  • PR #102341 Thanks @xialonglee.
  • PR #94999 Thanks @hugenshen.
  • PR #104342
  • PR #95536 Related #94124. Thanks @xydt-tanshanshan and @kumaxs.
  • PR #104355
  • PR #104380
  • PR #104378 Related #104375. Thanks @vincentkoc.
  • PR #104384
  • PR #104139 Thanks @100yenadmin.
  • PR #104397 Related #104371.
  • PR #104392
  • PR #104391
  • PR #104400
  • PR #104398
  • PR #104407 Related #104372.
  • PR #104408
  • PR #104411
  • PR #104293 Thanks @qingminglong.
  • PR #104402 Related #42510. Thanks @neeravmakwana and @banddude and @novan and @svmark.
  • PR #103752 Thanks @Leon-SK668.
  • PR #104418
  • PR #104421
  • PR #104417 Thanks @vincentkoc.
  • PR #104419 Related #104382.
  • PR #103728 Thanks @Leon-SK668 and @vincentkoc.
  • PR #104426 Related #104425.
  • PR #104431
  • PR #104254 Related #103783.
  • PR #104434
  • PR #104416 Related #104409.
  • PR #104439
  • PR #104225 Thanks @NianJiuZst.
  • PR #104226 Thanks @NianJiuZst.
  • PR #104249 Thanks @zhangguiping-xydt.
  • PR #103731 Thanks @Leon-SK668 and @vincentkoc.
  • PR #104401
  • PR #104448
  • PR #104447
  • PR #104443 Related #104435. Thanks @vincentkoc.
  • PR #89442 Thanks @zhangguiping-xydt.
  • PR #104445 Related #104444.
  • PR #104319 Thanks @obviyus.
  • PR #104450 Related #91212. Thanks @Enominera.
  • PR #104451
  • PR #104244 Thanks @qingminglong.
  • PR #104455
  • PR #104263 Thanks @qingminglong.
  • PR #92411 Thanks @Pick-cat.
  • PR #104459 Thanks @vincentkoc.
  • PR #98561 Related #98560. Thanks @haruaiclone-droid.
  • PR #104437 Related #104399.
  • PR #104156 Thanks @qingminglong.
  • PR #103975 Related #103973.
  • PR #104438
  • PR #104173 Thanks @qingminglong.
  • PR #104465
  • PR #104475 Related #104388.
  • PR #104472 Related #104471. Thanks @vincentkoc.
  • PR #104452 Related #104446.
  • PR #104482
  • PR #97157 Thanks @yetval.
  • PR #104478
  • PR #104110 Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #104404 Thanks @mushuiyu886 and @vincentkoc.
  • PR #104422 Related #104386.
  • PR #95725 Related #94224. Thanks @LZY3538 and @davh55.
  • PR #103331 Thanks @bdjben.
  • PR #104343 Thanks @vincentkoc.
  • PR #104508 Thanks @obviyus.
  • PR #104532
  • PR #104528 Related #104493.
  • PR #104476 Thanks @obviyus.
  • PR #104542
  • PR #104188 Related #104176. Thanks @kevinslin and @kevinlin-openai.
  • PR #104539
  • PR #104553
  • PR #101000 Thanks @hugenshen and @cursoragent.
  • PR #104557
  • PR #104563
  • PR #104440 Thanks @qingminglong.
  • PR #104260 Thanks @hugenshen.
  • PR #104151 Thanks @hugenshen.
  • PR #104148 Thanks @hugenshen.
  • PR #104414 Thanks @qingminglong.
  • PR #104572
  • PR #104201
  • PR #104410 Thanks @qingminglong.
  • PR #104556 Thanks @qingminglong.
  • PR #90431
  • PR #104573
  • PR #104579
  • PR #102883 Related #102844, #102845, #102846.
  • PR #104577 Related #104558.
  • PR #104581
  • PR #104583
  • PR #104587 Related #104584.
  • PR #104595
  • PR #104593
  • PR #104574
  • PR #104464 Thanks @zhangguiping-xydt.
  • PR #102974 Thanks @hugenshen.
  • PR #104536 Thanks @qingminglong.
  • PR #89702 Related #92768. Thanks @EaveLuo.
  • PR #104582
  • PR #104586 Thanks @vyctorbrzezowski.
  • PR #104449 Related #94102. Thanks @Pick-cat and @alexph-dev.
  • PR #104596
  • PR #104594
  • PR #104605
  • PR #104601 Related #103784.
  • PR #104606
  • PR #104591 Related #104588.
  • PR #104613
  • PR #104527 Related #104436.
  • PR #104610
  • PR #104616 Related #104609.
  • PR #104608
  • PR #104618
  • PR #104625
  • PR #104628
  • PR #104626
  • PR #104118 Related #104117. Thanks @moguangyu5-design and @chengzhichao-xydt.
  • PR #104603 Thanks @dwc1997.
  • PR #104634
  • PR #104636 Related #104565.
  • PR #104301 Thanks @whiteyzy.
  • PR #104649
  • PR #104647
  • PR #104651
  • PR #104646 Related #104474. Thanks @shakkernerd.
  • PR #100965 Thanks @hugenshen.
  • PR #104661 Related #104645.
  • PR #104655
  • PR #104658
  • PR #104612 Thanks @wangmiao0668000666.
  • PR #104659 Related #104457.
  • PR #104547 Thanks @yetval.
  • PR #104592 Thanks @hugenshen.
  • PR #104669 Related #104644.
  • PR #104578 Thanks @hugenshen.
  • PR #104670
  • PR #104502 Related #104424.
  • PR #104665
  • PR #104674
  • PR #103903
  • PR #104673
  • PR #103445 Thanks @zw-xysk and @cursoragent.
  • PR #104650 Related #104648.
  • PR #104682 Related #104679.
  • PR #104686
  • PR #104689 Related #104456.
  • PR #104676
  • PR #104561
  • PR #104680
  • PR #104107 Related #104091.
  • PR #104688
  • PR #104694
  • PR #104696
  • PR #104695
  • PR #104701 Thanks @vincentkoc.
  • PR #104385 Thanks @mushuiyu886.
  • PR #104677 Thanks @Leon-SK668.
  • PR #104699
  • PR #104423 Thanks @mushuiyu886.
  • PR #104697
  • PR #104638 Thanks @vyctorbrzezowski.
  • PR #104705
  • PR #104396 Thanks @zhangguiping-xydt.
  • PR #104604 Related #104590.
  • PR #104560 Thanks @wings1029.
  • PR #104710 Related #104709.
  • PR #104095 Thanks @Leon-SK668.
  • PR #104620 Thanks @IWhatsskill.
  • PR #104276 Related #104245.
  • PR #104621 Thanks @hugenshen.
  • PR #104576 Thanks @wangmiao0668000666.
  • PR #104454 Thanks @chenyangjun-xy.
  • PR #104496 Thanks @wings1029.
  • PR #104075 Thanks @IWhatsskill.
  • PR #104715 Thanks @Leon-SK668.
  • PR #104622 Thanks @vyctorbrzezowski.
  • PR #104460 Thanks @IWhatsskill.
  • PR #98236 Thanks @jalehman.
  • PR #104470 Related #104469. Thanks @VectorPeak.
  • PR #104723
  • PR #104724 Thanks @vyctorbrzezowski.
  • PR #104726
  • PR #104728
  • PR #104653
  • PR #103860 Related #103362. Thanks @lin-hongkuan and @harjothkhara.
  • PR #103181 Related #103137. Thanks @HOYALIM and @blinbaum.
  • PR #104737 Related #104731.
  • PR #104685 Related #103150.
  • PR #104735
  • PR #104498 Thanks @VectorPeak.
  • PR #104739 Related #100622. Thanks @aniruddhaadak80.
  • PR #104652 Thanks @vyctorbrzezowski.
  • PR #104741 Thanks @vincentkoc.
  • PR #104619 Thanks @hugenshen.
  • PR #104740
  • PR #103011 Thanks @NianJiuZst.
  • PR #104531 Thanks @zhangguiping-xydt.
  • PR #104744 Thanks @vyctorbrzezowski.
  • PR #104745 Related #104743.
  • PR #104748 Related #104738.
  • PR #104754 Thanks @zhangguiping-xydt.
  • PR #104751
  • PR #104487 Thanks @chengzhichao-xydt.
  • PR #104256 Related #103684. Thanks @NianJiuZst and @BenjaminBrossi.
  • PR #104635 Related #104614. Thanks @compoodment.
  • PR #104540 Thanks @zhangguiping-xydt.
  • PR #104633 Thanks @zhangguiping-xydt.
  • PR #104758
  • PR #97888 Thanks @joshavant.
  • PR #89816 Thanks @Pick-cat.
  • PR #104752
  • PR #104575 Thanks @hugenshen.
  • PR #104678 Thanks @Leon-SK668.
  • PR #104761 Related #104746.
  • PR #104094 Thanks @Leon-SK668.
  • PR #104760
  • PR #104749 Related #104747.
  • PR #103263 Thanks @yetval.
  • PR #104777
  • PR #104550 Related #104518. Thanks @ObliviateRickLin and @PollyBot13.
  • PR #104526 Related #104524. Thanks @arturict and @aspalagin.
  • PR #104771
  • PR #104567 Related #104566. Thanks @leonme.
  • PR #104617 Thanks @vyctorbrzezowski.
  • PR #104784
  • PR #104774
  • PR #104772 Thanks @vincentkoc.
  • PR #104766
  • PR #103472 Thanks @ZOOWH and @ly85206559.
  • PR #104059 Related #104058. Thanks @moguangyu5-design and @vincentkoc.
  • PR #104571 Related #104568. Thanks @NianJiuZst.
  • PR #104789
  • PR #104065 Related #104050. Thanks @harjothkhara and @vincentkoc and @btrailor.
  • PR #104790
  • PR #104787 Related #104780.
  • PR #104776 Related #104775.
  • PR #104554 Thanks @qingminlong.
  • PR #103579
  • PR #104797
  • PR #104129 Thanks @Leon-SK668.
  • PR #97722 Thanks @zhangguiping-xydt.
  • PR #104109 Thanks @mushuiyu886.
  • PR #104534 Thanks @qingminglong.
  • PR #104802
  • PR #104759 Related #104720. Thanks @wuqxuan and @context-down.
  • PR #104026 Related #104014. Thanks @ObliviateRickLin.
  • PR #103998 Related #103882. Thanks @MonkeyLeeT and @wbrom42.
  • PR #103248 Thanks @guarismo.
  • PR #104770 Related #104764.
  • PR #104767 Thanks @chengzhichao-xydt.
  • PR #104289 Thanks @Alix-007.
  • PR #104736 Thanks @sjf-oa and @sjf.
  • PR #104805
  • PR #104801 Thanks @vincentkoc.
  • PR #104795
  • PR #101912 Thanks @snowzlmbot.
  • PR #103704 Thanks @hugenshen.
  • PR #104717 Related #104598.
  • PR #104813
  • PR #104809
  • PR #103763 Thanks @litang9.
  • PR #104788 Thanks @Leon-SK668.
  • PR #104823 Thanks @vincentkoc.
  • PR #104757 Related #104698.
  • PR #104523 Thanks @ekinnee.
  • PR #104826
  • PR #104121 Thanks @Alix-007.
  • PR #102340 Thanks @jontsai.
  • PR #104831
  • PR #104832 Related #104781.
  • PR #104546 Thanks @obviyus.
  • PR #104839
  • PR #104827 Related #104822.
  • PR #104768 Related #104765.
  • PR #104819 Related #104818.
  • PR #104693
  • PR #104828
  • PR #103679
  • PR #104882
  • PR #104891 Thanks @vincentkoc.
  • PR #104884 Related #104881. Thanks @shakkernerd.
  • PR #103698
  • PR #104864
  • PR #104894 Thanks @vincentkoc.
  • PR #104885
  • PR #104897 Thanks @vincentkoc.
  • PR #104858
  • PR #104308 Thanks @Pick-cat.
  • PR #104900
  • PR #104902 Thanks @vincentkoc.
  • PR #104887 Thanks @vincentkoc.
  • PR #104908 Thanks @scoootscooob.
  • PR #99880 Thanks @xialonglee and @Solvely-Colin.
  • PR #104808
  • PR #104913
  • PR #103912
  • PR #101694 Thanks @Alix-007.
  • PR #104925 Thanks @vincentkoc.
  • PR #104926 Thanks @vincentkoc.
  • PR #104883
  • PR #104859 Related #104856. Thanks @vincentkoc.
  • PR #104909
  • PR #104838
  • PR #104773
  • PR #104936 Thanks @vincentkoc.
  • PR #104934 Thanks @vincentkoc.
  • PR #104914 Thanks @vincentkoc.
  • PR #104938 Thanks @vincentkoc.
  • PR #104943 Thanks @vincentkoc.
  • PR #104873 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #104944 Thanks @vincentkoc.
  • PR #104948 Thanks @vincentkoc.
  • PR #104952 Thanks @vincentkoc.
  • PR #104946 Related #104945.
  • PR #104954 Thanks @vincentkoc.
  • PR #104958 Thanks @vincentkoc.
  • PR #104961 Thanks @vincentkoc.
  • PR #104880 Thanks @obviyus.
  • PR #104886 Thanks @obviyus.
  • PR #104960 Thanks @vincentkoc.
  • PR #104974
  • PR #104964 Related #104945.
  • PR #104834 Related #104833.
  • PR #69039 Thanks @sallyom.
  • PR #104988 Thanks @vincentkoc.
  • PR #104990 Thanks @vincentkoc.
  • PR #104963 Thanks @vincentkoc.
  • PR #104994 Thanks @vincentkoc.
  • PR #104978 Thanks @vincentkoc.
  • PR #104998 Thanks @vincentkoc.
  • PR #104730 Related #104700.
  • PR #104734 Related #104713. Thanks @ObliviateRickLin and @davefano.
  • PR #104995
  • PR #105005 Thanks @vincentkoc.
  • PR #104792 Thanks @IWhatsskill.
  • PR #104906 Thanks @xydigit-zt.
  • PR #105007
  • PR #104807
  • PR #105006
  • PR #104846
  • PR #104981
  • PR #104997 Related #104993.
  • PR #104921 Thanks @xydigit-zt.
  • PR #104116 Thanks @Pick-cat.
  • PR #104866 Related #104844. Thanks @obviyus.
  • PR #105015 Related #95685. Thanks @zw-xysk and @shawnsaxis1971-arch.
  • PR #105008 Thanks @vincentkoc.
  • PR #105026 Related #103691. Thanks @vincentkoc.
  • PR #105023 Thanks @vincentkoc.
  • PR #103522 Related #103386. Thanks @lonexreb and @solavrc.
  • PR #105031 Thanks @vincentkoc.
  • PR #105020 Related #105019.
  • PR #104687 Thanks @Leon-SK668.
  • PR #103155 Thanks @soldforaloss.
  • PR #104814 Related #104791.
  • PR #105024
  • PR #104251 Related #104217.
  • PR #104942 Related #104941. Thanks @moguangyu5-design.
  • PR #105037
  • PR #105047 Related #105045.
  • PR #104190 Related #93928. Thanks @destire-mio and @yetval.
  • PR #105052
  • PR #102366 Related #102365. Thanks @galiniliev.
  • PR #104800 Thanks @chengzhichao-xydt.
  • PR #105094 Thanks @vincentkoc.
  • PR #105091 Related #105087.
  • PR #104796 Thanks @Leon-SK668.
  • PR #102060 Related #97593. Thanks @yetval.
  • PR #104811 Thanks @ShiroKSH.
  • PR #105072 Related #59090. Thanks @whisky0809 and @bdhwan.
  • PR #103491 Thanks @zw-xysk.
  • PR #105048
  • PR #104816
  • PR #105100 Thanks @vincentkoc.
  • PR #105092 Thanks @Leon-SK668.
  • PR #105082
  • PR #105071
  • PR #105117 Thanks @vincentkoc.
  • PR #105099 Related #105043.
  • PR #105126
  • PR #105107 Thanks @vincentkoc.
  • PR #105115 Thanks @snowzlmbot.
  • PR #105114 Related #105051.
  • PR #105134
  • PR #105136 Thanks @vincentkoc.
  • PR #105088 Thanks @vincentkoc.
  • PR #105046
  • PR #105065 Related #105053.
  • PR #105140 Related #105130.
  • PR #104863 Thanks @Leon-SK668.
  • PR #105076 Thanks @vincentkoc.
  • PR #105118 Thanks @vincentkoc.
  • PR #105057 Related #100978.
  • PR #103811 Related #103387. Thanks @lonexreb and @solavrc.
  • PR #105132
  • PR #103303 Thanks @zw-xysk.
  • PR #105069 Related #105068.
  • PR #105144
  • PR #105150 Thanks @vincentkoc.
  • PR #105159 Thanks @vincentkoc.
  • PR #105143 Related #105122.
  • PR #105022 Related #104945.
  • PR #105142 Thanks @paulislava.
  • PR #105075
  • PR #105038 Related #104999. Thanks @vincentkoc.
  • PR #101274 Thanks @Pick-cat.
  • PR #105169 Thanks @zhangguiping-xydt.
  • PR #105095 Related #104996.
  • PR #105172
  • PR #105153 Related #105109.
  • PR #105174 Related #105141.
  • PR #105061
  • PR #105179 Thanks @vincentkoc.
  • PR #105160 Related #96653. Thanks @SunnyShu0925 and @willfivestar.
  • PR #105205 Thanks @vincentkoc.
  • PR #105206 Related #105181. Thanks @vincentkoc.
  • PR #105177 Related #105176.
  • PR #102881 Related #102834. Thanks @wangyan2026 and @yetval.
  • PR #105083 Related #105004.
  • PR #105208
  • PR #105210
  • PR #82505 Related #82504. Thanks @coygeek.
  • PR #105175 Related #105129.
  • PR #105050
  • PR #105213
  • PR #105180
  • PR #105224 Thanks @vincentkoc.
  • PR #105219
  • PR #105151 Related #38844. Thanks @tigicion.
  • PR #105221
  • PR #105215 Related #94058. Thanks @Alix-007 and @needtocalmdown.
  • PR #105220 Related #105207.
  • PR #105214
  • PR #105236 Thanks @vincentkoc.
  • PR #105222 Thanks @vincentkoc.
  • PR #105241
  • PR #105182 Related #105178.
  • PR #105250 Thanks @vincentkoc.
  • PR #105245 Thanks @vincentkoc.
  • PR #105223
  • PR #105252
  • PR #105251
  • PR #105249 Related #105225.
  • PR #105253
  • PR #105254
  • PR #105242
  • PR #105256
  • PR #104837
  • PR #103921
  • PR #103932
  • PR #105209 Related #105165.
  • PR #105268
  • PR #105239 Related #104600.
  • PR #105054
  • PR #105270
  • PR #105273 Thanks @vincentkoc.
  • PR #105260 Thanks @vincentkoc.
  • PR #105261 Related #105218.
  • PR #105259 Thanks @Pick-cat.
  • PR #105272
  • PR #105030
  • PR #105276 Thanks @vincentkoc.
  • PR #105255 Thanks @vincentkoc.
  • PR #105283
  • PR #105285 Related #105278.
  • PR #105280
  • PR #105282 Related #105281.
  • PR #105291
  • PR #105293 Thanks @vincentkoc.
  • PR #105299
  • PR #100929 Thanks @vyctorbrzezowski.
  • PR #105123 Thanks @vincentkoc.
  • PR #105292
  • PR #105303
  • PR #105304 Related #105294.
  • PR #105309 Thanks @vincentkoc.
  • PR #105265 Related #105264.
  • PR #105313 Related #105308.
  • PR #105312 Thanks @vincentkoc.
  • PR #105311
  • PR #105317 Thanks @vincentkoc.
  • PR #105324
  • PR #105049 Thanks @vincentkoc.
  • PR #105332 Thanks @vincentkoc.
  • PR #105333
  • PR #105314 Thanks @vincentkoc.
  • PR #105330 Thanks @vyctorbrzezowski.
  • PR #105331 Related #105326.
  • PR #105287 Related #105154, #105155. Thanks @vincentkoc.
  • PR #105337
  • PR #105345 Thanks @vincentkoc.
  • PR #105343
  • PR #105340
  • PR #105349 Thanks @vincentkoc.
  • PR #105351 Related #105344.
  • PR #105336 Related #91083. Thanks @Lucenx9 and @LaPhilosophie and @hanZeng-08 and @Medicalmusings.
  • PR #105341 Thanks @vincentkoc.
  • PR #105352
  • PR #101864 Thanks @snowzlmbot.
  • PR #105355 Thanks @vincentkoc.
  • PR #105348
  • PR #105358 Thanks @vincentkoc.
  • PR #105361
  • PR #105363 Thanks @vincentkoc.
  • PR #105359 Related #105354.
  • PR #101852 Thanks @mmaps.
  • PR #105362
  • PR #105360
  • PR #105366 Related #105364.
  • PR #105369 Thanks @vincentkoc.
  • PR #105275
  • PR #105377 Thanks @vincentkoc.
  • PR #105367
  • PR #105370 Thanks @vincentkoc.
  • PR #105382
  • PR #105385 Thanks @vincentkoc.
  • PR #105388 Related #105383. Thanks @vincentkoc.
  • PR #105394 Thanks @vincentkoc.
  • PR #105375
  • PR #105384 Related #105373.
  • PR #105400 Thanks @vincentkoc.
  • PR #105406 Thanks @vincentkoc.
  • PR #105412 Thanks @vincentkoc and @giodl73-repo.
  • PR #105416 Thanks @vincentkoc.
  • PR #105390
  • PR #105411
  • PR #105443 Thanks @vincentkoc.
  • PR #105398
  • PR #105446 Thanks @vincentkoc.
  • PR #105399
  • PR #105421 Related #105404.
  • PR #105395 Thanks @vincentkoc.
  • PR #105407 Thanks @vincentkoc.
  • PR #105408 Thanks @vincentkoc.
  • PR #104488 Thanks @hugenshen.
  • PR #105409 Thanks @vincentkoc.
  • PR #105459 Thanks @vincentkoc.
  • PR #105468 Thanks @vincentkoc.
  • PR #105469 Related #105463. Thanks @vincentkoc.
  • PR #105103 Thanks @qingminglong.
  • PR #105474 Thanks @vincentkoc.
  • PR #105476 Related #105461. Thanks @vincentkoc.
  • PR #102357 Related #102356. Thanks @galiniliev and @steipete-oai.
  • PR #105482 Thanks @vincentkoc.
  • PR #105472
  • PR #102094 Thanks @Alix-007.
  • PR #105486 Thanks @vincentkoc.
  • PR #102072 Thanks @Alix-007.
  • PR #105497 Thanks @vincentkoc.
  • PR #105347 Thanks @jesse-merhi.
  • PR #105499
  • PR #105495
  • PR #105502 Thanks @vincentkoc.
  • PR #103018 Thanks @Alix-007 and @Leon-SK668.
  • PR #104290 Thanks @Alix-007.
  • PR #105505 Thanks @vincentkoc.
  • PR #105506 Thanks @vincentkoc.
  • PR #105510 Thanks @vincentkoc.
  • PR #105508
  • PR #105509
  • PR #105522 Thanks @vincentkoc.
  • PR #105524 Thanks @vincentkoc.
  • PR #105372 Thanks @vincentkoc.
  • PR #105516
  • PR #105525 Thanks @vincentkoc and @giodl73-repo.
  • PR #105521
  • PR #103634 Thanks @gorkem2020.
  • PR #105526 Thanks @vincentkoc.
  • PR #105119
  • PR #105531 Thanks @vincentkoc.
  • PR #103995 Thanks @efrazer-oai.
  • PR #105534 Thanks @vincentkoc.
  • PR #105538 Thanks @vincentkoc.
  • PR #104815 Related #104803.
  • PR #105542 Thanks @vincentkoc.
  • PR #101469 Thanks @cxbAsDev.
  • PR #104919 Related #104903. Thanks @Glucksberg and @evan-YM.
  • PR #104962 Thanks @mcaxtr.
  • PR #105546 Thanks @vincentkoc.
  • PR #105535
  • PR #104949 Thanks @mcaxtr.
  • PR #105116
  • PR #105545
  • PR #105554 Thanks @vincentkoc.
  • PR #105541
  • PR #105552 Related #105543.
  • PR #105563 Thanks @vincentkoc.
  • PR #105570 Thanks @vincentkoc.
  • PR #105566
  • PR #104896 Thanks @dwc1997.
  • PR #105555 Related #105532.
  • PR #105572 Thanks @vincentkoc.
  • PR #105569
  • PR #105577 Thanks @vincentkoc.
  • PR #105012 Related #105010.
  • PR #105583 Thanks @vincentkoc.
  • PR #105587 Thanks @vincentkoc.
  • PR #105589 Thanks @vincentkoc.
  • PR #105585 Related #105581.
  • PR #105596 Thanks @vincentkoc.
  • PR #105591
  • PR #105599 Thanks @vincentkoc.
  • PR #104662 Thanks @Alix-007.
  • PR #105600 Related #105582.
  • PR #105595 Related #105575.
  • PR #105597
  • PR #105606 Thanks @vincentkoc.
  • PR #105540
  • PR #105598
  • PR #105603
  • PR #105612 Thanks @vincentkoc.
  • PR #105592
  • PR #105615
  • PR #105627
  • PR #105611
  • PR #105607
  • PR #105613
  • PR #105626 Related #105608.
  • PR #105631 Thanks @vincentkoc.
  • PR #103717 Thanks @Pick-cat.
  • PR #105258 Related #102250. Thanks @destire-mio and @yetval.
  • PR #105475 Thanks @qingminlong.
  • PR #103468 Thanks @zw-xysk.
  • PR #105471 Thanks @IWhatsskill.
  • PR #105628
  • PR #104274 Thanks @qingminglong.
  • PR #105520 Related #105511. Thanks @edenfunf.
  • PR #105636
  • PR #105605
  • PR #105539 Related #105035.
  • PR #105479 Thanks @qingminlong.
  • PR #105639 Thanks @vincentkoc.
  • PR #105635 Related #81583. Thanks @hercial61.
  • PR #105616 Related #105590.
  • PR #104196 Related #104194. Thanks @AnthonyStainer.
  • PR #105646 Related #105602.
  • PR #101474 Thanks @yourslewis.
  • PR #105645 Thanks @vincentkoc.
  • PR #104152 Thanks @qingminglong.
  • PR #105663 Thanks @vincentkoc.
  • PR #105671 Related #105618.
  • PR #105642 Related #105568.
  • PR #105687 Thanks @vincentkoc.
  • PR #104675 Thanks @vyctorbrzezowski.
  • PR #105691 Thanks @vincentkoc.
  • PR #105688 Related #105127.
  • PR #104122 Thanks @Alix-007 and @sallyom.
  • PR #105704 Thanks @vincentkoc.
  • PR #105711 Thanks @vincentkoc.
  • PR #105718 Thanks @vincentkoc and @giodl73-repo.
  • PR #105709
  • PR #105702 Related #105632.
  • PR #105719
  • PR #105721 Thanks @vincentkoc.
  • PR #105722 Thanks @vincentkoc.
  • PR #105594
  • PR #105604
  • PR #105580 Thanks @mcaxtr.
  • PR #105740 Thanks @vincentkoc and @giodl73-repo.
  • PR #105739
  • PR #105717 Related #88307. Thanks @vincentkoc and @compoodment.
  • PR #105728 Thanks @fuller-stack-dev.
  • PR #102231 Thanks @hugenshen.
  • PR #101496 Thanks @xialonglee.
  • PR #105737
  • PR #105742
  • PR #105743 Related #105730.
  • PR #105755
  • PR #105492 Related #105436. Thanks @evan-YM and @aniruddhaadak80.
  • PR #105746 Thanks @vincentkoc.
  • PR #105720 Thanks @vincentkoc.
  • PR #105760
  • PR #105762
  • PR #104168 Thanks @Pick-cat.
  • PR #105747 Thanks @vincentkoc.
  • PR #105767 Thanks @vincentkoc.
  • PR #105756 Thanks @vincentkoc.
  • PR #105771
  • PR #105772 Thanks @vincentkoc.
  • PR #105773 Thanks @vincentkoc.
  • PR #105778
  • PR #105774 Related #105748.
  • PR #105776 Related #105733.
  • PR #105777
  • PR #105397 Thanks @VectorPeak.
  • PR #104132 Thanks @chengzhichao-xydt.
  • PR #105782 Thanks @vincentkoc.
  • PR #105519 Related #105422. Thanks @wuqxuan and @aniruddhaadak80.
  • PR #105614 Related #105439. Thanks @xiaobao-k8s and @aniruddhaadak80.
  • PR #105770 Related #105749.
  • PR #105386 Related #105188. Thanks @ZOOWH and @aniruddhaadak80.
  • PR #105788
  • PR #105768
  • PR #105783 Related #105758.
  • PR #105792
  • PR #105790 Related #58570. Thanks @UBIpromoter.
  • PR #105800 Thanks @vincentkoc.
  • PR #105799 Thanks @vincentkoc.
  • PR #105786 Related #105785.
  • PR #105804 Related #105764.
  • PR #105811 Thanks @vincentkoc.
  • PR #105809
  • PR #102976 Thanks @hugenshen.
  • PR #105289 Related #103736. Thanks @LZY3538 and @yetval.
  • PR #105801 Related #105745, #105779.
  • PR #105812 Thanks @vincentkoc.
  • PR #105816
  • PR #105387 Thanks @qingminlong.
  • PR #105794
  • PR #105815
  • PR #105834 Thanks @vincentkoc.
  • PR #105813 Related #88643. Thanks @tianxiaochannel-oss88.
  • PR #105832
  • PR #105802 Related #105761.
  • PR #105839
  • PR #105856 Thanks @vincentkoc.
  • PR #105866
  • PR #105878 Thanks @vincentkoc.
  • PR #105859
  • PR #105315 Thanks @qingminglong.
  • PR #105891 Thanks @vincentkoc.
  • PR #105864
  • PR #105861
  • PR #94130 Related #78145. Thanks @zhangguiping-xydt and @tdrose01.
  • PR #105894 Related #105825.
  • PR #105826
  • PR #105789 Related #105757.
  • PR #105795 Thanks @morluto.
  • PR #105908 Thanks @vincentkoc.
  • PR #105818 Thanks @lzw112.
  • PR #105858
  • PR #105769 Thanks @mushuiyu886.
  • PR #99007 Related #98879, #98865. Thanks @maweibin and @carterstebbins23-spec.
  • PR #105876
  • PR #105902 Related #105898.
  • PR #105808
  • PR #105906 Related #105905.
  • PR #104632 Thanks @Glucksberg.
  • PR #105925 Related #105900.
  • PR #105918
  • PR #97078 Thanks @developersdigest.
  • PR #105955
  • PR #104218 Related #104136. Thanks @zw-xysk and @cursoragent and @dale-goes-fast.
  • PR #105983
  • PR #105991
  • PR #105365 Thanks @Glucksberg.
  • PR #105997 Related #90925. Thanks @obviyus and @DolencLuka.
  • PR #106022
  • PR #105941 Related #102367. Thanks @saagarvaru.
  • PR #105831 Related #105828, #105829. Thanks @obviyus.
  • PR #103620 Thanks @pgondhi987.
  • PR #106006 Related #105965.
  • PR #106042
  • PR #106003 Related #105950.
  • PR #105913 Related #105912.
  • PR #106052
  • PR #105867
  • PR #106071 Related #106059. Thanks @obviyus.
  • PR #105975 Related #105949.
  • PR #106048 Related #104105. Thanks @joshavant and @yetval.
  • PR #106061
  • PR #105961 Related #105956. Thanks @sjf.
  • PR #105977 Related #105972.
  • PR #105953 Related #105932.
  • PR #105989 Related #105969.
  • PR #106037 Thanks @vincentkoc.
  • PR #105948 Related #105946. Thanks @vincentkoc.
  • PR #105947
  • PR #106051 Related #105915.
  • PR #106070
  • PR #106064 Thanks @fuller-stack-dev.
  • PR #105927
  • PR #105957 Related #105897.
  • PR #105995 Related #105964.
  • PR #106001 Thanks @fuller-stack-dev.
  • PR #102924 Thanks @hugenshen.
  • PR #106017
  • PR #106072 Thanks @vincentkoc.
  • PR #105944 Related #105938.
  • PR #105945 Thanks @vincentkoc.
  • PR #105952
  • PR #106087
  • PR #97086 Thanks @paulcam206 and @giodl73-repo and @RomneyDa.
  • PR #106021
  • PR #106063
  • PR #106031
  • PR #106062 Related #106053.
  • PR #104624 Thanks @hugenshen.
  • PR #105890
  • PR #106096 Thanks @fuller-stack-dev.
  • PR #106012 Related #105967.
  • PR #98189 Thanks @Solvely-Colin.
  • PR #106030 Related #105962.
  • PR #106103 Thanks @vincentkoc.
  • PR #106108 Thanks @vincentkoc.
  • PR #105988 Related #105985.
  • PR #105993 Thanks @fuller-stack-dev.
  • PR #105156 Related #94688. Thanks @bdjben and @Gr4via.
  • PR #105842
  • PR #106121 Thanks @fuller-stack-dev.
  • PR #106109
  • PR #105958 Thanks @fuller-stack-dev.
  • PR #106124
  • PR #106126 Thanks @vincentkoc.
  • PR #95757 Related #91947. Thanks @bdjben and @guojiongming.
  • PR #105850
  • PR #106117 Related #106076.
  • PR #106095
  • PR #106132
  • PR #105814 Related #105741.
  • PR #106099
  • PR #105674 Related #105672.
  • PR #106097 Thanks @vincentkoc.
  • PR #94416 Related #93501. Thanks @mushuiyu886 and @carsten19.
  • PR #106139 Thanks @vincentkoc.
  • PR #106045 Related #105968.
  • PR #106033
  • PR #105914
  • PR #106011 Related #105960.
  • PR #106007 Related #105998.
  • PR #105882
  • PR #106129 Related #106118.
  • PR #106111 Related #106013.
  • PR #105970 Related #105959.
  • PR #106125 Related #106123.
  • PR #106040
  • PR #105987
  • PR #106049 Related #106047.
  • PR #106089 Related #106082.
  • PR #105888
  • PR #105951
  • PR #106074
  • PR #106144 Related #105923. Thanks @xydt-juyaohui and @moguangyu5-design.
  • PR #106093 Related #106054.
  • PR #106176 Related #105862. Thanks @momothemage and @asa1525.
  • PR #106056 Thanks @pgondhi987.
  • PR #106115 Related #106107.
  • PR #106098
  • PR #106184 Thanks @vincentkoc.
  • PR #106183 Related #106102.
  • PR #105937
  • PR #106169 Related #106141.
  • PR #106157
  • PR #106179 Related #106164.
  • PR #106146 Related #106131.
  • PR #106119
  • PR #104955 Related #104898. Thanks @wuqxuan and @altaywtf and @cmaldonado80.
  • PR #106155
  • PR #106165
  • PR #106034 Thanks @Alix-007.
  • PR #106057 Thanks @pgondhi987.
  • PR #106010 Related #105980.
  • PR #106044 Related #106043.
  • PR #105904
  • PR #106094 Related #106085.
  • PR #106175
  • PR #106090
  • PR #106114
  • PR #105838 Related #105759.
  • PR #106002 Related #105971.
  • PR #106039
  • PR #93198 Related #80933. Thanks @mushuiyu886 and @gorkem2020.
  • PR #106217
  • PR #105855
  • PR #106214
  • PR #106151
  • PR #105875
  • PR #106225
  • PR #106160
  • PR #106222
  • PR #106193
  • PR #105939 Related #105920.
  • PR #106196 Related #106158.
  • PR #102984 Thanks @chengzhichao-xydt.
  • PR #106228
  • PR #106237
  • PR #106234 Related #106219.
  • PR #106221 Thanks @vincentkoc.
  • PR #106205 Related #106185.
  • PR #105928 Related #105843.
  • PR #106195 Related #106194.
  • PR #106240
  • PR #106230
  • PR #105865
  • PR #106105 Related #105431. Thanks @zhangqueping and @aniruddhaadak80.
  • PR #106154 Related #106148.
  • PR #104878 Related #104490. Thanks @ObliviateRickLin and @altaywtf and @smoe-bot.
  • PR #97611 Thanks @RomneyDa and @altaywtf.
  • PR #106247
  • PR #106256
  • PR #106253 Thanks @vincentkoc.
  • PR #106257
  • PR #106242
  • PR #106263
  • PR #106113 Related #105963.
  • PR #104123 Thanks @zhangguiping-xydt.
  • PR #106197 Thanks @vincentkoc.
  • PR #106133 Related #105924.
  • PR #106252
  • PR #106243 Related #106233.
  • PR #106210 Thanks @vincentkoc.
  • PR #106265 Related #106245.
  • PR #106046
  • PR #105921
  • PR #106055
  • PR #106016 Related #105996.
  • PR #106275
  • PR #104893 Related #104865. Thanks @arcabotai and @Solvely-Colin.
  • PR #106279
  • PR #106269
  • PR #106200
  • PR #106254
  • PR #106292
  • PR #104668 Thanks @jwest75674.
  • PR #106289
  • PR #106260
  • PR #106301 Thanks @vincentkoc.
  • PR #106174 Related #106138. Thanks @obviyus.
  • PR #103211 Related #101720. Thanks @HOYALIM and @aniruddhaadak80.
  • PR #106220
  • PR #106312
  • PR #106208 Related #106192.
  • PR #106309 Related #106291.
  • PR #106058
  • PR #106288 Related #106276.
  • PR #106270 Related #106251.
  • PR #106345 Related #106299.
  • PR #106307 Related #106305.
  • PR #106153
  • PR #105954 Thanks @qingminlong.
  • PR #106353 Related #106343.
  • PR #106281
  • PR #106366 Related #106348.
  • PR #106367 Related #106363.
  • PR #106322 Related #106321.
  • PR #106223
  • PR #106356
  • PR #106267 Related #99087. Thanks @TheAngryPit.
  • PR #106352 Related #106337.
  • PR #106232
  • PR #106191
  • PR #106377
  • PR #106306
  • PR #106318 Related #106261.
  • PR #106382 Related #106371.
  • PR #106303 Related #106302.
  • PR #106358
  • PR #102887 Related #102837. Thanks @wangyan2026 and @yetval.
  • PR #106316 Related #106274.
  • PR #106380
  • PR #106317 Thanks @vincentkoc.
  • PR #105448 Related #105447. Thanks @VectorPeak and @altaywtf.
  • PR #106092
  • PR #106287 Related #106278.
  • PR #106294 Related #106259.
  • PR #106038
  • PR #106282
  • PR #106224 Related #106213.
  • PR #106394 Thanks @vincentkoc.
  • PR #106401
  • PR #103993 Related #99660. Thanks @TheAngryPit and @CassieMei.
  • PR #106152 Related #105974. Thanks @wuqxuan.
  • PR #106347 Related #106310. Thanks @obviyus.
  • PR #106409
  • PR #106320
  • PR #106410 Related #106389.
  • PR #106419
  • PR #106411 Thanks @vincentkoc.
  • PR #106418
  • PR #106426
  • PR #106428 Related #106417.
  • PR #106431 Thanks @vincentkoc.
  • PR #105754 Related #102400. Thanks @oabdelmaksoud and @rodja.
  • PR #106354 Related #106350.
  • PR #106434
  • PR #106435 Related #105973.
  • PR #106091 Related #106088.
  • PR #106440 Thanks @vincentkoc.
  • PR #106387 Related #106207.
  • PR #106441 Related #106433.
  • PR #106427
  • PR #106447 Thanks @vincentkoc.
  • PR #105833 Related #105529.
  • PR #106455
  • PR #106457 Thanks @shakkernerd.
  • PR #106451 Related #106340.
  • PR #106264 Thanks @IWhatsskill and @Solvely-Colin.
  • PR #106459 Thanks @vincentkoc.
  • PR #106462 Related #106446.
  • PR #106290
  • PR #106168
  • PR #106463
  • PR #106211 Related #106186.
  • PR #106332
  • PR #106476
  • PR #106478
  • PR #106481
  • PR #105810 Thanks @fuller-stack-dev.
  • PR #106488
  • PR #106492
  • PR #106470 Related #106326.
  • PR #105460 Related #105675. Thanks @mushuiyu886 and @sallyom and @aniruddhaadak80.
  • PR #106507
  • PR #106520
  • PR #106521
  • PR #106531
  • PR #106486
  • PR #100174 Related #100169. Thanks @souvikDevloper and @Souvikalp and @jwest75674.
  • PR #106535
  • PR #106487
  • PR #106499 Thanks @vincentkoc.
  • PR #106501
  • PR #106472 Related #106465.
  • PR #106530
  • PR #106514 Related #106510.
  • PR #105805 Thanks @lwy-2.
  • PR #106537 Related #106493.
  • PR #106533
  • PR #106286
  • PR #106255
  • PR #106324 Related #106268.
  • PR #105557 Thanks @mushuiyu886.
  • PR #106547
  • PR #106518 Related #106388.
  • PR #106539
  • PR #106313 Related #106295.
  • PR #106548 Related #106546.
  • PR #106489 Related #106466.
  • PR #106549 Thanks @vincentkoc.
  • PR #106591
  • PR #106554
  • PR #103562 Related #102381. Thanks @cxbAsDev and @zuofengboss.
  • PR #106590
  • PR #106522
  • PR #106500
  • PR #106550
  • PR #106592 Related #106589.
  • PR #106593 Thanks @vincentkoc.
  • PR #106544
  • PR #106600
  • PR #106525
  • PR #106552
  • PR #106634
  • PR #106632 Related #106602.
  • PR #103413 Thanks @wings1029.
  • PR #106543
  • PR #106639
  • PR #106285 Related #106280.
  • PR #106620 Thanks @vincentkoc.
  • PR #106615
  • PR #106508
  • PR #106601 Related #106597.
  • PR #106672
  • PR #106689
  • PR #106495
  • PR #106691
  • PR #106642
  • PR #106513 Related #103363. Thanks @jincheng-xydt and @harjothkhara.
  • PR #105922 Thanks @wahaha1223.
  • PR #105885 Thanks @Alix-007.
  • PR #106697
  • PR #106695 Related #106694.
  • PR #105916 Thanks @qingminlong.
  • PR #106698
  • PR #106490 Related #81961. Thanks @alexandre-leng.
  • PR #106702
  • PR #105979 Related #105791.
  • PR #106392
  • PR #105334 Thanks @dwc1997.
  • PR #106707 Related #106699.
  • PR #106708
  • PR #106640
  • PR #106728
  • PR #106729 Related #106727.
  • PR #106731
  • PR #106732
  • PR #106733
  • PR #106469
  • PR #105775 Thanks @jjjhenriksen.
  • PR #106740
  • PR #106019
  • PR #106742
  • PR #106743
  • PR #106744 Related #106735.
  • PR #106748
  • PR #106750
  • PR #106753 Related #106747.
  • PR #106756
  • PR #106759
  • PR #106761
  • PR #106767
  • PR #106758 Related #106360.
  • PR #106769 Related #106757.
  • PR #106771
  • PR #106595 Related #106372.
  • PR #102263 Related #99286. Thanks @Jaksenc and @iamyhzhao.
  • PR #106782
  • PR #106784 Related #106770.
  • PR #106787 Related #106785.
  • PR #106794
  • PR #106801
  • PR #106802 Related #106795.
  • PR #106805
  • PR #106751
  • PR #106807
  • PR #106808 Related #106804.
  • PR #106811 Related #106809.
  • PR #106816 Related #106812.
  • PR #106798
  • PR #106820 Related #106817.
  • PR #106823
  • PR #106821
  • PR #106828
  • PR #106764 Related #106745.
  • PR #106796
  • PR #106534 Related #106218.
  • PR #106772
  • PR #106827
  • PR #106806 Related #103056. Thanks @yetval.
  • PR #106754
  • PR #106783
  • PR #106692 Thanks @vincentkoc.
  • PR #106736
  • PR #96738 Thanks @pdurlej.
  • PR #106775
  • PR #106792 Related #106112. Thanks @joshavant and @charliemeyer2000.
  • PR #106831 Related #106829.
  • PR #106774
  • PR #106762
  • PR #106004 Related #105936. Thanks @yangxiansheng and @joshavant and @yetval.
  • PR #106791
  • PR #106837 Thanks @vincentkoc.
  • PR #106468 Thanks @vincentkoc.
  • PR #106842
  • PR #106836
  • PR #106844 Related #106834.
  • PR #106845
  • PR #106848
  • PR #106116 Related #103059. Thanks @ruel225 and @yetval.
  • PR #106173 Thanks @wangmiao0668000666.
  • PR #106853
  • PR #106835
  • PR #106857
  • PR #106856 Thanks @vincentkoc.
  • PR #106800
  • PR #106858 Related #106847.
  • PR #106633 Related #106511.
  • PR #106861
  • PR #106406 Related #106215.
  • PR #106773
  • PR #106355 Related #106145.
  • PR #106605
  • PR #106868
  • PR #106867
  • PR #106741
  • PR #106862
  • PR #106852 Thanks @vincentkoc.
  • PR #106871 Thanks @vincentkoc.
  • PR #106874 Related #106860.
  • PR #106879
  • PR #106328 Thanks @zhangguiping-xydt.
  • PR #106878 Thanks @vincentkoc.
  • PR #106198 Related #106170. Thanks @galiniliev.
  • PR #105576 Thanks @mcaxtr.
  • PR #106883
  • PR #106887
  • PR #106766 Related #106182.
  • PR #106889 Related #106877.
  • PR #105574 Thanks @mcaxtr.
  • PR #106892
  • PR #106884 Thanks @joshavant.
  • PR #106891
  • PR #106872
  • PR #106896
  • PR #106900 Thanks @vincentkoc.
  • PR #106895
  • PR #106898
  • PR #106904
  • PR #106424 Thanks @Leon-SK668.
  • PR #106906
  • PR #106917
  • PR #106915
  • PR #106596 Related #106430. Thanks @wuqxuan and @alexai-hnt.
  • PR #106919
  • PR #106643 Thanks @zw-xysk.
  • PR #106236 Thanks @ZengWen-DT.
  • PR #106924
  • PR #106880
  • PR #106901
  • PR #106925
  • PR #106886
  • PR #106909 Thanks @vincentkoc.
  • PR #105579 Thanks @mcaxtr.
  • PR #106929
  • PR #106931
  • PR #106934 Thanks @vincentkoc.
  • PR #106936
  • PR #106865 Related #106266.
  • PR #106881 Thanks @vincentkoc.
  • PR #106938
  • PR #106918
  • PR #106873
  • PR #106944 Thanks @vincentkoc.
  • PR #106947
  • PR #106439 Thanks @sunlit-deng.
  • PR #106928
  • PR #106950 Thanks @vincentkoc.
  • PR #106949
  • PR #106921 Related #106876.
  • PR #106956
  • PR #106954
  • PR #106955 Thanks @vincentkoc.
  • PR #103290 Related #103262. Thanks @tzy-17 and @yetval.
  • PR #106939
  • PR #106964
  • PR #106603 Thanks @he-yufeng.
  • PR #106846
  • PR #106965 Thanks @vincentkoc.
  • PR #106973 Thanks @vincentkoc.
  • PR #106974
  • PR #106978
  • PR #106979 Related #106966.
  • PR #106425 Thanks @Leon-SK668.
  • PR #106991
  • PR #106990
  • PR #106972
  • PR #106993
  • PR #106553 Thanks @sebastian-openclaw.
  • PR #106992 Thanks @vincentkoc.
  • PR #106953 Thanks @vincentkoc.
  • PR #106970
  • PR #106968
  • PR #106975
  • PR #107007
  • PR #107003
  • PR #107016
  • PR #107014
  • PR #107013 Thanks @vincentkoc.
  • PR #107018
  • PR #107008
  • PR #107027 Thanks @vincentkoc.
  • PR #107020
  • PR #106927
  • PR #107039
  • PR #107022
  • PR #106962
  • PR #107011
  • PR #104070 Thanks @zhangguiping-xydt.
  • PR #107015
  • PR #107004 Related #106882.
  • PR #107042
  • PR #107002 Related #97563, #103076. Thanks @jarvis-drakon and @shad0wca7.
  • PR #107044
  • PR #107051
  • PR #107048 Thanks @vincentkoc.
  • PR #107055
  • PR #107056
  • PR #107062
  • PR #107064
  • PR #107057
  • PR #107071
  • PR #107075
  • PR #107078
  • PR #107083
  • PR #107077 Thanks @vincentkoc.
  • PR #107084
  • PR #106026 Related #105872.
  • PR #107088
  • PR #107095
  • PR #107097
  • PR #107096 Thanks @vincentkoc.
  • PR #107098
  • PR #107100
  • PR #107079
  • PR #107038 Thanks @fuller-stack-dev.
  • PR #107041
  • PR #107110
  • PR #107047
  • PR #106981
  • PR #107054
  • PR #107059
  • PR #107113 Thanks @vincentkoc.
  • PR #107120
  • PR #107126
  • PR #107109
  • PR #107124
  • PR #107087 Related #103057. Thanks @yetval.
  • PR #106926 Thanks @mushuiyu886.
  • PR #107102
  • PR #106986 Thanks @zhangguiping-xydt.
  • PR #107130
  • PR #107135
  • PR #107111 Related #107085.
  • PR #107128
  • PR #106941 Related #106913.
  • PR #106951 Related #106948. Thanks @moguangyu5-design.
  • PR #107107
  • PR #106952 Thanks @zenglingbiao.
  • PR #107081 Related #107080.
  • PR #107134
  • PR #107131 Thanks @vincentkoc.
  • PR #107115
  • PR #107140 Thanks @vincentkoc.
  • PR #107040 Thanks @hannesrudolph.
  • PR #107116 Related #107106.
  • PR #107147
  • PR #107148
  • PR #107123
  • PR #107146 Thanks @vincentkoc.
  • PR #107142
  • PR #107156
  • PR #107150
  • PR #104259 Thanks @yyj-xydt.
  • PR #107151
  • PR #107157
  • PR #106899 Related #106838. Thanks @bek91.
  • PR #106995 Thanks @joshavant.
  • PR #107086
  • PR #107072 Thanks @zhangguiping-xydt.
  • PR #107103 Thanks @zw-xysk.
  • PR #107165
  • PR #106384 Thanks @ZengWen-DT.
  • PR #107169
  • PR #107168
  • PR #107101
  • PR #107174 Thanks @fuller-stack-dev.
  • PR #107178
  • PR #107189
  • PR #107190
  • PR #96554 Thanks @ruizcrp.
  • PR #107196
  • PR #107197
  • PR #107194
  • PR #107177
  • PR #107201
  • PR #107206
  • PR #107210
  • PR #107186
  • PR #107213
  • PR #107217
  • PR #107173
  • PR #107204
  • PR #107231
  • PR #107200 Related #107183.
  • PR #106069 Related #106014. Thanks @krissding and @jalfaro2876.
  • PR #107181
  • PR #107212
  • PR #107208
  • PR #107233
  • PR #107235
  • PR #107050 Related #105512.
  • PR #107198
  • PR #107241
  • PR #107232
  • PR #103918 Thanks @mmaps and @pgondhi987.
  • PR #107245
  • PR #107167
  • PR #106479 Related #105530. Thanks @ml12580 and @mnowrot.
  • PR #107162 Related #107112.
  • PR #107247
  • PR #103914 Thanks @mmaps and @pgondhi987.
  • PR #107249
  • PR #107254
  • PR #107259
  • PR #107258 Thanks @pgondhi987.
  • PR #107270
  • PR #107166 Related #107153.
  • PR #107242
  • PR #107264
  • PR #107260
  • PR #107271
  • PR #107252
  • PR #107284
  • PR #107009 Related #104804.
  • PR #107286
  • PR #107275
  • PR #107253
  • PR #107287
  • PR #107282
  • PR #107122 Thanks @wahaha1223.
  • PR #107291
  • PR #107214
  • PR #107293
  • PR #107296
  • PR #107298
  • PR #107307
  • PR #107301
  • PR #107272
  • PR #101253 Thanks @RomneyDa.
  • PR #106178 Thanks @QiuYuang and @Monkey-wusky and @maweibin.
  • PR #107312
  • PR #107310
  • PR #107297
  • PR #107025
  • PR #107319
  • PR #107236 Thanks @SL4N.
  • PR #107321
  • PR #107326
  • PR #107328
  • PR #107331
  • PR #107238 Related #106875. Thanks @SL4N and @dr00-eth.
  • PR #107316
  • PR #106498 Thanks @hugenshen.
  • PR #107332
  • PR #99404 Thanks @snowzlmbot.
  • PR #107193
  • PR #102271 Thanks @RomneyDa.
  • PR #107340
  • PR #107342
  • PR #105001 Thanks @zhangguiping-xydt.
  • PR #107345
  • PR #107338
  • PR #107311
  • PR #105883 Thanks @Alix-007.
  • PR #107353
  • PR #107351
  • PR #107337
  • PR #107354
  • PR #107357
  • PR #107349 Related #107313.
  • PR #107288 Related #107246. Thanks @obviyus.
  • PR #107358 Thanks @fuller-stack-dev.
  • PR #107370
  • PR #107361 Related #107335.
  • PR #107188 Thanks @joshavant.
  • PR #107379
  • PR #107380
  • PR #107383
  • PR #106997
  • PR #107385
  • PR #107387
  • PR #107336 Related #107318.
  • PR #107390
  • PR #107339 Related #107322. Thanks @obviyus.
  • PR #107392
  • PR #107382
  • PR #107396
  • PR #107356
  • PR #107371
  • PR #107398
  • PR #107395
  • PR #107400
  • PR #107377
  • PR #107381
  • PR #107373
  • PR #107365 Thanks @ly-wang19.
  • PR #107407
  • PR #107386 Thanks @hugenshen.
  • PR #107405
  • PR #107410 Related #107406.
  • PR #107409 Related #22676. Thanks @ZHOUKAILIAN and @UberKitten.
  • PR #107360 Thanks @Alix-007.
  • PR #107412
  • PR #107414
  • PR #107348
  • PR #107417
  • PR #107420
  • PR #107421
  • PR #106359 Related #106229. Thanks @obviyus.
  • PR #107427
  • PR #107428
  • PR #107431
  • PR #107432
  • PR #107435
  • PR #107438
  • PR #107436
  • PR #107440
  • PR #107443
  • PR #107445
  • PR #107411
  • PR #107444
  • PR #107372
  • PR #99051 Related #98805.
  • PR #107403 Related #104984. Thanks @obviyus and @yetval.
  • PR #107455
  • PR #107456
  • PR #107457
  • PR #107424
  • PR #107460
  • PR #107458
  • PR #107459
  • PR #105886 Thanks @Alix-007.
  • PR #107462 Thanks @vincentkoc.
  • PR #107470
  • PR #107472
  • PR #107475
  • PR #107476
  • PR #107483
  • PR #107474 Thanks @lonexreb.
  • PR #107485
  • PR #107402
  • PR #107540
  • PR #107542
  • PR #107477
  • PR #107545
  • PR #107548
  • PR #104216 Thanks @zhangguiping-xydt.
  • PR #107553
  • PR #107554
  • PR #107560
  • PR #107567
  • PR #107569
  • PR #107563
  • PR #107570
  • PR #107369 Thanks @pash-openai.
  • PR #107572
  • PR #107576
  • PR #107578
  • PR #106066 Thanks @zhangguiping-xydt.
  • PR #107451
  • PR #107043
  • PR #102068 Related #101789. Thanks @tzy-17 and @jwest75674.
  • PR #107583
  • PR #107584
  • PR #107585
  • PR #107561
  • PR #107422 Related #103309. Thanks @arduano.
  • PR #102114 Thanks @wm0018.
  • PR #107594
  • PR #89821 Thanks @BunsDev.
  • PR #107602
  • PR #107481
  • PR #107573
  • PR #107599
  • PR #107612
  • PR #107419
  • PR #106035 Thanks @Alix-007.
  • PR #107618
  • PR #107621
  • PR #78022 Thanks @fransqaas.
  • PR #107613
  • PR #107577 Related #107216.
  • PR #107229 Thanks @fuller-stack-dev.
  • PR #107606
  • PR #107637
  • PR #107640
  • PR #107144 Thanks @SunnyShu0925.
  • PR #107636
  • PR #107234 Thanks @wahaha1223 and @cursoragent.
  • PR #104708 Related #102391. Thanks @VACInc and @yetval.
  • PR #107652
  • PR #107315
  • PR #107654
  • PR #107263 Thanks @wahaha1223.
  • PR #107646
  • PR #107364 Related #107289.
  • PR #107243 Related #107133. Thanks @felirami and @Tony-ooo.
  • PR #107191 Thanks @qingminglong.
  • PR #107653
  • PR #107625 Related #107624.
  • PR #107616
  • PR #107143 Thanks @SunnyShu0925.
  • PR #107665
  • PR #107675
  • PR #107678
  • PR #107598
  • PR #107674 Related #107669.
  • PR #104120 Thanks @Alix-007.
  • PR #107689
  • PR #102197 Thanks @jesse-merhi.
  • PR #107690 Thanks @shakkernerd.
  • PR #107695
  • PR #107696
  • PR #107677
  • PR #107692
  • PR #107631
  • PR #107680
  • PR #107705
  • PR #107320
  • PR #107706
  • PR #107673
  • PR #107709
  • PR #107711
  • PR #107710 Thanks @shakkernerd.
  • PR #107714
  • PR #107715
  • PR #107716
  • PR #107724
  • PR #107726
  • PR #107697 Related #107685.
  • PR #106258 Related #106249. Thanks @moguangyu5-design.
  • PR #107730
  • PR #107723
  • PR #107728
  • PR #94494 Related #94482. Thanks @xialonglee and @aaronedell.
  • PR #107733
  • PR #107670 Related #104294.
  • PR #99394 Related #97074. Thanks @xialonglee and @Lvan185.
  • PR #107737
  • PR #107747
  • PR #106959
  • PR #107764
  • PR #107740
  • PR #107772

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.2-beta.1
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.2-beta.1.tgz
  • integrity: sha512-NjbyDqyUq96MR31fqWcJS7iILAx5iJ6CB4SrFR8E9eLTKnYAgSCuBe4pNGX23pzAHp7Vz9FldN1kuUDpkWZfiQ==
  • release SHA: a911e58a57268b1daf30a1d29d70aedccf736832
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.2-beta.1/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/29445434689
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/29384146003
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/29384023529
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/29446052579
  • plugin ClawHub publish: no normal OIDC candidates
  • plugin ClawHub bootstrap: not needed
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/29396156346
v2026.7.1 [Jul 13, 2026] details → github →

# openclaw 2026.7.1

2026.7.1

OpenClaw v2026.7.1 brings major Control UI and onboarding overhauls, major updates to the official iOS, Android, and macOS apps, expanded model and provider support including GPT-5.6 compatibility, Tencent Hy3, and Meta Muse Spark 1.1, and stronger Codex and connected coding-agent workflows. Telegram, Slack, Discord, and Apple Messages each receive substantial updates, while Gateway crash loops, scheduled work, remote browser control, workspace terminals, sessions, and goals also improve. There are also many general fixes and refinements throughout OpenClaw.

Read the full release notes

This release brings together 3,063 contributions from 532 contributors.

Highlights

  • Control UI overhaul: conversations are easier to organize and work with side by side, with live Tasks, clearer chat controls, better usage and cost views, files, downloads, pairing, approvals, and Gateway health kept close to the conversation.
  • Easier setup from install to first chat: guided setup provides clearer steps toward a working first chat, checks connections before saving them, and preserves earlier choices when setup is interrupted.
  • Official app updates: iOS and iPadOS, Android, and macOS received substantial work across setup, navigation, chat, voice, permissions, localization, files, scheduled work, offline reading, queued sends, connection recovery, and native session controls.
  • Models and providers: GPT-5.6 compatibility improves across supported OpenAI and Codex routes, Tencent Hy3 gains a complete setup path, Meta Model API adds Muse Spark 1.1, and broader Claude, Ollama, ClawRouter, LongCat, and provider work expands choice and reliability.
  • Codex and connected coding agents: openclaw attach gives Claude Code temporary access to a selected session, Codex delegation and native subagents return tracked results more reliably, Copilot gains broader provider choices, and long-running sessions and goals are easier to resume.
  • Telegram: live progress, photos and documents, topics, commands, retries, account routing, setup, and delivery all received substantial work.
  • Slack: threads, cards, progress, identity, reactions, and duplicate prevention improve, while longer conversations avoid more unnecessary waits.
  • Discord: replies, attachments, voice sessions, progress, reconnects, and multi-account behavior improve, with better unread cues and recovery from repeated session-resume failures.
  • Apple Messages: replies, typing, media, routing, setup guidance, and chat continuity improve across supported bridge setups.
  • Gateway crashes stop restarting forever: repeatedly failing Gateways now leave a stable repair path instead of restarting indefinitely.
  • Scheduled work, remote browser control, and workspace terminals: scheduled work can wake only when something changes, selected signed-in browser tabs can pair remotely and save completed downloads safely, and guarded terminals are available across web, iOS, and Android.

Changes

  • Channels and messaging: expanded native capabilities, clearer progress and delivery behavior, stronger media handling, and broader controls across Telegram, Slack, Discord, Signal, WhatsApp, Apple Messages, Teams, Matrix, Feishu, and other channels.
  • Models and providers: more models can be discovered, selected, authenticated, and used across cloud, managed, and local routes, with clearer reasoning controls and provider-specific setup.
  • Memory, sessions, and state: session groups, titles, unread state, checkpoints, context handling, goals, and recovery paths are more consistent across web, mobile, CLI, and connected agents.
  • Tools and automation: browser control, downloads, cron jobs, terminals, files, search, fetch, MCP, and background task workflows gain new capabilities and clearer controls.
  • Account, device, and data protection: passwords and tokens stay out of more logs, sensitive controls remain limited to approved users, device pairing is clearer, and unsafe downloads, files, and network requests are blocked earlier.
  • Plugins and packaging: bundled and external plugins gain improved installation, discovery, updates, compatibility, diagnostics, and distribution behavior.
  • CLI, setup, and administration: onboarding, Doctor, updates, configuration, status, diagnostics, node management, backup, and deployment workflows are easier to inspect and recover.

Fixes

  • Chat delivery and replies: messages, progress updates, quoted replies, media, and final results stay tied to the intended conversation more reliably across reconnects, restarts, retries, and channel-specific limits.
  • Control UI and native apps: fixes cover session state, stale completions, responsive layouts, scrolling, focus, accessibility, localization, pairing, voice, offline chat, and mobile recovery.
  • Gateway and provider reliability: startup, restart, migration, authentication, fallback, streaming, model discovery, and oversized-response failures now stop or recover more cleanly.
  • Sessions and memory: transcript, compaction, checkpoint, cache, rotation, search, and persistence fixes reduce lost state, stale views, and cross-session confusion.
  • Browser, tools, and automation: browser actions, downloads, fetches, searches, scheduled jobs, terminals, subprocesses, and MCP calls now handle cancellation, malformed input, timeouts, and broken streams more safely.
  • Setup, updates, and packaging: installers, containers, plugin updates, runtime checks, temporary files, and platform-specific launch paths receive recovery and compatibility fixes.
  • Security and credentials: additional hardening protects tokens, secrets, approval scopes, local paths, network destinations, attachments, archives, and untrusted provider or plugin responses.

Pull requests

The expandable groups below list all 2,018 public and credited pull requests represented in these release notes. Direct commits and detailed contributor credits remain available in the full release notes.

<details>
<summary>Control UI and official apps (327 PRs)</summary>

#54758,#73338,#74398,#80422,#81467,#83000,#87643,#88899,#89762,#89772,#90122,#91002,#91457,#92063,#92602,#92654,#92877,#93082,#93184,#93699,#93869,#93999,#94566,#94672,#94991, #95107,#95341,#95708,#95844,#96138,#96141,#96273,#96281,#96298,#96450,#96562,#96582,#96925,#96938,#96958,#96963,#96980,#96990,#97111,#97112,#97167,#97289,#97332,#97552,#97575, #97637,#97665,#97933,#98040,#98043,#98049,#98055,#98059,#98066,#98067,#98094,#98117,#98144,#98210,#98257,#98258,#98269,#98277,#98302,#98304,#98353,#98366,#98376,#98385,#98394, #98414,#98423,#98429,#98439,#98443,#98452,#98483,#98503,#98563,#98602,#98646,#98683,#98698,#98736,#98752,#98764,#98796,#98811,#98856,#98868,#98898,#98914,#98930,#98936,#98953, #98985,#99052,#99107,#99110,#99111,#99123,#99137,#99147,#99153,#99155,#99158,#99204,#99213,#99220,#99231,#99243,#99245,#99246,#99247,#99259,#99289,#99290,#99299,#99350,#99414, #99426,#99455,#99468,#99475,#99477,#99557,#99568,#99570,#99572,#99591,#99592,#99661,#99763,#99767,#99830,#99838,#99865,#99873,#99879,#99888,#99986,#100040,#100049,#100059,#100060, #100088,#100089,#100090,#100106,#100117,#100123,#100128,#100136,#100144,#100147,#100157,#100163,#100179,#100188,#100190,#100199,#100207,#100208,#100214,#100217,#100219,#100227,#100240,#100241,#100251, #100252,#100256,#100262,#100264,#100266,#100275,#100276,#100277,#100283,#100288,#100290,#100295,#100296,#100317,#100318,#100328,#100331,#100340,#100347,#100356,#100363,#100372,#100379,#100382,#100384, #100386,#100391,#100416,#100417,#100432,#100434,#100445,#100453,#100454,#100461,#100463,#100479,#100488,#100489,#100491,#100502,#100512,#100514,#100515,#100526,#100527,#100528,#100531,#100551,#100552, #100601,#100606,#100646,#100648,#100665,#100679,#100719,#100725,#100727,#100728,#100732,#100736,#100742,#100743,#100753,#100754,#100765,#100767,#100768,#100770,#100771,#100772,#100774,#100776,#100786, #100789,#100798,#100803,#100805,#100807,#100810,#100814,#100826,#100829,#100842,#100867,#100875,#100879,#100884,#100888,#100898,#100927,#100928,#100942,#100943,#100946,#100947,#100948,#100959,#100966, #100967,#100981,#100985,#100994,#100995,#101002,#101017,#101038,#101053,#101072,#101091,#101100,#101102,#101103,#101105,#101117,#101123,#101132,#101161,#101169,#101183,#101191,#101193,#101198,#101234, #101235,#101293,#101319,#101321,#101325,#101352,#101360,#101377,#101387,#101388,#101396,#101435,#101481,#101497,#101522,#101532,#101550,#101560,#101589,#101591,#101658,#101799,#101812,#101843,#101844, #101849,#102210

</details>

<details>
<summary>Channels and messaging (297 PRs)</summary>

#53467,#77763,#78511,#79811,#79938,#80293,#80642,#80788,#80928,#81471,#82253,#82895,#84161,#84288,#84335,#85507,#86285,#87433,#87530,#89597,#89855,#89962,#90038,#90152,#90749, #90966,#90969,#91803,#91984,#92107,#92167,#92872,#93379,#93639,#93686,#94013,#94015,#94016,#94107,#94250,#94385,#94736,#94760,#94879,#95313,#95412,#95463,#95596,#95621,#95718, #95738,#95774,#95822,#95832,#95900,#95978,#96031,#96033,#96106,#96108,#96183,#96247,#96290,#96312,#96342,#96382,#96392,#96394,#96401,#96403,#96446,#96456,#96468,#96504,#96550, #96565,#96569,#96570,#96572,#96573,#96574,#96575,#96576,#96577,#96578,#96580,#96581,#96587,#96599,#96612,#96642,#96745,#96772,#96810,#96847,#96880,#96909,#96932,#96951,#96962, #96968,#97045,#97087,#97100,#97118,#97121,#97130,#97154,#97155,#97168,#97174,#97197,#97214,#97271,#97274,#97277,#97278,#97286,#97304,#97312,#97353,#97360,#97367,#97372,#97428, #97429,#97462,#97470,#97471,#97472,#97480,#97536,#97539,#97546,#97595,#97598,#97599,#97600,#97662,#97683,#97693,#97697,#97706,#97727,#97746,#97782,#97784,#97811,#97822,#97824, #97825,#97851,#97875,#97889,#97923,#97973,#97989,#97999,#98073,#98102,#98126,#98137,#98224,#98235,#98240,#98421,#98496,#98587,#98608,#98639,#98682,#98691,#98693,#98705,#98720, #98735,#98768,#98769,#98775,#98776,#98781,#98786,#98789,#98791,#98806,#98877,#98907,#98922,#98994,#99050,#99070,#99126,#99138,#99143,#99144,#99145,#99256,#99274,#99301,#99306, #99366,#99385,#99389,#99506,#99525,#99577,#99593,#99600,#99635,#99647,#99711,#99745,#99845,#99861,#99866,#99877,#99893,#99928,#99931,#99950,#99954,#99965,#99992,#99998,#100046, #100051,#100084,#100119,#100127,#100151,#100159,#100160,#100205,#100255,#100261,#100263,#100342,#100366,#100374,#100375,#100376,#100446,#100462,#100467,#100516,#100540,#100570,#100573,#100582,#100607, #100715,#100735,#100762,#100784,#100799,#100828,#100863,#100868,#100883,#100891,#100896,#100996,#101024,#101036,#101082,#101084,#101088,#101106,#101115,#101118,#101124,#101230,#101258,#101264,#101292, #101304,#101364,#101401,#101413,#101421,#101516,#101527,#101548,#101551,#101562,#101572,#101596,#101597,#101650,#101888,#101926,#102948,#103596,#103916,#103965,#104032,#104230

</details>

<details>
<summary>Models and providers (200 PRs)</summary>

#72092,#82638,#85296,#86526,#88400,#89175,#90450,#90908,#91240,#92495,#92520,#93335,#93384,#93767,#93820,#94440,#94990,#95244,#95416,#95542,#95543,#95770,#95779,#96027,#96035, #96038,#96042,#96070,#96142,#96146,#96257,#96288,#96318,#96322,#96345,#96430,#96432,#96474,#96495,#96496,#96499,#96502,#96503,#96505,#96604,#96605,#96606,#96607,#96608,#96609, #96644,#96762,#96777,#96779,#96782,#96868,#96873,#96874,#96875,#96886,#96889,#96903,#96904,#96905,#96907,#96917,#96920,#96922,#96927,#96970,#96984,#96989,#97012,#97128,#97170, #97208,#97228,#97235,#97249,#97328,#97343,#97349,#97484,#97486,#97490,#97491,#97499,#97520,#97533,#97535,#97540,#97571,#97579,#97581,#97583,#97587,#97611,#97614,#97615,#97620, #97628,#97648,#97659,#97669,#97702,#97808,#97812,#98021,#98098,#98163,#98165,#98187,#98198,#98254,#98312,#98333,#98411,#98525,#98554,#98623,#98660,#98665,#98688,#98726,#98840, #98850,#98932,#98942,#98983,#99023,#99059,#99076,#99234,#99340,#99401,#99450,#99479,#99605,#99658,#99759,#99791,#99906,#99955,#99961,#100107,#100120,#100125,#100209,#100233,#100236, #100260,#100482,#100492,#100501,#100520,#100572,#100579,#100605,#100617,#100671,#100672,#100686,#100688,#100694,#100713,#100745,#100750,#100755,#100779,#100831,#100833,#101079,#101092,#101177,#101220, #101221,#101238,#101256,#101281,#101337,#101357,#101359,#101373,#101376,#101390,#101415,#101484,#101505,#101728,#102344,#102610,#102873,#103070,#103680,#104433,#104714,#104732,#105034,#105518,#106098

</details>

<details>
<summary>Gateway and agent runtime (139 PRs)</summary>

#54593,#62682,#66685,#77973,#79861,#83187,#85829,#88401,#88881,#89367,#92237,#92274,#92283,#93402,#93862,#94230,#94964,#95225,#95349,#95430,#95942,#96270,#96296,#96351,#96427, #96523,#96788,#96851,#96856,#97041,#97090,#97131,#97140,#97265,#97268,#97299,#97352,#97423,#97550,#97557,#97559,#97647,#97742,#97839,#97861,#97928,#97929,#97931,#98006,#98042, #98063,#98267,#98354,#98821,#98855,#98933,#98934,#99136,#99159,#99180,#99217,#99291,#99304,#99410,#99488,#99526,#99555,#99561,#99564,#99800,#99802,#99803,#99806,#99817,#99821, #99852,#99891,#99902,#99907,#99915,#99949,#100013,#100035,#100047,#100054,#100148,#100164,#100204,#100244,#100336,#100389,#100401,#100418,#100456,#100474,#100478,#100481,#100484,#100490,#100558, #100560,#100567,#100655,#100667,#100687,#100691,#100738,#100744,#100832,#100849,#100855,#100861,#100910,#100964,#101007,#101009,#101014,#101031,#101032,#101042,#101044,#101181,#101210,#101218,#101355, #101394,#101534,#101535,#101571,#101575,#101607,#101654,#101685,#101703,#101711,#102087,#103157,#104441,#104656

</details>

<details>
<summary>Memory, sessions, and state (105 PRs)</summary>

#71537,#83718,#84792,#86936,#88887,#89045,#89817,#89884,#90030,#90503,#90552,#90867,#91057,#93389,#93814,#94326,#94401,#94636,#94732,#95342,#95447,#95452,#95631,#95888,#96022, #96100,#96157,#96304,#96442,#96517,#96655,#96842,#97095,#97164,#97177,#97356,#97362,#97446,#97465,#97495,#97504,#97544,#97591,#97723,#97785,#97857,#97954,#97968,#98095,#98336, #98356,#98360,#98381,#98493,#98510,#98669,#98787,#98835,#98841,#98891,#98908,#98955,#99067,#99091,#99276,#99335,#99391,#99549,#99595,#99640,#99653,#99678,#99722,#99756,#99822, #99839,#99851,#99855,#99864,#99985,#100017,#100077,#100135,#100468,#100524,#100618,#100621,#100684,#100827,#100900,#100902,#100904,#101062,#101182,#101236,#101298,#101303,#101311,#101322,#101450, #101517,#101574,#101576,#101577,#101902

</details>

<details>
<summary>Account, device, and data protection (104 PRs)</summary>

#59694,#81364,#84450,#85916,#91584,#95348,#96002,#96065,#96216,#96224,#96440,#96444,#96445,#96469,#96883,#96965,#97123,#97260,#97327,#97541,#97622,#97732,#97838,#97840,#97841, #97869,#97870,#97872,#97874,#97949,#97952,#97953,#97955,#97958,#97961,#98003,#98032,#98143,#98145,#98226,#98256,#98260,#98262,#98293,#98339,#98346,#98352,#98501,#98617,#98704, #98812,#98951,#98966,#98988,#99121,#99125,#99134,#99425,#99428,#99460,#99484,#99539,#99566,#99686,#99690,#99700,#99720,#99731,#99776,#99846,#99859,#99874,#99884,#100081,#100177, #100191,#100330,#100505,#100521,#100835,#100889,#100976,#100993,#101008,#101170,#101171,#101246,#101271,#101353,#101391,#101507,#101513,#101573,#101580,#101669,#101779,#102009,#102030,#102031,#102032, #102035,#103861,#104491,#106065

</details>

<details>
<summary>Tools, browser, and automation (134 PRs)</summary>

#80147,#81731,#85249,#86088,#88684,#89086,#89104,#89416,#89619,#89997,#90566,#90902,#92037,#93307,#93827,#94022,#94441,#95615,#95906,#95923,#95943,#96018,#96096,#96159,#96178, #96268,#96293,#96303,#96348,#96361,#96390,#96405,#96431,#96435,#96437,#96449,#96476,#96519,#96583,#96592,#96926,#97038,#97044,#97212,#97227,#97298,#97354,#97364,#97511,#97549, #97677,#97698,#97901,#97972,#98130,#98169,#98284,#98340,#98347,#98455,#98559,#98644,#98652,#98659,#98699,#98721,#98738,#98755,#98861,#98940,#98947,#99129,#99370,#99379,#99399, #99446,#99456,#99527,#99960,#100203,#100337,#100399,#100440,#100442,#100480,#100483,#100487,#100498,#100519,#100522,#100523,#100535,#100576,#100590,#100619,#100654,#100692,#100722,#100731,#100741, #100788,#100792,#100801,#100834,#100836,#100846,#100857,#100986,#101027,#101127,#101158,#101176,#101192,#101195,#101222,#101245,#101295,#101312,#101350,#101369,#101370,#101402,#101434,#101443,#101454, #101465,#101588,#101590,#101600,#101761,#101795,#101807,#102033,#103946

</details>

<details>
<summary>CLI, setup, and administration (152 PRs)</summary>

#76235,#76245,#76386,#76922,#77904,#80823,#80947,#81641,#83630,#84366,#84424,#85238,#87831,#87917,#87937,#88159,#89226,#89967,#93636,#93930,#94096,#94149,#94431,#94452,#95363, #95902,#95976,#95979,#96147,#96152,#96169,#96171,#96352,#96393,#96396,#96439,#96454,#96471,#96516,#96544,#96557,#96615,#96702,#96746,#97075,#97125,#97137,#97358,#97366,#97482, #97496,#97500,#97514,#97551,#97576,#97679,#97807,#98093,#98115,#98119,#98142,#98146,#98183,#98184,#98188,#98217,#98218,#98291,#98371,#98391,#98396,#98400,#98406,#98482,#98505, #98508,#98620,#98666,#98689,#98695,#98725,#98729,#98876,#98879,#98990,#99039,#99045,#99089,#99124,#99152,#99211,#99238,#99249,#99250,#99267,#99398,#99407,#99419,#99420,#99540, #99602,#99606,#99695,#99714,#99726,#99728,#99811,#99832,#99842,#99935,#100006,#100012,#100029,#100093,#100096,#100143,#100258,#100338,#100341,#100438,#100569,#100586,#100591,#100616,#100632, #100656,#100670,#100697,#100757,#100780,#100850,#101029,#101109,#101160,#101213,#101219,#101228,#101244,#101366,#101371,#101378,#101392,#101449,#101464,#101489,#101503,#101561,#101881,#101887,#101901, #103132,#103725

</details>

<details>
<summary>Plugins and packaging (74 PRs)</summary>

#82562,#86796,#88384,#89671,#89899,#90517,#91262,#91597,#94352,#95229,#95846,#95868,#95877,#95964,#95969,#95973,#95981,#96143,#96155,#96158,#96194,#96357,#96397,#96492,#96506, #96710,#96730,#96801,#96818,#96831,#96872,#96908,#97122,#97281,#97282,#97342,#97479,#97488,#97617,#97630,#97733,#97769,#97878,#98010,#98125,#98497,#98613,#98758,#98819,#99118, #99196,#99598,#99740,#99768,#99797,#99896,#99901,#99930,#99932,#100027,#100344,#100448,#100499,#100554,#100737,#100758,#100973,#101085,#101206,#101212,#101214,#101407,#102036,#102158

</details>

<details>
<summary>Documentation (23 PRs)</summary>

#80981,#90063,#95397,#96375,#96380,#96848,#97120,#97336,#97494,#97584,#97635,#97640,#97753,#98318,#98453,#98843,#99099,#99962,#99973,#100105,#100142,#100182,#100398

</details>

<details>
<summary>Maintenance and release work (463 PRs)</summary>

#59695,#73649,#83826,#87081,#87695,#89535,#89558,#89585,#90365,#90547,#91134,#91276,#91483,#91519,#91728,#91907,#92667,#93209,#94291,#94526,#94708,#95211,#95230,#95531,#95534, #95622,#95842,#95920,#95954,#96058,#96094,#96222,#96225,#96302,#96320,#96327,#96338,#96340,#96359,#96360,#96366,#96434,#96448,#96460,#96507,#96524,#96527,#96530,#96539,#96543, #96567,#96594,#96595,#96707,#96711,#96714,#96735,#96736,#96765,#96811,#96930,#96945,#96948,#96950,#96952,#96955,#96964,#97079,#97101,#97110,#97113,#97116,#97119,#97124,#97133, #97150,#97151,#97181,#97250,#97297,#97306,#97348,#97351,#97369,#97370,#97374,#97478,#97547,#97548,#97604,#97609,#97632,#97657,#97661,#97689,#97701,#97708,#97712,#97714,#97736, #97802,#97803,#97805,#97891,#97896,#97898,#97900,#97907,#97912,#97915,#97937,#97940,#97941,#97943,#97946,#97947,#97948,#97950,#97951,#97959,#97962,#98009,#98087,#98134,#98138, #98205,#98219,#98233,#98249,#98319,#98325,#98369,#98370,#98395,#98494,#98533,#98536,#98551,#98598,#98605,#98610,#98611,#98619,#98701,#98749,#98751,#98779,#98792,#98808,#98818, #99098,#99151,#99165,#99169,#99212,#99233,#99261,#99262,#99264,#99265,#99278,#99294,#99296,#99298,#99302,#99303,#99307,#99310,#99352,#99355,#99359,#99361,#99368,#99374,#99520, #99607,#99628,#99629,#99632,#99642,#99649,#99656,#99671,#99676,#99679,#99682,#99687,#99688,#99691,#99702,#99705,#99707,#99710,#99715,#99717,#99718,#99719,#99721,#99735,#99736, #99737,#99743,#99744,#99746,#99750,#99753,#99755,#99766,#99771,#99777,#99778,#99784,#99785,#99786,#99788,#99790,#99793,#99816,#99820,#99850,#99900,#99909,#99917,#99940,#99944, #99945,#99969,#99988,#100002,#100008,#100015,#100019,#100024,#100039,#100053,#100061,#100069,#100083,#100087,#100108,#100114,#100122,#100183,#100186,#100200,#100201,#100206,#100210,#100220,#100221, #100222,#100223,#100239,#100242,#100243,#100249,#100253,#100259,#100272,#100278,#100304,#100332,#100346,#100355,#100370,#100420,#100437,#100441,#100459,#100464,#100466,#100469,#100472,#100473,#100495, #100497,#100507,#100517,#100532,#100533,#100536,#100543,#100545,#100555,#100561,#100562,#100575,#100593,#100599,#100603,#100609,#100611,#100612,#100650,#100663,#100702,#100703,#100723,#100740,#100781, #100793,#100804,#100823,#100856,#100882,#100887,#100895,#100897,#100903,#100909,#100931,#100950,#100952,#100961,#100975,#100989,#100990,#100992,#101012,#101013,#101041,#101045,#101051,#101055,#101063, #101076,#101080,#101081,#101112,#101128,#101131,#101135,#101165,#101173,#101174,#101178,#101179,#101180,#101184,#101185,#101186,#101196,#101223,#101232,#101233,#101242,#101243,#101262,#101273,#101275, #101315,#101331,#101339,#101356,#101362,#101372,#101379,#101393,#101406,#101425,#101440,#101452,#101466,#101470,#101508,#101519,#101523,#101549,#101566,#101568,#101579,#101583,#101594,#101604,#101632, #101647,#101666,#101680,#101682,#101688,#101689,#101699,#101701,#101726,#101731,#101757,#101758,#101771,#101831,#101834,#101858,#101860,#101869,#101875,#101886,#101889,#101892,#101894,#101896,#101898, #101903,#101904,#101907,#101915,#101917,#101922,#101925,#101931,#101936,#101941,#101945,#101949,#101954,#101959,#101963,#101969,#101974,#101980,#101987,#101990,#102005,#102010,#102021,#102029,#102037, #102040,#102042,#102044,#102048,#102059,#102065,#102159,#102256,#102600,#102732,#103163,#103244,#103467,#103556,#103564,#103635,#103650,#103654,#103681,#103685,#103718,#103906,#103923,#104162,#104186, #104684,#104702,#104722,#104750,#104794,#104939,#104975,#105133,#105401,#105444,#105488,#105493,#105500

</details>

Contributors

Thanks to all 532 contributors who contributed code, fixes, documentation, testing, and release work to OpenClaw v2026.7.1.

<details>
<summary>View all contributors</summary>

@100yenadmin, @1yihui, @211-lee, @2loch-ness6, @3ninyt3nin-creator, @645648406-max, @849261680, @aaajiao,

@aaronfaby, @abdullahtas0, @acache, @acosx, @acskamloops, @adam-researchh, @adapepper, @addu2612,

@adinballew, @aditya-vithaldas, @agocs, @ailucasdz, @ajwan8998, @aleps001, @alex-heyuqing, @alexelgier,

@alexuser, @alexzhu0, @aliahnaf2013-max, @aliseturtle-lu, @alix-007, @alkor2000, @allenhurff, @altaywtf,

@alvelda, @amirf194, @amittell (account unavailable), @amknight, @amtellezfernandez, @anagnorisis2peripeteia, @andersonjeccel, @andrewccctechlink,

@aniruddhaadak80, @anyech, @aocogoal-gethub, @areslp, @arismontclair, @arkyu2077, @artdaal, @arthurnie,

@ashishpatel26, @asock, @bartok9, @batyaro777, @bcperry, @bdhwan, @bdjben, @bek91,

@bill-starfoundry, @bkudiess, @bladin, @brian-bell, @brokemac79, @bryantegomoh, @brycemurray, @bsg2000,

@bsniznd, @buddyh, @buyitsydney, @bzelones, @caopulan, @carelvanheerden, @carol-iung, @carterdawson,

@carterstebbins23-spec, @ccaprani, @ccbridle, @ch3ch2cho2021, @che10x, @chengzhichao-xydt, @chenxiaoyu209, @chenyangjun-xy,

@chrisbaker2000, @chrisbot2026, @christopheraaronhogg, @chthtlo, @cinapbot, @clawsean, @clearhorizoninvestments, @clintoncodewell,

@cls3389, @cnbarrier404, @connermo, @contentfree, @cow11023, @crh-code, @cuihaijun, @cursoragent,

@cxbasdev, @d1rshan, @danhayman, @darren2030, @datus1982, @davearcher18, @davelutztx, @davemorin,

@davenicoll, @davinci282828, @dboone323, @deepujain, @dennis-lynch, @dexhunter, @diwakarrankawat, @dizesales,

@dorukardahan, @doubleji817-lang, @douhualili, @dr00-eth, @drhack1, @drickon, @dserious, @durambar,

@dvy, @dwc1997, @edenfunf, @eldar702, @eldron81-r2d2, @eleqtrizit, @emergentash, @emg110,

@erhhung, @ethansk, @evan-ym, @fede-kamel, @fengjikui, @fffrank, @fightingsleep, @flashosophy,

@flyveryhigh, @fmls, @frank-beans, @fsdwen, @fuller-stack-dev, @galiniliev, @gallup007, @geekhuashan,

@get-viti, @gfaerny, @giodl73-repo, @glenn-agent, @gmays, @gmschasiepen, @goldmar, @gorkem2020,

@goslingmanagment, @goutamadwant, @grd-chang, @grifjef, @grox2012, @guanbear, @guarismo, @gwtaylor,

@hackerismydream, @hailory, @haishmg, @hamidshojanazeri, @hanamizuki, @hannesrudolph, @harjothkhara, @haruaiclone-droid,

@hcnode, @he-yufeng, @headbouyjb, @hectorrp13, @hemantsudarshan, @herove, @hiragram, @honorlin,

@htkillermax-gif, @hugenshen, @hunglp6d, @huveewomg, @hxy91819, @hxz398, @hyspacex, @ianchen08,

@iman-sharif, @imchloe92, @indulgeback, @injinj, @ioridev, @isaiahstapleton, @ishangodawatta, @islandpreneur007,

@itsuzef, @iwhatsskill, @jaaneek, @jabato01, @jack-dev-ops, @jacobtomlinson, @jalehman, @james-16,

@jason-vaughan, @jbetala7, @jcooley8, @jeehut, @jeffvsutherland, @jensenwang560-blip, @jerry-xin, @jerrytao-ai,

@jesse-merhi, @jimmypuckett, @jin-li, @jincheng-xydt, @jinduwang1001-max, @jiveshkalra, @jmcte, @jnikolaidis,

@jodok, @joelnishanth, @joeyfrasier, @jontsai, @josephur, @joshavant, @joshdaynard, @jraxworthy,

@jrex-jooni, @jtczville, @judsonnudson, @juliangsm, @jvlegod, @k-kerrigan, @k-schmidt, @karabaralex,

@kasangyong, @keaneyan, @keltech-services, @kenners22, @kesslerio, @kevinlp, @kevinslin, @kiagentkronos-cell,

@kiranmagic7, @krissding, @kruegerb, @kyzcreig, @lamkan0210, @laphilosophie, @laurencebrown, @lavyatandel,

@leedongyu1128, @leonidaslux, @lexes7, @lg320531124, @liaoandi, @lilan0125, @lin-hongkuan, @lingfeizi,

@litang9, @liuhaiyang14, @liuhao1024, @liuwqgit, @llagy007 (account unavailable), @llljjjwww333, @lobster, @lokimorty,

@lptrichor, @lsr911, @luke-renjoy, @luoyanglang, @lvan185, @lwy-2, @ly-wang19, @ly85206559,

@lzw112, @lzy3538, @lzyyzznl, @m13v, @machine3at, @malashenia, @mantiscartography, @marsman-lab,

@martingarramon, @martins-oss, @marvinthebored, @marvkr, @masatohoshino, @matthewdelprado, @maweibin, @maziyang2,

@mcaxtr, @medns, @merlin-zhou, @mettlyz11, @mibslee, @mikasa0818, @miorbnli, @ml12580,

@mmyzwl, @moeedahmed, @moeghashim, @moellenbeck, @moerai, @moguangyu5-design, @momothemage, @moncac,

@monkeyleet, @moomx, @mooresoftware, @morluto, @mpz4life, @mukundakatta, @mushuiyu886, @nailujac,

@nankingjing, @narahariraghava, @narcissus0702, @naseemm123, @neatguycoding, @neltomw, @neomail2, @nianjiuzst,

@nicknmorty, @niks999, @not-stbenjam, @nxmxbbd, @nz365guy, @obuchowski, @obviyus, @ogarciarevett,

@ohyeah521, @omarshahine, @ooiuuii, @openperf, @osolmaz, @outdog-hwh, @owlock, @p51moustache,

@palomyates516-alt, @pandah97, @parveshsaini, @pash-openai, @patelmm79, @patrick-erichsen, @paul-phan, @paulcam206,

@pbm9z95m6z-hue, @pdurlej, @peetiegonzalez, @peole, @peterdsp, @peterskwang, @pfrederiksen, @pgondhi987,

@pick-cat, @pikaqqqqqq, @pingfanfan, @pinghe-learn, @pkoserowski, @pluviobyte, @pmika, @pollybot13,

@potterdigital, @prasithg, @princebansal, @programmingwtf, @psedd, @qijian-zhang, @qingminglong, @qiuyuang,

@quangtran88, @quratulain-bilal, @rabsef-bicrym, @ragesaq, @ralf003, @rayncc, @rballiance, @renaudcerrato,

@revision-co-ltd, @rhclaw, @riazrahaman, @richardataxai-lab, @richchen01, @richwilson-bloom, @rocke2020, @rodja,

@rohang2005, @rohitjavvadi, @rollingshmily, @romneyda, @rosenlo, @rquinones84, @ruanrrn, @ruben2000de,

@sahibzada-allahyar, @sahilsatralkar, @saju01, @sallyom, @samiralibabic, @samrusani, @sandl99, @sanjays2402,

@sarinv, @sasan1200, @scientificprogrammer, @scoootscooob, @scotthuang, @scribe-dandelion-cult, @sebtardif, @sedrak-hovhannisyan,

@sercada, @sgh6688, @shagrat2, @shakkernerd, @shbernal, @shengting, @sheyanmin, @shifengwang333-ai,

@shushushv, @silver-state, @simon-xydt, @simonusa, @sjf-oa, @slammajamma28, @slideshow-dingo, @sliverp,

@smoe, @snotty, @snoutfirst, @snowzlm, @solavrc, @solodmd, @solvely-colin, @spencer2211,

@steipete-oai, @studentzhou-svg, @sunlit-deng, @sunnyshu0925, @super-cabbage, @svuppala2006, @sweetcornna, @taerlandsen,

@takamasa-aiso, @tancolo, @tank-x3, @tayoun, @thats2easyyy, @theo674, @tiffanychum, @tigicion,

@timofa, @tirion-p, @tony-ooo, @tosko4, @totobusnello, @truffle-dev, @trupe-rs, @tseller,

@tuaran, @turbotheturtle, @twinslee, @tzy-17, @uditdewan, @udjin79, @ugiezzz, @ukstem,

@unayung, @unclouded77, @vacinc, @vectorpeak, @veda-openclaw, @velanir-ai-manager, @velvet-shark, @vergissberlin,

@versatagent, @vianne-droid, @viczhang6, @villa-feng, @vincentkoc, @vishal-dharm, @vishalj99, @vortexopenclaw,

@vyctorbrzezowski, @wangbyg, @wangmiao0668000666, @wangwllu, @wangzhengshu, @wayne524, @weeli-009, @welfo-beo,

@weltmaister, @wendy-chsy, @wiidz, @wings1029, @wm0018, @wsyjh8, @wukongai-cmu, @wuqxuan,

@wyf027, @xialonglee, @xianshishan, @xiayingren123, @xuanmingguo, @xydigit-sj, @xydigit-zt, @xydt-tanshanshan,

@yangxiansheng, @yashkot007, @yeager, @yetval, @yonganzhang, @youngting520, @yu-xin-c, @yuanhanzhong,

@yungchentang, @yusukeit0, @yzhong52, @zacharyyw, @zackchiutw, @zaidazmi, @zak-li, @zenglingbiao,

@zengwen-dt, @zenorewn, @zhangguiping-xydt, @zhanglei99586, @zhangqueping, @zhangxiaojiujiayi, @zhiling-chen-20230331, @zichaolong,

@zoowh, @zqchris, @zw-xysk, @zyzo.

</details>

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.1
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.1.tgz
  • integrity: sha512-ge/Xss99CHAjPL/ikmH/UFoiOrjcxDB4sW3y9mhyCD+dYW3wzV7TKbAVdkrXFgAG2d2BjpJofP97zUZ+umxo8g==
  • release SHA: 2d2ddc43d0dcf71f31283d780f9fe9ff4cc04fe4
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.1/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/29269577304
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/29268707256
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/29257432684
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/29270283750
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/29270285823
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/29272090669
  • npm Telegram beta E2E: not supplied
  • Windows Hub promotion: https://github.com/openclaw/openclaw/actions/runs/29274408977 from openclaw/openclaw-windows-node@v0.6.12
  • macOS preflight: https://github.com/openclaw/releases/actions/runs/29309287697
v2026.7.1-beta.6 pre BREAKING [Jul 13, 2026] details → github →

# openclaw 2026.7.1-beta.6

2026.7.1

Highlights

  • New models and providers: add Featherless, Claude Sonnet 5 and Mythos 5, Meta Muse Spark 1.1, and ClawRouter; make GPT-5.6 the new-setup default with /think ultra for Sol and Terra plus max for Luna, honor Z.AI max, and refresh model availability after OAuth renewal. (#101092, #98254, #101238, #102873, #103070, #103163, #99658, #99759, #98333, #103581, #98021, #104778, #102289) Thanks @vincentkoc, @vortexopenclaw, @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, @steipete-oai, @bdjben, @obviyus, @sallyom, @anyech, @100yenadmin, and @fuller-stack-dev.
  • Control UI and native macOS chat: make sessions primary with a minimal searchable sidebar, compact context ring, reasoning-effort slider, cleaner dashboard chrome, and a native macOS session browser with model and thinking pickers, slash commands, transcript export, and context usage. (#99289, #99838, #100386, #101103, #101497)
  • Conversational onboarding: Crestodian now runs a real agent-loop setup across the CLI, web install, and macOS app, with AI-guided provider setup, model-judged approvals bound to exact operations, masked credential prompts, and deterministic fallback when no model is available. (#99935, #100029, #100656, #101887) Thanks @fuller-stack-dev.
  • Offline and spoken mobile chat: iOS and Android now pre-paint bounded per-gateway session and transcript caches offline; Apple Watch gains full voice turns, and iOS can speak replies through configured Gateway TTS with on-device fallback. (#100219, #100227, #100283, #100770, #100771)
  • Session organization and generated titles: generate concise session titles through utility-model routing and add Gateway-backed groups, unread state, rename, fork, archive, and delete controls, plus group management across web, iOS, and Android. (#87643, #100814, #101117, #101234) Thanks @zhangguiping-xydt and @Juliangsm.
  • Telegram and Codex continuity: pair Codex through private /login, steer active runs with /steer and /tell, preserve messages when transcript acknowledgement is missing, adopt durable turns safely, and recover final sends across Telegram formatting and flood-wait failures. (#98006, #98126, #98786, #103664, #103916) Thanks @100yenadmin, @Kyzcreig, @obviyus, and @jalehman.
  • Startup and upgrade recovery: run container migrations before Gateway readiness, stop recoverable legacy state from blocking startup, and enter control-plane-safe mode after repeated unclean boots instead of restart flapping. (#101881, #104529) Fixes #98565 Thanks @sallyom, @jacobtomlinson, @bdjben, @obviyus, and @shakkernerd.

Changes

  • Meta provider: add bundled muse-spark-1.1 Responses API support with streaming, tool calls, encrypted reasoning replay, onboarding, exact-model live validation, and standalone npm/ClawHub distribution as @openclaw/meta-provider. (#102873, #103070, #103163) Thanks @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, and @vincentkoc.
  • Android chat agent selector: switch the active agent directly from the live chat screen while keeping chat, Talk mode, and home canvas on the same canonical session. (#80422) Thanks @bcperry and @joshavant.
  • Gateway host status: show the connected Gateway's host, network address, OS, runtime, uptime, CPU, memory, and disk details in Control UI Settings. (#100478)
  • Gateway crash-loop recovery: persist boot outcomes, enter control-plane-safe mode after repeated unclean starts, hold transport and provider activation until recovery, and exit with EX_CONFIG for fatal configuration errors so systemd and launchd stop restart flapping. Thanks @obviyus.
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100219)
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046)
  • Cron model selection: choose an agent-turn model in Control UI Quick Create and show configured or default models in cron job rows and details. (#95341) Thanks @ly85206559.
  • Control UI GitHub previews: show issue and pull request state, title, author, activity, comments, and change statistics in hover and keyboard-focus cards. (#100434)
  • Logbook work journal: add a disabled-by-default bundled plugin that turns paired-node screen snapshots into a private timeline, daily standup, and timeline-grounded Q&A in a plugin-contributed Control UI tab. (#99930)
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar navigation: show a small customizable pinned destination set, keep the remaining pages under More, move Settings to the footer, and persist sidebar customization in the browser. (#100296) Thanks @vincentkoc.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd.
  • Android chat code highlighting: render fenced Kotlin, Swift, TypeScript, JavaScript, Python, Bash, and JSON blocks with bounded, theme-aware syntax colors while preserving plain rendering for unknown, partial, or oversized blocks. (#100217)
  • Gateway TTS playback: add an operator-scoped tts.speak RPC that returns configured-provider speech as inline whole-clip audio for remote clients. (#100770)
  • Control UI context usage: show context-window progress, latest-run input/output tokens, and the active model when the chat context ring is opened.
  • Apple Watch voice turns: dictate a message from the Watch chat and hear the new OpenClaw reply spoken on the Watch, with explicit silent-message and stop-speaking controls. (#100224) Thanks @vincentkoc.
  • Conversational onboarding: add a real agent-loop Crestodian setup flow across the CLI, Gateway, web install, and macOS app, with typed operations, exact approval binding, masked credential prompts, isolated session transcripts, and safe handoff to the normal agent. Thanks @vincentkoc.
  • Generated session titles: name new Control UI sessions from their first message, and add default/per-agent utilityModel routing for lower-cost session, topic, and thread title generation. Thanks @Juliangsm, @zhangguiping-xydt, and @vincentkoc.
  • ClawRouter routing and quotas: add the bundled ClawRouter provider plugin with credential-scoped dynamic model discovery, OpenAI-compatible and native Anthropic/Gemini transports, and managed budget reporting across OpenClaw usage surfaces. (#99658)
  • Model and provider coverage: add GPT-5.6 support, use Nemotron Super's 1M context window, and preserve explicit OpenRouter authentication headers. (#98333, #98726, #98187) Thanks @steipete-oai, @eleqtrizit, @sunlit-deng, @laurencebrown, and @shakkernerd.
  • CLI and node workflows: add openclaw attach, node context-path support, actionable device-approval recovery guidance, soft-resume CLI sessions when prompt metadata changes, and clearer plugin install exit diagnostics. (#96454, #97679, #98115, #98146, #98497, #99822) Thanks @anagnorisis2peripeteia, @obviyus, @wm0018, @welfo-beo, @RomneyDa, @Sanjays2402, and @vincentkoc.
  • Cron and usage: add exit-triggered schedules, detached session-targeted runs, and an in-flight job doctor warning, while making the existing usage footer easier to wrap on Telegram. (#92037, #98755, #98620, #92877) Thanks @anagnorisis2peripeteia, @obviyus, @EthanSK, @masatohoshino, @Marvinthebored, and @vincentkoc.
  • Native apps and localization: modernize iOS presentation, Chat, Talk, onboarding, and reconnect flows; add Gateway speech providers; improve QR onboarding and protocol recovery; install the local Gateway from macOS; localize core Apple and Android surfaces; and add Swedish mobile localization. (#98452, #98736, #99243, #98376, #98302, #98385, #99767, #97110, #97111, #97112, #97113, #98043) Thanks @jcooley8, @Tony-ooo, @joelnishanth, @cursoragent, @joshavant, @vincentkoc, and @yeager.
  • Messaging capabilities: add native iMessage polls, Telegram Codex pairing and steering, Telegram multi-lane progress summaries, and Signal target aliases. (#98421, #98006, #98126, #98907, #95738) Thanks @omarshahine, @lobster, @100yenadmin, @Kyzcreig, @Marvinthebored, and @jesse-merhi.
  • Local inference and chat controls: auto-discover Ollama inference nodes, add Control UI session-first navigation, reasoning controls, and command picking, and keep OpenClaw control tools available when deferred tool search selects the wrong tool family. (#99234, #99289, #99426, #99838, #99561) Thanks @100yenadmin, @joshavant, @VicZhang6, @Solvely-Colin, and @vincentkoc.
  • Doctor and diagnostics: expose auth-profile, workspace, device-pairing, channel-plugin, memory-provider, systemd exhaustion, and Windows LAN firewall findings. (#97125, #97358, #97366, #97496, #97968, #98291, #98666) Thanks @giodl73-repo, @masatohoshino, and @joshavant.
  • Policy repair previews: show review-required Gateway bind and denied node-command changes during doctor --fix without applying them or counting the findings as repaired. (#99776) Thanks @giodl73-repo.
  • Conversation and review controls: prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348) Thanks @hxy91819.

Fixes

  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762)
  • LM Studio and xAI repaired tool calls: emit the terminal tool-call event before completion when promoting serialized plain-text tool calls, preserving the complete streaming lifecycle for consumers.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • SecretRef model credentials: keep resolved provider secrets behind process-local sentinels through auth storage, stream setup, SDK configuration, and managed local-provider probing, then inject plaintext only at the final network or provider-plugin boundary while retaining exact-value log redaction. (#102008, #102009)
  • Telegram token redaction: redact bot tokens even when log transports split them across chunks, preventing fragmented credentials from escaping structured and streamed logs. (#103861) Thanks @vincentkoc.
  • Telegram durable turn adoption: complete spooled updates only after durable agent adoption, detach adopted turns from the ingress reply fence, and suppress superseded replies so recovery cannot leak stale or duplicate responses. (#103664, #103952, #103965) Thanks @obviyus and @vincentkoc.
  • Task delivery recovery: normalize legacy delivery statuses while restoring task records so older queued work becomes runnable instead of aborting registry recovery. (#103946) Fixes #103168 Thanks @bek91, @theo674, and @obviyus.
  • Diagnostics provider evidence: emit one deduplicated provider.request timeline event for every completed or failed model call, so opt-in timelines can prove real provider traffic without double-counting terminal paths. Fixes #103063 Thanks @vincentkoc.
  • Lean local model shell access: keep exec directly visible beside the default structured Tool Search controls so coding-tuned local models can use their shell fallback instead of searching for missing domain tools. (#101607) Thanks @vincentkoc and @maweibin.
  • OAuth refresh contention diagnostics: keep local lock paths out of user-facing refresh failures and avoid duplicate failure prefixes while preserving structured provider and profile classification. (#101573) Thanks @vincentkoc.
  • Exec approval prompts: keep background-disabled fallback warnings out of pending gateway/node approvals and show them only after a command actually runs in the foreground. (#101561) Thanks @vincentkoc.
  • Direct poll delivery: route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950) Thanks @NianJiuZst and @shakkernerd.
  • Agent wait hard-timeout snapshots: preserve canonical hard-timeout phase and timestamps when the outer agent.wait timer wins the retry-grace race, while leaving queue, draining, and restart-cancelled waits correctable. (#89367) Thanks @Pick-cat and @sunnydongbo.
  • Control UI typed approvals: send /approve commands immediately through the authorized Gateway command path while an agent run is blocked instead of queueing the command behind that run. (#101532) Thanks @vincentkoc.
  • Microsoft Teams Graph response bounds: cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784) Thanks @Alix-007.
  • Packaged speech runtime: stop treating package-backed speech-core as a bundled plugin sidecar, restoring TTS startup in npm installs while release checks keep true activation-bypassing facades package-complete. (#89899, #89425) Thanks @zhangguiping-xydt, @ant1b0t, and @vincentkoc.
  • Container image upgrades: run versioned state migrations and plugin convergence before Gateway readiness when reusing mounted state, failing closed with doctor --fix recovery guidance instead of serving half-upgraded state. (#101881) Fixes #98565 Thanks @sallyom, @jacobtomlinson, and @shakkernerd.
  • Plugin update reliability: preserve plugins successfully switched through ClawHub during core updates instead of processing them a second time and disabling them after a redundant transient failure. (#105405) Thanks @vincentkoc.
  • Codex app-server protocol: require app-server 0.143 or newer, remove pre-0.142 wire-shape compatibility, migrate retired on-failure approval settings to on-request in Codex configuration and saved bindings, teach Codex to retrieve deferred native spawnagent through toolsearch so native subagent task mirroring works on search-capable models, and update the managed runtime to 0.144.1 for code-mode host installation and missing-host fallback reliability. Thanks @vincentkoc.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator and @vincentkoc.
  • CJK Markdown emphasis: render adjacent Chinese, Japanese, and Korean emphasis punctuation through the shared Markdown pipeline instead of leaking literal markers across channels. (#101230, #101120) Thanks @nicknmorty and @j08577600-jpg.
  • Backup retry cleanup: close partial archive output handles and isolate each retry path after live-write failures, preventing Windows EBUSY locks from cascading across attempts or leaving stale temp archives. (#101449, #101464) Thanks @ZOOWH, @LiLan0125, @vincentkoc, @aniruddhaadak80, @shakkernerd, and @obviyus.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup. Thanks @vincentkoc.
  • Delivery recovery pacing: pace eligible outbound and restart-continuation replays after gateway startup so outage backlogs do not burst into channel rate limits, while preserving the wall-clock recovery budget. (#101118, #101058) Thanks @ZengWen-DT, @aniruddhaadak80, and @vincentkoc.
  • Outbound pre-connect recovery: clear stale platform-send evidence atomically when a connect or DNS failure proves no request was sent, allowing queued Discord and other channel messages to replay after connectivity returns without weakening the unknown-send duplicate guard. (#101024, #100979) Thanks @SunnyShu0925 and @tiffanychum.
  • Discord streamed finals: send completion replies as fresh messages so inactive channels become unread, while preserving targeted mentions without escalating @everyone or @here. (#99711, #99662) Thanks @davelutztx and @xena68.
  • OpenAI-compatible SSE parsing: recognize event streams mislabeled as JSON without prepending a second data: prefix, preserving valid streamed responses from non-conforming providers. (#96503) Thanks @ZengWen-DT and @54meteor.
  • Meta Model API contract: use the current Meta endpoint and output-token field so muse-spark-1.1 validation and live requests match the provider contract. (#103680) Fixes #103667 Thanks @vincentkoc, @HamidShojanazeri, @davemorin, @Solvely-Colin, and @jalehman.
  • LM Studio embedding preload: honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750) Thanks @zak-li, @ZOOWH, and @hxz398.
  • Provider overload messaging: keep rate-limited responses classified for retry and fallback behavior while using overload wording when the provider supplies no explicit retry detail. (#98165) Thanks @SunnyShu0925.
  • Microsoft Teams attachment metadata: bound Bot Framework attachmentInfo JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125) Thanks @ly85206559.
  • Agent auth copy order: preserve the source agent's portable auth-profile precedence when copying credentials to a new agent while excluding skipped profiles and transient auth state. (#100833) Thanks @machine3at.
  • Memory session repair: keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so memory status --fix preserves healthy daily state. (#93389) Thanks @Alix-007 and @vincentkoc.
  • Remote browser CDP policy: allow the configured CDP control host through an existing hostname allowlist without widening page navigation policy, while keeping strict-policy discovery bound to the configured control authority. (#100986, #100819) Thanks @NianJiuZst, @SarinV, and @vincentkoc.
  • Config unset diagnostics: explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557) Thanks @moeghashim.
  • Crestodian command probes: contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741) Thanks @lsr911.
  • Feishu mention forwarding: fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891) Thanks @zhangguiping-xydt.
  • Cron edit delivery: preserve each job's implicit delivery mode when applying partial delivery updates, so disabling best-effort delivery no longer turns detached job announcements off. (#100846) Thanks @machine3at and @vincentkoc.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • Control UI file previews: keep large Skill Workshop files responsive with cached, offscreen-contained text chunks while preserving wrapped content, stable file switching, full-file copy, and clean focus behavior. (#101319) Thanks @xianshishan, @shakkernerd, and @vincentkoc.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan.
  • Control UI agent model labels: show each selected agent's effective model in the Default picker option instead of the global model. (#100719, #77440) Thanks @hyspacex and @jwong-art.
  • Control UI inbound image previews: render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591) Thanks @sweetcornna, @vergissberlin, and @shakkernerd.
  • Small-context compaction: cap the effective reserve against the known model context window so small local models do not enter compaction from the first token. (#100621) Thanks @vincentkoc.
  • Detail-less provider failures: keep opaque upstream failures from cooling API-key auth profiles while preserving WHAM-backed OpenAI OAuth health checks and configured model fallback. (#100617) Thanks @fabasi, @fengjikui, and @vincentkoc.
  • Plugin install diagnostics: suppress the misleading hook-pack fallback after plugin install failures only when the hook manifest is absent, while preserving actionable malformed hook-pack errors. (#100554) Thanks @vincentkoc and @obviyus.
  • Config validation diagnostics: emit each unchanged sanitized validation-warning payload once per config path, reset deduplication after a clean validation, and preserve the warning fingerprint across transient invalid reads and failed refreshes. (#100569, #25574) Thanks @vincentkoc and @mcaxtr.
  • Config size-drop guard: compare writes against canonical bytes for parseable object configs instead of raw BOM and indentation overhead, while preserving raw audit telemetry and the conservative malformed-input fallback. (#100591, #71865) Thanks @vincentkoc and @balric-seo.
  • Control UI coalesced updates: show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082) Thanks @goutamadwant and @motacola.
  • Control UI connection errors: preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758) Thanks @ruanrrn.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • TUI startup status: show starting up during post-connect initialization without overwriting active-run or reconnect state. (#93999) Thanks @ml12580 and @sanjarcode.
  • Control UI restart recovery: recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111) Thanks @ZengWen-DT and @ITOrity.
  • TUI active Gateway ports: follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461) Thanks @haishmg, @vincentkoc, and @jackm1688.
  • Apple chat run recovery: restore active responses from canonical Gateway history after reconnects, foreground resumes, and event gaps, while preserving gateway user-turn identity across Codex and Copilot transcript mirrors to prevent duplicate rows. (#100277)
  • Claude CLI streamed replies: preserve assistant text already received from Claude CLI when its terminal result envelope is empty, preventing false empty-response failover after a complete streamed answer. (#90450) Thanks @totobusnello.
  • Phone identity normalization: canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467) Thanks @morluto.
  • Tlon scry response bounds: cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376) Thanks @hugenshen.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Agent tool-call decoding: preserve surrogate-range numeric HTML entities as literal text while still decoding valid supplementary-plane values, preventing malformed model output from injecting lone UTF-16 surrogates into tool arguments. (#99564) Thanks @mikasa0818, @vincentkoc, @shakkernerd, and @maweibin.
  • Gateway event dispatch: catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401) Thanks @cxbAsDev.
  • Ollama fallback routing: classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482) Thanks @TurboTheTurtle, @8kfcf95jvp-oss, and @vincentkoc.
  • Diffs rendering: render viewer and image output from one SSR preload, preserve language-pack highlighting through hydration, normalize language hints case-insensitively, skip identical before/after inputs with an explicit changed result, report truthful file-render and input errors, cache hash-pinned viewer runtimes, and prefer canonical file settings over stale aliases. (#100487) Thanks @vincentkoc.
  • Remote browser reliability: bound persistent Playwright tab enumeration by the existing remote CDP timeout budget and retire timed-out connection attempts so late completions cannot restore a stuck connection. (#80147, #58968) Thanks @HemantSudarshan and @KeaneYan.
  • Browser attachment downloads: return managed URL, filename, and path metadata when direct Playwright navigation starts an attachment download, while validating final URLs before saving bytes and preserving single-owner explicit downloads. (#48045, #89416) Thanks @zhangguiping-xydt and @roinou532.
  • Browser action downloads: return managed URL, filename, and path metadata when agent actions trigger downloads, while preserving explicit ownership, validating final URLs before saving bytes, and quarantining policy-denied tabs without closing them. (#93250, #93307) Thanks @sunlit-deng and @scorpiord.
  • Managed browser cookie persistence: initialize new isolated macOS headless profiles with a non-interactive encryption key while preserving existing profile keys, and close Chromium through CDP before bounded signal fallback so persistent logins survive graceful browser and Gateway restarts. (#96704, #98284) Thanks @TurboTheTurtle and @shakkernerd.
  • MCP OAuth response bounds: reject body-less foreign error bodies without calling their inherently unbounded text() fallback, while preserving HTTP status and headers for safe SDK diagnostics. (#98143) Thanks @Pick-cat, @wangmiao0668000666, and @vincentkoc.
  • Tlon image upload bounds: cap remote image fetches before upload and fail closed on oversized or stalled responses instead of buffering them without a limit. (#100374) Thanks @hugenshen.
  • Control UI approval prompts: keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394) Thanks @haruaiclone-droid.
  • macOS service SecretRefs: preserve generated env-file values for SecretRefs that remain in config when stale Gateway LaunchAgents are repaired or reinstalled without those variables in the invoking shell. (#99124) Thanks @mushuiyu886 and @1Wanker.
  • Anthropic OAuth callbacks: keep the provider-required localhost redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917) Thanks @xialonglee, @riazrahaman, and @vincentkoc.
  • Prompt-release media delivery: accept active-leaf-preserving side appends while an embedded run temporarily releases its session lock, so successive message-tool media replies merge without a false session-takeover failure. (#100490) Thanks @scotthuang and @vincentkoc.
  • Control UI Skills filters: align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526) Thanks @evan-YM and @vincentkoc.
  • Control UI completed-run state: bind active and completed updates to run identities so stale completions keep Send available while newer runs remain active. (#100527) Thanks @tiffanychum, @davidstoll, and @shakkernerd.
  • Control UI context usage: keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772) Thanks @bladin and @snsczssl.
  • Control UI file previews: remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528) Thanks @xianshishan and @vincentkoc.
  • Control UI autonomous tool failures: preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514) Thanks @qingminglong and @yetval.
  • Agent empty replies: surface a visible failure when a completed interactive turn has no deliverable reply, including queued follow-ups, while preserving explicit silence, pending continuations, and committed side effects, honoring queued send policies, and treating compaction notices as progress. (#100456) Thanks @mushuiyu886 and @grox2012.
  • Subprocess, maintenance, and output hardening: keep child output failures from crashing exec and TUI sessions, isolate remote skill refresh and subagent sweeps, surface skill-scan and approval diagnostics, sanitize ANSI and stray parameter markup without losing visible text, and stop Android audio capture cleanly on device loss. (#100440) Thanks @cxbAsDev, @wendy-chsy, @tzy-17, @nankingjing, @NianJiuZst, @LavyaTandel, and @maweibin.
  • Docker sandbox command output: fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523) Thanks @cxbAsDev and @vincentkoc.
  • Android push-to-talk lifecycle: serialize gateway PTT preparation with app foreground and Manual Mic ownership so delayed work cannot restart, replace, or tear down a newer capture. (#100552) Thanks @xialonglee.
  • Lean local-model tools: trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881) Thanks @vincentkoc.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197)
  • iOS QR gateway handoff: stop VisionKit before delivering scanned setup codes, and keep deferred auth, approval, Watch, and foreground-node work bound to its originating gateway across reconnects. (#99572) Thanks @PollyBot13.
  • Agent terminal failures: surface a safe interactive reply when an agent run ends without visible output, while preserving completed message-tool delivery and heartbeat-specific guidance. (#99304) Thanks @moeedahmed and @maweibin.
  • MCP loopback tool results: preserve schema-valid text, image, and embedded-resource content through HTTP tool calls while rendering malformed or protocol-incompatible blocks as safe text. (#100336) Thanks @tzy-17, @OpenClawKobian99, @vincentkoc, @shakkernerd, and @maweibin.
  • Control UI tool-result images: render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295) Thanks @lzyyzznl, @Pandah97, @rquinones84, and @maweibin.
  • Control UI live tool ordering: keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184) Thanks @Pick-cat and @lileilei-camera.
  • IRC Unicode messages: split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572) Thanks @WeeLi-009, @vincentkoc, @mushuiyu886, and @cursoragent.
  • OpenAI realtime voice greetings: prevent server VAD from creating a second outbound greeting while an explicit greeting response owns the turn, without disabling caller interruption. (#86285) Thanks @giodl73-repo and @jnikolaidis.
  • Realtime voice tools: filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175) Thanks @vincentkoc.
  • Discord voice status: treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969) Thanks @asock.
  • Discord voice accounts: isolate @discordjs/voice connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530) Thanks @geekhuashan.
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Reliability edge cases: reject sub-millisecond cron durations, preserve generated proposal newlines, normalize blank integer inputs and fail embedded LSP startup promptly, surface persistence and memory-close failures, keep UTF-16 and plugin package verification correct, propagate Android cancellation, and defer Codex relay registry writes until listening. (#100399) Thanks @cxbAsDev, @snotty, @lin-hongkuan, @849261680, @qingminglong, @anyech, @masatohoshino, @Simon-XYDT, @xialonglee, @nankingjing, @609NFT, and @vincentkoc.
  • Voice Call completed status: resolve finalized calls from the full retained event store across Gateway, tool, and CLI status paths while preserving active-call lookup performance. (#99797) Thanks @Darren2030, @NiTeCoMM-code, and @maweibin.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Message delivery status: report failed and partially failed best-effort channel delivery instead of returning a success-shaped message-tool result. (#99928) Thanks @masatohoshino.
  • WhatsApp credential recovery: restore malformed primary auth state from a valid backup during startup. (#99070) Thanks @LeonidasLux.
  • WhatsApp quoted replies: preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879) Thanks @Bartok9, @seikosantana, and @vincentkoc.
  • WhatsApp reconnect catch-up: admit recently missed Baileys append messages during a bounded reconnect window while preserving startup stale-history guards. (#80642) Thanks @VishalJ99.
  • WhatsApp restart recovery: stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511) Thanks @openperf and @rutherlesdev.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • Plugin module identity: keep OpenClaw package chunks on Node's native module graph when jiti transforms plugin entries, preventing duplicate evaluation and class identity drift. (#88384) Thanks @vincentkoc and @ScientificProgrammer.
  • Shell completion repair: generate core-only caches during doctor and update repair while preserving full plugin command completion for onboarding and explicit user rebuilds. (#76235) Thanks @joshavant.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Windows Scheduled Task recovery: keep clean early exits inside the existing bounded launch poll, falling back only when neither the task process nor Gateway listener becomes observable.
  • iMessage group warnings: suppress the false drop-all startup warning when an effective group sender allowlist can admit groups, and point true empty-allowlist configurations at the correct remedy. (#100046)
  • Control UI mobile login: keep Gateway recovery guidance visible after connection failures, make the disconnected gate scroll safely on constrained screens, and improve mobile keyboard and tap-target behavior. (#100208)
  • TUI streaming: render delta-only assistant events in live Gateway and embedded TUI sessions instead of waiting for the final response. (#83000) Thanks @flashosophy.
  • Model aliases: resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209) Thanks @sahilsatralkar, @david-r-jones, @shakkernerd, and @vincentkoc.
  • TUI new-session hooks: create /new sessions through the shared Gateway lifecycle so command and session hooks receive the completed parent transcript in both Gateway and embedded modes, while preventing rollover during an active turn. (#100241, #49918) Thanks @BingqingLyu, @caopulan, @LonExplorer-coder, and @vincentkoc.
  • TUI abort diagnostics: show sanitized tool argument-validation summaries for aborted runs in both Gateway and local TUI modes without exposing raw model arguments. (#91002) Thanks @wsyjh8 and @taerlandsen.
  • iOS Watch replies: persist queued quick replies in the gateway-scoped chat outbox and submit them through idempotent chat delivery, preventing losses, duplicates, and cross-gateway sends after reconnects. (#100372) Thanks @NianJiuZst.
  • iOS Gateway auth retry: restrict stored device-token retry to parsed loopback hosts and reject wildcard bind addresses, preventing remote lookalike hostnames from receiving trusted retry credentials. (#99859) Thanks @ly85206559 and @vincentkoc.
  • Bedrock Mantle discovery: bound model-catalog fetch time and response size, and release rejected response bodies so stalled, oversized, or failed provider responses fall back safely. (#99961) Thanks @zhangguiping-xydt and @shakkernerd.
  • Discord thread-title prompts: truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551) Thanks @Alix-007, @vincentkoc, @mushuiyu886, and @cursoragent.
  • Mobile pairing routes: advertise verified persistent Tailscale Serve fallbacks alongside gateway.bind=lan setup URLs, show every route in the Control UI and CLI, and let iOS save the first reachable endpoint. (#100280) Thanks @shakkernerd.
  • Control UI terminal tabs: vertically center the new-session button in the terminal tab strip.
  • Control UI composer scrollbar: show the message-field scrollbar only when the draft actually overflows its autosized height.
  • Control UI terminal cursor: hide the browser-native contenteditable caret so the integrated terminal shows only its canvas-rendered cursor.
  • macOS SSH tunnels: resolve user-installed SSH ProxyCommand helpers through the app's managed PATH while preserving inherited connection environment, so remote aliases work after Finder and sanitized-script launches.
  • Control UI OpenAI speed picker: show only Standard and Fast choices for OpenAI models.
  • Control UI terminal rendering: adopt the shared @openclaw/libterminal browser lifecycle and add Nerd Font fallbacks so icon-enabled shell listings render their glyphs when a compatible local font is installed.
  • Slack transcript history: let Codex app-server own its persisted assistant replies so Slack does not append redundant delivery-mirror rows, while the Control UI keeps legacy duplicate mirrors hidden. Thanks @bek91.
  • Control UI chat history: hide redundant channel-final delivery mirrors when the preceding app-server assistant reply already shows the same text.
  • Control UI chat spacing: keep the first message comfortably clear of the topbar with a responsive minimum transcript inset.
  • ClawRouter auth profiles: resolve credential-scoped catalog models during agent runs when the proxy key is stored in an auth profile, and document plugin and model allowlists.
  • Telegram durability: retry restart-dropped media, survive transient polling errors, dead-letter poison updates, preserve forwarded rich text, route plugin callbacks correctly, keep progress updates in one stable multi-line window, map self-hosted Bot API container paths through trusted host roots, and fall back safely when Telegram rejects rich final replies. (#98102, #98735, #98775, #98776, #97174, #98907, #91984, #98786) Thanks @luoyanglang, @DaveArcher18, @obviyus, @goldmar, @Marvinthebored, @Dizesales, @shakkernerd, @AiLucasdz, and @RomneyDa.
  • Cross-channel inbound media: preserve captions and expose unavailable-attachment notices when WhatsApp, LINE, Signal, iMessage, Microsoft Teams, Feishu, Mattermost, or Zalo cannot materialize inbound media, instead of dispatching phantom placeholders or dropping media-only turns. (#100092)
  • Agent and context reliability: preserve runtime overrides, steered subagent tasks, fallback tool-call hints, and legacy reseed attachments; soft-resume CLI sessions across prompt-only drift; improve harness-aware context estimation; time out silent local streams; recover mid-stream failures; and cap Gateway run-cache growth. (#92237, #77539, #99851, #99839, #99822, #97928, #98525, #95430, #77973) Thanks @sercada, @amittell, @obviyus, @liuhao1024, @yetval, @osolmaz, @lzyyzznl, @vincentkoc, @alexelgier, and @fede-kamel.
  • Provider and network safety: bound oversized or malformed responses across Moonshot, MiniMax, Anthropic OAuth, Discord, Matrix, SMS, browser, update, embeddings, Tlön, and Inworld paths. (#96502, #96322, #96644, #97693, #97662, #97999, #98455, #98508, #98554, #98496, #98660) Thanks @hugenshen, @cursoragent, @lsr911, @solodmd, @Alix-007, @wings1029, @lzyyzznl, @sunlit-deng, @vincentkoc, and @Pandah97.
  • Channel delivery and routing: keep Slack replies in active thread sessions, preserve account-bound delivery routes, apply response prefixes, and suppress internal traces and unwanted fallback replies. (#97168, #98240, #93639, #97989, #80928) Thanks @LiuwqGit, @gorkem2020, @yetval, @ZengWen-DT, @alexuser, @UnClouded77, and @vincentkoc.
  • Cron correctness: preserve provider and model selections on timeouts, retain startup catch-up deferrals across maintenance reads, keep action-required output, clear blank thinking overrides, and preserve provider-owned daily-reset sessions. (#95943, #94022, #96393, #96293, #98356) Thanks @ZengWen-DT, @cursoragent, @luke-renjoy, @RichChen01, @vincentkoc, @yetval, @snowzlmbot, @nz365guy, @takamasa-aiso, and @shakkernerd.
  • Memory and session recovery: detect unindexed transcripts, preserve notes through transient reads, avoid cross-directory resumes, disambiguate reserved wiki index pages, and skip empty QMD sync work. (#97857, #98360, #97785, #94326, #90030) Thanks @zw-xysk, @CHE10X, @qingminglong, @yetval, @vincentkoc, @sahibzada-allahyar, and @ruben2000de.
  • Windows and execution: bind allowlisted execution to the validated Windows path, propagate PATHEXT, normalize inbound paths case-insensitively, and prevent cleanup crashes on Windows. (#98260, #98093, #97630, #97901) Thanks @eleqtrizit, @wendy-chsy, @VectorPeak, @paulcam206, and @shakkernerd.
  • Mobile and UI stability: preserve iOS chat line breaks and final replies, improve Android pairing and TLS recovery, hide expired pairing cards, keep workspace file rails scrollable, restore copy-path over plain HTTP, and stop rubber-band scrolling in the Mac app Control UI. (#98304, #98117, #98366, #98439, #98483, #98049, #98646, #98611, #98764, #99830) Thanks @joshavant, @Jabato01, @ooiuuii, @wuqxuan, @645648406-max, @zw-xysk, @ZengWen-DT, and @adinballew.
  • Codex and approval flows: report ChatGPT authentication correctly, rename destructive approval mode to ask, classify get_goal read statuses accurately, and derive terminal-idle timeouts from the explicit run deadline. (#91240, #98501, #98659, #85296) Thanks @849261680, @ukstem, @kevinslin, @yetval, @alkor200, @vincentkoc, and @alkor2000.
  • Configuration and plugin health: restrict config traversal to owned properties, preserve config-health recovery state, surface unloadable channel plugins, preserve defaulted provider base URLs during patches, validate bundled plugin updates by manifest contract, resolve public artifacts from installed plugin roots, and retain legacy ClawHub families where required. (#99846, #99728, #96397, #98396, #98010, #98819, #98249) Thanks @vincentkoc, @zenglingbiao, @joshavant, @jalehman, @ccbridle, @849261680, @momothemage, @weltmaister, @LiLan0125, @herove, @amknight, @KelTech-Services, and @Patrick-Erichsen.
  • Runtime process safety: prevent unhandled child-stream errors in SSH tunnels, supervisors, and MCP stdio transports; keep auto-replies from waiting on transcript mirroring; and avoid splitting Unicode characters in approval previews and LINE outbound fields. (#99800, #99802, #99803, #99549, #99566, #98994) Thanks @cxbAsDev, @vincentkoc, @Shagrat2, @mikasa0818, and @LEXES7.
  • Node runtime compatibility: installers, the CLI launcher, doctor, and the macOS app now reject incompatible Node 23 runtimes and guide users toward supported Node 22 or 24 releases. (#99832) Thanks @vincentkoc and @fuller-stack-dev.
  • QQBot media delivery: scope sandbox-generated media sends to the active session's workspace so /workspace/... and relative generated-file paths resolve safely across QQBot media tags, structured payloads, and streaming delivery. (#92872) Thanks @zhangguiping-xydt and @sliverp.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.1-beta.6
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.1-beta.6.tgz
  • integrity: sha512-hhLSRZoWsg8MlB2+bDoA/gyaQah1qOpG+6irbXXfq1LJCL5mBf+RVzV7ZMls/uwGG5MX/eGSy66VIjsImnixUg==
  • release SHA: a783a2b283d1eacd91ba65a891a38c89b1e6f790
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.1-beta.6/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/29216340587
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/29203712253
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/29210289020
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/29215244776 (71 packages), https://github.com/openclaw/openclaw/actions/runs/29216661693 (1-package recovery), https://github.com/openclaw/openclaw/actions/runs/29217679822 (final 72-package reconciliation)
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/29216663285 (72 packages)
  • plugin ClawHub bootstrap: not needed
  • npm Telegram beta E2E: not supplied
v2026.7.1-beta.5 pre BREAKING [Jul 11, 2026] details → github →

# OpenClaw 2026.7.1-beta.5

2026.7.1

Highlights

  • New models and providers: add Featherless, Claude Sonnet 5 and Mythos 5, Meta Muse Spark 1.1, and ClawRouter; make GPT-5.6 the new-setup default with /think ultra for Sol and Terra plus max for Luna, honor Z.AI max, and refresh model availability after OAuth renewal. (#101092, #98254, #101238, #102873, #103070, #103163, #99658, #99759, #98333, #103581, #98021, #104778, #102289) Thanks @vincentkoc, @vortexopenclaw, @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, @steipete-oai, @bdjben, @obviyus, @sallyom, @anyech, @100yenadmin, and @fuller-stack-dev.
  • Control UI and native macOS chat: make sessions primary with a minimal searchable sidebar, compact context ring, reasoning-effort slider, cleaner dashboard chrome, and a native macOS session browser with model and thinking pickers, slash commands, transcript export, and context usage. (#99289, #99838, #100386, #101103, #101497)
  • Conversational onboarding: Crestodian now runs a real agent-loop setup across the CLI, web install, and macOS app, with AI-guided provider setup, model-judged approvals bound to exact operations, masked credential prompts, and deterministic fallback when no model is available. (#99935, #100029, #100656, #101887) Thanks @fuller-stack-dev.
  • Offline and spoken mobile chat: iOS and Android now pre-paint bounded per-gateway session and transcript caches offline; Apple Watch gains full voice turns, and iOS can speak replies through configured Gateway TTS with on-device fallback. (#100219, #100227, #100283, #100770, #100771)
  • Session organization and generated titles: generate concise session titles through utility-model routing and add Gateway-backed groups, unread state, rename, fork, archive, and delete controls, plus group management across web, iOS, and Android. (#87643, #100814, #101117, #101234) Thanks @zhangguiping-xydt and @Juliangsm.
  • Telegram and Codex continuity: pair Codex through private /login, steer active runs with /steer and /tell, preserve messages when transcript acknowledgement is missing, adopt durable turns safely, and recover final sends across Telegram formatting and flood-wait failures. (#98006, #98126, #98786, #103664, #103916) Thanks @100yenadmin, @Kyzcreig, @obviyus, and @jalehman.
  • Startup and upgrade recovery: run container migrations before Gateway readiness, stop recoverable legacy state from blocking startup, and enter control-plane-safe mode after repeated unclean boots instead of restart flapping. (#101881, #104529) Fixes #98565 Thanks @sallyom, @jacobtomlinson, @bdjben, @obviyus, and @shakkernerd.

Changes

  • Meta provider: add bundled muse-spark-1.1 Responses API support with streaming, tool calls, encrypted reasoning replay, onboarding, exact-model live validation, and standalone npm/ClawHub distribution as @openclaw/meta-provider. (#102873, #103070, #103163) Thanks @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, and @vincentkoc.
  • Android chat agent selector: switch the active agent directly from the live chat screen while keeping chat, Talk mode, and home canvas on the same canonical session. (#80422) Thanks @bcperry and @joshavant.
  • Gateway host status: show the connected Gateway's host, network address, OS, runtime, uptime, CPU, memory, and disk details in Control UI Settings. (#100478)
  • Gateway crash-loop recovery: persist boot outcomes, enter control-plane-safe mode after repeated unclean starts, hold transport and provider activation until recovery, and exit with EX_CONFIG for fatal configuration errors so systemd and launchd stop restart flapping. Thanks @obviyus.
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100219)
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046)
  • Cron model selection: choose an agent-turn model in Control UI Quick Create and show configured or default models in cron job rows and details. (#95341) Thanks @ly85206559.
  • Control UI GitHub previews: show issue and pull request state, title, author, activity, comments, and change statistics in hover and keyboard-focus cards. (#100434)
  • Logbook work journal: add a disabled-by-default bundled plugin that turns paired-node screen snapshots into a private timeline, daily standup, and timeline-grounded Q&A in a plugin-contributed Control UI tab. (#99930)
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar navigation: show a small customizable pinned destination set, keep the remaining pages under More, move Settings to the footer, and persist sidebar customization in the browser. (#100296) Thanks @vincentkoc.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd.
  • Android chat code highlighting: render fenced Kotlin, Swift, TypeScript, JavaScript, Python, Bash, and JSON blocks with bounded, theme-aware syntax colors while preserving plain rendering for unknown, partial, or oversized blocks. (#100217)
  • Gateway TTS playback: add an operator-scoped tts.speak RPC that returns configured-provider speech as inline whole-clip audio for remote clients. (#100770)
  • Control UI context usage: show context-window progress, latest-run input/output tokens, and the active model when the chat context ring is opened.
  • Apple Watch voice turns: dictate a message from the Watch chat and hear the new OpenClaw reply spoken on the Watch, with explicit silent-message and stop-speaking controls. (#100224) Thanks @vincentkoc.
  • Conversational onboarding: add a real agent-loop Crestodian setup flow across the CLI, Gateway, web install, and macOS app, with typed operations, exact approval binding, masked credential prompts, isolated session transcripts, and safe handoff to the normal agent. Thanks @vincentkoc.
  • Generated session titles: name new Control UI sessions from their first message, and add default/per-agent utilityModel routing for lower-cost session, topic, and thread title generation. Thanks @Juliangsm, @zhangguiping-xydt, and @vincentkoc.
  • ClawRouter routing and quotas: add the bundled ClawRouter provider plugin with credential-scoped dynamic model discovery, OpenAI-compatible and native Anthropic/Gemini transports, and managed budget reporting across OpenClaw usage surfaces. (#99658)
  • Model and provider coverage: add GPT-5.6 support, use Nemotron Super's 1M context window, and preserve explicit OpenRouter authentication headers. (#98333, #98726, #98187) Thanks @steipete-oai, @eleqtrizit, @sunlit-deng, @laurencebrown, and @shakkernerd.
  • CLI and node workflows: add openclaw attach, node context-path support, actionable device-approval recovery guidance, soft-resume CLI sessions when prompt metadata changes, and clearer plugin install exit diagnostics. (#96454, #97679, #98115, #98146, #98497, #99822) Thanks @anagnorisis2peripeteia, @obviyus, @wm0018, @welfo-beo, @RomneyDa, @Sanjays2402, and @vincentkoc.
  • Cron and usage: add exit-triggered schedules, detached session-targeted runs, and an in-flight job doctor warning, while making the existing usage footer easier to wrap on Telegram. (#92037, #98755, #98620, #92877) Thanks @anagnorisis2peripeteia, @obviyus, @EthanSK, @masatohoshino, @Marvinthebored, and @vincentkoc.
  • Native apps and localization: modernize iOS presentation, Chat, Talk, onboarding, and reconnect flows; add Gateway speech providers; improve QR onboarding and protocol recovery; install the local Gateway from macOS; localize core Apple and Android surfaces; and add Swedish mobile localization. (#98452, #98736, #99243, #98376, #98302, #98385, #99767, #97110, #97111, #97112, #97113, #98043) Thanks @jcooley8, @Tony-ooo, @joelnishanth, @cursoragent, @joshavant, @vincentkoc, and @yeager.
  • Messaging capabilities: add native iMessage polls, Telegram Codex pairing and steering, Telegram multi-lane progress summaries, and Signal target aliases. (#98421, #98006, #98126, #98907, #95738) Thanks @omarshahine, @lobster, @100yenadmin, @Kyzcreig, @Marvinthebored, and @jesse-merhi.
  • Local inference and chat controls: auto-discover Ollama inference nodes, add Control UI session-first navigation, reasoning controls, and command picking, and keep OpenClaw control tools available when deferred tool search selects the wrong tool family. (#99234, #99289, #99426, #99838, #99561) Thanks @100yenadmin, @joshavant, @VicZhang6, @Solvely-Colin, and @vincentkoc.
  • Doctor and diagnostics: expose auth-profile, workspace, device-pairing, channel-plugin, memory-provider, systemd exhaustion, and Windows LAN firewall findings. (#97125, #97358, #97366, #97496, #97968, #98291, #98666) Thanks @giodl73-repo, @masatohoshino, and @joshavant.
  • Policy repair previews: show review-required Gateway bind and denied node-command changes during doctor --fix without applying them or counting the findings as repaired. (#99776) Thanks @giodl73-repo.
  • Conversation and review controls: prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348) Thanks @hxy91819.

Fixes

  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762)
  • LM Studio and xAI repaired tool calls: emit the terminal tool-call event before completion when promoting serialized plain-text tool calls, preserving the complete streaming lifecycle for consumers.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • SecretRef model credentials: keep resolved provider secrets behind process-local sentinels through auth storage, stream setup, SDK configuration, and managed local-provider probing, then inject plaintext only at the final network or provider-plugin boundary while retaining exact-value log redaction. (#102008, #102009)
  • Telegram token redaction: redact bot tokens even when log transports split them across chunks, preventing fragmented credentials from escaping structured and streamed logs. (#103861) Thanks @vincentkoc.
  • Telegram durable turn adoption: complete spooled updates only after durable agent adoption, detach adopted turns from the ingress reply fence, and suppress superseded replies so recovery cannot leak stale or duplicate responses. (#103664, #103952, #103965) Thanks @obviyus and @vincentkoc.
  • Task delivery recovery: normalize legacy delivery statuses while restoring task records so older queued work becomes runnable instead of aborting registry recovery. (#103946) Fixes #103168 Thanks @bek91, @theo674, and @obviyus.
  • Diagnostics provider evidence: emit one deduplicated provider.request timeline event for every completed or failed model call, so opt-in timelines can prove real provider traffic without double-counting terminal paths. Fixes #103063 Thanks @vincentkoc.
  • Lean local model shell access: keep exec directly visible beside the default structured Tool Search controls so coding-tuned local models can use their shell fallback instead of searching for missing domain tools. (#101607) Thanks @vincentkoc and @maweibin.
  • OAuth refresh contention diagnostics: keep local lock paths out of user-facing refresh failures and avoid duplicate failure prefixes while preserving structured provider and profile classification. (#101573) Thanks @vincentkoc.
  • Exec approval prompts: keep background-disabled fallback warnings out of pending gateway/node approvals and show them only after a command actually runs in the foreground. (#101561) Thanks @vincentkoc.
  • Direct poll delivery: route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950) Thanks @NianJiuZst and @shakkernerd.
  • Agent wait hard-timeout snapshots: preserve canonical hard-timeout phase and timestamps when the outer agent.wait timer wins the retry-grace race, while leaving queue, draining, and restart-cancelled waits correctable. (#89367) Thanks @Pick-cat and @sunnydongbo.
  • Control UI typed approvals: send /approve commands immediately through the authorized Gateway command path while an agent run is blocked instead of queueing the command behind that run. (#101532) Thanks @vincentkoc.
  • Microsoft Teams Graph response bounds: cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784) Thanks @Alix-007.
  • Packaged speech runtime: stop treating package-backed speech-core as a bundled plugin sidecar, restoring TTS startup in npm installs while release checks keep true activation-bypassing facades package-complete. (#89899, #89425) Thanks @zhangguiping-xydt, @ant1b0t, and @vincentkoc.
  • Container image upgrades: run versioned state migrations and plugin convergence before Gateway readiness when reusing mounted state, failing closed with doctor --fix recovery guidance instead of serving half-upgraded state. (#101881) Fixes #98565 Thanks @sallyom, @jacobtomlinson, and @shakkernerd.
  • Plugin update reliability: preserve plugins successfully switched through ClawHub during core updates instead of processing them a second time and disabling them after a redundant transient failure. (#105405) Thanks @vincentkoc.
  • Codex app-server protocol: require app-server 0.143 or newer, remove pre-0.142 wire-shape compatibility, migrate retired on-failure approval settings to on-request in Codex configuration and saved bindings, teach Codex to retrieve deferred native spawnagent through toolsearch so native subagent task mirroring works on search-capable models, and update the managed runtime to 0.144.1 for code-mode host installation and missing-host fallback reliability. Thanks @vincentkoc.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator and @vincentkoc.
  • CJK Markdown emphasis: render adjacent Chinese, Japanese, and Korean emphasis punctuation through the shared Markdown pipeline instead of leaking literal markers across channels. (#101230, #101120) Thanks @nicknmorty and @j08577600-jpg.
  • Backup retry cleanup: close partial archive output handles and isolate each retry path after live-write failures, preventing Windows EBUSY locks from cascading across attempts or leaving stale temp archives. (#101449, #101464) Thanks @ZOOWH, @LiLan0125, @vincentkoc, @aniruddhaadak80, @shakkernerd, and @obviyus.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup. Thanks @vincentkoc.
  • Delivery recovery pacing: pace eligible outbound and restart-continuation replays after gateway startup so outage backlogs do not burst into channel rate limits, while preserving the wall-clock recovery budget. (#101118, #101058) Thanks @ZengWen-DT, @aniruddhaadak80, and @vincentkoc.
  • Outbound pre-connect recovery: clear stale platform-send evidence atomically when a connect or DNS failure proves no request was sent, allowing queued Discord and other channel messages to replay after connectivity returns without weakening the unknown-send duplicate guard. (#101024, #100979) Thanks @SunnyShu0925 and @tiffanychum.
  • Discord streamed finals: send completion replies as fresh messages so inactive channels become unread, while preserving targeted mentions without escalating @everyone or @here. (#99711, #99662) Thanks @davelutztx and @xena68.
  • OpenAI-compatible SSE parsing: recognize event streams mislabeled as JSON without prepending a second data: prefix, preserving valid streamed responses from non-conforming providers. (#96503) Thanks @ZengWen-DT and @54meteor.
  • Meta Model API contract: use the current Meta endpoint and output-token field so muse-spark-1.1 validation and live requests match the provider contract. (#103680) Fixes #103667 Thanks @vincentkoc, @HamidShojanazeri, @davemorin, @Solvely-Colin, and @jalehman.
  • LM Studio embedding preload: honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750) Thanks @zak-li, @ZOOWH, and @hxz398.
  • Provider overload messaging: keep rate-limited responses classified for retry and fallback behavior while using overload wording when the provider supplies no explicit retry detail. (#98165) Thanks @SunnyShu0925.
  • Microsoft Teams attachment metadata: bound Bot Framework attachmentInfo JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125) Thanks @ly85206559.
  • Agent auth copy order: preserve the source agent's portable auth-profile precedence when copying credentials to a new agent while excluding skipped profiles and transient auth state. (#100833) Thanks @machine3at.
  • Memory session repair: keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so memory status --fix preserves healthy daily state. (#93389) Thanks @Alix-007 and @vincentkoc.
  • Remote browser CDP policy: allow the configured CDP control host through an existing hostname allowlist without widening page navigation policy, while keeping strict-policy discovery bound to the configured control authority. (#100986, #100819) Thanks @NianJiuZst, @SarinV, and @vincentkoc.
  • Config unset diagnostics: explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557) Thanks @moeghashim.
  • Crestodian command probes: contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741) Thanks @lsr911.
  • Feishu mention forwarding: fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891) Thanks @zhangguiping-xydt.
  • Cron edit delivery: preserve each job's implicit delivery mode when applying partial delivery updates, so disabling best-effort delivery no longer turns detached job announcements off. (#100846) Thanks @machine3at and @vincentkoc.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • Control UI file previews: keep large Skill Workshop files responsive with cached, offscreen-contained text chunks while preserving wrapped content, stable file switching, full-file copy, and clean focus behavior. (#101319) Thanks @xianshishan, @shakkernerd, and @vincentkoc.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan.
  • Control UI agent model labels: show each selected agent's effective model in the Default picker option instead of the global model. (#100719, #77440) Thanks @hyspacex and @jwong-art.
  • Control UI inbound image previews: render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591) Thanks @sweetcornna, @vergissberlin, and @shakkernerd.
  • Small-context compaction: cap the effective reserve against the known model context window so small local models do not enter compaction from the first token. (#100621) Thanks @vincentkoc.
  • Detail-less provider failures: keep opaque upstream failures from cooling API-key auth profiles while preserving WHAM-backed OpenAI OAuth health checks and configured model fallback. (#100617) Thanks @fabasi, @fengjikui, and @vincentkoc.
  • Plugin install diagnostics: suppress the misleading hook-pack fallback after plugin install failures only when the hook manifest is absent, while preserving actionable malformed hook-pack errors. (#100554) Thanks @vincentkoc and @obviyus.
  • Config validation diagnostics: emit each unchanged sanitized validation-warning payload once per config path, reset deduplication after a clean validation, and preserve the warning fingerprint across transient invalid reads and failed refreshes. (#100569, #25574) Thanks @vincentkoc and @mcaxtr.
  • Config size-drop guard: compare writes against canonical bytes for parseable object configs instead of raw BOM and indentation overhead, while preserving raw audit telemetry and the conservative malformed-input fallback. (#100591, #71865) Thanks @vincentkoc and @balric-seo.
  • Control UI coalesced updates: show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082) Thanks @goutamadwant and @motacola.
  • Control UI connection errors: preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758) Thanks @ruanrrn.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • TUI startup status: show starting up during post-connect initialization without overwriting active-run or reconnect state. (#93999) Thanks @ml12580 and @sanjarcode.
  • Control UI restart recovery: recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111) Thanks @ZengWen-DT and @ITOrity.
  • TUI active Gateway ports: follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461) Thanks @haishmg, @vincentkoc, and @jackm1688.
  • Apple chat run recovery: restore active responses from canonical Gateway history after reconnects, foreground resumes, and event gaps, while preserving gateway user-turn identity across Codex and Copilot transcript mirrors to prevent duplicate rows. (#100277)
  • Claude CLI streamed replies: preserve assistant text already received from Claude CLI when its terminal result envelope is empty, preventing false empty-response failover after a complete streamed answer. (#90450) Thanks @totobusnello.
  • Phone identity normalization: canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467) Thanks @morluto.
  • Tlon scry response bounds: cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376) Thanks @hugenshen.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Agent tool-call decoding: preserve surrogate-range numeric HTML entities as literal text while still decoding valid supplementary-plane values, preventing malformed model output from injecting lone UTF-16 surrogates into tool arguments. (#99564) Thanks @mikasa0818, @vincentkoc, @shakkernerd, and @maweibin.
  • Gateway event dispatch: catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401) Thanks @cxbAsDev.
  • Ollama fallback routing: classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482) Thanks @TurboTheTurtle, @8kfcf95jvp-oss, and @vincentkoc.
  • Diffs rendering: render viewer and image output from one SSR preload, preserve language-pack highlighting through hydration, normalize language hints case-insensitively, skip identical before/after inputs with an explicit changed result, report truthful file-render and input errors, cache hash-pinned viewer runtimes, and prefer canonical file settings over stale aliases. (#100487) Thanks @vincentkoc.
  • Remote browser reliability: bound persistent Playwright tab enumeration by the existing remote CDP timeout budget and retire timed-out connection attempts so late completions cannot restore a stuck connection. (#80147, #58968) Thanks @HemantSudarshan and @KeaneYan.
  • Browser attachment downloads: return managed URL, filename, and path metadata when direct Playwright navigation starts an attachment download, while validating final URLs before saving bytes and preserving single-owner explicit downloads. (#48045, #89416) Thanks @zhangguiping-xydt and @roinou532.
  • Browser action downloads: return managed URL, filename, and path metadata when agent actions trigger downloads, while preserving explicit ownership, validating final URLs before saving bytes, and quarantining policy-denied tabs without closing them. (#93250, #93307) Thanks @sunlit-deng and @scorpiord.
  • Managed browser cookie persistence: initialize new isolated macOS headless profiles with a non-interactive encryption key while preserving existing profile keys, and close Chromium through CDP before bounded signal fallback so persistent logins survive graceful browser and Gateway restarts. (#96704, #98284) Thanks @TurboTheTurtle and @shakkernerd.
  • MCP OAuth response bounds: reject body-less foreign error bodies without calling their inherently unbounded text() fallback, while preserving HTTP status and headers for safe SDK diagnostics. (#98143) Thanks @Pick-cat, @wangmiao0668000666, and @vincentkoc.
  • Tlon image upload bounds: cap remote image fetches before upload and fail closed on oversized or stalled responses instead of buffering them without a limit. (#100374) Thanks @hugenshen.
  • Control UI approval prompts: keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394) Thanks @haruaiclone-droid.
  • macOS service SecretRefs: preserve generated env-file values for SecretRefs that remain in config when stale Gateway LaunchAgents are repaired or reinstalled without those variables in the invoking shell. (#99124) Thanks @mushuiyu886 and @1Wanker.
  • Anthropic OAuth callbacks: keep the provider-required localhost redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917) Thanks @xialonglee, @riazrahaman, and @vincentkoc.
  • Prompt-release media delivery: accept active-leaf-preserving side appends while an embedded run temporarily releases its session lock, so successive message-tool media replies merge without a false session-takeover failure. (#100490) Thanks @scotthuang and @vincentkoc.
  • Control UI Skills filters: align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526) Thanks @evan-YM and @vincentkoc.
  • Control UI completed-run state: bind active and completed updates to run identities so stale completions keep Send available while newer runs remain active. (#100527) Thanks @tiffanychum, @davidstoll, and @shakkernerd.
  • Control UI context usage: keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772) Thanks @bladin and @snsczssl.
  • Control UI file previews: remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528) Thanks @xianshishan and @vincentkoc.
  • Control UI autonomous tool failures: preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514) Thanks @qingminglong and @yetval.
  • Agent empty replies: surface a visible failure when a completed interactive turn has no deliverable reply, including queued follow-ups, while preserving explicit silence, pending continuations, and committed side effects, honoring queued send policies, and treating compaction notices as progress. (#100456) Thanks @mushuiyu886 and @grox2012.
  • Subprocess, maintenance, and output hardening: keep child output failures from crashing exec and TUI sessions, isolate remote skill refresh and subagent sweeps, surface skill-scan and approval diagnostics, sanitize ANSI and stray parameter markup without losing visible text, and stop Android audio capture cleanly on device loss. (#100440) Thanks @cxbAsDev, @wendy-chsy, @tzy-17, @nankingjing, @NianJiuZst, @LavyaTandel, and @maweibin.
  • Docker sandbox command output: fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523) Thanks @cxbAsDev and @vincentkoc.
  • Android push-to-talk lifecycle: serialize gateway PTT preparation with app foreground and Manual Mic ownership so delayed work cannot restart, replace, or tear down a newer capture. (#100552) Thanks @xialonglee.
  • Lean local-model tools: trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881) Thanks @vincentkoc.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197)
  • iOS QR gateway handoff: stop VisionKit before delivering scanned setup codes, and keep deferred auth, approval, Watch, and foreground-node work bound to its originating gateway across reconnects. (#99572) Thanks @PollyBot13.
  • Agent terminal failures: surface a safe interactive reply when an agent run ends without visible output, while preserving completed message-tool delivery and heartbeat-specific guidance. (#99304) Thanks @moeedahmed and @maweibin.
  • MCP loopback tool results: preserve schema-valid text, image, and embedded-resource content through HTTP tool calls while rendering malformed or protocol-incompatible blocks as safe text. (#100336) Thanks @tzy-17, @OpenClawKobian99, @vincentkoc, @shakkernerd, and @maweibin.
  • Control UI tool-result images: render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295) Thanks @lzyyzznl, @Pandah97, @rquinones84, and @maweibin.
  • Control UI live tool ordering: keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184) Thanks @Pick-cat and @lileilei-camera.
  • IRC Unicode messages: split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572) Thanks @WeeLi-009, @vincentkoc, @mushuiyu886, and @cursoragent.
  • OpenAI realtime voice greetings: prevent server VAD from creating a second outbound greeting while an explicit greeting response owns the turn, without disabling caller interruption. (#86285) Thanks @giodl73-repo and @jnikolaidis.
  • Realtime voice tools: filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175) Thanks @vincentkoc.
  • Discord voice status: treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969) Thanks @asock.
  • Discord voice accounts: isolate @discordjs/voice connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530) Thanks @geekhuashan.
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Reliability edge cases: reject sub-millisecond cron durations, preserve generated proposal newlines, normalize blank integer inputs and fail embedded LSP startup promptly, surface persistence and memory-close failures, keep UTF-16 and plugin package verification correct, propagate Android cancellation, and defer Codex relay registry writes until listening. (#100399) Thanks @cxbAsDev, @snotty, @lin-hongkuan, @849261680, @qingminglong, @anyech, @masatohoshino, @Simon-XYDT, @xialonglee, @nankingjing, @609NFT, and @vincentkoc.
  • Voice Call completed status: resolve finalized calls from the full retained event store across Gateway, tool, and CLI status paths while preserving active-call lookup performance. (#99797) Thanks @Darren2030, @NiTeCoMM-code, and @maweibin.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Message delivery status: report failed and partially failed best-effort channel delivery instead of returning a success-shaped message-tool result. (#99928) Thanks @masatohoshino.
  • WhatsApp credential recovery: restore malformed primary auth state from a valid backup during startup. (#99070) Thanks @LeonidasLux.
  • WhatsApp quoted replies: preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879) Thanks @Bartok9, @seikosantana, and @vincentkoc.
  • WhatsApp reconnect catch-up: admit recently missed Baileys append messages during a bounded reconnect window while preserving startup stale-history guards. (#80642) Thanks @VishalJ99.
  • WhatsApp restart recovery: stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511) Thanks @openperf and @rutherlesdev.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • Plugin module identity: keep OpenClaw package chunks on Node's native module graph when jiti transforms plugin entries, preventing duplicate evaluation and class identity drift. (#88384) Thanks @vincentkoc and @ScientificProgrammer.
  • Shell completion repair: generate core-only caches during doctor and update repair while preserving full plugin command completion for onboarding and explicit user rebuilds. (#76235) Thanks @joshavant.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Windows Scheduled Task recovery: keep clean early exits inside the existing bounded launch poll, falling back only when neither the task process nor Gateway listener becomes observable.
  • iMessage group warnings: suppress the false drop-all startup warning when an effective group sender allowlist can admit groups, and point true empty-allowlist configurations at the correct remedy. (#100046)
  • Control UI mobile login: keep Gateway recovery guidance visible after connection failures, make the disconnected gate scroll safely on constrained screens, and improve mobile keyboard and tap-target behavior. (#100208)
  • TUI streaming: render delta-only assistant events in live Gateway and embedded TUI sessions instead of waiting for the final response. (#83000) Thanks @flashosophy.
  • Model aliases: resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209) Thanks @sahilsatralkar, @david-r-jones, @shakkernerd, and @vincentkoc.
  • TUI new-session hooks: create /new sessions through the shared Gateway lifecycle so command and session hooks receive the completed parent transcript in both Gateway and embedded modes, while preventing rollover during an active turn. (#100241, #49918) Thanks @BingqingLyu, @caopulan, @LonExplorer-coder, and @vincentkoc.
  • TUI abort diagnostics: show sanitized tool argument-validation summaries for aborted runs in both Gateway and local TUI modes without exposing raw model arguments. (#91002) Thanks @wsyjh8 and @taerlandsen.
  • iOS Watch replies: persist queued quick replies in the gateway-scoped chat outbox and submit them through idempotent chat delivery, preventing losses, duplicates, and cross-gateway sends after reconnects. (#100372) Thanks @NianJiuZst.
  • iOS Gateway auth retry: restrict stored device-token retry to parsed loopback hosts and reject wildcard bind addresses, preventing remote lookalike hostnames from receiving trusted retry credentials. (#99859) Thanks @ly85206559 and @vincentkoc.
  • Bedrock Mantle discovery: bound model-catalog fetch time and response size, and release rejected response bodies so stalled, oversized, or failed provider responses fall back safely. (#99961) Thanks @zhangguiping-xydt and @shakkernerd.
  • Discord thread-title prompts: truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551) Thanks @Alix-007, @vincentkoc, @mushuiyu886, and @cursoragent.
  • Mobile pairing routes: advertise verified persistent Tailscale Serve fallbacks alongside gateway.bind=lan setup URLs, show every route in the Control UI and CLI, and let iOS save the first reachable endpoint. (#100280) Thanks @shakkernerd.
  • Control UI terminal tabs: vertically center the new-session button in the terminal tab strip.
  • Control UI composer scrollbar: show the message-field scrollbar only when the draft actually overflows its autosized height.
  • Control UI terminal cursor: hide the browser-native contenteditable caret so the integrated terminal shows only its canvas-rendered cursor.
  • macOS SSH tunnels: resolve user-installed SSH ProxyCommand helpers through the app's managed PATH while preserving inherited connection environment, so remote aliases work after Finder and sanitized-script launches.
  • Control UI OpenAI speed picker: show only Standard and Fast choices for OpenAI models.
  • Control UI terminal rendering: adopt the shared @openclaw/libterminal browser lifecycle and add Nerd Font fallbacks so icon-enabled shell listings render their glyphs when a compatible local font is installed.
  • Slack transcript history: let Codex app-server own its persisted assistant replies so Slack does not append redundant delivery-mirror rows, while the Control UI keeps legacy duplicate mirrors hidden. Thanks @bek91.
  • Control UI chat history: hide redundant channel-final delivery mirrors when the preceding app-server assistant reply already shows the same text.
  • Control UI chat spacing: keep the first message comfortably clear of the topbar with a responsive minimum transcript inset.
  • ClawRouter auth profiles: resolve credential-scoped catalog models during agent runs when the proxy key is stored in an auth profile, and document plugin and model allowlists.
  • Telegram durability: retry restart-dropped media, survive transient polling errors, dead-letter poison updates, preserve forwarded rich text, route plugin callbacks correctly, keep progress updates in one stable multi-line window, map self-hosted Bot API container paths through trusted host roots, and fall back safely when Telegram rejects rich final replies. (#98102, #98735, #98775, #98776, #97174, #98907, #91984, #98786) Thanks @luoyanglang, @DaveArcher18, @obviyus, @goldmar, @Marvinthebored, @Dizesales, @shakkernerd, @AiLucasdz, and @RomneyDa.
  • Cross-channel inbound media: preserve captions and expose unavailable-attachment notices when WhatsApp, LINE, Signal, iMessage, Microsoft Teams, Feishu, Mattermost, or Zalo cannot materialize inbound media, instead of dispatching phantom placeholders or dropping media-only turns. (#100092)
  • Agent and context reliability: preserve runtime overrides, steered subagent tasks, fallback tool-call hints, and legacy reseed attachments; soft-resume CLI sessions across prompt-only drift; improve harness-aware context estimation; time out silent local streams; recover mid-stream failures; and cap Gateway run-cache growth. (#92237, #77539, #99851, #99839, #99822, #97928, #98525, #95430, #77973) Thanks @sercada, @amittell, @obviyus, @liuhao1024, @yetval, @osolmaz, @lzyyzznl, @vincentkoc, @alexelgier, and @fede-kamel.
  • Provider and network safety: bound oversized or malformed responses across Moonshot, MiniMax, Anthropic OAuth, Discord, Matrix, SMS, browser, update, embeddings, Tlön, and Inworld paths. (#96502, #96322, #96644, #97693, #97662, #97999, #98455, #98508, #98554, #98496, #98660) Thanks @hugenshen, @cursoragent, @lsr911, @solodmd, @Alix-007, @wings1029, @lzyyzznl, @sunlit-deng, @vincentkoc, and @Pandah97.
  • Channel delivery and routing: keep Slack replies in active thread sessions, preserve account-bound delivery routes, apply response prefixes, and suppress internal traces and unwanted fallback replies. (#97168, #98240, #93639, #97989, #80928) Thanks @LiuwqGit, @gorkem2020, @yetval, @ZengWen-DT, @alexuser, @UnClouded77, and @vincentkoc.
  • Cron correctness: preserve provider and model selections on timeouts, retain startup catch-up deferrals across maintenance reads, keep action-required output, clear blank thinking overrides, and preserve provider-owned daily-reset sessions. (#95943, #94022, #96393, #96293, #98356) Thanks @ZengWen-DT, @cursoragent, @luke-renjoy, @RichChen01, @vincentkoc, @yetval, @snowzlmbot, @nz365guy, @takamasa-aiso, and @shakkernerd.
  • Memory and session recovery: detect unindexed transcripts, preserve notes through transient reads, avoid cross-directory resumes, disambiguate reserved wiki index pages, and skip empty QMD sync work. (#97857, #98360, #97785, #94326, #90030) Thanks @zw-xysk, @CHE10X, @qingminglong, @yetval, @vincentkoc, @sahibzada-allahyar, and @ruben2000de.
  • Windows and execution: bind allowlisted execution to the validated Windows path, propagate PATHEXT, normalize inbound paths case-insensitively, and prevent cleanup crashes on Windows. (#98260, #98093, #97630, #97901) Thanks @eleqtrizit, @wendy-chsy, @VectorPeak, @paulcam206, and @shakkernerd.
  • Mobile and UI stability: preserve iOS chat line breaks and final replies, improve Android pairing and TLS recovery, hide expired pairing cards, keep workspace file rails scrollable, restore copy-path over plain HTTP, and stop rubber-band scrolling in the Mac app Control UI. (#98304, #98117, #98366, #98439, #98483, #98049, #98646, #98611, #98764, #99830) Thanks @joshavant, @Jabato01, @ooiuuii, @wuqxuan, @645648406-max, @zw-xysk, @ZengWen-DT, and @adinballew.
  • Codex and approval flows: report ChatGPT authentication correctly, rename destructive approval mode to ask, classify get_goal read statuses accurately, and derive terminal-idle timeouts from the explicit run deadline. (#91240, #98501, #98659, #85296) Thanks @849261680, @ukstem, @kevinslin, @yetval, @alkor200, @vincentkoc, and @alkor2000.
  • Configuration and plugin health: restrict config traversal to owned properties, preserve config-health recovery state, surface unloadable channel plugins, preserve defaulted provider base URLs during patches, validate bundled plugin updates by manifest contract, resolve public artifacts from installed plugin roots, and retain legacy ClawHub families where required. (#99846, #99728, #96397, #98396, #98010, #98819, #98249) Thanks @vincentkoc, @zenglingbiao, @joshavant, @jalehman, @ccbridle, @849261680, @momothemage, @weltmaister, @LiLan0125, @herove, @amknight, @KelTech-Services, and @Patrick-Erichsen.
  • Runtime process safety: prevent unhandled child-stream errors in SSH tunnels, supervisors, and MCP stdio transports; keep auto-replies from waiting on transcript mirroring; and avoid splitting Unicode characters in approval previews and LINE outbound fields. (#99800, #99802, #99803, #99549, #99566, #98994) Thanks @cxbAsDev, @vincentkoc, @Shagrat2, @mikasa0818, and @LEXES7.
  • Node runtime compatibility: installers, the CLI launcher, doctor, and the macOS app now reject incompatible Node 23 runtimes and guide users toward supported Node 22 or 24 releases. (#99832) Thanks @vincentkoc and @fuller-stack-dev.
  • QQBot media delivery: scope sandbox-generated media sends to the active session's workspace so /workspace/... and relative generated-file paths resolve safely across QQBot media tags, structured payloads, and streaming delivery. (#92872) Thanks @zhangguiping-xydt and @sliverp.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.1-beta.5
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.1-beta.5.tgz
  • integrity: sha512-ejdttiBZwk5RJmZdGD3gQPW1+4819pb0gyw4ZbGg/NcEAdozk6UQWq4n3P2XfDBgOn2k7D8fSKLcN+YDdJ77TA==
  • release SHA: b6387afd6d2e0f43c2ae98d2d124dbc277f03cca; annotated tag signature verified by GitHub
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/29148493714
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/29148844710
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/29148844866
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/29149180434
  • exact registry-package Telegram E2E: https://github.com/openclaw/openclaw/actions/runs/29153274366
  • trusted live Telegram release QA: https://github.com/openclaw/openclaw/actions/runs/29153277474
  • release checks: https://github.com/openclaw/openclaw/actions/runs/29153264665 — 48 successful jobs, including QA parity, live Telegram, Windows/macOS fresh and upgrade, installer smoke, package acceptance, and Docker lanes
  • plugin prerelease validation: https://github.com/openclaw/openclaw/actions/runs/29153265183 — 30 successful jobs
  • product performance evidence: https://github.com/openclaw/openclaw/actions/runs/29153265976 — 6 successful jobs
  • dependency evidence: openclaw-2026.7.1-beta.5-dependency-evidence.zip, SHA-256 624d90e32e755eed7261ef59d546cb3d5800f76640b1514bb548e22a3c01ec77
  • closeout evidence: openclaw-2026.7.1-beta.5-closeout-evidence.json, SHA-256 cd4fb69d8a6f62abefb4dc0d0a58a63819cf3804880cfce06ada62809b64cb54

Known validation gaps

  • The immutable beta.5 source fails its pinned pnpm format:check on 194 files. The historical-tag audit is recorded at https://github.com/openclaw/openclaw/actions/runs/29153226514, with its normal-CI child at https://github.com/openclaw/openclaw/actions/runs/29153266007.
  • The same historical CI child hit the 5-second timeout in ui/src/pages/chat/chat-responsive.browser.test.ts:575; the other 2,320 UI tests passed.
  • These failures prevent the canonical Full Release Validation manifest from being emitted. No gate was bypassed, the tag was not moved, and no package was republished. The attached closeout evidence records the successful independent lanes and the missing standard manifest/postpublish assets explicitly.
v2026.7.1-beta.2 pre BREAKING [Jul 5, 2026] details → github →

# openclaw 2026.7.1-beta.2

2026.7.1

Highlights

  • New models and providers: add Featherless, Claude Sonnet 5 and Mythos 5, Meta Muse Spark 1.1, and ClawRouter; make GPT-5.6 the new-setup default with /think ultra for Sol and Terra plus max for Luna, honor Z.AI max, and refresh model availability after OAuth renewal. (#101092, #98254, #101238, #102873, #103070, #103163, #99658, #99759, #98333, #103581, #98021, #104778, #102289) Thanks @vincentkoc, @vortexopenclaw, @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, @steipete-oai, @bdjben, @obviyus, @sallyom, @anyech, @100yenadmin, and @fuller-stack-dev.
  • Control UI and native macOS chat: make sessions primary with a minimal searchable sidebar, compact context ring, reasoning-effort slider, cleaner dashboard chrome, and a native macOS session browser with model and thinking pickers, slash commands, transcript export, and context usage. (#99289, #99838, #100386, #101103, #101497)
  • Conversational onboarding: Crestodian now runs a real agent-loop setup across the CLI, web install, and macOS app, with AI-guided provider setup, model-judged approvals bound to exact operations, masked credential prompts, and deterministic fallback when no model is available. (#99935, #100029, #100656, #101887) Thanks @fuller-stack-dev.
  • Offline and spoken mobile chat: iOS and Android now pre-paint bounded per-gateway session and transcript caches offline; Apple Watch gains full voice turns, and iOS can speak replies through configured Gateway TTS with on-device fallback. (#100219, #100227, #100283, #100770, #100771)
  • Session organization and generated titles: generate concise session titles through utility-model routing and add Gateway-backed groups, unread state, rename, fork, archive, and delete controls, plus group management across web, iOS, and Android. (#87643, #100814, #101117, #101234) Thanks @zhangguiping-xydt and @Juliangsm.
  • Telegram and Codex continuity: pair Codex through private /login, steer active runs with /steer and /tell, preserve messages when transcript acknowledgement is missing, adopt durable turns safely, and recover final sends across Telegram formatting and flood-wait failures. (#98006, #98126, #98786, #103664, #103916) Thanks @100yenadmin, @Kyzcreig, @obviyus, and @jalehman.
  • Startup and upgrade recovery: run container migrations before Gateway readiness, stop recoverable legacy state from blocking startup, and enter control-plane-safe mode after repeated unclean boots instead of restart flapping. (#101881, #104529) Fixes #98565 Thanks @sallyom, @jacobtomlinson, @bdjben, @obviyus, and @shakkernerd.

Changes

  • Meta provider: add bundled muse-spark-1.1 Responses API support with streaming, tool calls, encrypted reasoning replay, onboarding, exact-model live validation, and standalone npm/ClawHub distribution as @openclaw/meta-provider. (#102873, #103070, #103163) Thanks @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, and @vincentkoc.
  • Android chat agent selector: switch the active agent directly from the live chat screen while keeping chat, Talk mode, and home canvas on the same canonical session. (#80422) Thanks @bcperry and @joshavant.
  • Gateway host status: show the connected Gateway's host, network address, OS, runtime, uptime, CPU, memory, and disk details in Control UI Settings. (#100478)
  • Gateway crash-loop recovery: persist boot outcomes, enter control-plane-safe mode after repeated unclean starts, hold transport and provider activation until recovery, and exit with EX_CONFIG for fatal configuration errors so systemd and launchd stop restart flapping. Thanks @obviyus.
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100219)
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046)
  • Cron model selection: choose an agent-turn model in Control UI Quick Create and show configured or default models in cron job rows and details. (#95341) Thanks @ly85206559.
  • Control UI GitHub previews: show issue and pull request state, title, author, activity, comments, and change statistics in hover and keyboard-focus cards. (#100434)
  • Logbook work journal: add a disabled-by-default bundled plugin that turns paired-node screen snapshots into a private timeline, daily standup, and timeline-grounded Q&A in a plugin-contributed Control UI tab. (#99930)
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar navigation: show a small customizable pinned destination set, keep the remaining pages under More, move Settings to the footer, and persist sidebar customization in the browser. (#100296) Thanks @vincentkoc.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd.
  • Android chat code highlighting: render fenced Kotlin, Swift, TypeScript, JavaScript, Python, Bash, and JSON blocks with bounded, theme-aware syntax colors while preserving plain rendering for unknown, partial, or oversized blocks. (#100217)
  • Gateway TTS playback: add an operator-scoped tts.speak RPC that returns configured-provider speech as inline whole-clip audio for remote clients. (#100770)
  • Control UI context usage: show context-window progress, latest-run input/output tokens, and the active model when the chat context ring is opened.
  • Apple Watch voice turns: dictate a message from the Watch chat and hear the new OpenClaw reply spoken on the Watch, with explicit silent-message and stop-speaking controls. (#100224) Thanks @vincentkoc.
  • Conversational onboarding: add a real agent-loop Crestodian setup flow across the CLI, Gateway, web install, and macOS app, with typed operations, exact approval binding, masked credential prompts, isolated session transcripts, and safe handoff to the normal agent. Thanks @vincentkoc.
  • Generated session titles: name new Control UI sessions from their first message, and add default/per-agent utilityModel routing for lower-cost session, topic, and thread title generation. Thanks @Juliangsm, @zhangguiping-xydt, and @vincentkoc.
  • ClawRouter routing and quotas: add the bundled ClawRouter provider plugin with credential-scoped dynamic model discovery, OpenAI-compatible and native Anthropic/Gemini transports, and managed budget reporting across OpenClaw usage surfaces. (#99658)
  • Model and provider coverage: add GPT-5.6 support, use Nemotron Super's 1M context window, and preserve explicit OpenRouter authentication headers. (#98333, #98726, #98187) Thanks @steipete-oai, @eleqtrizit, @sunlit-deng, @laurencebrown, and @shakkernerd.
  • CLI and node workflows: add openclaw attach, node context-path support, actionable device-approval recovery guidance, soft-resume CLI sessions when prompt metadata changes, and clearer plugin install exit diagnostics. (#96454, #97679, #98115, #98146, #98497, #99822) Thanks @anagnorisis2peripeteia, @obviyus, @wm0018, @welfo-beo, @RomneyDa, @Sanjays2402, and @vincentkoc.
  • Cron and usage: add exit-triggered schedules, detached session-targeted runs, and an in-flight job doctor warning, while making the existing usage footer easier to wrap on Telegram. (#92037, #98755, #98620, #92877) Thanks @anagnorisis2peripeteia, @obviyus, @EthanSK, @masatohoshino, @Marvinthebored, and @vincentkoc.
  • Native apps and localization: modernize iOS presentation, Chat, Talk, onboarding, and reconnect flows; add Gateway speech providers; improve QR onboarding and protocol recovery; install the local Gateway from macOS; localize core Apple and Android surfaces; and add Swedish mobile localization. (#98452, #98736, #99243, #98376, #98302, #98385, #99767, #97110, #97111, #97112, #97113, #98043) Thanks @jcooley8, @Tony-ooo, @joelnishanth, @cursoragent, @joshavant, @vincentkoc, and @yeager.
  • Messaging capabilities: add native iMessage polls, Telegram Codex pairing and steering, Telegram multi-lane progress summaries, and Signal target aliases. (#98421, #98006, #98126, #98907, #95738) Thanks @omarshahine, @lobster, @100yenadmin, @Kyzcreig, @Marvinthebored, and @jesse-merhi.
  • Local inference and chat controls: auto-discover Ollama inference nodes, add Control UI session-first navigation, reasoning controls, and command picking, and keep OpenClaw control tools available when deferred tool search selects the wrong tool family. (#99234, #99289, #99426, #99838, #99561) Thanks @100yenadmin, @joshavant, @VicZhang6, @Solvely-Colin, and @vincentkoc.
  • Doctor and diagnostics: expose auth-profile, workspace, device-pairing, channel-plugin, memory-provider, systemd exhaustion, and Windows LAN firewall findings. (#97125, #97358, #97366, #97496, #97968, #98291, #98666) Thanks @giodl73-repo, @masatohoshino, and @joshavant.
  • Policy repair previews: show review-required Gateway bind and denied node-command changes during doctor --fix without applying them or counting the findings as repaired. (#99776) Thanks @giodl73-repo.
  • Conversation and review controls: prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348) Thanks @hxy91819.

Fixes

  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762)
  • LM Studio and xAI repaired tool calls: emit the terminal tool-call event before completion when promoting serialized plain-text tool calls, preserving the complete streaming lifecycle for consumers.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • SecretRef model credentials: keep resolved provider secrets behind process-local sentinels through auth storage, stream setup, SDK configuration, and managed local-provider probing, then inject plaintext only at the final network or provider-plugin boundary while retaining exact-value log redaction. (#102008, #102009)
  • Telegram token redaction: redact bot tokens even when log transports split them across chunks, preventing fragmented credentials from escaping structured and streamed logs. (#103861) Thanks @vincentkoc.
  • Telegram durable turn adoption: complete spooled updates only after durable agent adoption, detach adopted turns from the ingress reply fence, and suppress superseded replies so recovery cannot leak stale or duplicate responses. (#103664, #103952, #103965) Thanks @obviyus and @vincentkoc.
  • Task delivery recovery: normalize legacy delivery statuses while restoring task records so older queued work becomes runnable instead of aborting registry recovery. (#103946) Fixes #103168 Thanks @bek91, @theo674, and @obviyus.
  • Diagnostics provider evidence: emit one deduplicated provider.request timeline event for every completed or failed model call, so opt-in timelines can prove real provider traffic without double-counting terminal paths. Fixes #103063 Thanks @vincentkoc.
  • Lean local model shell access: keep exec directly visible beside the default structured Tool Search controls so coding-tuned local models can use their shell fallback instead of searching for missing domain tools. (#101607) Thanks @vincentkoc and @maweibin.
  • OAuth refresh contention diagnostics: keep local lock paths out of user-facing refresh failures and avoid duplicate failure prefixes while preserving structured provider and profile classification. (#101573) Thanks @vincentkoc.
  • Exec approval prompts: keep background-disabled fallback warnings out of pending gateway/node approvals and show them only after a command actually runs in the foreground. (#101561) Thanks @vincentkoc.
  • Direct poll delivery: route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950) Thanks @NianJiuZst and @shakkernerd.
  • Agent wait hard-timeout snapshots: preserve canonical hard-timeout phase and timestamps when the outer agent.wait timer wins the retry-grace race, while leaving queue, draining, and restart-cancelled waits correctable. (#89367) Thanks @Pick-cat and @sunnydongbo.
  • Control UI typed approvals: send /approve commands immediately through the authorized Gateway command path while an agent run is blocked instead of queueing the command behind that run. (#101532) Thanks @vincentkoc.
  • Microsoft Teams Graph response bounds: cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784) Thanks @Alix-007.
  • Packaged speech runtime: stop treating package-backed speech-core as a bundled plugin sidecar, restoring TTS startup in npm installs while release checks keep true activation-bypassing facades package-complete. (#89899, #89425) Thanks @zhangguiping-xydt, @ant1b0t, and @vincentkoc.
  • Container image upgrades: run versioned state migrations and plugin convergence before Gateway readiness when reusing mounted state, failing closed with doctor --fix recovery guidance instead of serving half-upgraded state. (#101881) Fixes #98565 Thanks @sallyom, @jacobtomlinson, and @shakkernerd.
  • Plugin update reliability: preserve plugins successfully switched through ClawHub during core updates instead of processing them a second time and disabling them after a redundant transient failure. (#105405) Thanks @vincentkoc.
  • Codex app-server protocol: require app-server 0.143 or newer, remove pre-0.142 wire-shape compatibility, migrate retired on-failure approval settings to on-request in Codex configuration and saved bindings, teach Codex to retrieve deferred native spawnagent through toolsearch so native subagent task mirroring works on search-capable models, and update the managed runtime to 0.144.1 for code-mode host installation and missing-host fallback reliability. Thanks @vincentkoc.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator and @vincentkoc.
  • CJK Markdown emphasis: render adjacent Chinese, Japanese, and Korean emphasis punctuation through the shared Markdown pipeline instead of leaking literal markers across channels. (#101230, #101120) Thanks @nicknmorty and @j08577600-jpg.
  • Backup retry cleanup: close partial archive output handles and isolate each retry path after live-write failures, preventing Windows EBUSY locks from cascading across attempts or leaving stale temp archives. (#101449, #101464) Thanks @ZOOWH, @LiLan0125, @vincentkoc, @aniruddhaadak80, @shakkernerd, and @obviyus.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup. Thanks @vincentkoc.
  • Delivery recovery pacing: pace eligible outbound and restart-continuation replays after gateway startup so outage backlogs do not burst into channel rate limits, while preserving the wall-clock recovery budget. (#101118, #101058) Thanks @ZengWen-DT, @aniruddhaadak80, and @vincentkoc.
  • Outbound pre-connect recovery: clear stale platform-send evidence atomically when a connect or DNS failure proves no request was sent, allowing queued Discord and other channel messages to replay after connectivity returns without weakening the unknown-send duplicate guard. (#101024, #100979) Thanks @SunnyShu0925 and @tiffanychum.
  • Discord streamed finals: send completion replies as fresh messages so inactive channels become unread, while preserving targeted mentions without escalating @everyone or @here. (#99711, #99662) Thanks @davelutztx and @xena68.
  • OpenAI-compatible SSE parsing: recognize event streams mislabeled as JSON without prepending a second data: prefix, preserving valid streamed responses from non-conforming providers. (#96503) Thanks @ZengWen-DT and @54meteor.
  • Meta Model API contract: use the current Meta endpoint and output-token field so muse-spark-1.1 validation and live requests match the provider contract. (#103680) Fixes #103667 Thanks @vincentkoc, @HamidShojanazeri, @davemorin, @Solvely-Colin, and @jalehman.
  • LM Studio embedding preload: honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750) Thanks @zak-li, @ZOOWH, and @hxz398.
  • Provider overload messaging: keep rate-limited responses classified for retry and fallback behavior while using overload wording when the provider supplies no explicit retry detail. (#98165) Thanks @SunnyShu0925.
  • Microsoft Teams attachment metadata: bound Bot Framework attachmentInfo JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125) Thanks @ly85206559.
  • Agent auth copy order: preserve the source agent's portable auth-profile precedence when copying credentials to a new agent while excluding skipped profiles and transient auth state. (#100833) Thanks @machine3at.
  • Memory session repair: keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so memory status --fix preserves healthy daily state. (#93389) Thanks @Alix-007 and @vincentkoc.
  • Remote browser CDP policy: allow the configured CDP control host through an existing hostname allowlist without widening page navigation policy, while keeping strict-policy discovery bound to the configured control authority. (#100986, #100819) Thanks @NianJiuZst, @SarinV, and @vincentkoc.
  • Config unset diagnostics: explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557) Thanks @moeghashim.
  • Crestodian command probes: contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741) Thanks @lsr911.
  • Feishu mention forwarding: fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891) Thanks @zhangguiping-xydt.
  • Cron edit delivery: preserve each job's implicit delivery mode when applying partial delivery updates, so disabling best-effort delivery no longer turns detached job announcements off. (#100846) Thanks @machine3at and @vincentkoc.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • Control UI file previews: keep large Skill Workshop files responsive with cached, offscreen-contained text chunks while preserving wrapped content, stable file switching, full-file copy, and clean focus behavior. (#101319) Thanks @xianshishan, @shakkernerd, and @vincentkoc.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan.
  • Control UI agent model labels: show each selected agent's effective model in the Default picker option instead of the global model. (#100719, #77440) Thanks @hyspacex and @jwong-art.
  • Control UI inbound image previews: render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591) Thanks @sweetcornna, @vergissberlin, and @shakkernerd.
  • Small-context compaction: cap the effective reserve against the known model context window so small local models do not enter compaction from the first token. (#100621) Thanks @vincentkoc.
  • Detail-less provider failures: keep opaque upstream failures from cooling API-key auth profiles while preserving WHAM-backed OpenAI OAuth health checks and configured model fallback. (#100617) Thanks @fabasi, @fengjikui, and @vincentkoc.
  • Plugin install diagnostics: suppress the misleading hook-pack fallback after plugin install failures only when the hook manifest is absent, while preserving actionable malformed hook-pack errors. (#100554) Thanks @vincentkoc and @obviyus.
  • Config validation diagnostics: emit each unchanged sanitized validation-warning payload once per config path, reset deduplication after a clean validation, and preserve the warning fingerprint across transient invalid reads and failed refreshes. (#100569, #25574) Thanks @vincentkoc and @mcaxtr.
  • Config size-drop guard: compare writes against canonical bytes for parseable object configs instead of raw BOM and indentation overhead, while preserving raw audit telemetry and the conservative malformed-input fallback. (#100591, #71865) Thanks @vincentkoc and @balric-seo.
  • Control UI coalesced updates: show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082) Thanks @goutamadwant and @motacola.
  • Control UI connection errors: preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758) Thanks @ruanrrn.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • TUI startup status: show starting up during post-connect initialization without overwriting active-run or reconnect state. (#93999) Thanks @ml12580 and @sanjarcode.
  • Control UI restart recovery: recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111) Thanks @ZengWen-DT and @ITOrity.
  • TUI active Gateway ports: follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461) Thanks @haishmg, @vincentkoc, and @jackm1688.
  • Apple chat run recovery: restore active responses from canonical Gateway history after reconnects, foreground resumes, and event gaps, while preserving gateway user-turn identity across Codex and Copilot transcript mirrors to prevent duplicate rows. (#100277)
  • Claude CLI streamed replies: preserve assistant text already received from Claude CLI when its terminal result envelope is empty, preventing false empty-response failover after a complete streamed answer. (#90450) Thanks @totobusnello.
  • Phone identity normalization: canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467) Thanks @morluto.
  • Tlon scry response bounds: cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376) Thanks @hugenshen.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Agent tool-call decoding: preserve surrogate-range numeric HTML entities as literal text while still decoding valid supplementary-plane values, preventing malformed model output from injecting lone UTF-16 surrogates into tool arguments. (#99564) Thanks @mikasa0818, @vincentkoc, @shakkernerd, and @maweibin.
  • Gateway event dispatch: catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401) Thanks @cxbAsDev.
  • Ollama fallback routing: classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482) Thanks @TurboTheTurtle, @8kfcf95jvp-oss, and @vincentkoc.
  • Diffs rendering: render viewer and image output from one SSR preload, preserve language-pack highlighting through hydration, normalize language hints case-insensitively, skip identical before/after inputs with an explicit changed result, report truthful file-render and input errors, cache hash-pinned viewer runtimes, and prefer canonical file settings over stale aliases. (#100487) Thanks @vincentkoc.
  • Remote browser reliability: bound persistent Playwright tab enumeration by the existing remote CDP timeout budget and retire timed-out connection attempts so late completions cannot restore a stuck connection. (#80147, #58968) Thanks @HemantSudarshan and @KeaneYan.
  • Browser attachment downloads: return managed URL, filename, and path metadata when direct Playwright navigation starts an attachment download, while validating final URLs before saving bytes and preserving single-owner explicit downloads. (#48045, #89416) Thanks @zhangguiping-xydt and @roinou532.
  • Browser action downloads: return managed URL, filename, and path metadata when agent actions trigger downloads, while preserving explicit ownership, validating final URLs before saving bytes, and quarantining policy-denied tabs without closing them. (#93250, #93307) Thanks @sunlit-deng and @scorpiord.
  • Managed browser cookie persistence: initialize new isolated macOS headless profiles with a non-interactive encryption key while preserving existing profile keys, and close Chromium through CDP before bounded signal fallback so persistent logins survive graceful browser and Gateway restarts. (#96704, #98284) Thanks @TurboTheTurtle and @shakkernerd.
  • MCP OAuth response bounds: reject body-less foreign error bodies without calling their inherently unbounded text() fallback, while preserving HTTP status and headers for safe SDK diagnostics. (#98143) Thanks @Pick-cat, @wangmiao0668000666, and @vincentkoc.
  • Tlon image upload bounds: cap remote image fetches before upload and fail closed on oversized or stalled responses instead of buffering them without a limit. (#100374) Thanks @hugenshen.
  • Control UI approval prompts: keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394) Thanks @haruaiclone-droid.
  • macOS service SecretRefs: preserve generated env-file values for SecretRefs that remain in config when stale Gateway LaunchAgents are repaired or reinstalled without those variables in the invoking shell. (#99124) Thanks @mushuiyu886 and @1Wanker.
  • Anthropic OAuth callbacks: keep the provider-required localhost redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917) Thanks @xialonglee, @riazrahaman, and @vincentkoc.
  • Prompt-release media delivery: accept active-leaf-preserving side appends while an embedded run temporarily releases its session lock, so successive message-tool media replies merge without a false session-takeover failure. (#100490) Thanks @scotthuang and @vincentkoc.
  • Control UI Skills filters: align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526) Thanks @evan-YM and @vincentkoc.
  • Control UI completed-run state: bind active and completed updates to run identities so stale completions keep Send available while newer runs remain active. (#100527) Thanks @tiffanychum, @davidstoll, and @shakkernerd.
  • Control UI context usage: keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772) Thanks @bladin and @snsczssl.
  • Control UI file previews: remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528) Thanks @xianshishan and @vincentkoc.
  • Control UI autonomous tool failures: preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514) Thanks @qingminglong and @yetval.
  • Agent empty replies: surface a visible failure when a completed interactive turn has no deliverable reply, including queued follow-ups, while preserving explicit silence, pending continuations, and committed side effects, honoring queued send policies, and treating compaction notices as progress. (#100456) Thanks @mushuiyu886 and @grox2012.
  • Subprocess, maintenance, and output hardening: keep child output failures from crashing exec and TUI sessions, isolate remote skill refresh and subagent sweeps, surface skill-scan and approval diagnostics, sanitize ANSI and stray parameter markup without losing visible text, and stop Android audio capture cleanly on device loss. (#100440) Thanks @cxbAsDev, @wendy-chsy, @tzy-17, @nankingjing, @NianJiuZst, @LavyaTandel, and @maweibin.
  • Docker sandbox command output: fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523) Thanks @cxbAsDev and @vincentkoc.
  • Android push-to-talk lifecycle: serialize gateway PTT preparation with app foreground and Manual Mic ownership so delayed work cannot restart, replace, or tear down a newer capture. (#100552) Thanks @xialonglee.
  • Lean local-model tools: trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881) Thanks @vincentkoc.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197)
  • iOS QR gateway handoff: stop VisionKit before delivering scanned setup codes, and keep deferred auth, approval, Watch, and foreground-node work bound to its originating gateway across reconnects. (#99572) Thanks @PollyBot13.
  • Agent terminal failures: surface a safe interactive reply when an agent run ends without visible output, while preserving completed message-tool delivery and heartbeat-specific guidance. (#99304) Thanks @moeedahmed and @maweibin.
  • MCP loopback tool results: preserve schema-valid text, image, and embedded-resource content through HTTP tool calls while rendering malformed or protocol-incompatible blocks as safe text. (#100336) Thanks @tzy-17, @OpenClawKobian99, @vincentkoc, @shakkernerd, and @maweibin.
  • Control UI tool-result images: render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295) Thanks @lzyyzznl, @Pandah97, @rquinones84, and @maweibin.
  • Control UI live tool ordering: keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184) Thanks @Pick-cat and @lileilei-camera.
  • IRC Unicode messages: split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572) Thanks @WeeLi-009, @vincentkoc, @mushuiyu886, and @cursoragent.
  • OpenAI realtime voice greetings: prevent server VAD from creating a second outbound greeting while an explicit greeting response owns the turn, without disabling caller interruption. (#86285) Thanks @giodl73-repo and @jnikolaidis.
  • Realtime voice tools: filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175) Thanks @vincentkoc.
  • Discord voice status: treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969) Thanks @asock.
  • Discord voice accounts: isolate @discordjs/voice connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530) Thanks @geekhuashan.
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Reliability edge cases: reject sub-millisecond cron durations, preserve generated proposal newlines, normalize blank integer inputs and fail embedded LSP startup promptly, surface persistence and memory-close failures, keep UTF-16 and plugin package verification correct, propagate Android cancellation, and defer Codex relay registry writes until listening. (#100399) Thanks @cxbAsDev, @snotty, @lin-hongkuan, @849261680, @qingminglong, @anyech, @masatohoshino, @Simon-XYDT, @xialonglee, @nankingjing, @609NFT, and @vincentkoc.
  • Voice Call completed status: resolve finalized calls from the full retained event store across Gateway, tool, and CLI status paths while preserving active-call lookup performance. (#99797) Thanks @Darren2030, @NiTeCoMM-code, and @maweibin.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Message delivery status: report failed and partially failed best-effort channel delivery instead of returning a success-shaped message-tool result. (#99928) Thanks @masatohoshino.
  • WhatsApp credential recovery: restore malformed primary auth state from a valid backup during startup. (#99070) Thanks @LeonidasLux.
  • WhatsApp quoted replies: preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879) Thanks @Bartok9, @seikosantana, and @vincentkoc.
  • WhatsApp reconnect catch-up: admit recently missed Baileys append messages during a bounded reconnect window while preserving startup stale-history guards. (#80642) Thanks @VishalJ99.
  • WhatsApp restart recovery: stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511) Thanks @openperf and @rutherlesdev.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • Plugin module identity: keep OpenClaw package chunks on Node's native module graph when jiti transforms plugin entries, preventing duplicate evaluation and class identity drift. (#88384) Thanks @vincentkoc and @ScientificProgrammer.
  • Shell completion repair: generate core-only caches during doctor and update repair while preserving full plugin command completion for onboarding and explicit user rebuilds. (#76235) Thanks @joshavant.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Windows Scheduled Task recovery: keep clean early exits inside the existing bounded launch poll, falling back only when neither the task process nor Gateway listener becomes observable.
  • iMessage group warnings: suppress the false drop-all startup warning when an effective group sender allowlist can admit groups, and point true empty-allowlist configurations at the correct remedy. (#100046)
  • Control UI mobile login: keep Gateway recovery guidance visible after connection failures, make the disconnected gate scroll safely on constrained screens, and improve mobile keyboard and tap-target behavior. (#100208)
  • TUI streaming: render delta-only assistant events in live Gateway and embedded TUI sessions instead of waiting for the final response. (#83000) Thanks @flashosophy.
  • Model aliases: resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209) Thanks @sahilsatralkar, @david-r-jones, @shakkernerd, and @vincentkoc.
  • TUI new-session hooks: create /new sessions through the shared Gateway lifecycle so command and session hooks receive the completed parent transcript in both Gateway and embedded modes, while preventing rollover during an active turn. (#100241, #49918) Thanks @BingqingLyu, @caopulan, @LonExplorer-coder, and @vincentkoc.
  • TUI abort diagnostics: show sanitized tool argument-validation summaries for aborted runs in both Gateway and local TUI modes without exposing raw model arguments. (#91002) Thanks @wsyjh8 and @taerlandsen.
  • iOS Watch replies: persist queued quick replies in the gateway-scoped chat outbox and submit them through idempotent chat delivery, preventing losses, duplicates, and cross-gateway sends after reconnects. (#100372) Thanks @NianJiuZst.
  • iOS Gateway auth retry: restrict stored device-token retry to parsed loopback hosts and reject wildcard bind addresses, preventing remote lookalike hostnames from receiving trusted retry credentials. (#99859) Thanks @ly85206559 and @vincentkoc.
  • Bedrock Mantle discovery: bound model-catalog fetch time and response size, and release rejected response bodies so stalled, oversized, or failed provider responses fall back safely. (#99961) Thanks @zhangguiping-xydt and @shakkernerd.
  • Discord thread-title prompts: truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551) Thanks @Alix-007, @vincentkoc, @mushuiyu886, and @cursoragent.
  • Mobile pairing routes: advertise verified persistent Tailscale Serve fallbacks alongside gateway.bind=lan setup URLs, show every route in the Control UI and CLI, and let iOS save the first reachable endpoint. (#100280) Thanks @shakkernerd.
  • Control UI terminal tabs: vertically center the new-session button in the terminal tab strip.
  • Control UI composer scrollbar: show the message-field scrollbar only when the draft actually overflows its autosized height.
  • Control UI terminal cursor: hide the browser-native contenteditable caret so the integrated terminal shows only its canvas-rendered cursor.
  • macOS SSH tunnels: resolve user-installed SSH ProxyCommand helpers through the app's managed PATH while preserving inherited connection environment, so remote aliases work after Finder and sanitized-script launches.
  • Control UI OpenAI speed picker: show only Standard and Fast choices for OpenAI models.
  • Control UI terminal rendering: adopt the shared @openclaw/libterminal browser lifecycle and add Nerd Font fallbacks so icon-enabled shell listings render their glyphs when a compatible local font is installed.
  • Slack transcript history: let Codex app-server own its persisted assistant replies so Slack does not append redundant delivery-mirror rows, while the Control UI keeps legacy duplicate mirrors hidden. Thanks @bek91.
  • Control UI chat history: hide redundant channel-final delivery mirrors when the preceding app-server assistant reply already shows the same text.
  • Control UI chat spacing: keep the first message comfortably clear of the topbar with a responsive minimum transcript inset.
  • ClawRouter auth profiles: resolve credential-scoped catalog models during agent runs when the proxy key is stored in an auth profile, and document plugin and model allowlists.
  • Telegram durability: retry restart-dropped media, survive transient polling errors, dead-letter poison updates, preserve forwarded rich text, route plugin callbacks correctly, keep progress updates in one stable multi-line window, map self-hosted Bot API container paths through trusted host roots, and fall back safely when Telegram rejects rich final replies. (#98102, #98735, #98775, #98776, #97174, #98907, #91984, #98786) Thanks @luoyanglang, @DaveArcher18, @obviyus, @goldmar, @Marvinthebored, @Dizesales, @shakkernerd, @AiLucasdz, and @RomneyDa.
  • Cross-channel inbound media: preserve captions and expose unavailable-attachment notices when WhatsApp, LINE, Signal, iMessage, Microsoft Teams, Feishu, Mattermost, or Zalo cannot materialize inbound media, instead of dispatching phantom placeholders or dropping media-only turns. (#100092)
  • Agent and context reliability: preserve runtime overrides, steered subagent tasks, fallback tool-call hints, and legacy reseed attachments; soft-resume CLI sessions across prompt-only drift; improve harness-aware context estimation; time out silent local streams; recover mid-stream failures; and cap Gateway run-cache growth. (#92237, #77539, #99851, #99839, #99822, #97928, #98525, #95430, #77973) Thanks @sercada, @amittell, @obviyus, @liuhao1024, @yetval, @osolmaz, @lzyyzznl, @vincentkoc, @alexelgier, and @fede-kamel.
  • Provider and network safety: bound oversized or malformed responses across Moonshot, MiniMax, Anthropic OAuth, Discord, Matrix, SMS, browser, update, embeddings, Tlön, and Inworld paths. (#96502, #96322, #96644, #97693, #97662, #97999, #98455, #98508, #98554, #98496, #98660) Thanks @hugenshen, @cursoragent, @lsr911, @solodmd, @Alix-007, @wings1029, @lzyyzznl, @sunlit-deng, @vincentkoc, and @Pandah97.
  • Channel delivery and routing: keep Slack replies in active thread sessions, preserve account-bound delivery routes, apply response prefixes, and suppress internal traces and unwanted fallback replies. (#97168, #98240, #93639, #97989, #80928) Thanks @LiuwqGit, @gorkem2020, @yetval, @ZengWen-DT, @alexuser, @UnClouded77, and @vincentkoc.
  • Cron correctness: preserve provider and model selections on timeouts, retain startup catch-up deferrals across maintenance reads, keep action-required output, clear blank thinking overrides, and preserve provider-owned daily-reset sessions. (#95943, #94022, #96393, #96293, #98356) Thanks @ZengWen-DT, @cursoragent, @luke-renjoy, @RichChen01, @vincentkoc, @yetval, @snowzlmbot, @nz365guy, @takamasa-aiso, and @shakkernerd.
  • Memory and session recovery: detect unindexed transcripts, preserve notes through transient reads, avoid cross-directory resumes, disambiguate reserved wiki index pages, and skip empty QMD sync work. (#97857, #98360, #97785, #94326, #90030) Thanks @zw-xysk, @CHE10X, @qingminglong, @yetval, @vincentkoc, @sahibzada-allahyar, and @ruben2000de.
  • Windows and execution: bind allowlisted execution to the validated Windows path, propagate PATHEXT, normalize inbound paths case-insensitively, and prevent cleanup crashes on Windows. (#98260, #98093, #97630, #97901) Thanks @eleqtrizit, @wendy-chsy, @VectorPeak, @paulcam206, and @shakkernerd.
  • Mobile and UI stability: preserve iOS chat line breaks and final replies, improve Android pairing and TLS recovery, hide expired pairing cards, keep workspace file rails scrollable, restore copy-path over plain HTTP, and stop rubber-band scrolling in the Mac app Control UI. (#98304, #98117, #98366, #98439, #98483, #98049, #98646, #98611, #98764, #99830) Thanks @joshavant, @Jabato01, @ooiuuii, @wuqxuan, @645648406-max, @zw-xysk, @ZengWen-DT, and @adinballew.
  • Codex and approval flows: report ChatGPT authentication correctly, rename destructive approval mode to ask, classify get_goal read statuses accurately, and derive terminal-idle timeouts from the explicit run deadline. (#91240, #98501, #98659, #85296) Thanks @849261680, @ukstem, @kevinslin, @yetval, @alkor200, @vincentkoc, and @alkor2000.
  • Configuration and plugin health: restrict config traversal to owned properties, preserve config-health recovery state, surface unloadable channel plugins, preserve defaulted provider base URLs during patches, validate bundled plugin updates by manifest contract, resolve public artifacts from installed plugin roots, and retain legacy ClawHub families where required. (#99846, #99728, #96397, #98396, #98010, #98819, #98249) Thanks @vincentkoc, @zenglingbiao, @joshavant, @jalehman, @ccbridle, @849261680, @momothemage, @weltmaister, @LiLan0125, @herove, @amknight, @KelTech-Services, and @Patrick-Erichsen.
  • Runtime process safety: prevent unhandled child-stream errors in SSH tunnels, supervisors, and MCP stdio transports; keep auto-replies from waiting on transcript mirroring; and avoid splitting Unicode characters in approval previews and LINE outbound fields. (#99800, #99802, #99803, #99549, #99566, #98994) Thanks @cxbAsDev, @vincentkoc, @Shagrat2, @mikasa0818, and @LEXES7.
  • Node runtime compatibility: installers, the CLI launcher, doctor, and the macOS app now reject incompatible Node 23 runtimes and guide users toward supported Node 22 or 24 releases. (#99832) Thanks @vincentkoc and @fuller-stack-dev.
  • QQBot media delivery: scope sandbox-generated media sends to the active session's workspace so /workspace/... and relative generated-file paths resolve safely across QQBot media tags, structured payloads, and streaming delivery. (#92872) Thanks @zhangguiping-xydt and @sliverp.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.1-beta.2
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.1-beta.2.tgz
  • integrity: sha512-KYPBQnAfEb/9qrxlw/96a90mMQeKdAZdUABMROOue9Ph2oFbnDGezZjd5Bmw4WhRyzgyvHOHqHje/swGipC4xA==
  • release SHA: a580a7fe3fbd1b3329c978d58ca2f70e8ca37aee
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.1-beta.2/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/28735224348
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/28717730132
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/28717729503
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/28735371120
  • plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/28735371597
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/28735575588
  • npm Telegram beta E2E: not supplied
v2026.7.1-beta.1 pre BREAKING [Jul 2, 2026] details → github →

# openclaw 2026.7.1-beta.1

2026.7.1

Highlights

  • New models and providers: add Featherless, Claude Sonnet 5 and Mythos 5, Meta Muse Spark 1.1, and ClawRouter; make GPT-5.6 the new-setup default with /think ultra for Sol and Terra plus max for Luna, honor Z.AI max, and refresh model availability after OAuth renewal. (#101092, #98254, #101238, #102873, #103070, #103163, #99658, #99759, #98333, #103581, #98021, #104778, #102289) Thanks @vincentkoc, @vortexopenclaw, @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, @steipete-oai, @bdjben, @obviyus, @sallyom, @anyech, @100yenadmin, and @fuller-stack-dev.
  • Control UI and native macOS chat: make sessions primary with a minimal searchable sidebar, compact context ring, reasoning-effort slider, cleaner dashboard chrome, and a native macOS session browser with model and thinking pickers, slash commands, transcript export, and context usage. (#99289, #99838, #100386, #101103, #101497)
  • Conversational onboarding: Crestodian now runs a real agent-loop setup across the CLI, web install, and macOS app, with AI-guided provider setup, model-judged approvals bound to exact operations, masked credential prompts, and deterministic fallback when no model is available. (#99935, #100029, #100656, #101887) Thanks @fuller-stack-dev.
  • Offline and spoken mobile chat: iOS and Android now pre-paint bounded per-gateway session and transcript caches offline; Apple Watch gains full voice turns, and iOS can speak replies through configured Gateway TTS with on-device fallback. (#100219, #100227, #100283, #100770, #100771)
  • Session organization and generated titles: generate concise session titles through utility-model routing and add Gateway-backed groups, unread state, rename, fork, archive, and delete controls, plus group management across web, iOS, and Android. (#87643, #100814, #101117, #101234) Thanks @zhangguiping-xydt and @Juliangsm.
  • Telegram and Codex continuity: pair Codex through private /login, steer active runs with /steer and /tell, preserve messages when transcript acknowledgement is missing, adopt durable turns safely, and recover final sends across Telegram formatting and flood-wait failures. (#98006, #98126, #98786, #103664, #103916) Thanks @100yenadmin, @Kyzcreig, @obviyus, and @jalehman.
  • Startup and upgrade recovery: run container migrations before Gateway readiness, stop recoverable legacy state from blocking startup, and enter control-plane-safe mode after repeated unclean boots instead of restart flapping. (#101881, #104529) Fixes #98565 Thanks @sallyom, @jacobtomlinson, @bdjben, @obviyus, and @shakkernerd.

Changes

  • Meta provider: add bundled muse-spark-1.1 Responses API support with streaming, tool calls, encrypted reasoning replay, onboarding, exact-model live validation, and standalone npm/ClawHub distribution as @openclaw/meta-provider. (#102873, #103070, #103163) Thanks @HamidShojanazeri, @davemorin, @Solvely-Colin, @jalehman, and @vincentkoc.
  • Android chat agent selector: switch the active agent directly from the live chat screen while keeping chat, Talk mode, and home canvas on the same canonical session. (#80422) Thanks @bcperry and @joshavant.
  • Gateway host status: show the connected Gateway's host, network address, OS, runtime, uptime, CPU, memory, and disk details in Control UI Settings. (#100478)
  • Gateway crash-loop recovery: persist boot outcomes, enter control-plane-safe mode after repeated unclean starts, hold transport and provider activation until recovery, and exit with EX_CONFIG for fatal configuration errors so systemd and launchd stop restart flapping. Thanks @obviyus.
  • iOS offline chat: pre-paint recent sessions and canonical transcripts from a protected, bounded per-gateway cache, keep sending disabled offline, and purge cached conversation text when pairing is reset. (#100219)
  • Slack progress indicators: use Slack's native assistant thread status and rotating loading messages by default while keeping acknowledgement reactions static; lifecycle reaction updates now require messages.statusReactions.enabled: true.
  • Control UI Talk controls: keep voice, model, sensitivity, and other realtime defaults in Settings → Communications → Talk, and use the composer microphone caret to select any browser audio input. (#101046)
  • Cron model selection: choose an agent-turn model in Control UI Quick Create and show configured or default models in cron job rows and details. (#95341) Thanks @ly85206559.
  • Control UI GitHub previews: show issue and pull request state, title, author, activity, comments, and change statistics in hover and keyboard-focus cards. (#100434)
  • Logbook work journal: add a disabled-by-default bundled plugin that turns paired-node screen snapshots into a private timeline, daily standup, and timeline-grounded Q&A in a plugin-contributed Control UI tab. (#99930)
  • Control UI message context: reveal per-message token, context, and model details from the timestamp on hover or activation instead of showing a separate Context button.
  • Control UI session titles: reveal truncated recent-session names with a reduced-motion-safe hover animation.
  • Control UI sidebar navigation: show a small customizable pinned destination set, keep the remaining pages under More, move Settings to the footer, and persist sidebar customization in the browser. (#100296) Thanks @vincentkoc.
  • Control UI sidebar usage: remove the provider usage quota row from the expanded sidebar while keeping usage details available in the chat composer and Usage page. Thanks @shakkernerd.
  • Android chat code highlighting: render fenced Kotlin, Swift, TypeScript, JavaScript, Python, Bash, and JSON blocks with bounded, theme-aware syntax colors while preserving plain rendering for unknown, partial, or oversized blocks. (#100217)
  • Gateway TTS playback: add an operator-scoped tts.speak RPC that returns configured-provider speech as inline whole-clip audio for remote clients. (#100770)
  • Control UI context usage: show context-window progress, latest-run input/output tokens, and the active model when the chat context ring is opened.
  • Apple Watch voice turns: dictate a message from the Watch chat and hear the new OpenClaw reply spoken on the Watch, with explicit silent-message and stop-speaking controls. (#100224) Thanks @vincentkoc.
  • Conversational onboarding: add a real agent-loop Crestodian setup flow across the CLI, Gateway, web install, and macOS app, with typed operations, exact approval binding, masked credential prompts, isolated session transcripts, and safe handoff to the normal agent. Thanks @vincentkoc.
  • Generated session titles: name new Control UI sessions from their first message, and add default/per-agent utilityModel routing for lower-cost session, topic, and thread title generation. Thanks @Juliangsm, @zhangguiping-xydt, and @vincentkoc.
  • ClawRouter routing and quotas: add the bundled ClawRouter provider plugin with credential-scoped dynamic model discovery, OpenAI-compatible and native Anthropic/Gemini transports, and managed budget reporting across OpenClaw usage surfaces. (#99658)
  • Model and provider coverage: add GPT-5.6 support, use Nemotron Super's 1M context window, and preserve explicit OpenRouter authentication headers. (#98333, #98726, #98187) Thanks @steipete-oai, @eleqtrizit, @sunlit-deng, @laurencebrown, and @shakkernerd.
  • CLI and node workflows: add openclaw attach, node context-path support, actionable device-approval recovery guidance, soft-resume CLI sessions when prompt metadata changes, and clearer plugin install exit diagnostics. (#96454, #97679, #98115, #98146, #98497, #99822) Thanks @anagnorisis2peripeteia, @obviyus, @wm0018, @welfo-beo, @RomneyDa, @Sanjays2402, and @vincentkoc.
  • Cron and usage: add exit-triggered schedules, detached session-targeted runs, and an in-flight job doctor warning, while making the existing usage footer easier to wrap on Telegram. (#92037, #98755, #98620, #92877) Thanks @anagnorisis2peripeteia, @obviyus, @EthanSK, @masatohoshino, @Marvinthebored, and @vincentkoc.
  • Native apps and localization: modernize iOS presentation, Chat, Talk, onboarding, and reconnect flows; add Gateway speech providers; improve QR onboarding and protocol recovery; install the local Gateway from macOS; localize core Apple and Android surfaces; and add Swedish mobile localization. (#98452, #98736, #99243, #98376, #98302, #98385, #99767, #97110, #97111, #97112, #97113, #98043) Thanks @jcooley8, @Tony-ooo, @joelnishanth, @cursoragent, @joshavant, @vincentkoc, and @yeager.
  • Messaging capabilities: add native iMessage polls, Telegram Codex pairing and steering, Telegram multi-lane progress summaries, and Signal target aliases. (#98421, #98006, #98126, #98907, #95738) Thanks @omarshahine, @lobster, @100yenadmin, @Kyzcreig, @Marvinthebored, and @jesse-merhi.
  • Local inference and chat controls: auto-discover Ollama inference nodes, add Control UI session-first navigation, reasoning controls, and command picking, and keep OpenClaw control tools available when deferred tool search selects the wrong tool family. (#99234, #99289, #99426, #99838, #99561) Thanks @100yenadmin, @joshavant, @VicZhang6, @Solvely-Colin, and @vincentkoc.
  • Doctor and diagnostics: expose auth-profile, workspace, device-pairing, channel-plugin, memory-provider, systemd exhaustion, and Windows LAN firewall findings. (#97125, #97358, #97366, #97496, #97968, #98291, #98666) Thanks @giodl73-repo, @masatohoshino, and @joshavant.
  • Policy repair previews: show review-required Gateway bind and denied node-command changes during doctor --fix without applying them or counting the findings as repaired. (#99776) Thanks @giodl73-repo.
  • Conversation and review controls: prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348) Thanks @hxy91819.

Fixes

  • Codex runtime switching: accept the bundled Codex runtime for both codex/ and openai/ model routes while keeping unsupported provider/runtime pairs rejected. (#103762)
  • LM Studio and xAI repaired tool calls: emit the terminal tool-call event before completion when promoting serialized plain-text tool calls, preserving the complete streaming lifecycle for consumers.
  • Browser actions on Node 24: keep browser request cancellation bound to the client and response lifetime instead of Node 24.16+'s prematurely aborted body-stream signal, preventing valid POST actions from failing after JSON parsing. Thanks @obviyus and @vincentkoc.
  • SecretRef model credentials: keep resolved provider secrets behind process-local sentinels through auth storage, stream setup, SDK configuration, and managed local-provider probing, then inject plaintext only at the final network or provider-plugin boundary while retaining exact-value log redaction. (#102008, #102009)
  • Telegram token redaction: redact bot tokens even when log transports split them across chunks, preventing fragmented credentials from escaping structured and streamed logs. (#103861) Thanks @vincentkoc.
  • Telegram durable turn adoption: complete spooled updates only after durable agent adoption, detach adopted turns from the ingress reply fence, and suppress superseded replies so recovery cannot leak stale or duplicate responses. (#103664, #103952, #103965) Thanks @obviyus and @vincentkoc.
  • Task delivery recovery: normalize legacy delivery statuses while restoring task records so older queued work becomes runnable instead of aborting registry recovery. (#103946) Fixes #103168 Thanks @bek91, @theo674, and @obviyus.
  • Diagnostics provider evidence: emit one deduplicated provider.request timeline event for every completed or failed model call, so opt-in timelines can prove real provider traffic without double-counting terminal paths. Fixes #103063 Thanks @vincentkoc.
  • Lean local model shell access: keep exec directly visible beside the default structured Tool Search controls so coding-tuned local models can use their shell fallback instead of searching for missing domain tools. (#101607) Thanks @vincentkoc and @maweibin.
  • OAuth refresh contention diagnostics: keep local lock paths out of user-facing refresh failures and avoid duplicate failure prefixes while preserving structured provider and profile classification. (#101573) Thanks @vincentkoc.
  • Exec approval prompts: keep background-disabled fallback warnings out of pending gateway/node approvals and show them only after a command actually runs in the foreground. (#101561) Thanks @vincentkoc.
  • Direct poll delivery: route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950) Thanks @NianJiuZst and @shakkernerd.
  • Agent wait hard-timeout snapshots: preserve canonical hard-timeout phase and timestamps when the outer agent.wait timer wins the retry-grace race, while leaving queue, draining, and restart-cancelled waits correctable. (#89367) Thanks @Pick-cat and @sunnydongbo.
  • Control UI typed approvals: send /approve commands immediately through the authorized Gateway command path while an agent run is blocked instead of queueing the command behind that run. (#101532) Thanks @vincentkoc.
  • Microsoft Teams Graph response bounds: cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784) Thanks @Alix-007.
  • Packaged speech runtime: stop treating package-backed speech-core as a bundled plugin sidecar, restoring TTS startup in npm installs while release checks keep true activation-bypassing facades package-complete. (#89899, #89425) Thanks @zhangguiping-xydt, @ant1b0t, and @vincentkoc.
  • Container image upgrades: run versioned state migrations and plugin convergence before Gateway readiness when reusing mounted state, failing closed with doctor --fix recovery guidance instead of serving half-upgraded state. (#101881) Fixes #98565 Thanks @sallyom, @jacobtomlinson, and @shakkernerd.
  • Plugin update reliability: preserve plugins successfully switched through ClawHub during core updates instead of processing them a second time and disabling them after a redundant transient failure. (#105405) Thanks @vincentkoc.
  • Codex app-server protocol: require app-server 0.143 or newer, remove pre-0.142 wire-shape compatibility, migrate retired on-failure approval settings to on-request in Codex configuration and saved bindings, teach Codex to retrieve deferred native spawnagent through toolsearch so native subagent task mirroring works on search-capable models, and update the managed runtime to 0.144.1 for code-mode host installation and missing-host fallback reliability. Thanks @vincentkoc.
  • Android hardware keyboard chat: send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239) Thanks @3ninyt3nin-creator and @vincentkoc.
  • CJK Markdown emphasis: render adjacent Chinese, Japanese, and Korean emphasis punctuation through the shared Markdown pipeline instead of leaking literal markers across channels. (#101230, #101120) Thanks @nicknmorty and @j08577600-jpg.
  • Backup retry cleanup: close partial archive output handles and isolate each retry path after live-write failures, preventing Windows EBUSY locks from cascading across attempts or leaving stale temp archives. (#101449, #101464) Thanks @ZOOWH, @LiLan0125, @vincentkoc, @aniruddhaadak80, @shakkernerd, and @obviyus.
  • Codex yielded native subagents: keep the parent app-server subscription and shared client alive until yielded native subagent completion delivery settles, preventing lost wakeups and leaked one-shot cleanup. Thanks @vincentkoc.
  • Delivery recovery pacing: pace eligible outbound and restart-continuation replays after gateway startup so outage backlogs do not burst into channel rate limits, while preserving the wall-clock recovery budget. (#101118, #101058) Thanks @ZengWen-DT, @aniruddhaadak80, and @vincentkoc.
  • Outbound pre-connect recovery: clear stale platform-send evidence atomically when a connect or DNS failure proves no request was sent, allowing queued Discord and other channel messages to replay after connectivity returns without weakening the unknown-send duplicate guard. (#101024, #100979) Thanks @SunnyShu0925 and @tiffanychum.
  • Discord streamed finals: send completion replies as fresh messages so inactive channels become unread, while preserving targeted mentions without escalating @everyone or @here. (#99711, #99662) Thanks @davelutztx and @xena68.
  • OpenAI-compatible SSE parsing: recognize event streams mislabeled as JSON without prepending a second data: prefix, preserving valid streamed responses from non-conforming providers. (#96503) Thanks @ZengWen-DT and @54meteor.
  • Meta Model API contract: use the current Meta endpoint and output-token field so muse-spark-1.1 validation and live requests match the provider contract. (#103680) Fixes #103667 Thanks @vincentkoc, @HamidShojanazeri, @davemorin, @Solvely-Colin, and @jalehman.
  • LM Studio embedding preload: honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750) Thanks @zak-li, @ZOOWH, and @hxz398.
  • Provider overload messaging: keep rate-limited responses classified for retry and fallback behavior while using overload wording when the provider supplies no explicit retry detail. (#98165) Thanks @SunnyShu0925.
  • Microsoft Teams attachment metadata: bound Bot Framework attachmentInfo JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125) Thanks @ly85206559.
  • Agent auth copy order: preserve the source agent's portable auth-profile precedence when copying credentials to a new agent while excluding skipped profiles and transient auth state. (#100833) Thanks @machine3at.
  • Memory session repair: keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so memory status --fix preserves healthy daily state. (#93389) Thanks @Alix-007 and @vincentkoc.
  • Remote browser CDP policy: allow the configured CDP control host through an existing hostname allowlist without widening page navigation policy, while keeping strict-policy discovery bound to the configured control authority. (#100986, #100819) Thanks @NianJiuZst, @SarinV, and @vincentkoc.
  • Config unset diagnostics: explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557) Thanks @moeghashim.
  • Crestodian command probes: contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741) Thanks @lsr911.
  • Feishu mention forwarding: fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891) Thanks @zhangguiping-xydt.
  • Cron edit delivery: preserve each job's implicit delivery mode when applying partial delivery updates, so disabling best-effort delivery no longer turns detached job announcements off. (#100846) Thanks @machine3at and @vincentkoc.
  • Control UI session creation: keep newly created sessions at the front of the stable sidebar order after selecting another session. Thanks @shakkernerd.
  • Control UI file previews: keep large Skill Workshop files responsive with cached, offscreen-contained text chunks while preserving wrapped content, stable file switching, full-file copy, and clean focus behavior. (#101319) Thanks @xianshishan, @shakkernerd, and @vincentkoc.
  • FTS-only memory startup: skip plugin capability discovery when memorySearch.provider is explicitly none, avoiding an unnecessary cold-start scan.
  • Control UI agent model labels: show each selected agent's effective model in the Default picker option instead of the global model. (#100719, #77440) Thanks @hyspacex and @jwong-art.
  • Control UI inbound image previews: render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591) Thanks @sweetcornna, @vergissberlin, and @shakkernerd.
  • Small-context compaction: cap the effective reserve against the known model context window so small local models do not enter compaction from the first token. (#100621) Thanks @vincentkoc.
  • Detail-less provider failures: keep opaque upstream failures from cooling API-key auth profiles while preserving WHAM-backed OpenAI OAuth health checks and configured model fallback. (#100617) Thanks @fabasi, @fengjikui, and @vincentkoc.
  • Plugin install diagnostics: suppress the misleading hook-pack fallback after plugin install failures only when the hook manifest is absent, while preserving actionable malformed hook-pack errors. (#100554) Thanks @vincentkoc and @obviyus.
  • Config validation diagnostics: emit each unchanged sanitized validation-warning payload once per config path, reset deduplication after a clean validation, and preserve the warning fingerprint across transient invalid reads and failed refreshes. (#100569, #25574) Thanks @vincentkoc and @mcaxtr.
  • Config size-drop guard: compare writes against canonical bytes for parseable object configs instead of raw BOM and indentation overhead, while preserving raw audit telemetry and the conservative malformed-input fallback. (#100591, #71865) Thanks @vincentkoc and @balric-seo.
  • Control UI coalesced updates: show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082) Thanks @goutamadwant and @motacola.
  • Control UI connection errors: preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758) Thanks @ruanrrn.
  • iOS embedded terminal: open the terminal-only Control surface directly while native Gateway authentication connects instead of exposing the Web UI login screen.
  • TUI startup status: show starting up during post-connect initialization without overwriting active-run or reconnect state. (#93999) Thanks @ml12580 and @sanjarcode.
  • Control UI restart recovery: recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111) Thanks @ZengWen-DT and @ITOrity.
  • TUI active Gateway ports: follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461) Thanks @haishmg, @vincentkoc, and @jackm1688.
  • Apple chat run recovery: restore active responses from canonical Gateway history after reconnects, foreground resumes, and event gaps, while preserving gateway user-turn identity across Codex and Copilot transcript mirrors to prevent duplicate rows. (#100277)
  • Claude CLI streamed replies: preserve assistant text already received from Claude CLI when its terminal result envelope is empty, preventing false empty-response failover after a complete streamed answer. (#90450) Thanks @totobusnello.
  • Phone identity normalization: canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467) Thanks @morluto.
  • Tlon scry response bounds: cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376) Thanks @hugenshen.
  • Source build portability: keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory. Thanks @vincentkoc.
  • Agent tool-call decoding: preserve surrogate-range numeric HTML entities as literal text while still decoding valid supplementary-plane values, preventing malformed model output from injecting lone UTF-16 surrogates into tool arguments. (#99564) Thanks @mikasa0818, @vincentkoc, @shakkernerd, and @maweibin.
  • Gateway event dispatch: catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401) Thanks @cxbAsDev.
  • Ollama fallback routing: classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482) Thanks @TurboTheTurtle, @8kfcf95jvp-oss, and @vincentkoc.
  • Diffs rendering: render viewer and image output from one SSR preload, preserve language-pack highlighting through hydration, normalize language hints case-insensitively, skip identical before/after inputs with an explicit changed result, report truthful file-render and input errors, cache hash-pinned viewer runtimes, and prefer canonical file settings over stale aliases. (#100487) Thanks @vincentkoc.
  • Remote browser reliability: bound persistent Playwright tab enumeration by the existing remote CDP timeout budget and retire timed-out connection attempts so late completions cannot restore a stuck connection. (#80147, #58968) Thanks @HemantSudarshan and @KeaneYan.
  • Browser attachment downloads: return managed URL, filename, and path metadata when direct Playwright navigation starts an attachment download, while validating final URLs before saving bytes and preserving single-owner explicit downloads. (#48045, #89416) Thanks @zhangguiping-xydt and @roinou532.
  • Browser action downloads: return managed URL, filename, and path metadata when agent actions trigger downloads, while preserving explicit ownership, validating final URLs before saving bytes, and quarantining policy-denied tabs without closing them. (#93250, #93307) Thanks @sunlit-deng and @scorpiord.
  • Managed browser cookie persistence: initialize new isolated macOS headless profiles with a non-interactive encryption key while preserving existing profile keys, and close Chromium through CDP before bounded signal fallback so persistent logins survive graceful browser and Gateway restarts. (#96704, #98284) Thanks @TurboTheTurtle and @shakkernerd.
  • MCP OAuth response bounds: reject body-less foreign error bodies without calling their inherently unbounded text() fallback, while preserving HTTP status and headers for safe SDK diagnostics. (#98143) Thanks @Pick-cat, @wangmiao0668000666, and @vincentkoc.
  • Tlon image upload bounds: cap remote image fetches before upload and fail closed on oversized or stalled responses instead of buffering them without a limit. (#100374) Thanks @hugenshen.
  • Control UI approval prompts: keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394) Thanks @haruaiclone-droid.
  • macOS service SecretRefs: preserve generated env-file values for SecretRefs that remain in config when stale Gateway LaunchAgents are repaired or reinstalled without those variables in the invoking shell. (#99124) Thanks @mushuiyu886 and @1Wanker.
  • Anthropic OAuth callbacks: keep the provider-required localhost redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917) Thanks @xialonglee, @riazrahaman, and @vincentkoc.
  • Prompt-release media delivery: accept active-leaf-preserving side appends while an embedded run temporarily releases its session lock, so successive message-tool media replies merge without a false session-takeover failure. (#100490) Thanks @scotthuang and @vincentkoc.
  • Control UI Skills filters: align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526) Thanks @evan-YM and @vincentkoc.
  • Control UI completed-run state: bind active and completed updates to run identities so stale completions keep Send available while newer runs remain active. (#100527) Thanks @tiffanychum, @davidstoll, and @shakkernerd.
  • Control UI context usage: keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772) Thanks @bladin and @snsczssl.
  • Control UI file previews: remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528) Thanks @xianshishan and @vincentkoc.
  • Control UI autonomous tool failures: preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514) Thanks @qingminglong and @yetval.
  • Agent empty replies: surface a visible failure when a completed interactive turn has no deliverable reply, including queued follow-ups, while preserving explicit silence, pending continuations, and committed side effects, honoring queued send policies, and treating compaction notices as progress. (#100456) Thanks @mushuiyu886 and @grox2012.
  • Subprocess, maintenance, and output hardening: keep child output failures from crashing exec and TUI sessions, isolate remote skill refresh and subagent sweeps, surface skill-scan and approval diagnostics, sanitize ANSI and stray parameter markup without losing visible text, and stop Android audio capture cleanly on device loss. (#100440) Thanks @cxbAsDev, @wendy-chsy, @tzy-17, @nankingjing, @NianJiuZst, @LavyaTandel, and @maweibin.
  • Docker sandbox command output: fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523) Thanks @cxbAsDev and @vincentkoc.
  • Android push-to-talk lifecycle: serialize gateway PTT preparation with app foreground and Manual Mic ownership so delayed work cannot restart, replace, or tear down a newer capture. (#100552) Thanks @xialonglee.
  • Lean local-model tools: trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881) Thanks @vincentkoc.
  • iOS development app identity: keep the development app labeled OpenClaw while using its distinct debug icon to differentiate it from release builds.
  • Android chat recovery: preserve optimistic user messages and locally owned runs while reconnect and sequence-gap history snapshots catch up, preventing sent messages from disappearing or stale runs from taking ownership. (#100197)
  • iOS QR gateway handoff: stop VisionKit before delivering scanned setup codes, and keep deferred auth, approval, Watch, and foreground-node work bound to its originating gateway across reconnects. (#99572) Thanks @PollyBot13.
  • Agent terminal failures: surface a safe interactive reply when an agent run ends without visible output, while preserving completed message-tool delivery and heartbeat-specific guidance. (#99304) Thanks @moeedahmed and @maweibin.
  • MCP loopback tool results: preserve schema-valid text, image, and embedded-resource content through HTTP tool calls while rendering malformed or protocol-incompatible blocks as safe text. (#100336) Thanks @tzy-17, @OpenClawKobian99, @vincentkoc, @shakkernerd, and @maweibin.
  • Control UI tool-result images: render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295) Thanks @lzyyzznl, @Pandah97, @rquinones84, and @maweibin.
  • Control UI live tool ordering: keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184) Thanks @Pick-cat and @lileilei-camera.
  • IRC Unicode messages: split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572) Thanks @WeeLi-009, @vincentkoc, @mushuiyu886, and @cursoragent.
  • OpenAI realtime voice greetings: prevent server VAD from creating a second outbound greeting while an explicit greeting response owns the turn, without disabling caller interruption. (#86285) Thanks @giodl73-repo and @jnikolaidis.
  • Realtime voice tools: filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175) Thanks @vincentkoc.
  • Discord voice status: treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969) Thanks @asock.
  • Discord voice accounts: isolate @discordjs/voice connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530) Thanks @geekhuashan.
  • iOS Voice Wake cleanup: avoid initializing the microphone audio pipeline while disabling inactive Voice Wake, preventing simulator launch aborts and unnecessary audio setup.
  • Reliability edge cases: reject sub-millisecond cron durations, preserve generated proposal newlines, normalize blank integer inputs and fail embedded LSP startup promptly, surface persistence and memory-close failures, keep UTF-16 and plugin package verification correct, propagate Android cancellation, and defer Codex relay registry writes until listening. (#100399) Thanks @cxbAsDev, @snotty, @lin-hongkuan, @849261680, @qingminglong, @anyech, @masatohoshino, @Simon-XYDT, @xialonglee, @nankingjing, @609NFT, and @vincentkoc.
  • Voice Call completed status: resolve finalized calls from the full retained event store across Gateway, tool, and CLI status paths while preserving active-call lookup performance. (#99797) Thanks @Darren2030, @NiTeCoMM-code, and @maweibin.
  • Agent stop recovery: prevent late-aborting prompts from reacquiring orphaned session locks after teardown, so /stop leaves the conversation ready for the next turn.
  • Message delivery status: report failed and partially failed best-effort channel delivery instead of returning a success-shaped message-tool result. (#99928) Thanks @masatohoshino.
  • WhatsApp credential recovery: restore malformed primary auth state from a valid backup during startup. (#99070) Thanks @LeonidasLux.
  • WhatsApp quoted replies: preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879) Thanks @Bartok9, @seikosantana, and @vincentkoc.
  • WhatsApp reconnect catch-up: admit recently missed Baileys append messages during a bounded reconnect window while preserving startup stale-history guards. (#80642) Thanks @VishalJ99.
  • WhatsApp restart recovery: stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511) Thanks @openperf and @rutherlesdev.
  • Local Gateway CLI auth: keep loopback CLI token/password calls off durable device scopes so read probes cannot block later write/admin commands behind a stale pairing baseline. (#95997) Thanks @vincentkoc.
  • Plugin module identity: keep OpenClaw package chunks on Node's native module graph when jiti transforms plugin entries, preventing duplicate evaluation and class identity drift. (#88384) Thanks @vincentkoc and @ScientificProgrammer.
  • Shell completion repair: generate core-only caches during doctor and update repair while preserving full plugin command completion for onboarding and explicit user rebuilds. (#76235) Thanks @joshavant.
  • MCP schema diagnostics: attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors. Thanks @vincentkoc.
  • Windows Scheduled Task recovery: keep clean early exits inside the existing bounded launch poll, falling back only when neither the task process nor Gateway listener becomes observable.
  • iMessage group warnings: suppress the false drop-all startup warning when an effective group sender allowlist can admit groups, and point true empty-allowlist configurations at the correct remedy. (#100046)
  • Control UI mobile login: keep Gateway recovery guidance visible after connection failures, make the disconnected gate scroll safely on constrained screens, and improve mobile keyboard and tap-target behavior. (#100208)
  • TUI streaming: render delta-only assistant events in live Gateway and embedded TUI sessions instead of waiting for the final response. (#83000) Thanks @flashosophy.
  • Model aliases: resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209) Thanks @sahilsatralkar, @david-r-jones, @shakkernerd, and @vincentkoc.
  • TUI new-session hooks: create /new sessions through the shared Gateway lifecycle so command and session hooks receive the completed parent transcript in both Gateway and embedded modes, while preventing rollover during an active turn. (#100241, #49918) Thanks @BingqingLyu, @caopulan, @LonExplorer-coder, and @vincentkoc.
  • TUI abort diagnostics: show sanitized tool argument-validation summaries for aborted runs in both Gateway and local TUI modes without exposing raw model arguments. (#91002) Thanks @wsyjh8 and @taerlandsen.
  • iOS Watch replies: persist queued quick replies in the gateway-scoped chat outbox and submit them through idempotent chat delivery, preventing losses, duplicates, and cross-gateway sends after reconnects. (#100372) Thanks @NianJiuZst.
  • iOS Gateway auth retry: restrict stored device-token retry to parsed loopback hosts and reject wildcard bind addresses, preventing remote lookalike hostnames from receiving trusted retry credentials. (#99859) Thanks @ly85206559 and @vincentkoc.
  • Bedrock Mantle discovery: bound model-catalog fetch time and response size, and release rejected response bodies so stalled, oversized, or failed provider responses fall back safely. (#99961) Thanks @zhangguiping-xydt and @shakkernerd.
  • Discord thread-title prompts: truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551) Thanks @Alix-007, @vincentkoc, @mushuiyu886, and @cursoragent.
  • Mobile pairing routes: advertise verified persistent Tailscale Serve fallbacks alongside gateway.bind=lan setup URLs, show every route in the Control UI and CLI, and let iOS save the first reachable endpoint. (#100280) Thanks @shakkernerd.
  • Control UI terminal tabs: vertically center the new-session button in the terminal tab strip.
  • Control UI composer scrollbar: show the message-field scrollbar only when the draft actually overflows its autosized height.
  • Control UI terminal cursor: hide the browser-native contenteditable caret so the integrated terminal shows only its canvas-rendered cursor.
  • macOS SSH tunnels: resolve user-installed SSH ProxyCommand helpers through the app's managed PATH while preserving inherited connection environment, so remote aliases work after Finder and sanitized-script launches.
  • Control UI OpenAI speed picker: show only Standard and Fast choices for OpenAI models.
  • Control UI terminal rendering: adopt the shared @openclaw/libterminal browser lifecycle and add Nerd Font fallbacks so icon-enabled shell listings render their glyphs when a compatible local font is installed.
  • Slack transcript history: let Codex app-server own its persisted assistant replies so Slack does not append redundant delivery-mirror rows, while the Control UI keeps legacy duplicate mirrors hidden. Thanks @bek91.
  • Control UI chat history: hide redundant channel-final delivery mirrors when the preceding app-server assistant reply already shows the same text.
  • Control UI chat spacing: keep the first message comfortably clear of the topbar with a responsive minimum transcript inset.
  • ClawRouter auth profiles: resolve credential-scoped catalog models during agent runs when the proxy key is stored in an auth profile, and document plugin and model allowlists.
  • Telegram durability: retry restart-dropped media, survive transient polling errors, dead-letter poison updates, preserve forwarded rich text, route plugin callbacks correctly, keep progress updates in one stable multi-line window, map self-hosted Bot API container paths through trusted host roots, and fall back safely when Telegram rejects rich final replies. (#98102, #98735, #98775, #98776, #97174, #98907, #91984, #98786) Thanks @luoyanglang, @DaveArcher18, @obviyus, @goldmar, @Marvinthebored, @Dizesales, @shakkernerd, @AiLucasdz, and @RomneyDa.
  • Cross-channel inbound media: preserve captions and expose unavailable-attachment notices when WhatsApp, LINE, Signal, iMessage, Microsoft Teams, Feishu, Mattermost, or Zalo cannot materialize inbound media, instead of dispatching phantom placeholders or dropping media-only turns. (#100092)
  • Agent and context reliability: preserve runtime overrides, steered subagent tasks, fallback tool-call hints, and legacy reseed attachments; soft-resume CLI sessions across prompt-only drift; improve harness-aware context estimation; time out silent local streams; recover mid-stream failures; and cap Gateway run-cache growth. (#92237, #77539, #99851, #99839, #99822, #97928, #98525, #95430, #77973) Thanks @sercada, @amittell, @obviyus, @liuhao1024, @yetval, @osolmaz, @lzyyzznl, @vincentkoc, @alexelgier, and @fede-kamel.
  • Provider and network safety: bound oversized or malformed responses across Moonshot, MiniMax, Anthropic OAuth, Discord, Matrix, SMS, browser, update, embeddings, Tlön, and Inworld paths. (#96502, #96322, #96644, #97693, #97662, #97999, #98455, #98508, #98554, #98496, #98660) Thanks @hugenshen, @cursoragent, @lsr911, @solodmd, @Alix-007, @wings1029, @lzyyzznl, @sunlit-deng, @vincentkoc, and @Pandah97.
  • Channel delivery and routing: keep Slack replies in active thread sessions, preserve account-bound delivery routes, apply response prefixes, and suppress internal traces and unwanted fallback replies. (#97168, #98240, #93639, #97989, #80928) Thanks @LiuwqGit, @gorkem2020, @yetval, @ZengWen-DT, @alexuser, @UnClouded77, and @vincentkoc.
  • Cron correctness: preserve provider and model selections on timeouts, retain startup catch-up deferrals across maintenance reads, keep action-required output, clear blank thinking overrides, and preserve provider-owned daily-reset sessions. (#95943, #94022, #96393, #96293, #98356) Thanks @ZengWen-DT, @cursoragent, @luke-renjoy, @RichChen01, @vincentkoc, @yetval, @snowzlmbot, @nz365guy, @takamasa-aiso, and @shakkernerd.
  • Memory and session recovery: detect unindexed transcripts, preserve notes through transient reads, avoid cross-directory resumes, disambiguate reserved wiki index pages, and skip empty QMD sync work. (#97857, #98360, #97785, #94326, #90030) Thanks @zw-xysk, @CHE10X, @qingminglong, @yetval, @vincentkoc, @sahibzada-allahyar, and @ruben2000de.
  • Windows and execution: bind allowlisted execution to the validated Windows path, propagate PATHEXT, normalize inbound paths case-insensitively, and prevent cleanup crashes on Windows. (#98260, #98093, #97630, #97901) Thanks @eleqtrizit, @wendy-chsy, @VectorPeak, @paulcam206, and @shakkernerd.
  • Mobile and UI stability: preserve iOS chat line breaks and final replies, improve Android pairing and TLS recovery, hide expired pairing cards, keep workspace file rails scrollable, restore copy-path over plain HTTP, and stop rubber-band scrolling in the Mac app Control UI. (#98304, #98117, #98366, #98439, #98483, #98049, #98646, #98611, #98764, #99830) Thanks @joshavant, @Jabato01, @ooiuuii, @wuqxuan, @645648406-max, @zw-xysk, @ZengWen-DT, and @adinballew.
  • Codex and approval flows: report ChatGPT authentication correctly, rename destructive approval mode to ask, classify get_goal read statuses accurately, and derive terminal-idle timeouts from the explicit run deadline. (#91240, #98501, #98659, #85296) Thanks @849261680, @ukstem, @kevinslin, @yetval, @alkor200, @vincentkoc, and @alkor2000.
  • Configuration and plugin health: restrict config traversal to owned properties, preserve config-health recovery state, surface unloadable channel plugins, preserve defaulted provider base URLs during patches, validate bundled plugin updates by manifest contract, resolve public artifacts from installed plugin roots, and retain legacy ClawHub families where required. (#99846, #99728, #96397, #98396, #98010, #98819, #98249) Thanks @vincentkoc, @zenglingbiao, @joshavant, @jalehman, @ccbridle, @849261680, @momothemage, @weltmaister, @LiLan0125, @herove, @amknight, @KelTech-Services, and @Patrick-Erichsen.
  • Runtime process safety: prevent unhandled child-stream errors in SSH tunnels, supervisors, and MCP stdio transports; keep auto-replies from waiting on transcript mirroring; and avoid splitting Unicode characters in approval previews and LINE outbound fields. (#99800, #99802, #99803, #99549, #99566, #98994) Thanks @cxbAsDev, @vincentkoc, @Shagrat2, @mikasa0818, and @LEXES7.
  • Node runtime compatibility: installers, the CLI launcher, doctor, and the macOS app now reject incompatible Node 23 runtimes and guide users toward supported Node 22 or 24 releases. (#99832) Thanks @vincentkoc and @fuller-stack-dev.
  • QQBot media delivery: scope sandbox-generated media sends to the active session's workspace so /workspace/... and relative generated-file paths resolve safely across QQBot media tags, structured payloads, and streaming delivery. (#92872) Thanks @zhangguiping-xydt and @sliverp.

Complete contribution record

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

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.7.1-beta.1
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.7.1-beta.1.tgz
  • integrity: sha512-Yu/ELLje9mxvFTlaxVGHnIkKvHcLnoEj3AQhzmhpP4k8Fi7/ln0NvYnBgaZ2BJ8tdAAsq3iZ8uroRUuXiMB0dg==
  • release SHA: 4eb1d333cfeca440b796b6a3f70d3c2bef996243
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.7.1-beta.1/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/28571485937
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/28569693832
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/28569693812
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/28571834366
  • plugin ClawHub publish: success: https://github.com/openclaw/openclaw/actions/runs/28571835541
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/28572195585
  • package Telegram E2E: passed in release checks: https://github.com/openclaw/openclaw/actions/runs/28569815816/job/84705725486
  • advisory WhatsApp live QA: blocked before scenarios by exhausted Convex credential pool after two attempts: https://github.com/openclaw/openclaw/actions/runs/28569693831
v2026.6.11 BREAKING [Jun 30, 2026] details → github →

# openclaw 2026.6.11

We heard the feedback. v2026.6.11 focuses on the rough edges that make OpenClaw feel less dependable, with fixes for misplaced replies, stuck sends, reconnects, model setup failures, and safer admin defaults.

Full release notes

Highlights

Channel delivery reliability

Delivery and reconnect fixes span Telegram, WhatsApp, Matrix, Google Chat, iMessage, Feishu, Mattermost, WebChat, the Control UI, and the terminal UI.

  • Fixes newer Google Chat direct messages sometimes being treated like group conversations, so they reach the correct one-to-one chat while Space and group-chat messages keep their existing routing. #58993 Thanks @starhappysh, @vincentkoc.
  • Feishu voice replies from OpenClaw now show their duration in the chat bubble, so recipients can see how long the audio is before playing it. #89172 Related #53798. Thanks @areslp, @fxz26284407, @kinrocw.
  • Discord and Telegram replies and mirrored chat history stay tied to the intended conversation more consistently, including across repeated Telegram replies and session changes. #89911 Thanks @jalehman.
  • Background image, video, and music results now return to the chat that requested them when the task starts without a full conversation target, instead of appearing to fail after creation or being sent to the wrong peer as the session moves. #89949 Related #86034. Thanks @tianxiaochannel-oss88, @wangwllu.
  • Telegram answers now stay attached to the user's current question when they quote an earlier bot message, while quotes of other people's messages still reply to the selected quote. #90475 Thanks @moeedahmed.
  • QQBot group admins can choose how broadly slash commands are available, and private-only commands now direct users to a private chat instead of being exposed or silently ignored in groups. #92154 Thanks @sliverp.
  • Heartbeat checks using reasoning-capable models now show the assistant's intended reply instead of exposing internal reasoning in Telegram, WhatsApp, and other channels, while opt-in Thinking messages still work. #92356 Related #92260. Thanks @jmpei, @tangtaizong666, @vincentkoc.
  • Telegram progress-mode chats now clear an old progress bubble before newer tool output or artifacts appear, keeping the conversation in a clean, readable order. #93002 Related #90753. Thanks @shadow-enthusiast, @zhangguiping-xydt.
  • iMessage command-and-link messages now stay together as one OpenClaw turn when delayed link previews arrive, while unrelated quick messages remain separate for users who enabled same-sender DM coalescing. #93143 Thanks @omarshahine.
  • Successful Discord replies sent through the message tool no longer trigger a misleading failure warning in affected messagetoolonly source-channel turns. #94072 Related #93875. Thanks @chenyangjun-xy, @hoyanhan, @vincentkoc.
  • WhatsApp group conversations now preserve the right message and group context more reliably during retries, reconnects, and group changes. #94338 Related #7433. Thanks @mcaxtr, @octopuslabs-fl, @xialonglee.
  • Fixes OpenClaw sometimes replying to its own delayed iMessage echoes when stray leading characters keep the sent message from being recognized. #94442 Thanks @ly-wang19.
  • Telegram webhook users can keep receiving DMs and group messages through brief channel restarts, configuration reloads, and recovery cycles without temporary message blackouts. #94506 Related #90254. Thanks @obviyus, @travellingsoldier85, @xialonglee.
  • Matrix E2EE gateways can stay online during long-running use instead of gradually consuming memory until a crash takes channels and in-flight work down. #94942 Related #90455. Thanks @xzh-icenter, @yar-sh.
  • Telegram users now see the intended native reaction instead of leaked instructions or a dropped reaction-only reply, with success recorded only after Telegram accepts it. #94977 Related #71140. Thanks @cuttingwater, @hugenshen.
  • Telegram progress updates for commands, searches, updates, and API activity now stay readable instead of exposing noisy HTML or code-style rows, with plain-text fallback when Telegram cannot parse the formatting. #95007 Related #95002.
  • Telegram conversations continued in WebChat now show one assistant reply per turn and keep later replies with the active conversation instead of duplicating answers or sending them back to Telegram. #95069 Related #94930. Thanks @heichaowo.
  • Google Chat now hides misleading internal failure banners when a tool result is harmless, leaving users with the completed answer while normal assistant text remains unchanged. #95084 Related #90684. Thanks @jailbirt, @studentzhou-svg.
  • Bound multi-agent channel conversations now load the workspace files for the configured agent instead of the default agent, though previously misfiled conversations may start fresh in the corrected agent store. #95118 Related #92903. Thanks @849261680, @axjing.
  • People sharing an OpenClaw gateway can now assign different models to individual direct-message contacts across supported chat channels, while existing group and wildcard model choices keep working as before. #95120 Related #53638. Thanks @gandalf-at-lerian, @thomaszta, @xydigit-zt.
  • Telegram now shows that OpenClaw is still working during short initial previews or progress-mode replies instead of leaving the chat silent until the final message arrives. #95183 Related #95004. Thanks @obviyus.
  • Matrix users and operators now get a clear failure when a homeserver sends an oversized or stalled response, instead of OpenClaw continuing to buffer it and risking unbounded memory use. #95240 Thanks @alix-007.
  • Fixes delayed or missing Telegram and other queued channel replies in Kubernetes-style deployments with many injected environment variables, where opening the queue database could stall the gateway. #95278 Related #94571. Thanks @kaka-srp.
  • Telegram chats recover after one stuck message times out, allowing later messages in the same chat or topic to reach the agent without restarting the gateway. #95299 Related #95248. Thanks @kriegerbangerz-ship-it, @mikasa0818, @obviyus.
  • When people switch between Telegram and another OpenClaw client in a shared direct conversation, short Telegram replies now follow the latest conversation instead of responding to an older, unrelated Telegram proposal. #95390 Related #95378. Thanks @maiduy708, @mikasa0818, @obviyus.
  • Fixes completed assistant messages appearing twice in Telegram, Discord, Slack, and other streamed chats after a multi-message reply. #95432 Thanks @vincentkoc, @yetval.
  • WhatsApp replies now stay attached to the direct or group message being answered instead of appearing as a separate message that loses the conversation context. #95483 Thanks @mcaxtr.
  • Telegram rich-message replies now keep paragraphs, bullets, and status lines separated instead of collapsing multi-line content into one run-on block, with no configuration change required. #95532 Related #95409. Thanks @amknight.
  • Mattermost operators who enable native slash commands can now use /oc_queue directly in Mattermost to tune active-run queuing, including its mode, debounce timing, cap, and drop handling. #95546 Thanks @amknight.
  • Previously allowed messages keep reaching named accounts after legacy multi-account channel upgrades, with inherited DM and group access rules preserved across Mattermost, Discord, Slack, Telegram, Signal, WhatsApp, iMessage, and IRC. #95550 Thanks @amknight.
  • Mattermost users can keep talking in a thread without mentioning the bot again after it replies, and that participation survives gateway restarts until the thread has been idle for seven days. #95552 Thanks @amknight.
  • Inbound Telegram messages now reach the configured OpenClaw session promptly instead of sitting unanswered until the next polling interval, a gateway restart, or manual intervention. #95577 Related #86957. Thanks @freidrich-goldenflow, @liuwqgit.
  • QQBot users now receive complete markdown tables when valid separators use one or two dashes per column, instead of losing the header and all but the final row. #95637 Thanks @ly-wang19.
  • Synology Chat users can now receive agent replies that take more than 120 seconds when the configured core timeout allows it, instead of having the channel reject them early. #95707 Thanks @sahibzada-allahyar, @vincentkoc.
  • Telegram forum-topic cron jobs now keep separately configured failure alerts going to their intended destination, even when the main announcement uses a topic in the same chat. #95794 Thanks @vincentkoc.
  • Fixes WhatsApp group replies that could quote an older OpenClaw message instead of the user's triggering message, so final answers stay attached to the intended message when a reply target is available and avoid pointing back to stale bot context when it is not. #95914 Thanks @mcaxtr.
  • WhatsApp users can approve or deny prompts by reaction without the prompt staying stuck when WhatsApp identifies the same direct chat differently, while group approvals remain tied to the correct group and person. #95935 Thanks @mcaxtr.
  • Final reply processing now uses less CPU when OpenClaw checks whether block text was already sent, without changing which reply reaches the chat or how duplicate text is suppressed. #96087 Thanks @vincentkoc.
  • Exec approval results from external channel plugins now return to the channel or DM where the command started instead of falling back to WebChat or seeming to disappear after approval. #96140 Related #96103. Thanks @lansenger-pm, @vincentkoc, @yetval.
  • WhatsApp's final answer now stays quoted to the follow-up message a user just sent when replying to an older OpenClaw message, instead of arriving unquoted or pointing back to the older bot reply. #96220 Thanks @mcaxtr.
  • Nextcloud Talk bots now ignore ordinary file-share and lifecycle events without logging them as bot errors or risking disabled delivery, while malformed chat payloads still return an error. #96243 Related #81566. Thanks @arkyu2077, @rafaelmgbh, @vincentkoc.
  • Replies and message-tool delivery in Mattermost channels now use channel and thread guidance because the agent identifies those conversations as channels rather than group chats, while existing group-chat behavior remains unchanged. #96244 Related #95645. Thanks @arkyu2077, @iloveleon19, @vincentkoc.
  • MCP channel integrations now keep conversation lists, message reads, event polls, and waits within predictable bounds even when a client requests excessive limits or timeouts. a39e548 Thanks @vincentkoc.
  • Long-running streamed auto-replies are less likely to stop early or abort inconsistently when an unusually large timeout is configured. 6c85b90 Thanks @vincentkoc.
  • Channel progress now shows a repeated status when work genuinely returns to it after another update, instead of hiding useful context as a duplicate. 8a75c4d
  • Completed channel replies no longer gain late progress notices, preventing stale status text from appearing after the answer is finished. a594d2c Thanks @vincentkoc.
  • During streaming channel replies, progress messages now keep showing the latest state instead of getting stuck on an older update. e114001 Thanks @vincentkoc.
  • Matrix forced resets now handle unavailable secret storage without a runtime error, treating recovery access as unavailable so the reset path can continue safely. 5c5a8a4 Thanks @vincentkoc.
  • Configured channels now remain visible in openclaw channels status --json, while scheduled announcements reject stale entries that have no active plugin to deliver them. a641c0d
  • Discord voice conversations now keep back-to-back assistant responses moving, so a queued reply plays after the previous audio stream closes instead of remaining stuck. 88b64e4 Thanks @vincentkoc.
  • Discord progress previews are less likely to stop before the final edits when an agent response has already started arriving. 86ea382
  • Chats no longer show stray NO_REPLY text when the assistant means to stay silent, while legitimate media responses still arrive without the placeholder. 96c6f80
  • Telegram streaming replies now show each progress heading once, keeping tool and search updates easier to scan. 013e33c Thanks @vincentkoc.
  • Telegram messages that get stuck after a long-running task, crash, or gateway restart now resume processing automatically, so later messages no longer wait silently or require operators to repair the queue by hand. #97543 Thanks @romneyda, @vincentkoc.

Provider and model recovery

Model setup, OpenAI, OpenRouter, opencode-go, and fast-mode follow-up behavior now recover more clearly in affected configurations.
  • MiniMax text-to-speech and voice notes are less likely to fail because OpenClaw now explicitly requests the audio format it can decode instead of relying on provider defaults. #73079 Thanks @efe-arv.
  • Gateway operators can again see provider, model, request status, and timing details in normal logs, making model-routing and transport problems easier to diagnose without enabling extra debug logging. #89648 Related #89300. Thanks @enominera, @xiaobao-k8s.
  • Models reached through Google, Mistral, OpenAI Responses, Azure OpenAI Responses, and ChatGPT/Codex Responses now receive clean system instructions without OpenClaw's internal cache-boundary marker leaking into the prompt. #89716 Thanks @enominera, @masatohoshino.
  • Cron tool calls using Gemini models through OpenAI-compatible providers now run without nullable fields triggering provider schema rejections. #91559 Related #91542. Thanks @pick-cat, @qiukui666.
  • Provider-qualified model IDs now honor their configured agent runtime policies and CLI aliases instead of unexpectedly falling back to OpenClaw's default runtime. #91724 Thanks @vincentkoc, @yu-xin-c.
  • The chat /models list and other plugin-aware model or provider selection paths now respond quickly instead of stalling for seconds and consuming a CPU core through repeated setup scans, while plugin changes still refresh normally. #93356 Thanks @obuchowski.
  • Hosted Ollama Cloud users can keep only the models they explicitly configured after a restart, without the full shared catalog being added back, while automatic discovery continues for local and self-hosted Ollama servers. #93956 Thanks @jason-allen-oneal.
  • Cron jobs can now retry or switch to a configured fallback model when a local provider returns the generic LLM request failed. error, instead of failing with the fallback unused. #94062 Related #93931. Thanks @hugenshen.
  • Expired provider tokens no longer bury useful operator logs under repeated fallback warnings, while the first warning and later duplicate summaries remain available for diagnosis. #94233 Related #56979. Thanks @goutamadwant, @yanan1991.
  • Google Gemini 3.5 Flash can now be selected with its full 1,048,576-token context window, avoiding missing-model errors and needless prompt-size rejections. #94726 Related #94723. Thanks @ajwan8998, @anguslogan01, @kevinat.
  • Dashboard child sessions now handle allowed provider-qualified model choices consistently and give accurate recovery guidance when saved model state is stale. #94752 Related #94713. Thanks @gr4via.
  • Claude CLI users no longer get promises of completion updates that may never arrive, because OpenClaw now blocks unsupported native background work before it can strand progress. #95008 Thanks @anagnorisis2peripeteia.
  • OpenClaw now rejects oversized provider catalog or JSON responses with a clear error before buffering the entire response in memory. #95218 Thanks @alix-007.
  • OpenRouter users can now select and run the advertised short DeepSeek V4 model IDs without requests failing with modelnotfound because OpenClaw sent a duplicated provider prefix. #95268 Related #95198. Thanks @daniel-alejandro-t, @darren2030.
  • With /reasoning on, DeepSeek-style OpenAI-compatible models now show the final answer separately from their reasoning instead of folding it into the reasoning block, with no configuration change required. #95283 Related #95280. Thanks @marvinthebored, @vincentkoc, @zengwen-dt.
  • When a Codex subscription reaches its usage limit, OpenClaw now moves to configured fallback models instead of stopping on the failed result, and it does not retry runs that already produced visible output. #95400 Thanks @jason-allen-oneal, @sallyom.
  • LM Studio users can now run quantized or multi-variant local models without false assistant-turn failures or phantom suffixed model entries caused by mismatched model keys. #95401 Thanks @monkeyleet.
  • Google-backed embedded-agent runs now stop reading oversized or never-ending prompt-cache responses before they can exhaust memory or leave the run stalled. #95417 Thanks @alix-007.
  • OpenRouter model scans fail safely on oversized or malformed catalogs instead of risking excessive memory use that can destabilize OpenClaw. #95418 Thanks @alix-007.
  • OpenRouter setups now reject oversized model catalogs before they can exhaust OpenClaw's memory, without caching or immediately refetching the failed response. #95420 Thanks @alix-007, @sallyom.
  • Configured fallback models can now answer when Claude CLI runs out of credits or hits a generic runner failure, instead of leaving users with the failure message as the final response. #95508 Related #95489. Thanks @mikasa0818, @riazrahaman, @sallyom.
  • Gemini-backed web searches using freshness: "day" or pd now complete instead of failing with a provider 400 error, while broader freshness choices and explicit date ranges retain stricter filtering. #95682 Thanks @sunjae-k, @vincentkoc.
  • Follow-up answers from xAI reasoning models such as Grok Composer now preserve earlier reasoning context more reliably, even when configurable reasoning effort is unsupported. #95686 Thanks @fuller-stack-dev, @geraint0923.
  • Vercel AI Gateway users can now run models chosen from the live catalog, including live-only model IDs that are absent from OpenClaw's bundled list. #95710 Thanks @vincentkoc.
  • Fixes manifest-defined providers turning valid model IDs into broken ones when stripPrefixes entries have stray spaces or different casing, so operators and plugin authors get the intended provider model. #95744 Related #95743. Thanks @parveshsaini.
  • First-run setup now opens the credential prompt for a newly installed external provider instead of appearing to loop and leaving OpenAI selected. #95792 Related #95765.
  • Oversized or stalled provider catalogs now fail quickly with a clear error instead of hanging OpenClaw or consuming unbounded memory, while normal catalogs continue to load. #95827 Thanks @alix-007.
  • Xiaomi Token Plan users can now use up to 128K output tokens with mimo-v2.5 and mimo-v2.5-pro instead of being stopped at the outdated 32,000-token limit. #95934 Thanks @idootop.
  • Tool-heavy model responses can stream with less overhead while repeated tool-call IDs and encrypted reasoning details stay matched to the correct call across Google and OpenAI-compatible providers. #95957 Thanks @vincentkoc.
  • Token-usage accounting is more reliable for bundled ACPX users because OpenClaw now includes ACPX 0.11.2's persistence fix by default, without a separate package override or manual client update. #96124 Thanks @vincentkoc.
  • Ollama Cloud users can now find and select glm-5.2:cloud with its 1,000,000-token context window, reasoning, and tool support even when it is absent from the public model list. 11484f8
  • MiniMax image-understanding requests no longer fail before reaching the provider when a timeout is zero, negative, or extremely large; invalid values now use a normal or safe maximum wait. 4b6182e Thanks @vincentkoc.
  • Codex runs now follow the current fast-mode choice instead of carrying over an old speed tier, and the status line clearly shows when fast mode is automatic. 77012f9 Thanks @vincentkoc.
  • Codex-backed conversations now return to normal routing after automatic fast mode is cleared, preventing later turns or model changes from reusing a stale priority tier. 8afc1f7
  • Fallback agent runs now honor each model's configured automatic fast-mode cutoff even when fast mode is overridden for the run, keeping fallback behavior aligned with the selected model policy. efd3172
  • Live model-switch retries now preserve the original fast-mode cutoff for long-running sessions, while explicit fast mode avoids misleading automatic-cutoff progress messages. d990115 Thanks @vincentkoc.
  • Embedded agent runs now keep automatic fast mode working consistently through retries and progress updates without confusing it with a manually selected fast-mode setting. cf1b6fe Thanks @vincentkoc.
  • Fast-mode runs now keep their speed setting through model fallback retries and show the configured automatic threshold in status, avoiding inconsistent retry behavior and an unhelpful generic label. aa3797c Thanks @vincentkoc.
  • Agent replies and scheduled cron runs now handle fast-mode fallback retries more reliably, keeping the state needed for the final attempt to finish or report progress correctly. 14e448e Thanks @vincentkoc.
  • Users no longer see a fast-mode reset notice while model fallback attempts are still running; it appears only when the run reaches its final fallback attempt. 6eb72a8
  • Users and operators now get clearer handling when a configured live model becomes unavailable because OpenClaw recognizes the provider's "selected model was not found" response as a model-not-found failure instead of a generic error. 2405d02 Thanks @vincentkoc.
  • Qwen and vLLM now preserve existing chat-template settings consistently when thinking is switched on or off, and provider plugins can use the same tested helper. 2ba9d6e Thanks @vincentkoc.
  • OpenAI-compatible proxy providers can handle thinking levels and legacy reasoning_effort fields more consistently, with plugin developers and provider maintainers using one documented normalization helper across OpenRouter, Kilocode, and the SDK. 35bafea
  • Browser and Vite builds can now load the OpenAI ChatGPT Responses provider without a server-only dependency breaking the bundle, while WebSocket failures still appear normally. 8c8eb86 Thanks @vincentkoc.
  • OpenRouter model scans now accept the same larger valid catalogs as runtime discovery while still rejecting oversized responses before they can consume unbounded memory. ad3b2f4 Thanks @vincentkoc.
  • OpenAI Responses users, including affected Bedrock Mantle GPT-5.x reasoning setups, now get one clean final answer with aligned saved transcripts and replay context instead of dozens of repeated cumulative copies. #92399 Related #91959. Thanks @amersheeny, @daimingnj, @phoenixyy, @pigfoot.
  • Scheduled jobs and isolated sessions using opencode-go models now move stalled requests into configured timeout or fallback handling instead of hanging for minutes before ending with a generic LLM request failed error. #93965 Related #93610. Thanks @forceconstant, @zhangguiping-xydt.

Session, memory, and trust continuity

Sessions, compaction, memory, QMD-backed memory, and Tool Search retain useful state more consistently, while Matrix recovery, tool policies, and approvals stay attached to the intended trust boundary.
  • Affected agent conversations using OpenAI Responses can now recover and keep replying after a visible channel response leaves their saved history incomplete, instead of every later turn failing before a reply appears. #84708 Thanks @anyech.
  • When a Codex-backed agent produces unusually large tool output, saved and replayed conversations now keep its text within the usual size limit while leaving non-text content unchanged. #87912 Thanks @adrianip0204.
  • Control UI conversations now stay visible and continue in the same session after a sleep, network drop, or Gateway reconnect instead of disappearing when the next message is sent. #89017 Related #87700. Thanks @zhangguiping-xydt, @asicoe.
  • Bundled Codex and Copilot integrations now keep mirrored chat history and transcript updates tied to the correct OpenClaw session as storage evolves, while existing file-backed active transcripts continue working during the migration. #89518 Thanks @jalehman.
  • WebChat's current-session status now matches the conversation you are actually using, so the session identity, thinking level, token context, and cost details no longer come from the fallback main session. #89800 Related #89773. Thanks @killo3967, @sweetcornna.
  • Your conversation is less likely to lose its context after you press stop during automatic compaction because the compaction request is now cancelled too. #89886 Related #89868. Thanks @lykeion-dev, @openperf, @vincentkoc.
  • When cross-agent session access is blocked, OpenClaw now lists all required visibility, agent-to-agent, and allow-list settings, helping operators correct policy configuration instead of chasing a nonexistent agent failure. #90489 Related #90443. Thanks @ramitrkar-hash, @sahibzada-allahyar, @vincentkoc.
  • openclaw memory status now shows an active light or REM dreaming phase instead of incorrectly reporting Dreaming: off, so operators can see that valid memory configurations are enabled. #93113 Related #67868. Thanks @agentarclab, @mrossit.
  • Timed-out QMD memory searches now stop their background work when the agent moves on, preventing abandoned processes from continuing to consume CPU and memory. #93394 Thanks @alix-007.
  • Repeated instructions sent after compaction now remain in the conversation, preventing lost turns, orphaned replies, and malformed history that some providers reject. #94328 Thanks @vincentkoc, @yetval.
  • Memory Wiki's Stale Pages report now leaves durable concept and synthesis pages out of freshness warnings, keeping attention on source and entity pages that may actually need review. #94369 Thanks @sunnyshu0925, @vincentkoc.
  • Long embedded runs with recent progress are now less likely to be interrupted by stale-session recovery, while genuinely stalled runs can still be cleared so queued work continues. #94701 Thanks @imadal1n, @mrclawfield.
  • Ollama memory search now respects a configured smaller embedding dimension and keeps indexes for different dimensions separate, avoiding incompatible vectors being mixed together. #94811 Thanks @mushuiyu886.
  • Memory searches and targeted refreshes now stay connected to the correct OpenClaw session even when transcript filenames change or QMD exports use a different name. #95087 Thanks @jalehman.
  • Long-running conversations with screenshots or other images now keep their continuity more consistently when OpenClaw makes room for new messages, instead of repeatedly filling up without moving the retained conversation forward. #95128 Thanks @yetval.
  • Windows users can now run QMD-backed memory indexing and search through configured absolute memory.qmd.command paths, including drive-letter and UNC locations, without OpenClaw stripping the path separators before launch. #95274 Related #92302. Thanks @ardooken, @ly85206559.
  • Usage footers selected with /usage full or /usage tokens now remain visible after daily or idle session rollover, so users do not have to turn them on again. #95322 Thanks @litang9.
  • Follow-up replies, reactions, threaded messages, and status checks stay with the chat they belong to after webchat or system activity, while real channel switches still clear outdated routing details. #95467 Thanks @yetval.
  • Long-running main conversations now keep their prior context when users return after an overnight or delayed follow-up, rather than silently starting over after an otherwise normal completion. #95472 Thanks @xydt-tanshanshan.
  • People with large session histories can list, preview, and find sessions without multi-second freezes, while older mixed-case session keys are still migrated at startup. #95699 Thanks @jalehman, @jzakirov.
  • Fixes delivered replies sometimes being saved to the wrong conversation history, or omitted from it, when operators use a custom or per-agent session.store, improving continuity and auditability for the intended session. #95782 Related #95781. Thanks @youngting520.
  • Saved session-memory summaries now leave out raw model tokens, tool-call blocks, media placeholders, role tags, and stale NO_REPLY markers so future conversations keep useful context. #95791 Thanks @sweetsophia, @vincentkoc, @yb0y.
  • Long-running OpenAI sessions using Codex/ChatGPT OAuth can now compact without a separate API key, whether /compact is run manually or triggered automatically. #95831 Related #95693. Thanks @sallyom, @yui-tien.
  • Long, tool-heavy sessions now compact oversized conversations instead of getting stuck when a large tool result appears at the end. #95860 Related #78478. Thanks @jw8957, @wzhgba, @yetval.
  • When memory_search is unavailable because the Node runtime lacks node:sqlite, OpenClaw now points users to a compatible runtime instead of sending them through unrelated embedding-provider troubleshooting. #95916 Thanks @rrrrrredy, @vincentkoc.
  • Developers and operators inspecting a compacted Copilot session now get its summary, before-and-after token counts, and session details instead of an incomplete result. #96049 Thanks @vincentkoc.
  • The /stop and abort commands now keep stopping active runs, clearing queued followups, and ending related subagents promptly even when session keys need canonicalizing or abort metadata cannot be saved. #96201 Thanks @jalehman.
  • Voice Wake upgrades now keep existing trigger phrases and routing rules working as OpenClaw moves them from retired settings files into the shared state database. bdf81a8
  • Upgrades from older OpenClaw state layouts now preserve update notifications, check throttling, available-version records, and automatic-update attempt history as that state moves into SQLite. eb00d49 Thanks @vincentkoc.
  • Plugin-channel conversations keep their intended session more reliably through startup, doctor checks, and state repairs, with older binding records migrated into OpenClaw's shared database. 9f888d9
  • Windows memory-backed session syncing now keeps using the intended transcript file even when path formatting differs. b3b5b08 Thanks @vincentkoc.
  • Embedded agent runs with a missing or blank session key now stay attached to the intended session instead of being sent through inconsistent session routing. 911f853 Thanks @vincentkoc.
  • When a model guesses the wrong tool name, Tool Search and Code Mode now show how to find and retry the correct tool, reducing the risk that long-running sessions get stuck or lose durable memory during compaction. #93374 Related #92273. Thanks @mushuiyu886, @poison, @vincentkoc.
  • Fixes assistant replies disappearing from webchat, Control UI, Feishu, and other embedded conversations after compaction, keeping refreshed chats readable and follow-up requests separate. #95484 Related #76729. Thanks @maweibin, @njuboy11, @vincentkoc.
  • OpenClaw memory features now keep active, reset, and deleted transcript coverage aligned with configured session stores and agent ownership, making dreaming, QMD exports, indexing, and sync less likely to miss or misattribute conversation history. #96162 Thanks @jalehman.
  • Gateway TLS setup now rejects blank certificate or key paths clearly or uses OpenClaw's defaults, avoiding confusing startup and certificate-generation failures while preserving valid paths. #94054 Thanks @miorbnli.
  • Configured plugin policies keep blocking or rewriting sensitive tool calls after Gateway registry changes, reloads, or later hook initialization instead of being silently skipped. #94545 Thanks @jesse-merhi.
  • Mobile operators with operator.approvals can now see and resolve chat-triggered exec approvals on the iOS device that started the request, including while the app is open, without relying only on push notifications. #95175 Thanks @joshavant.
  • Control UI users now get the patched DOMPurify release, reducing exposure to the GHSA-cmwh-pvxp-8882 sanitizer vulnerability without changing how the interface behaves. #95691 Thanks @vincentkoc.
  • "Always allow" approvals for plugin conversation bindings now carry over from the old settings file and are less likely to be lost or overwritten when multiple OpenClaw processes are running. ae41b00 Thanks @vincentkoc.
  • Matrix users now see that the active recovery key is required before a forced cross-signing reset can proceed, preventing a second reset from leaving encryption recovery and room-key backups unusable. #95720 Related #78396. Thanks @jteddy, @vincentkoc, @xialonglee.

Slack router relay mode

Slack router relay mode gives managed and multi-gateway deployments a supported way to centralize incoming Slack traffic while preserving gateway ownership of mentions, threads, and replies.
  • Managed Slack deployments can now use a central router to send mentions and ongoing threads to the right OpenClaw gateway while replies still appear through Slack. #94707 Thanks @pash-openai, @sjf-oa.

Raft External Agent wake bridge

The Raft channel and Raft plugin now support the local CLI wake path for External Agents.

  • Raft External Agent operators can now wake an OpenClaw agent when a workspace has pending work through the supported local CLI bridge, with named profiles and checks for missing CLI prerequisites. #95497 Thanks @vincentkoc.

Official plugin installation and repair

Plugin management and the plugin inventory now cover more official integrations through normal installation, update, and repair workflows.
  • When plugins.allow uses a channel or package name instead of the real plugin id, startup guidance now identifies the unmatched entry and shows the discovered plugin ids needed to correct the configuration. #68389 Related #68352. Thanks @aym9999, @jirboy, @lyfuci, @pahuchi-joe, @zmxccxy.
  • Plugin trust warnings for first-time or fresh installs now include a ready-to-copy plugins.allow example and commands to list or inspect plugin ids, so users can resolve the warning before trusting or reinstalling plugin code. #78105 Related #68780. Thanks @jirboy, @pahuchi-joe.
  • Codex migrations now work with standard global plugin installs because openclaw migrate can find the installed provider instead of failing with Unknown migration provider. #89612 Related #89609. Thanks @mugabuga, @zerone0x.
  • Plugin installs and updates recover from stale OpenClaw-managed dependency pins instead of failing with npm EOVERRIDE, without later synchronization downgrading or removing packages users installed explicitly. #91786 Related #91772. Thanks @amknight, @mkdelta221.
  • Channel plugin developers can now carry native sender and conversation identifiers through hooks and selected exec workflows, giving integrations more precise routing without breaking existing sender and chat fields. #91903 Thanks @lanzhi-lee, @vincentkoc.
  • Plugin discovery now repeats fewer blocking filesystem checks during startup, reducing avoidable cold-start work for bundled plugin trees, especially on slower Windows filesystems, without changing bundle discovery behavior. #93919 Related #76209. Thanks @ml12580, @shenhonglong456-ai.
  • Plugin Gateway methods now work through openclaw gateway call after registration, so plugin authors can use them from scripts and cron jobs instead of hitting an unknown method error. #94154 Related #94127. Thanks @brycemurray, @pick-cat, @vincentkoc.
  • ClawHub skill discovery and install checks are less likely to stall or crash OpenClaw because oversized or stalled marketplace responses are now stopped before they can exhaust memory. #95226 Thanks @alix-007.
  • Pinned official plugins no longer stay on an old release when operators follow the repair advice from openclaw doctor or deep gateway status after an upgrade. #95541 Thanks @ooiuuii, @vincentkoc.
  • Managed npm plugin updates are less likely to break work on a running gateway with missing-module errors, because the older plugin files remain available until a later gateway start cleans them up. #95589 Thanks @ooiuuii, @vincentkoc.
  • Official plugin cards for supported brands now show recognizable icons in ClawHub and other catalogs, and plugin authors can provide marketplace artwork through the documented manifest field. #95845 Thanks @patrick-erichsen.
  • Official plugin icons in ClawHub and other catalogs are no longer forced into the same hard-coded color, allowing Simple Icons to use its default artwork instead. #95987 Thanks @patrick-erichsen.
  • Docker users now have an official openclaw/openclaw Docker Hub mirror alongside GHCR, with versioned beta releases kept from moving the stable latest and main aliases. #97122 Thanks @vincentkoc.
  • Git-based OpenClaw installs now use the repository's pinned pnpm version even when another global pnpm or surrounding project package manager is present, so setup commands no longer run against the wrong package-manager environment. bd74a62 Thanks @vincentkoc.
  • ClawHub skill-card and update requests now complete or time out predictably even when they receive an unusually large timeout value. 8cd0c11 Thanks @vincentkoc.
  • Windows users can complete source installs without a llama.cpp setup step blocking or slowing them, and the installer restores their existing shell setting afterward. ea9065b Thanks @vincentkoc.
  • More official channel, provider, and web-search plugins can now be installed or repaired through normal external package catalogs while still being recognized from their existing credentials. #95683 Thanks @vincentkoc.

Channels and Messaging

Additional channel fixes

Additional Telegram and channel configuration fixes cover narrower delivery and setup problems.

  • Telegram reply chains keep cached replies attached after context changes instead of failing when those cached replies are reused. #82909 Thanks @lidge-jun.
  • Fixes Discord dropping an entire long reply with fenced code blocks when a closing code fence lands near the 2,000-character message limit. #95661 Thanks @ly-wang19.
  • Slack operators can now store tokens and signing secrets as supported SecretRef inputs, while reads, writes, allowlist and target lookups, and setup checks use the resolved credentials instead of rejecting or misreading the references. 7da955f Thanks @vincentkoc.
  • Channel capability checks now return a clear timeout when an integration stops responding, keeping troubleshooting from hanging in a terminal or automation run. 8ecdb97 Thanks @vincentkoc.

Providers and Models

Additional provider and model fixes

Additional model configuration fixes improve selection, usage reporting, status output, and streaming.

  • After changing the default model, starting a fresh channel session with /new or /reset now uses the new default instead of silently reusing the previous cached model, while explicit /model overrides remain unchanged. #77339 Related #77322. Thanks @mjamiv, @zaynl.
  • Behind HTTP or HTTPS proxies, Codex/OpenAI usage and quota checks in openclaw status --usage --json and the Control UI now retrieve usage windows instead of failing when chatgpt.com is unreachable directly. #93943 Related #78714. Thanks @tnzgit, @turbotheturtle.
  • /status now keeps the active model and how to clear a pinned choice on one compact line, so Discord and other chat users can scan model status without a multi-line explanation. #95797 Thanks @solvely-colin.
  • Anthropic streaming responses now keep interleaved text, thinking, and tool-call updates attached to the correct response block instead of mixing them when several blocks are active at once. #96013 Thanks @vincentkoc.

Memory, Sessions, and State

Additional session and memory fixes

Additional memory fixes cover resume, indexing, synchronization, and cleanup edge cases.

  • Memory-wiki status cards and bridge-backed source sync are less likely to fail during simultaneous page rewrites because OpenClaw now retries the transient path mismatch while still stopping unsafe or persistent filesystem writes. #94443 Related #92134. Thanks @cknzraposo, @zengwen-dt.
  • Fixes recent-session resume opening a fresh conversation for users with long workspace paths instead of returning to their existing transcript. #94578 Related #94577. Thanks @rohitjavvadi, @vincentkoc.
  • Memory Wiki now keeps user-written notes intact when an existing source page is re-ingested or synced, while still refreshing its generated content. #95614 Thanks @yetval.
  • Fixes Memory Wiki repeatedly copying its own generated source pages back into itself when its vault is stored inside the workspace memory folder, avoiding duplicate files, repeated cleanup, and unnecessary memory index growth. #95666 Related #95657. Thanks @johannes0402, @turbotheturtle, @vincentkoc.
  • For operators using Active Memory with memory-core dreaming, nightly dreaming jobs no longer start unnecessary recall work and hit 45-second timeouts, while regular web chats continue to receive memory recall. #95721 Related #78500. Thanks @vincentkoc, @vishutdhar, @xialonglee.
  • Agent sessions with many tool calls repair out-of-order results with less repeated work while keeping each result paired with the right tool call. #96014 Thanks @vincentkoc.
  • Windows qmd-backed memory work now stops all related processes after availability probes and command timeouts, preventing qmd children from continuing to run in the background. 830691b

Gateway, Security, and Trust

Restart and readiness recovery

Gateway health, troubleshooting, and openclaw agent workflows now report and recover from more runtime failures clearly.
  • When a configured or explicit remote gateway is slow but reachable, openclaw gateway probe --timeout ... now waits for the requested timeout instead of reporting it unreachable after a shorter internal cutoff. #89859 Related #65355. Thanks @hellocli, @mushuiyu886.
  • Long or parallel internal subagent runs now avoid unnecessary live-preview processing, while visible subagent sessions still show live updates and final responses. #91906 Thanks @lanzhi-lee, @vincentkoc.
  • ACP conversations, especially Kiro-backed threads, now continue past the first reply by starting a fresh session when the backend can no longer resume the old one. #93547 Related #87830. Thanks @amersheeny, @chouzz.
  • When Linux memory pressure kills a child command or session, systemd-managed OpenClaw gateways now stay running and keep channel connections alive while reporting the child failure. #93585 Thanks @snowzlm.
  • Canceling an OpenClaw run during tool work now ends it promptly instead of starting another model turn or leaving the session locked. #94412 Thanks @szsip239, @vincentkoc.
  • Scheduled OpenClaw jobs using cloud models now recover from silent, stuck model calls by default, helping prevent later cron work from backing up while local or self-hosted providers keep their existing timeout behavior. #94445 Thanks @bek91.
  • Gateway readiness checks now turn unhealthy during a restart drain, preventing traffic managers from sending new work to a Gateway that is temporarily rejecting requests. #94915 Related #78136. Thanks @markoub, @maxschachere, @vincentkoc.
  • Mac users can keep LaunchAgent-managed gateways running through OpenClaw upgrades instead of seeing repeated crash-and-restart loops when older text-transform runtime code is still cached. #95081 Related #95057. Thanks @849261680, @yveslarose.
  • Codex-powered conversations in TUI, WebChat, and compatible streaming APIs now show replies as they are written, while replacing provisional text cleanly so the final answer does not include stale drafts. #95404 Related #95422. Thanks @agonza1, @vincentkoc.
  • After a gateway restart, users no longer see a misleading retry notice when OpenClaw is already resuming the interrupted reply or reporting the actual recovery failure, reducing unnecessary duplicate attempts. #95431 Thanks @moeedahmed, @vincentkoc.
  • Long, tool-heavy agent sessions now retain prompt-cache savings as results accumulate, reducing avoidable delays and cost from resending rewritten history between turns. #95624 Thanks @vincentkoc.
  • Gateway restarts no longer leave configured Codex, Copilot, or trusted plugin-based agents temporarily unavailable, and untrusted workspace plugins remain blocked from activating themselves. #95652 Thanks @vincentkoc.
  • Long responses, busy tool streams, image-heavy requests, and memory recall now incur less CPU and filesystem overhead without requiring settings or workflow changes. #95697 Thanks @vincentkoc.
  • Operators can again add or update scheduled announcements for known channels in no-config setups, while configured environments still reject disabled, stale, ownerless, or unknown destinations before delivery. #95754 Thanks @vincentkoc.
  • macOS users are less likely to see a false port-conflict failure when stopping or updating a managed gateway, because OpenClaw briefly waits for normal shutdown to release the port while still reporting conflicts that persist. #95886 Thanks @fuller-stack-dev.
  • Copilot-backed agents can now ask users a question and accept the answer through OpenClaw's normal chat reply flow, while compact tool-search and code-mode controls avoid loading the full tool catalog into the session. #96005 Thanks @vincentkoc.
  • Gateway restarts on systemd or container setups no longer leave old Codex or Claude adapter processes behind, helping new ACPX sessions start without minutes-long cleanup stalls after repeated restarts. #96032 Thanks @t2wei, @vincentkoc.
  • Copilot-backed sessions now show plan updates as work unfolds, and their native child tasks stay visible through completion or failure instead of disappearing from OpenClaw's task view. #96062 Thanks @vincentkoc.
  • Connected agents such as OpenCode now start through OpenClaw even when their harness cannot select a requested model, while genuinely unsupported model choices still return the original error. #96068 Related #95869. Thanks @sabatech-dev, @vincentkoc.
  • Plugins using heartbeatpromptcontribution now deliver their heartbeat-specific context to models when agents run through harness runtimes such as the Codex app-server, without affecting ordinary user turns or plugins that do not use the hook. #96233 Thanks @azogheb, @vincentkoc.
  • Windows gateway cleanup and listener checks now handle UTF-16 WMIC command-line data consistently, reducing failed or conflicting identification of the running gateway process. 15c880a Thanks @vincentkoc.
  • Long-context, tool-heavy agent sessions now keep prompt-cache reuse steadier across repeated turns without losing per-result size limits, while advanced operators can configure larger tool-result caps for large-context models without configuration rejection. a60947f Thanks @vincentkoc.
  • Long, tool-heavy agent sessions are less likely to bloat model requests as tool output accumulates, while repeated turns keep stable prompt-cache reuse. 2f33999 Thanks @vincentkoc.
  • Gateway restarts now use OpenClaw's durable state database for the handoff, while stale, malformed, wrong-process, or superseded requests are discarded before they can affect the restart. 0ad48da
  • Gateway status, doctor, and restart diagnostics now retain recent restart details in OpenClaw's shared state database, while expired or malformed records are still discarded. a39a3b7 Thanks @vincentkoc.
  • Gateway restarts and managed-service updates now keep the correct continuation message, avoid reusing stale handoff state, and mark failed update handoffs consistently. 514b336 Thanks @vincentkoc.
  • Gateway-launched agents no longer lose owner-only OpenClaw tools during tasks such as live cron checks, so authorized operations can use the intended tools with the correct request context. c2ee9b0 Thanks @vincentkoc.
  • Malformed gateway restart requests now fail clearly without scheduling a restart, preventing bad or accidental integration calls from unexpectedly restarting the gateway. 108d6d7 Thanks @vincentkoc.
  • Stale node requests queued by the gateway now expire automatically, so old work is less likely to linger and affect later activity. f6d432e
  • Plugin workflows are less likely to stall or overload the gateway when an integration requests too much subagent session history, because each read is now capped at a safe limit. b66b450 Thanks @vincentkoc.
  • Image descriptions now handle extremely large timeout settings consistently by capping them to a safe runtime limit instead of risking timer overflow. 88b21fc
  • Embedded agent sessions now wait reliably for another session to release its file lock, even with an extremely large timeout, instead of risking timer overflow. 4c736df Thanks @vincentkoc.
  • Queued commands with extremely large task timeout settings now time out reliably because OpenClaw caps the wait at the runtime's safe maximum. 1f6ae32 Thanks @vincentkoc.
  • Fixes normalization-core exposing the wrong string-coercion entry point and ACP sessions showing an outdated fast-mode value, so integrations receive the intended API and users see the mode actually in effect. 93ad397 Thanks @vincentkoc.
  • Fast auto runs now deliver final replies more consistently, with progress-reset handling limited to automatic mode so it does not interfere with responses or forwarded callbacks. 9e8ab08 Thanks @vincentkoc.
  • Agent sessions using OpenAI Responses now resume tool-based work without failing or losing progress when replayed history contains mismatched tool requests and results. b4bc1f2 Thanks @vincentkoc.
  • Completed plugin subagent and QA runs are no longer misreported as failures when gateways return alternate completion envelope shapes, making successful handoffs more reliable for plugin authors and operators. d1b268f Thanks @vincentkoc.
  • Fixes completed subagent tasks sometimes ending without an update, so users receive the result or the parent agent's next step. 68a1e00 Thanks @vincentkoc.

Remote result and media delivery

Additional Gateway fixes return remote media and completed subagent results to the active conversation more reliably.

  • Generated images from a remote Codex app-server now arrive as attachments instead of showing Media failed or returning only text after successful generation. #96212 Thanks @sjf-oa.
  • When a subagent finishes, its result now reaches the active parent run more reliably instead of appearing silent. 7fc4bbc Thanks @vincentkoc.

Additional security and trust fixes

Additional secret-handling hardening keeps trusted package paths within the intended boundary.

  • Trusted OpenClaw package sources now reject lookalike sibling paths, so trusting /artifactory/openclaw no longer also admits paths such as /artifactory/openclaw-malicious. 12c34fc Thanks @vincentkoc.

Clients and Interfaces

Client sends and reconnects

WebChat, the Control UI, mobile clients, and the terminal UI now recover completed, rejected, or interrupted sends and reconnects without leaving conversations looking stuck.
  • When a WebChat message fails before the agent starts, WebChat and Control UI now show the session as failed instead of leaving it looking like it is still running. #84352 Thanks @jesse-merhi.
  • Fixes the Control UI session picker getting stuck behind hidden subagent sessions, so Load More reaches the next usable chat without showing a misleading total. #89323 Related #89249. Thanks @giodl73-repo, @originsecured-do.
  • When users reopen a Control UI conversation from History, their prompts now appear with the assistant's replies, preserving the question-and-answer context without blank gaps in long transcripts. #93841 Related #90241. Thanks @mushuiyu886, @pronzcw.
  • Control UI deployments behind a path prefix now keep manifest, favicon, and service-worker requests under that prefix, avoiding confusing root-level 403 errors after login. #94204 Related #94157. Thanks @hugenshen, @xrow.
  • Android users can now open Health log and Skill rows in Settings for readable details, making it easier to troubleshoot gateway activity, check skill setup and status, and understand how to pair with an existing setup code. #95148 Thanks @tosko4.
  • Sent prompts no longer reappear in the Control UI composer after a send, so users can switch sessions or start their next message without risking a duplicate send or overwriting a new draft, while intentional re-entry still works. #95503 Related #89466. Thanks @vincentkoc, @zhangguiping-xydt, @zhong18804784882.
  • Android users now get a cleaner Overview where connection status, the configured agent, node health, approvals, recent sessions, and Chat and Talk actions are visible at a glance. #95557 Thanks @joshavant, @solvely-colin.
  • Android users can now refresh and resolve gateway command approvals from the in-app Approvals screen, choosing Allow Once, Always, or Deny while connected. #95593 Thanks @solvely-colin.
  • iOS users now avoid surprise notification prompts and get clear guidance when approval alerts are unavailable, with permission managed from one predictable Settings screen. #95640 Thanks @joshavant.
  • Local TUI shutdowns now stay within safe timer limits even when OPENCLAWTUILOCALRUNSHUTDOWNGRACEMS is set extremely high. c21dcfc
  • Canvas A2UI now serves only the current app assets after each build, so outdated compatibility images and leftover files are less likely to appear. a89e65c Thanks @vincentkoc.
  • iOS push relay setup failures are easier to pinpoint because registration diagnostics show where setup stopped while keeping sensitive push credentials out of logs. f2b8668 Thanks @joshavant.
  • iOS devices are now enrolled for push notifications only after users accept the hosted relay disclosure and allow notifications, preventing registration data from being published before consent. 8efed50 Thanks @joshavant.
  • Fixes chat, voice, TUI, and forwarded sends sometimes appearing stuck or disappearing after the gateway had already finished or rejected them, so affected clients now clear the pending state, restore retryable input, refresh history, or show a useful failure. #91049 Related #91048. Thanks @nxmxbbd.

Additional client interface fixes

Additional Control UI, mobile, and desktop fixes improve display accuracy, accessibility, onboarding, and app behavior.

  • Restores the OpenAI/Codex usage quota in the expanded Control UI chat sidebar, so users can check their limits without leaving the conversation. #94219 Related #93041. Thanks @jazzroutine, @pick-cat.
  • iOS screens now use consistent OpenClaw accent and status colors across onboarding, settings, chat, approval prompts, voice permissions, widgets, and shared chat views. #94627 Thanks @zats.
  • The Control UI can now create Early Morning jobs with the Silent preset in the main session and without notifications, instead of leaving the dialog open with no visible result. #95459 Related #95073. Thanks @vincentkoc, @vporton, @zoowh.
  • At the million-token boundary, Control UI badges and usage readouts now show "1M" instead of the confusing "1000k", while the underlying token counts remain unchanged. #95485 Thanks @narahariraghava, @vincentkoc.
  • The Control UI Overview now counts and flags only enabled cron jobs that still need attention, while disabled jobs retain their past failure details without appearing as current problems. #95723 Related #95716. Thanks @voytas75, @zengwen-dt.
  • Control UI users now see shorter System, Light, and Dark theme tooltips, while screen readers announce less repetitive labels without losing the surrounding Color mode context. #95837 Thanks @hannesrudolph, @sannidhyasah.
  • Raw configuration no longer appears missing in Settings after switching from the form view, because the JSON is brought back into view instead of retaining the previous scroll position. #96145 Related #94202. Thanks @sunlit-deng, @vporton.
  • New iOS users now reach OpenClaw's welcome and onboarding before iOS asks for local-network access, while existing users still get the request when opening gateway setup or otherwise needing LAN gateway discovery. #96181 Thanks @joshavant.

Plugins and Packaging

Additional plugin and package fixes

Additional plugin management fixes improve installation, verification, package resolution, and updates.

  • People installing or updating the official Yuanbao channel plugin through OpenClaw's trusted catalog now get version 2.15.0, with the expected integrity check and missing-plugin guidance aligned to that release. #94470 Thanks @jase-283.
  • First-run onboarding can now install the bundled gog skill through Homebrew without failing on the removed third-party tap formula. #95019 Related #95017. Thanks @sedrak-hovhannisyan, @vincentkoc, @zengwen-dt.
  • Canvas, Discord, Slack, Voice Call, and WhatsApp users keep the same skill guidance with each installed or bundled plugin, while references to the former root skills/... paths need to move into the relevant plugin directory. #95664 Thanks @vincentkoc.
  • ClawHub skill verification now accepts the same @owner/<slug> reference used for installs and updates, so users can check the intended publisher without switching to an ambiguous bare slug. #95992 Thanks @patrick-erichsen.
  • OpenClaw's install-time package-manager warning now identifies npm, Yarn, Yarn Berry, and Corepack-style launchers correctly, avoiding misleading guidance when those tools run through alternate executable names. 11a2e03 Thanks @vincentkoc.
  • Package URL installs now handle oversized download timeouts without failing before available package data can be resolved. c310f8c
  • Plugin and CLI developers now see a clearer supported command-formatting API, while device pairing, node registration, and doctor guidance keep producing the same shell-safe commands. 23b4f33
  • Windows ARM64 users now get matching ARM64 Node and MinGit downloads when running the PowerShell installer through an x64-emulated shell. fac091b Thanks @vincentkoc.
  • Default OpenClaw installs no longer spend time building optional llama.cpp support, avoiding native-build failures for users who did not enable it. cc1b3a8 Thanks @vincentkoc.

Docs and Admin Tools

Setup and command reliability

The OpenClaw CLI, tab completion, and openclaw doctor now handle more setup and repair cases cleanly.

  • OpenClaw's zsh tab-completion menu now displays option descriptions containing $ variables or backtick-wrapped examples literally instead of evaluating them as shell input and corrupting the menu. #64490 Thanks @edenkangdw.
  • After upgrading from older sandbox storage, operators now get a clear openclaw doctor warning about leftover registry files and can use openclaw doctor --fix to migrate or clean them up. #84326 Thanks @giodl73-repo.
  • Operators can now use doctor --lint to spot stale legacy Gateway services and preview cleanup, while intentional extra services remain informational and do not fail the default check. #84340 Thanks @giodl73-repo.
  • macOS gateway operators now get a warning before reinstall, repair, or restart overwrites custom LaunchAgent wrapper behavior, while openclaw status distinguishes CLI-only missing-secret checks from the installed service. #90537 Related #90518. Thanks @turbotheturtle, @vincentkoc.
  • Long, multiline, or code-heavy prompts can now be sent to openclaw agent with --message-file, avoiding fragile shell quoting and reporting invalid files before dispatch. #93351 Thanks @ooiuuii.
  • Fixes scheduled doctor --fix --non-interactive repairs restarting an already-running gateway after a temporary health-check failure, so unattended maintenance no longer interrupts the live service. #94148 Related #78217. Thanks @esqandil, @zhangguiping-xydt.
  • openclaw configure and bare openclaw config now stop with clear subcommand guidance when run from scripts or pipes, instead of opening a partial interactive wizard and exiting unclearly. #94238 Related #93953. Thanks @nianjiuzst, @ruomuxydt.
  • Multi-agent operators can now use openclaw gateway usage-cost to view costs for one configured agent or all agents while the existing default-agent command remains unchanged. #94483 Thanks @ly-wang19.
  • Archived Workboard cards no longer clutter the default openclaw workboard list output, while --include-archived and JSON output still provide access when needed. #94562 Related #94555. Thanks @ecican, @vincentkoc, @zengwen-dt.
  • OpenClaw Doctor now gives accurate guidance for working isolated shell-prompt cron jobs instead of repeatedly suggesting a --fix command that cannot clear the warning. #94784 Related #94655. Thanks @altaywtf, @geekoagent, @zengwen-dt.
  • Fixes openclaw doctor showing a fix-required warning for healthy local GGUF memory setups after an intentionally skipped readiness check, while preserving the warning when the configured local model is actually missing. #95393 Related #92582. Thanks @mikasa0818, @neekolascmd, @vincentkoc.
  • On Windows, installer-created gateway tasks now run in the background without a console window that users could accidentally close and stop the gateway. #95480 Related #89231. Thanks @cameronweller, @mikasa0818, @vincentkoc.
  • Agent channel bindings now reject malformed account specs such as matrix:work:extra with a clear error instead of silently routing the agent to a different account. #95572 Thanks @ly-wang19.
  • ClawHub skill updates now honor your configured install safety policy, and openclaw skills update --all updates only tracked ClawHub skills instead of unexpectedly installing other configured skills. #95684 Thanks @vincentkoc.
  • Windows restart and gateway startup workflows are more reliable because OpenClaw now hands commands to the trusted system cmd.exe path instead of depending on process lookup. 7dd01d1 Thanks @vincentkoc.
  • Windows gateway cleanup and listener checks are more reliable when PATH lookup is incomplete, so operators can identify the gateway process and free an occupied port without installed system tools being missed. e9b694e Thanks @vincentkoc.
  • On Windows, OpenClaw startup and TUI Codex handoff now find bun, codex, and other runtime binaries through the trusted system locator even when another where command appears earlier on PATH. 72b9bc7 Thanks @vincentkoc.
  • Windows port diagnostics now use the intended system tools even when PATH entries are missing or shadowed, so gateway and service port conflicts are less likely to be obscured by command-resolution failures. c4facb2 Thanks @vincentkoc.
  • Windows daemon recovery is less likely to miss process detection or cleanup when PATH is incomplete, unusual, or shadowed because scheduled-task fallback now finds PowerShell and taskkill in trusted system locations. 2a140e6 Thanks @vincentkoc.
  • OpenClaw now keeps config recovery markers, last-known-good snapshots, and suspicious-read history in its shared state through migration, without leaving a separate config-health log file behind. 6daabd2 Thanks @vincentkoc.
  • On Windows, Crabbox commands launched through Node package shims now receive provider flags, shell commands, and special shell characters as entered instead of losing or reinterpreting them. 54d24cd Thanks @vincentkoc.
  • Windows-targeted Crabbox workflows are less likely to fail or fall back to slower shell handling when launching Node tools through .cmd and .bat shims. d48dcc6 Thanks @vincentkoc.
  • Windows users can run crabbox, git, and other Node-backed tools through npm-installed command shims without Crabbox stopping before the tool opens. 77f4e45 Thanks @vincentkoc.
  • openclaw doctor now checks profiles that omit tool policy settings without treating the valid omission as an error. 03ba09b
  • openclaw doctor no longer shows misleading tool-section warnings when it cannot evaluate a custom preview profile. 420a0e6 Thanks @vincentkoc.
  • openclaw doctor now limits preview warnings to tool profiles it can evaluate, avoiding misleading configured-grant warnings for unknown profiles. 541f7ff Thanks @vincentkoc.
  • Windows users can install OpenClaw from source without dependency setup being blocked by the installer forcing npm or pnpm scripts through cmd.exe. 1252378 Thanks @vincentkoc.

Tools and scheduled work

Scheduled jobs and tool workflows now finish, validate, and report failures more consistently.
  • Isolated cron jobs using deleteAfterRun now remove their temporary session and transcript after finishing, including runs with delivery disabled, reducing stale files, accumulated context, and manual cleanup. #84794 Related #84707. Thanks @bottenbenny, @turbotheturtle.
  • Individual scheduled jobs can now use their own fallback models, run with fallbacks disabled, or return to normal fallback inheritance through the CLI instead of requiring operators to edit lower-level payload data. #93369 Related #90302. Thanks @849261680, @walliiee.
  • Cron history now reliably finds entries whose job IDs include extra surrounding spaces, and rejects nested or blank IDs before they can create log records that cannot be read back safely. #93567 Thanks @alix-007, @vincentkoc.
  • Adding or removing a cron job no longer causes another recurring job that is already due to lose its pending run. #94323 Thanks @yetval.
  • Word, PowerPoint, and Excel document reads and writes now use the intended .docx, .pptx, or .xlsx path instead of failing against a made-up extension. #95805 Related #93326. Thanks @bhnan, @lzyyzznl, @vincentkoc, @xzh-icenter.
  • Browser automation users keep the same reference-rich snapshots, including useful branches in compact results, with less avoidable processing during snapshot generation. #96072 Thanks @vincentkoc.
  • Fixes timed-out commands and interrupted core updates on Windows sometimes leaving child processes running, so OpenClaw can stop the full process tree more reliably after cancellations, timeouts, or update cleanup. a192b2e Thanks @vincentkoc.
  • Windows users are less likely to see agent-managed tool installs fail while unpacking ZIP downloads such as ripgrep, because OpenClaw now uses the built-in Windows extraction programs instead of relying on PATH lookup. a5fde91
  • Windows setup and runtime checks now find required tools more reliably by using the trusted System32 resolver instead of depending on an unexpected PATH entry. d3b4444 Thanks @vincentkoc.
  • SDK runs created with timeoutMs: 0 now keep the requested zero timeout without an unwanted client-side watchdog. 2bdcc83 Thanks @vincentkoc.
  • Stalled OpenClaw commands now stop reliably even when callers supply extremely large execution or idle-output timeouts. 1425bb3 Thanks @vincentkoc.
  • Commands given extremely large timeout settings now use a safe maximum instead of failing because the runtime cannot schedule the requested wait. 66b94ba
  • Provider-specific tool allow/deny settings now align more consistently with OpenClaw's doctor warnings, including configurations with provider aliases, model-specific keys, OpenRouter-style model IDs, or malformed policy entries. 8f2882f

Additional setup and CLI fixes

Additional openclaw config and CLI fixes improve diagnostics, pairing, startup, and command behavior.

  • Larger OpenClaw configurations can initialize and generate UI hints more efficiently, while sensitive fields continue to be marked the same way. #55018 Thanks @huangyandi-red, @vincentkoc, @xdhuangyandi.
  • Config changes that still need a manual gateway restart now show a clear restart-required notice with the original note preserved, instead of looking finished with a misleading config-patch ok message. #83041 Related #46797. Thanks @stache73, @xuruiray.
  • Help for doctor, gateway, models, plugins, sessions, and tasks now appears in tens of milliseconds, while commands such as sessions --help and tasks --help previously took about 1.6 to 1.8 seconds to begin responding. #89628 Thanks @yyzquwu.
  • OpenTelemetry trace backends such as Langfuse now show the actual provider/model name instead of "unknown" for slash-qualified model IDs. #89981 Thanks @mycarrysun, @vincentkoc.
  • Malformed or older device-pairing records no longer stop openclaw devices list from showing pending approval requests, while valid roles still appear normally. #93504 Thanks @ly-wang19.
  • OpenClaw now rejects SSH targets with stray leading or trailing colons before they can produce invalid SSH configuration or tunnel startup failures for SSH-backed sandboxes and gateways. #93887 Thanks @miorbnli.
  • Users whose non-interactive setup fails its local gateway health check now get runnable openclaw onboard --install-daemon or openclaw onboard --skip-health recovery commands instead of unsupported setup flags. #93994 Related #93947. Thanks @bk-z1, @nianjiuzst.
  • Gateway health and probe checks now accept the same custom --port used to start a local gateway, reject invalid ports early, and show the selected loopback target in JSON output. #94687 Related #79100. Thanks @bryantegomoh, @ozthedivine.
  • gateway --force now detects IPv4-only processes occupying the gateway port and still attempts cleanup when a port check is inconclusive, instead of mistakenly treating the port as free. #94949 Related #94426. Thanks @sunlit-deng, @vincentkoc, @wangwllu.
  • openclaw config validate now accepts command-based MCP server setups that explicitly use transport: "stdio", avoiding false validation errors while still rejecting invalid remote-style stdio configurations. #95102 Related #95082. Thanks @ken-jo, @lzyyzznl.
  • CLI image edits can now return multiple variants in one command with --count <n>, instead of being limited to the provider's default single result. #95300 Thanks @ly-wang19.
  • openclaw sessions export-trajectory now finds sessions that other session commands can already see when custom, ~-based, or {agentId}-templated stores are configured, without requiring the store path again. #95570 Related #95568. Thanks @youngting520.
  • Fixes infer inspect --name <id> --json showing flags that the matching CLI commands did not accept, so developers and operators can reliably discover supported model, auth, and transcription options. #95719 Thanks @ly-wang19, @vincentkoc.
  • People inspecting very large or out-of-order sessions can open usage details and still get the latest timestamped log entries without OpenClaw retaining the entire parsed log history in memory. #96019 Thanks @vincentkoc.
  • Operators can now set up the auth monitor, systemd timer, and Termux widgets for their own OpenClaw host without first replacing maintainer-specific hostnames and filesystem paths. af3e509 Thanks @vincentkoc.
  • Native Windows crabbox hydration now selects the required Windows daemon job automatically, avoiding failed or misrouted runs while leaving WSL2 and explicit job overrides unchanged. d5d9a82 Thanks @vincentkoc.

User operation documentation

The Gateway configuration and related user guides now give clearer setup and operating instructions.

  • People setting a local agent avatar can avoid missing images by keeping workspace-relative files under 2 MB, while HTTP(S) and data URI avatars are not subject to that limit. #78884 Related #65312. Thanks @wangjieweb3-design, @nyx-nocturna.
  • OpenClaw's default agent instructions now ask agents to check for suitable free or open-source solutions before proposing a custom build, while still allowing custom work when it is the better fit. #86608 Thanks @cablackmon.
  • Plugin authors can now use the documented targetSessionKey on subagent_ended events to match them with the corresponding spawn, instead of relying on agentId or childSessionKey fields that are not emitted. #95191 Related #95186. Thanks @ken-jo, @mahaohao-ch.
  • ClawHub skill links in OpenClaw docs and showcase cards now open the canonical owner-qualified pages, and install examples use copy-ready openclaw skills install @owner/<slug> references instead of older bare-slug routes. #95972 Thanks @patrick-erichsen.

Additional tool and automation fixes

Additional plugin SDK and automation fixes improve tool events, cron inputs, and Windows handoffs.

  • SDK applications now receive tool.call.failed when terminal tools fail or are blocked, instead of a misleading completion event, so existing failure handling can react correctly. #95383 Thanks @ly-wang19.
  • Fixes cron add and update requests being rejected when recognized job fields arrive with harmless trailing spaces, so schedules can be saved without relaxing checks for ambiguous or unsafe input. #95674 Related #95407. Thanks @nassiel, @zw-xysk.
  • Codex subagent monitoring handles large sets of child agents and transcript files with less unnecessary scanning, while older transcript filename formats continue to resolve as before. #96085 Thanks @vincentkoc.
  • Fixes native Windows crabbox hydration getting stuck or missing handoffs when the runner and daemon use different home directories, so both can find the same job state and stop files. f354889 Thanks @vincentkoc.

Additional contributions

Additional maintainer-facing contributions: #95308, #95465, #95625, #95649, #95681, #95857, #95870, #95872, #95879, #95890, #95909, #95922, #95946, #95967, #95983, #96258, #95094, #95466, #95876, #95880, #95919, #95928, #95991, #96235, #94272, #94622, #95898, #95901, #95999, #96055, #96226, #96271, #97909, #91502, #91506, #94700, #95406, #95858, #95933, #95944, #95947, #95952, #95961, #95971, #95975, #96003, #96017, #96030, #96246, #87121, #90223, #93378, #95475, #95499, #95602, #95653, #76668, #87861, #95243, #78715, #93502, #96044, #96057, #96061, #91193, #95706, #96179, #89912, #90439, #96182, #96191, #96193, #96195, #96204, #96206, #96213, #96218, #95893, #95930. Thanks @aniruddhaadak80, @coder999999999, @davinci282828, @harjothkhara, @hugenshen, @jalehman, @jason-allen-oneal, @joshavant, @kklouzal, @lizuju, @mehrazmorshed, @mmyzwl, @patrick-erichsen, @romneyda, @rushindrasinha, @shuofengzhang, @tayoun, @vincentkoc, @wadydx, @wangmiao0668000666, @whiteyzy, @yachiyo1680, @zats.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.11
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.11.tgz
  • integrity: sha512-T+P/g19IheeT1ckXMoPN61dYuE8vBF4MderI+kWkvpuFYxPkJxn8AXLpu9IXCnN9g36Acpm9+mMD/V+lsvOkyA==
  • release SHA: e085fa1a3ffd32d0ea6917e1e6fb4ecbffbb77d2
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.11/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/28456822852
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/28417979026
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/28415183795
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/28457240090
  • plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/28457242470
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/28458034111
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/28419920660
  • Windows Hub promotion: https://github.com/openclaw/openclaw/actions/runs/28458452299 from openclaw/openclaw-windows-node@v0.6.11
v2026.6.11-beta.2 pre [Jun 28, 2026] details → github →

# openclaw 2026.6.11-beta.2

2026.6.11

Highlights

  • More capable channel control: Slack relay mode, native Mattermost /oc_queue, and per-DM model overrides make channel operations easier to automate and tune. (#94707, #95546, #95120) Thanks @sjf-oa, @amknight, @xydigit-zt, @thomaszta, and @gandalf-at-lerian.
  • Richer operator workflows: openclaw agent --message-file and the RAFT CLI wake bridge add practical file-driven and remote wake-up paths. (#93351, #95497) Thanks @ooiuuii and @vincentkoc.
  • Safer plugin distribution: additional official plugins are externalized cleanly, with bundled plugin icon metadata available to installed clients. (#95683, #95845) Thanks @vincentkoc and @Patrick-Erichsen.
  • Stronger mobile operations: Android settings detail panels improve configuration visibility and control on mobile. (#95148) Thanks @Tosko4.
  • More reliable agent turns: Codex partial deltas, harness activation, and long-context prompt-cache stability reduce lost progress and inconsistent runs. (#95404, #95652, #95624) Thanks @agonza1 and @vincentkoc.

Changes

  • Gateway and plugin tooling: channel identity hook context and per-agent usage-cost reporting give integrations and operators more precise routing and accounting. (#91903, #94483) Thanks @lanzhi-lee, @vincentkoc, and @ly-wang19.
  • Provider and model coverage: catalog parsing, reasoning controls, provider model resolution, and encrypted reasoning support now handle more live provider variants. (#95283, #95710, #95268, #95744, #95686, #93956) Thanks @ZengWen-DT, @vincentkoc, @Marvinthebored, @Darren2030, @daniel-alejandro-t, @parveshsaini, @geraint0923, @fuller-stack-dev, and @jason-allen-oneal.

Fixes

  • Channel delivery: Telegram progress rendering, webhook lifecycle, reaction directives, duplicate mirror writes, queued update draining, and WhatsApp durable reply targets are now more reliable. (#95532, #93002, #95183, #94506, #94977, #95069, #95577, #95007, #95914) Thanks @amknight, @snowzlmbot, @zhangguiping-xydt, @shadow-enthusiast, @xialonglee, @travellingsoldier85, @obviyus, @hugenshen, @Cuttingwater, @heichaowo, @LiuwqGit, @freidrich-goldenflow, @mcaxtr, and @vincentkoc.
  • WhatsApp and message identity: native quotes, Baileys group reliability, and approval reactions across JID drift now preserve the intended conversation context. (#95483, #94338, #95935) Thanks @mcaxtr, @xialonglee, and @octopuslabs-fl.
  • Gateway and session safety: stuck release claims, draining-state reporting, remote probe timeouts, malformed paired access lists, and non-delivery session identity are handled without silent routing loss. (#95299, #94915, #89859, #92178, #95467) Thanks @mikasa0818, @kriegerbangerz-ship-it, @markoub, @vincentkoc, @maxschachere, @mushuiyu886, @gozzbb2, @wangmiao0668000666, @ly-wang19, @EmilioNicolas, @yetval, and @hellocli.
  • Agent and fallback behavior: aborted runs stop cleanly, provider response bodies stay bounded, Claude CLI credit failures continue through fallback, and Codex usage-limit responses classify correctly. (#94412, #95218, #95508, #95420, #95418, #95417, #95400) Thanks @szsip239, @vincentkoc, @Alix-007, @mikasa0818, @sallyom, @riazrahaman, and @jason-allen-oneal.
  • Provider and model edge cases: OpenRouter IDs, Ollama discovery and embeddings, Gemini freshness, and model-catalog prefixes now resolve against the right runtime metadata. (#95268, #94811, #93956, #95682, #95744) Thanks @Darren2030, @daniel-alejandro-t, @mushuiyu886, @jason-allen-oneal, @Sunjae-k, @parveshsaini, @vincentkoc, and @shakkernerd.
  • Configuration and UI guardrails: non-interactive configure fails closed, TLS paths reject empty values, memory artifacts are sanitized, and the UI uses the patched DOMPurify release. (#94238, #94054, #95791, #95691) Thanks @ruomuxydt, @NianJiuZst, @miorbnli, @vincentkoc, @SweetSophia, and @YB0y.
  • Cron and delivery validation: no-config delivery checks, thread-aware dedupe, and pending recurring runs retain their intended destinations. (#95754, #95794, #94323) Thanks @vincentkoc and @yetval.

Complete contribution record

This audited record covers the complete v2026.6.10..0a4d0daa8cc99e9b2c6bc78c2e67357272a9fd53 history: 308 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #95406 test(qa): make release scorecard categories explicit. Thanks @RomneyDa.
  • PR #94700 test: fold HTTP API script proof into QA Lab. Thanks @RomneyDa.
  • PR #95499 fix(test): unit-fast flow mocks. Thanks @RomneyDa.
  • PR #95308 fix(ci): filter ClawSweeper comment dispatches before token minting. Thanks @vincentkoc.
  • PR #95532 fix(telegram): materialize rich message line breaks as <br>. Related #95409. Thanks @amknight and @snowzlmbot.
  • PR #91786 fix(plugins): reconcile managed npm root overrides with managed peer pins. Related #91772. Thanks @amknight and @mkdelta221.
  • PR #93002 Fix Telegram progress draft cleanup before tool output. Related #90753. Thanks @zhangguiping-xydt and @shadow-enthusiast.
  • PR #95175 fix: route mobile exec approvals to reviewer device. Thanks @joshavant.
  • PR #94506 fix(telegram): stop clearing registered webhook on channel restart. Related #90254. Thanks @xialonglee and @travellingsoldier85.
  • PR #95183 fix(telegram): materialize streaming progress placeholders. Related #95004. Thanks @snowzlmbot and @obviyus.
  • PR #95483 fix(whatsapp): preserve native quote replies. Thanks @mcaxtr.
  • PR #94338 fix(whatsapp): wire missing Baileys retry/cache hooks for group message reliability. Related #7433. Thanks @xialonglee and @mcaxtr and @octopuslabs-fl.
  • PR #94707 feat(slack): add relay mode for incoming messages. Thanks @sjf-oa.
  • PR #94977 fix(telegram): honor outbound reaction directives. Related #71140. Thanks @hugenshen and @Cuttingwater.
  • PR #95069 fix(telegram): skip mirror write when primary reply already exists (#94930). Thanks @heichaowo.
  • PR #95550 Preserve inherited channel account policies during migration. Thanks @amknight.
  • PR #95390 fix #95378: https://github.com/openclaw/openclaw/issues/95378. Thanks @mikasa0818 and @obviyus and @MaiDuy708.
  • PR #93143 fix(imessage): keep split-send coalescing opt-in. Thanks @omarshahine.
  • PR #95008 fix(claude-cli): also disable native background Bash and Monitor in --print runs. Thanks @anagnorisis2peripeteia.
  • PR #94545 fix: keep trusted policies with hook registry. Thanks @jesse-merhi.
  • PR #95007 fix(telegram): render progress draft rows as plain readable text. Related #95002. Thanks @snowzlmbot.
  • PR #95624 fix(agents): keep long-context tool-result prompts cache-stable. Thanks @vincentkoc.
  • PR #95625 fix(ci): smooth PR runner-registration bursts. Thanks @vincentkoc.
  • PR #95572 fix(agents): reject bind specs with extra colon segments. Thanks @ly-wang19.
  • PR #95653 test(agents): add large prompt cache coverage. Thanks @vincentkoc.
  • PR #95640 Consolidate iOS notification permission UX. Thanks @joshavant.
  • PR #95546 feat(mattermost): register /oc_queue as a native slash command. Thanks @amknight.
  • PR #95019 fix(skills): point gog brew install at homebrew-core gogcli (#95017). Thanks @ZengWen-DT and @vincentkoc and @Sedrak-Hovhannisyan.
  • PR #93378 test(telegram): keep live polling leases protected. Related #93375. Thanks @mmyzwl and @Yachiyo1680.
  • PR #95084 fix(googlechat): sanitize internal tool-trace lines from outbound text (#90684). Thanks @jailbirt and @studentzhou-svg.
  • PR #95278 Avoid copying process.env in ingress queue state DB opens. Related #94571. Thanks @kaka-srp.
  • PR #95577 fix #86957: drain worker-spooled Telegram updates immediately. Thanks @LiuwqGit and @freidrich-goldenflow.
  • PR #95128 fix(compaction): count user-message image blocks in cut-point estimator. Thanks @yetval.
  • PR #93887 fix(ssh): reject hostnames with stray leading or trailing colons in parseSshTarget. Thanks @miorbnli.
  • PR #95191 docs(plugins): document subagent_ended hook fields. Related #95186. Thanks @MaHaoHao-ch and @ken-jo.
  • PR #95102 fix(config): add stdio to McpServerSchema transport union. Related #95082. Thanks @lzyyzznl and @ken-jo.
  • PR #95465 fix(sdk): type-narrow manifest.files in pack staging root helper. Thanks @wangmiao0668000666.
  • PR #95664 refactor(plugins): move owner skills into plugins. Thanks @vincentkoc.
  • PR #95299 fix #95248: OpenClaw release_lane is a no-op when claim is held by a live worker; stuck Telegram inbound events block agent response until gateway restart. Thanks @mikasa0818 and @kriegerbangerz-ship-it.
  • PR #94687 fix(gateway): accept port for health and probe. Related #79100. Thanks @BryanTegomoh and @ozthedivine.
  • PR #95649 fix(ci): bundle test shards and right-size runners. Thanks @vincentkoc.
  • PR #95243 fix(docs): show inline read_when hints in docs:list. Thanks @hugenshen and @vincentkoc.
  • PR #95283 fix(openai-completions): seal native reasoning before the answer under /reasoning on. Related #95280. Thanks @ZengWen-DT and @vincentkoc and @Marvinthebored.
  • PR #95497 feat(raft): add CLI wake bridge channel. Thanks @vincentkoc.
  • PR #95459 fix(cron): use main-session systemEvent for silent quick-create preset. Related #95073. Thanks @ZOOWH and @vincentkoc and @vporton.
  • PR #95503 fix #89466: [Bug]: Control UI chat input text not cleared after sending. Thanks @zhangguiping-xydt and @vincentkoc and @zhong18804784882.
  • PR #95684 fix(skills): harden ClawHub update policy. Thanks @vincentkoc.
  • PR #95683 feat(plugins): externalize additional official plugins. Thanks @vincentkoc.
  • PR #95681 fix(ci): debounce canonical main runner admission. Thanks @vincentkoc.
  • PR #95652 fix(agents): activate selected harness plugins. Thanks @vincentkoc.
  • PR #95404 fix(codex): stream non-final-answer assistant deltas as partials. Related #95422. Thanks @agonza1 and @vincentkoc.
  • PR #58993 fix(googlechat): support spaceType field for DM vs Space detection. Thanks @Starhappysh and @vincentkoc.
  • PR #94148 fix(doctor): prevent non-interactive --fix from auto-restarting gateway. Related #78217. Thanks @zhangguiping-xydt and @esqandil.
  • PR #89859 fix(gateway): honor remote status probe timeout. Related #65355. Thanks @mushuiyu886 and @hellocli.
  • PR #95466 fix(ci): increase timeouts in flaky process-group signal test. Thanks @jason-allen-oneal.
  • PR #95720 fix(matrix): prevent double bootstrapCrossSigning reset in forced reset. Related #78396. Thanks @vincentkoc and @jteddy.
  • PR #95707 fix(synology-chat): remove duplicate local deliver timeout. Thanks @vincentkoc.
  • PR #95706 fix(whatsapp): remove dead watchdog timeout clamp. Thanks @vincentkoc.
  • PR #95719 fix(cli): sync capability inspect metadata flags with registered options. Thanks @vincentkoc.
  • PR #95721 fix(active-memory): exclude dreaming-narrative session keys from eligibility gate. Related #78500. Thanks @vincentkoc and @vishutdhar.
  • PR #95602 test: save ~79 CI hours/mo in gateway session utils. Thanks @zats and @vincentkoc.
  • PR #94412 fix(agent-core): stop loop after aborted tool run. Thanks @szsip239 and @vincentkoc.
  • PR #94915 fix(gateway): report draining state in readiness. Related #78136. Thanks @markoub and @vincentkoc and @maxschachere.
  • PR #95691 fix(ui): bump dompurify to patched release. Thanks @vincentkoc.
  • PR #95710 fix(vercel-ai-gateway): resolve dynamic model selections. Thanks @vincentkoc.
  • PR #94072 fix(agents): count message-tool source reply as user-facing reply for tool error warnings. Related #93875. Thanks @chenyangjun-xy and @vincentkoc and @hoyanhan.
  • PR #94784 fix(doctor): stop promising --fix for working isolated shell-prompt cron jobs (#94655). Thanks @ZengWen-DT and @altaywtf and @geekoagent.
  • PR #93504 fix(device-pairing): guard role normalization against non-string entries. Thanks @ly-wang19.
  • PR #92178 fix(gateway): normalize malformed paired access lists. Related #90654. Thanks @wangmiao0668000666 and @ly-wang19 and @EmilioNicolas.
  • PR #83041 Fix config patch restart-required notices. Related #46797. Thanks @xuruiray and @Stache73.
  • PR #95754 fix(cron): preserve no-config delivery validation. Thanks @vincentkoc.
  • PR #93351 feat(cli): add --message-file to openclaw agent. Thanks @ooiuuii.
  • PR #95485 fix(ui): roll values near 1M over from k to M in compact token format. Thanks @NarahariRaghava and @vincentkoc.
  • PR #94622 fix(build): allow tsdown heap override. Thanks @tayoun.
  • PR #76668 meta(issue-template): add dedicated docs bug report form. Related #76664. Thanks @WadydX.
  • PR #91193 fix(cli): document Commander rawArgs internal API dependency in action-reparse.ts. Related #83893. Thanks @whiteyzy and @davinci282828.
  • PR #77339 fix(auto-reply): clear runtime model cache on reset. Related #77322. Thanks @mjamiv and @ZaynL.
  • PR #89628 Speed up precomputed command help startup. Thanks @yyzquwu.
  • PR #95087 refactor: add memory and QMD session identity mapping. Thanks @jalehman.
  • PR #89323 fix(web-ui): skip hidden subagent picker pages. Related #89249. Thanks @giodl73-repo and @originsecured-do.
  • PR #84794 Clean up isolated cron sessions after runs. Related #84707. Thanks @TurboTheTurtle and @bottenbenny.
  • PR #95794 fix(cron): compare thread IDs when deduping failure destinations. Thanks @vincentkoc.
  • PR #95791 fix(session-memory): sanitize model artifacts before saving memory. Thanks @vincentkoc and @SweetSophia and @YB0y.
  • PR #95805 fix(agents): normalize hallucinated Office file extensions. Related #93326. Thanks @vincentkoc and @lzyyzznl and @xzh-icenter and @bhnan.
  • PR #89612 fix: include persisted plugin contracts for migrations. Related #89609. Thanks @zerone0x and @mugabuga.
  • PR #89981 fix(diagnostics-otel): keep full model id on spans instead of collapsing to "unknown". Thanks @mycarrysun and @vincentkoc.
  • PR #90489 fix(sessions): clarify cross-agent visibility guidance. Related #90443. Thanks @sahibzada-allahyar and @vincentkoc and @ramitrkar-hash.
  • PR #95383 fix(sdk): classify failed/blocked tool events as tool.call.failed. Thanks @ly-wang19.
  • PR #95827 fix(plugin-sdk): bound live model catalog success body.
  • PR #95792 fix(onboard): refresh provider plugin registry after setup installs. Related #95765. Thanks @snowzlmbot.
  • PR #93943 fix(provider-usage): honor proxy env for usage fetch. Related #78714. Thanks @TurboTheTurtle and @TnzGit.
  • PR #89648 fix(agents): restore model-fetch info logs. Related #89300. Thanks @xiaobao-k8s and @Enominera.
  • PR #93841 fix(ui): render persisted history text blocks. Related #90241. Thanks @mushuiyu886 and @pronzcw.
  • PR #93502 docs: fix docs metadata spellcheck. Thanks @harjothkhara.
  • PR #86608 docs: add existing-solutions preflight guardrail. Thanks @cablackmon.
  • PR #95322 fix(reply): preserve usage footer across rollover. Thanks @litang9.
  • PR #91559 fix(agents): clean Gemini tool schemas by model id. Related #91542. Thanks @Pick-cat and @qiukui666.
  • PR #94701 Fix embedded-run recovery after refreshed session activity. Thanks @imadal1n.
  • PR #95472 [AI] fix(main-session): skip current-gen abort controllers for completed sessions. Thanks @xydt-tanshanshan.
  • PR #95401 fix(lmstudio): canonicalize variant model keys. Thanks @MonkeyLeeT.
  • PR #94323 fix(cron): stop add/remove from dropping a due recurring job's pending run. Thanks @yetval.
  • PR #94443 fix(memory-wiki): retry transient source-page rewrite race instead of aborting wiki_status. Related #92134. Thanks @ZengWen-DT and @cknzraposo.
  • PR #95120 feat(channels): add directUserId support for per-DM model override. Related #53638. Thanks @xydigit-zt and @thomaszta and @gandalf-at-lerian.
  • PR #91049 fix: handle terminal chat send acknowledgements. Related #91048. Thanks @nxmxbbd.
  • PR #95081 fix: keep text transform runtime imports hashed. Related #95057. Thanks @849261680 and @YvesLaRose.
  • PR #93356 fix(plugins): cache plugin setup registry to kill the /models CPU storm. Thanks @obuchowski.
  • PR #85341 refactor: internalize OpenClaw agent runtime.
  • PR #94233 fix(model-fallback): coalesce auth decision logs. Related #56979. Thanks @goutamadwant and @yanan1991.
  • PR #92399 fix(llm): collapse cumulative openai-responses message snapshots instead of concatenating [AI-assisted]. Related #91959. Thanks @amersheeny and @phoenixyy.
  • PR #94811 fix(ollama): honor memory embedding output dimensionality. Thanks @mushuiyu886.
  • PR #84708 fix(agents): recover message-tool mirror replay poison. Thanks @anyech.
  • PR #95274 fix(memory): preserve Windows QMD command paths. Related #92302. Thanks @ly85206559 and @Ardooken.
  • PR #95686 fix(xai): request encrypted reasoning include for all reasoning models. Thanks @geraint0923 and @fuller-stack-dev.
  • PR #82909 fix(telegram): repair message cache reply types. Thanks @lidge-jun.
  • PR #94942 fix(matrix): prune finished fake-indexeddb transactions to prevent OOM. Related #90455. Thanks @xzh-icenter and @yar-sh.
  • PR #93994 fix(setup): point non-interactive health hints at onboard flags. Related #93947. Thanks @BK-Z1 and @NianJiuZst.
  • PR #93956 fix(ollama): skip auto-discovery for remote/cloud base URLs. Thanks @jason-allen-oneal.
  • PR #93547 fix(acp): recover stale persistent sessions by structured resume-required code [AI-assisted]. Related #87830. Thanks @amersheeny and @chouzz.
  • PR #94204 fix(control-ui): rewrite manifest hrefs for configured base path. Related #94157. Thanks @hugenshen and @xrow.
  • PR #95637 fix(qqbot): recognize GFM table separators with one or two dashes. Thanks @ly-wang19.
  • PR #95467 fix(sessions): keep bound channel identity across non-delivery turns. Thanks @yetval.
  • PR #93919 perf(plugins): cache existence probes within bundle manifest scan [AI-assisted]. Related #76209. Thanks @ml12580 and @shenhonglong456-ai.
  • PR #94726 fix(google): add gemini-3.5-flash model catalog entry. Related #94723. Thanks @ajwan8998 and @anguslogan01.
  • PR #94238 fix(config): fail closed when configure runs without an interactive TTY (#93953). Thanks @ruomuxydt and @NianJiuZst.
  • PR #89949 fix(media): pin requester delivery route when task starts. Related #86034. Thanks @wangwllu and @tianxiaochannel-oss88.
  • PR #94470 chore: sync yuanbao plugin catalog to 2.15.0. Thanks @jase-283.
  • PR #93585 fix(daemon): keep systemd gateway running after child OOM. Thanks @snowzlm.
  • PR #94442 fix(imessage): strip leading echo corruption markers in the persisted echo cache. Thanks @ly-wang19.
  • PR #93511 fix(imessage): normalize leading NUL echo-cache prefixes. Thanks @vincentkoc and @ly-wang19.
  • PR #87121 test(cli): add banner emission reset helper. Related #83903. Thanks @lizuju and @davinci282828.
  • PR #89172 fix(feishu): show voice message duration via upload duration. Related #53798. Thanks @areslp and @kinrocW.
  • PR #95118 fix: bound agents load their own inbound workspace context. Related #92903. Thanks @849261680 and @axjing.
  • PR #94752 fix(reply): clarify stale model override resets. Related #94713. Thanks @snowzlmbot and @Gr4via.
  • PR #89716 fix(providers): strip cache-boundary marker from non-Anthropic prompts. Thanks @masatohoshino.
  • PR #95268 fix(openrouter): expand short canonical model IDs to upstream API slugs (fixes #95198). Thanks @Darren2030 and @daniel-alejandro-t.
  • PR #90475 fix(telegram): keep bot reply answers anchored to current message. Thanks @moeedahmed.
  • PR #94219 fix(control-ui): restore provider usage quota pill in sidebar session switcher (fixes #93041). Thanks @Pick-cat and @jazzroutine.
  • PR #93369 fix(cron): expose per-job fallbacks in CLI. Related #90302. Thanks @849261680 and @Walliiee.
  • PR #87912 Handle Codex toolResult blocks in tool-result truncation. Thanks @AdrianIp0204.
  • PR #95744 fix(model-catalog): strip manifest model-id prefixes by the matched length. Related #95743. Thanks @parveshsaini.
  • PR #95300 fix(cli): expose --count on infer image edit, matching image generate. Thanks @ly-wang19.
  • PR #94156 fix: expose OpenAI image quality and moderation CLI options. Thanks @lastguru-net and @ly-wang19.
  • PR #94062 fix(agents): classify generic "LLM request failed." as transient time…. Related #93931. Thanks @hugenshen and @hyphae-bot.
  • PR #93965 fix(opencode-go): streaming completes when provider ends responses. Related #93610. Thanks @zhangguiping-xydt and @ForceConstant.
  • PR #89017 fix(webchat): sessions persist after reconnects. Related #87700. Thanks @zhangguiping-xydt and @asicoe.
  • PR #94627 fix(ios): centralize app accent colors. Thanks @zats.
  • PR #94054 fix(gateway.tls): reject empty/whitespace certPath and keyPath. Thanks @miorbnli.
  • PR #95674 fix(cron): trim trailing whitespace from recognized job object keys. Related #95407. Thanks @zw-xysk and @Nassiel.
  • PR #95857 Fix SQLite user version guardrail allowlist. Thanks @RomneyDa.
  • PR #95858 feat(qa): expose active memory toggles to scenarios. Thanks @RomneyDa.
  • PR #84326 Doctor: expose sandbox registry findings. Thanks @giodl73-repo.
  • PR #73079 fix(minimax): request hex TTS output explicitly. Thanks @efe-arv.
  • PR #94483 feat(gateway-cli): scope usage-cost by agent. Thanks @ly-wang19.
  • PR #91502 feat(qa): crabline channel driver. Thanks @RomneyDa.
  • PR #95872 Move TUI PTY tests into CI node shard. Thanks @RomneyDa.
  • PR #89800 fix(agents): resolve webchat current session status. Related #89773. Thanks @sweetcornna and @killo3967.
  • PR #95870 fix(ci): restore macOS and Windows QA gates. Thanks @vincentkoc.
  • PR #94445 fix(agents): keep cron cloud idle watchdog enabled. Thanks @bek91.
  • PR #91506 fix(qa): reserve shared QA suite flags across runners. Thanks @RomneyDa.
  • PR #95876 ci: add manual release QA profile evidence workflow. Thanks @RomneyDa.
  • PR #95879 fix(ci): use workflow revision for proof checks. Thanks @vincentkoc.
  • PR #93113 fix(memory-core): report active dreaming phases in status. Related #67868. Thanks @AgentArcLab and @mrossit.
  • PR #95837 Simplify color mode button labels. Thanks @SannidhyaSah and @hannesrudolph.
  • PR #95797 fix: /status is too verbose for pinned model sessions. Thanks @Solvely-Colin.
  • PR #90223 test: make qqbot symlinked media helper test robust on Windows. Thanks @aniruddhaadak80.
  • PR #95557 improve: refresh Android overview control surface. Thanks @Solvely-Colin and @joshavant.
  • PR #95593 fix: route Android exec approvals to in-app inbox. Thanks @Solvely-Colin.
  • PR #95570 fix(cli): resolve trajectory export stores consistently. Related #95568. Thanks @youngting520.
  • PR #95880 ci: generalize QA profile evidence workflow. Thanks @RomneyDa.
  • PR #95218 fix(agents): bound provider JSON response reads. Thanks @Alix-007.
  • PR #95614 fix(memory-wiki): preserve human notes block on source re-ingest. Thanks @yetval.
  • PR #95148 feat(android): add settings detail panels. Thanks @Tosko4.
  • PR #95893 Add iOS push sandbox profiles and relay tooling. Thanks @joshavant.
  • PR #95723 fix(control-ui): exclude disabled cron jobs from Overview failed count. Related #95716. Thanks @ZengWen-DT and @voytas75.
  • PR #78715 Fix minor grammar issue in plugin documentation (capabilities plural). Thanks @mehrazmorshed.
  • PR #95890 fix(ci): restore QA workflow gates. Thanks @vincentkoc.
  • PR #95661 fix(discord): reserve closing-fence space on fence-closing lines. Thanks @ly-wang19.
  • PR #94272 ci: add maturity scorecard renderer. Thanks @RomneyDa.
  • PR #95901 ci: add maturity scorecard renderer. Thanks @RomneyDa.
  • PR #95914 fix(whatsapp): preserve durable reply target. Thanks @mcaxtr.
  • PR #95697 improve: reduce hot-path linear scans and redundant I/O. Thanks @vincentkoc.
  • PR #95916 fix(memory): improve node:sqlite unavailable guidance. Thanks @vincentkoc and @rrrrrredy.
  • PR #78884 docs: document local avatar file size limit. Related #65312. Thanks @wangjieweb3-design and @wraxle-geargrind.
  • PR #95909 fix(ci): use available Android SDK platform. Thanks @vincentkoc.
  • PR #68389 plugins: clarify allowlist warning when entries don't match discovered ids. Related #68352. Thanks @lyfuci and @JIRBOY.
  • PR #95898 ci: simplify maturity scorecard QA evidence inputs. Thanks @RomneyDa.
  • PR #95928 fix(ci): honor reusable QA evidence failure policy. Thanks @vincentkoc.
  • PR #95508 fix #95489: [Bug]: claude-cli out-of-credits error bypasses model fallback chain — error text delivered as final response. Thanks @mikasa0818 and @sallyom and @riazrahaman.
  • PR #95420 fix(agents): bound OpenRouter model catalog response reads. Thanks @Alix-007 and @sallyom.
  • PR #95103 fix(gateway): bound pricing catalog streams. Thanks @vincentkoc and @sallyom.
  • PR #95108 fix(agents): bound Anthropic error streams. Thanks @vincentkoc and @sallyom.
  • PR #95418 fix(agents): bound OpenRouter model-scan catalog success body. Thanks @Alix-007.
  • PR #95922 fix(ci): finalize testbox sessions after setup failures. Thanks @vincentkoc.
  • PR #95417 fix(agents): bound Google prompt cache response reads. Thanks @Alix-007.
  • PR #95935 fix(whatsapp): resolve approval reactions across JID drift. Thanks @mcaxtr.
  • PR #84340 Doctor: expose extra gateway service findings. Thanks @giodl73-repo.
  • PR #95946 fix(ci): finalize Windows Testbox after setup failures. Thanks @vincentkoc.
  • PR #95947 feat(qa): add "all" taxonomy profile. Thanks @RomneyDa.
  • PR #91903 feat(plugin-sdk): add extensible channel identity hook context. Thanks @lanzhi-lee and @vincentkoc.
  • PR #95930 docs(copilot): refresh harness parity notes. Thanks @vincentkoc.
  • PR #95952 fix(ci): require QA live evidence artifacts. Thanks @vincentkoc.
  • PR #95666 Fix memory-wiki bridge self-import loop. Related #95657. Thanks @TurboTheTurtle and @vincentkoc and @Johannes0402.
  • PR #91724 fix(agents): infer runtime provider from qualified model ids. Thanks @yu-xin-c and @vincentkoc.
  • PR #95957 improve: speed up provider tool-call streaming. Thanks @vincentkoc.
  • PR #95541 fix(cli): show working commands for pinned plugin drift. Thanks @ooiuuii and @vincentkoc.
  • PR #95933 docs: update maturity scorecard. Thanks @RomneyDa.
  • PR #78105 fix(plugins): make empty-allowlist actionable for new users. Related #68780. Thanks @pahuchi-joe and @JIRBOY.
  • PR #95961 fix(ci): require live proof evidence artifacts. Thanks @vincentkoc.
  • PR #95400 fix(model-fallback): classify Codex usage-limit payloads. Thanks @jason-allen-oneal and @sallyom.
  • PR #95944 perf(qa-lab): speed up unified QA suites. Thanks @RomneyDa.
  • PR #95971 ci: fail QA profile evidence on QA failures. Thanks @RomneyDa.
  • PR #95845 feat: add bundled plugin icon manifest URLs. Thanks @Patrick-Erichsen.
  • PR #95975 fix(ci): require iOS Periphery evidence artifact. Thanks @vincentkoc.
  • PR #95972 docs: update ClawHub skill route references. Thanks @Patrick-Erichsen.
  • PR #90537 Warn on generated wrapper overwrites and status diagnostics. Related #90518. Thanks @TurboTheTurtle and @vincentkoc.
  • PR #93567 fix(cron): normalize run-log jobId on write to match read-side validation. Thanks @Alix-007 and @vincentkoc.
  • PR #95967 perf(ci): widen main test fanout and move codeql off blacksmith. Thanks @vincentkoc.
  • PR #95983 fix(ci): require OpenGrep SARIF artifacts. Thanks @vincentkoc.
  • PR #64490 CLI: escape zsh completion descriptions. Thanks @EdenKangdw.
  • PR #95682 Fix Gemini day freshness time range handling. Thanks @Sunjae-k and @vincentkoc.
  • PR #93374 fix(agents): suggest recovery for unknown tool ids. Related #92273. Thanks @mushuiyu886 and @vincentkoc and @poison.
  • PR #95991 fix(ci): require release QA evidence artifacts. Thanks @vincentkoc.
  • PR #89886 fix(context-engine): forward abortSignal through delegation bridge to runtime compaction. Related #89868. Thanks @openperf and @vincentkoc and @lykeion-dev.
  • PR #95999 fix(release): require postpublish evidence artifact. Thanks @vincentkoc.
  • PR #96003 test(qa): harden all-profile QA evidence scenarios. Thanks @RomneyDa.
  • PR #95860 fix(compaction): trim prefix when transcript ends in an oversized tool result. Related #78478. Thanks @yetval and @wzhgba.
  • PR #95934 fix(xiaomi): correct mimo-v2.5 and mimo-v2.5-pro max output tokens to 128K. Thanks @idootop.
  • PR #95782 fix(sessions): honor configured store for outbound transcript mirrors. Related #95781. Thanks @youngting520.
  • PR #96005 feat(copilot): wire harness parity helpers. Thanks @vincentkoc.
  • PR #95886 fix: avoid false macOS update failures during gateway shutdown. Thanks @fuller-stack-dev.
  • PR #91906 perf: skip subagent live stream parsing. Thanks @lanzhi-lee.
  • PR #87861 fix(model-usage): coerce numeric-string costs and ignore non-finite values. Related #37878. Thanks @coder999999999 and @vincentkoc and @shuofengzhang.
  • PR #96030 fix(qa-lab): avoid duplicate child evidence files. Thanks @RomneyDa.
  • PR #94369 fix(memory-wiki): exclude durable reference pages from stale report. Thanks @SunnyShu0925 and @vincentkoc.
  • PR #94578 Fix recent session resume with long headers. Related #94577. Thanks @rohitjavvadi and @vincentkoc.
  • PR #95919 ci: add Codex maturity scorecard agent. Thanks @RomneyDa.
  • PR #92356 fix(heartbeat): skip reasoning payloads when selecting heartbeat reply. Related #92260. Thanks @tangtaizong666 and @vincentkoc and @jmpei.
  • PR #94328 fix(agents): keep post-compaction user re-issue of a kept-tail prompt during compaction rotation. Thanks @yetval and @vincentkoc.
  • PR #95432 fix(reply): suppress per-message finals across multi-message block streaming. Thanks @yetval and @vincentkoc.
  • PR #95431 fix(auto-reply): keep drain/restart-abort reply paths silent. Thanks @moeedahmed and @vincentkoc.
  • PR #96017 test(qa): gate maturity docs on passing evidence. Thanks @RomneyDa.
  • PR #95552 feat(mattermost): persist participated threads for mention-free follow-ups. Thanks @amknight.
  • PR #95480 fix #89231: [Bug]: Windows installer-created scheduled task launches gateway.cmd with visible console — should use windowless launcher. Thanks @mikasa0818 and @vincentkoc and @CameronWeller.
  • PR #96049 fix(copilot): preserve compaction metadata. Thanks @vincentkoc.
  • PR #96044 docs: rename top maturity tier to Clawesome. Thanks @RomneyDa.
  • PR #92154 Gate private QQBot group commands. Thanks @sliverp.
  • PR #95484 fix: assistant reply lost between compaction summary and first kept user in successor transcript. Related #76729. Thanks @maweibin and @vincentkoc and @njuboy11.
  • PR #95094 ci: add release QA profile evidence. Thanks @RomneyDa.
  • PR #96057 docs: redesign maturity scorecard pages. Thanks @vincentkoc.
  • PR #96014 perf(agents): index displaced tool results. Thanks @vincentkoc.
  • PR #96019 perf(usage): bound session log retention. Thanks @vincentkoc.
  • PR #96013 perf(anthropic): index active stream blocks. Thanks @vincentkoc.
  • PR #96061 docs: place maturity pages under release reference. Thanks @vincentkoc.
  • PR #95589 fix: npm plugin updates break running gateway imports. Thanks @ooiuuii and @vincentkoc.
  • PR #96068 fix(acpx): consume acpx 0.11.1 model capability errors. Related #95869. Thanks @vincentkoc and @SabaTech-dev.
  • PR #89912 refactor: add transcript update identity contract. Thanks @jalehman.
  • PR #96055 fix(maint): use rebase PR landing. Thanks @vincentkoc.
  • PR #96062 feat(copilot): mirror native plan and subagent events. Thanks @vincentkoc.
  • PR #96032 fix(acpx): detect wrapper orphan on any PPID change, not just init reparenting. Thanks @t2wei and @vincentkoc.
  • PR #96124 chore(acpx): bump bundled client to 0.11.2. Thanks @vincentkoc.
  • PR #84352 Fix WebChat dispatch failure session status. Thanks @jesse-merhi.
  • PR #89518 refactor: migrate plugin transcript mirrors. Thanks @jalehman.
  • PR #90439 refactor: add embedded run session target seam. Thanks @jalehman.
  • PR #95699 perf(gateway): drop redundant per-access session-key case scan. Thanks @jzakirov and @jalehman.
  • PR #95992 fix(skills): accept owner-qualified verify refs. Thanks @Patrick-Erichsen.
  • PR #95987 fix(plugins): remove Simple Icons color paths. Thanks @Patrick-Erichsen.
  • PR #96162 refactor: use accessor-backed transcript corpus for memory. Thanks @jalehman.
  • PR #96181 Defer iOS local network permission until onboarding. Thanks @joshavant.
  • PR #95475 test(cli): isolate service env in run and update suites. Thanks @kklouzal.
  • PR #95226 fix(infra): bound ClawHub fetchJson and error response bodies. Thanks @Alix-007.
  • PR #95240 fix(matrix): bound non-raw JSON response body in transport. Thanks @Alix-007.
  • PR #91742 fix(memory): abort orphaned embedding work when memory_search times out. Related #91718. Thanks @dreamhunter2333 and @NOVA-Openclaw.
  • PR #93394 fix(memory): abort orphaned qmd search subprocess when memory_search times out. Thanks @Alix-007.
  • PR #89911 refactor: migrate bundled transcript target lookups. Thanks @jalehman.
  • PR #96191 refactor: route plugin host hook state through accessor. Thanks @jalehman.
  • PR #96179 fix: route gateway history through session accessor target. Thanks @jalehman.
  • PR #96201 refactor: add abort target session accessor. Thanks @jalehman.
  • PR #96193 fix(memory-core): migrate dreaming cleanup lifecycle. Thanks @jalehman.
  • PR #96195 fix: bridge ACP metadata to session accessors. Thanks @jalehman.
  • PR #96182 refactor: migrate agent session accessors. Thanks @jalehman.
  • PR #96218 refactor: guard reply session initialization. Thanks @jalehman.
  • PR #96213 refactor(gateway): add alias mutation accessor. Thanks @jalehman.
  • PR #96204 refactor: migrate command session persistence to accessor. Thanks @jalehman.
  • PR #96206 refactor: route live model fresh reads through session accessor. Thanks @jalehman.
  • PR #96220 fix(whatsapp): quote current follow-up in durable replies. Thanks @mcaxtr.
  • PR #96226 fix(macos): drop Textual from chat packaging. Thanks @vincentkoc.
  • PR #96212 fix(codex): deliver generated images from remote app-server. Thanks @sjf-oa.
  • PR #96235 fix(crabbox): require Xcode for macOS proof. Thanks @vincentkoc.
  • PR #96145 fix: UI glitch: config is not visible. Related #94202. Thanks @sunlit-deng and @vporton.
  • PR #96072 perf(browser): index role snapshot references. Thanks @vincentkoc.
  • PR #96085 perf(codex): index rollout transcript ids. Thanks @vincentkoc.
  • PR #96087 perf(reply): hoist direct-send fragment index. Thanks @vincentkoc.
  • PR #94154 fix(gateway): resolve plugin-registered gateway methods through live registry. Related #94127. Thanks @Pick-cat and @vincentkoc and @BryceMurray.
  • PR #95393 fix #92582: Bug: doctor falsely warns local memory embeddings are not ready. Thanks @mikasa0818 and @vincentkoc and @neekolascmd.
  • PR #96246 fix(qa): accept pnpm separator for lab up. Thanks @vincentkoc.
  • PR #94949 fix(ports): route isPortBusy through checkPortInUse to catch IPv4-only occupants. Related #94426. Thanks @sunlit-deng and @vincentkoc and @wangwllu.
  • PR #94562 fix(workboard): hide archived cards in CLI list by default. Related #94555. Thanks @ZengWen-DT and @vincentkoc and @ecican.
  • PR #96243 fix(nextcloud-talk): ignore signed non-message webhook events. Related #81566. Thanks @arkyu2077 and @vincentkoc and @rafaelmgbh.
  • PR #96140 fix(exec): preserve turn-source routing target in approval followups for plugin channels. Related #96103. Thanks @yetval and @vincentkoc and @lansenger-pm.
  • PR #96258 ci: move CodeQL quality scans to hosted runners. Thanks @vincentkoc.
  • PR #96271 chore(release): close out 2026.6.10 on main. Thanks @vincentkoc.
  • PR #96233 fix(agents): run heartbeatpromptcontribution on harness prompt builds. Thanks @azogheb and @vincentkoc.
  • PR #55018 fix: avoid O(N²) shallow-copy in mapSensitivePaths schema traversal. Thanks @xdhuangyandi and @vincentkoc and @huangyandi-red.
  • PR #95831 fix: compact Codex OAuth OpenAI sessions without API keys. Related #95693. Thanks @sallyom and @YUI-TIEN.
  • PR #96244 fix(auto-reply): align channel intro wording with chat_type. Related #95645. Thanks @arkyu2077 and @vincentkoc and @iloveleon19.
  • PR #97118 fix(telegram): recover stalled ingress spool claims. Thanks @vincentkoc.
  • PR #97543 fix(telegram): recover stalled ingress spool claims. Thanks @vincentkoc.
  • PR #97122 ci(docker): publish releases to Docker Hub. Thanks @vincentkoc.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.11-beta.2
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.11-beta.2.tgz
  • integrity: sha512-aUA8lyvSetHvNMVsfbHvEveNhJhafvRl4OYZnxxwWSN4ocO8tNJ2uMUagxHMqZDdzwomjZ6VH3kSuolYjhU0wg==
  • release SHA: 4f9d5864f09f60a6eb9da6ad6317148bbf89e134
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.11-beta.2/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/28338723855
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/28336646700
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/28333012052
  • Docker release: https://github.com/openclaw/openclaw/actions/runs/28336644856
  • Docker images: docker.io/openclaw/openclaw:2026.6.11-beta.2 and ghcr.io/openclaw/openclaw:2026.6.11-beta.2
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/28338858442
  • plugin ClawHub publish: passed in https://github.com/openclaw/openclaw/actions/runs/28397561273
  • ClawHub package verification: Discord, Slack, Voice Call, and WhatsApp are live in ClawHub at 2026.6.11-beta.2 with npm-pack artifacts.
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/28338936121
  • npm Telegram beta E2E: not supplied
v2026.6.11-beta.1 pre [Jun 24, 2026] details → github →

# openclaw 2026.6.11-beta.1

2026.6.11

Highlights

  • More capable channel control: Slack relay mode, native Mattermost /oc_queue, and per-DM model overrides make channel operations easier to automate and tune. (#94707, #95546, #95120) Thanks @sjf-oa, @amknight, @xydigit-zt, @thomaszta, and @gandalf-at-lerian.
  • Richer operator workflows: openclaw agent --message-file and the RAFT CLI wake bridge add practical file-driven and remote wake-up paths. (#93351, #95497) Thanks @ooiuuii and @vincentkoc.
  • Safer plugin distribution: additional official plugins are externalized cleanly, with bundled plugin icon metadata available to installed clients. (#95683, #95845) Thanks @vincentkoc and @Patrick-Erichsen.
  • Stronger mobile operations: Android settings detail panels improve configuration visibility and control on mobile. (#95148) Thanks @Tosko4.
  • More reliable agent turns: Codex partial deltas, harness activation, and long-context prompt-cache stability reduce lost progress and inconsistent runs. (#95404, #95652, #95624) Thanks @agonza1 and @vincentkoc.

Changes

  • Gateway and plugin tooling: channel identity hook context and per-agent usage-cost reporting give integrations and operators more precise routing and accounting. (#91903, #94483) Thanks @lanzhi-lee, @vincentkoc, and @ly-wang19.
  • Provider and model coverage: catalog parsing, reasoning controls, provider model resolution, and encrypted reasoning support now handle more live provider variants. (#95283, #95710, #95268, #95744, #95686, #93956) Thanks @ZengWen-DT, @vincentkoc, @Marvinthebored, @Darren2030, @daniel-alejandro-t, @parveshsaini, @geraint0923, @fuller-stack-dev, and @jason-allen-oneal.

Fixes

  • Channel delivery: Telegram progress rendering, webhook lifecycle, reaction directives, duplicate mirror writes, queued update draining, and WhatsApp durable reply targets are now more reliable. (#95532, #93002, #95183, #94506, #94977, #95069, #95577, #95007, #95914) Thanks @amknight, @snowzlmbot, @zhangguiping-xydt, @shadow-enthusiast, @xialonglee, @travellingsoldier85, @obviyus, @hugenshen, @Cuttingwater, @heichaowo, @LiuwqGit, @freidrich-goldenflow, @mcaxtr, and @vincentkoc.
  • WhatsApp and message identity: native quotes, Baileys group reliability, and approval reactions across JID drift now preserve the intended conversation context. (#95483, #94338, #95935) Thanks @mcaxtr, @xialonglee, and @octopuslabs-fl.
  • Gateway and session safety: stuck release claims, draining-state reporting, remote probe timeouts, malformed paired access lists, and non-delivery session identity are handled without silent routing loss. (#95299, #94915, #89859, #92178, #95467) Thanks @mikasa0818, @kriegerbangerz-ship-it, @markoub, @vincentkoc, @maxschachere, @mushuiyu886, @gozzbb2, @wangmiao0668000666, @ly-wang19, @EmilioNicolas, and @yetval.
  • Agent and fallback behavior: aborted runs stop cleanly, provider response bodies stay bounded, Claude CLI credit failures continue through fallback, and Codex usage-limit responses classify correctly. (#94412, #95218, #95508, #95420, #95418, #95417, #95400) Thanks @szsip239, @vincentkoc, @Alix-007, @mikasa0818, @sallyom, @riazrahaman, and @jason-allen-oneal.
  • Provider and model edge cases: OpenRouter IDs, Ollama discovery and embeddings, Gemini freshness, and model-catalog prefixes now resolve against the right runtime metadata. (#95268, #94811, #93956, #95682, #95744) Thanks @Darren2030, @daniel-alejandro-t, @mushuiyu886, @jason-allen-oneal, @Sunjae-k, @parveshsaini, @vincentkoc, and @shakkernerd.
  • Configuration and UI guardrails: non-interactive configure fails closed, TLS paths reject empty values, memory artifacts are sanitized, and the UI uses the patched DOMPurify release. (#94238, #94054, #95791, #95691) Thanks @ruomuxydt, @NianJiuZst, @miorbnli, @vincentkoc, @SweetSophia, and @YB0y.
  • Cron and delivery validation: no-config delivery checks, thread-aware dedupe, and pending recurring runs retain their intended destinations. (#95754, #95794, #94323) Thanks @vincentkoc and @yetval.

Complete contribution record

This audited record covers the complete v2026.6.10..ee421ef7da7edf152ab911d74ffcfd852ecf43e2 history: 305 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #95406 test(qa): make release scorecard categories explicit. Thanks @RomneyDa.
  • PR #94700 test: fold HTTP API script proof into QA Lab. Thanks @RomneyDa.
  • PR #95499 fix(test): unit-fast flow mocks. Thanks @RomneyDa.
  • PR #95308 fix(ci): filter ClawSweeper comment dispatches before token minting. Thanks @vincentkoc.
  • PR #95532 fix(telegram): materialize rich message line breaks as <br>. Related #95409. Thanks @amknight and @snowzlmbot.
  • PR #91786 fix(plugins): reconcile managed npm root overrides with managed peer pins. Related #91772. Thanks @amknight and @mkdelta221.
  • PR #93002 Fix Telegram progress draft cleanup before tool output. Related #90753. Thanks @zhangguiping-xydt and @shadow-enthusiast.
  • PR #95175 fix: route mobile exec approvals to reviewer device. Thanks @joshavant.
  • PR #94506 fix(telegram): stop clearing registered webhook on channel restart. Related #90254. Thanks @xialonglee and @travellingsoldier85.
  • PR #95183 fix(telegram): materialize streaming progress placeholders. Related #95004. Thanks @snowzlmbot and @obviyus.
  • PR #95483 fix(whatsapp): preserve native quote replies. Thanks @mcaxtr.
  • PR #94338 fix(whatsapp): wire missing Baileys retry/cache hooks for group message reliability. Related #7433. Thanks @xialonglee and @mcaxtr and @octopuslabs-fl.
  • PR #94707 feat(slack): add relay mode for incoming messages. Thanks @sjf-oa.
  • PR #94977 fix(telegram): honor outbound reaction directives. Related #71140. Thanks @hugenshen and @Cuttingwater.
  • PR #95069 fix(telegram): skip mirror write when primary reply already exists (#94930). Thanks @heichaowo.
  • PR #95550 Preserve inherited channel account policies during migration. Thanks @amknight.
  • PR #95390 fix #95378: https://github.com/openclaw/openclaw/issues/95378. Thanks @mikasa0818 and @obviyus and @MaiDuy708.
  • PR #93143 fix(imessage): keep split-send coalescing opt-in. Thanks @omarshahine.
  • PR #95008 fix(claude-cli): also disable native background Bash and Monitor in --print runs. Thanks @anagnorisis2peripeteia.
  • PR #94545 fix: keep trusted policies with hook registry. Thanks @jesse-merhi.
  • PR #95007 fix(telegram): render progress draft rows as plain readable text. Related #95002. Thanks @snowzlmbot.
  • PR #95624 fix(agents): keep long-context tool-result prompts cache-stable. Thanks @vincentkoc.
  • PR #95625 fix(ci): smooth PR runner-registration bursts. Thanks @vincentkoc.
  • PR #95572 fix(agents): reject bind specs with extra colon segments. Thanks @ly-wang19.
  • PR #95653 test(agents): add large prompt cache coverage. Thanks @vincentkoc.
  • PR #95640 Consolidate iOS notification permission UX. Thanks @joshavant.
  • PR #95546 feat(mattermost): register /oc_queue as a native slash command. Thanks @amknight.
  • PR #95019 fix(skills): point gog brew install at homebrew-core gogcli (#95017). Thanks @ZengWen-DT and @vincentkoc and @Sedrak-Hovhannisyan.
  • PR #93378 test(telegram): keep live polling leases protected. Related #93375. Thanks @mmyzwl and @Yachiyo1680.
  • PR #95084 fix(googlechat): sanitize internal tool-trace lines from outbound text (#90684). Thanks @jailbirt and @studentzhou-svg.
  • PR #95278 Avoid copying process.env in ingress queue state DB opens. Related #94571. Thanks @kaka-srp.
  • PR #95577 fix #86957: drain worker-spooled Telegram updates immediately. Thanks @LiuwqGit and @freidrich-goldenflow.
  • PR #95128 fix(compaction): count user-message image blocks in cut-point estimator. Thanks @yetval.
  • PR #93887 fix(ssh): reject hostnames with stray leading or trailing colons in parseSshTarget. Thanks @miorbnli.
  • PR #95191 docs(plugins): document subagent_ended hook fields. Related #95186. Thanks @MaHaoHao-ch and @ken-jo.
  • PR #95102 fix(config): add stdio to McpServerSchema transport union. Related #95082. Thanks @lzyyzznl and @ken-jo.
  • PR #95465 fix(sdk): type-narrow manifest.files in pack staging root helper. Thanks @wangmiao0668000666.
  • PR #95664 refactor(plugins): move owner skills into plugins. Thanks @vincentkoc.
  • PR #95299 fix #95248: OpenClaw release_lane is a no-op when claim is held by a live worker; stuck Telegram inbound events block agent response until gateway restart. Thanks @mikasa0818 and @kriegerbangerz-ship-it.
  • PR #94687 fix(gateway): accept port for health and probe. Related #79100. Thanks @BryanTegomoh and @ozthedivine.
  • PR #95649 fix(ci): bundle test shards and right-size runners. Thanks @vincentkoc.
  • PR #95243 fix(docs): show inline read_when hints in docs:list. Thanks @hugenshen and @vincentkoc.
  • PR #95283 fix(openai-completions): seal native reasoning before the answer under /reasoning on. Related #95280. Thanks @ZengWen-DT and @vincentkoc and @Marvinthebored.
  • PR #95497 feat(raft): add CLI wake bridge channel. Thanks @vincentkoc.
  • PR #95459 fix(cron): use main-session systemEvent for silent quick-create preset. Related #95073. Thanks @ZOOWH and @vincentkoc and @vporton.
  • PR #95503 fix #89466: [Bug]: Control UI chat input text not cleared after sending. Thanks @zhangguiping-xydt and @vincentkoc and @zhong18804784882.
  • PR #95684 fix(skills): harden ClawHub update policy. Thanks @vincentkoc.
  • PR #95683 feat(plugins): externalize additional official plugins. Thanks @vincentkoc.
  • PR #95681 fix(ci): debounce canonical main runner admission. Thanks @vincentkoc.
  • PR #95652 fix(agents): activate selected harness plugins. Thanks @vincentkoc.
  • PR #95404 fix(codex): stream non-final-answer assistant deltas as partials. Related #95422. Thanks @agonza1 and @vincentkoc.
  • PR #58993 fix(googlechat): support spaceType field for DM vs Space detection. Thanks @Starhappysh and @vincentkoc.
  • PR #94148 fix(doctor): prevent non-interactive --fix from auto-restarting gateway. Related #78217. Thanks @zhangguiping-xydt and @esqandil.
  • PR #89859 fix(gateway): honor remote status probe timeout. Related #65355. Thanks @mushuiyu886 and @gozzbb2.
  • PR #95466 fix(ci): increase timeouts in flaky process-group signal test. Thanks @jason-allen-oneal.
  • PR #95720 fix(matrix): prevent double bootstrapCrossSigning reset in forced reset. Related #78396. Thanks @vincentkoc and @jteddy.
  • PR #95707 fix(synology-chat): remove duplicate local deliver timeout. Thanks @vincentkoc.
  • PR #95706 fix(whatsapp): remove dead watchdog timeout clamp. Thanks @vincentkoc.
  • PR #95719 fix(cli): sync capability inspect metadata flags with registered options. Thanks @vincentkoc.
  • PR #95721 fix(active-memory): exclude dreaming-narrative session keys from eligibility gate. Related #78500. Thanks @vincentkoc and @vishutdhar.
  • PR #95602 test: save ~79 CI hours/mo in gateway session utils. Thanks @zats and @vincentkoc.
  • PR #94412 fix(agent-core): stop loop after aborted tool run. Thanks @szsip239 and @vincentkoc.
  • PR #94915 fix(gateway): report draining state in readiness. Related #78136. Thanks @markoub and @vincentkoc and @maxschachere.
  • PR #95691 fix(ui): bump dompurify to patched release. Thanks @vincentkoc.
  • PR #95710 fix(vercel-ai-gateway): resolve dynamic model selections. Thanks @vincentkoc.
  • PR #94072 fix(agents): count message-tool source reply as user-facing reply for tool error warnings. Related #93875. Thanks @chenyangjun-xy and @vincentkoc and @hoyanhan.
  • PR #94784 fix(doctor): stop promising --fix for working isolated shell-prompt cron jobs (#94655). Thanks @ZengWen-DT and @altaywtf and @geekoagent.
  • PR #93504 fix(device-pairing): guard role normalization against non-string entries. Thanks @ly-wang19.
  • PR #92178 fix(gateway): normalize malformed paired access lists. Related #90654. Thanks @wangmiao0668000666 and @ly-wang19 and @EmilioNicolas.
  • PR #83041 Fix config patch restart-required notices. Related #46797. Thanks @xuruiray and @Stache73.
  • PR #95754 fix(cron): preserve no-config delivery validation. Thanks @vincentkoc.
  • PR #93351 feat(cli): add --message-file to openclaw agent. Thanks @ooiuuii.
  • PR #95485 fix(ui): roll values near 1M over from k to M in compact token format. Thanks @NarahariRaghava and @vincentkoc.
  • PR #94622 fix(build): allow tsdown heap override. Thanks @tayoun.
  • PR #76668 meta(issue-template): add dedicated docs bug report form. Related #76664. Thanks @WadydX.
  • PR #91193 fix(cli): document Commander rawArgs internal API dependency in action-reparse.ts. Related #83893. Thanks @whiteyzy and @davinci282828.
  • PR #77339 fix(auto-reply): clear runtime model cache on reset. Related #77322. Thanks @mjamiv and @ZaynL.
  • PR #89628 Speed up precomputed command help startup. Thanks @yyzquwu.
  • PR #95087 refactor: add memory and QMD session identity mapping. Thanks @jalehman.
  • PR #89323 fix(web-ui): skip hidden subagent picker pages. Related #89249. Thanks @giodl73-repo and @originsecured-do.
  • PR #84794 Clean up isolated cron sessions after runs. Related #84707. Thanks @TurboTheTurtle and @bottenbenny.
  • PR #95794 fix(cron): compare thread IDs when deduping failure destinations. Thanks @vincentkoc.
  • PR #95791 fix(session-memory): sanitize model artifacts before saving memory. Thanks @vincentkoc and @SweetSophia and @YB0y.
  • PR #95805 fix(agents): normalize hallucinated Office file extensions. Related #93326. Thanks @vincentkoc and @lzyyzznl and @xzh-icenter and @bhnan.
  • PR #89612 fix: include persisted plugin contracts for migrations. Related #89609. Thanks @zerone0x and @mugabuga.
  • PR #89981 fix(diagnostics-otel): keep full model id on spans instead of collapsing to "unknown". Thanks @mycarrysun and @vincentkoc.
  • PR #90489 fix(sessions): clarify cross-agent visibility guidance. Related #90443. Thanks @sahibzada-allahyar and @vincentkoc and @ramitrkar-hash.
  • PR #95383 fix(sdk): classify failed/blocked tool events as tool.call.failed. Thanks @ly-wang19.
  • PR #95827 fix(plugin-sdk): bound live model catalog success body.
  • PR #95792 fix(onboard): refresh provider plugin registry after setup installs. Related #95765. Thanks @snowzlmbot.
  • PR #93943 fix(provider-usage): honor proxy env for usage fetch. Related #78714. Thanks @TurboTheTurtle and @TnzGit.
  • PR #89648 fix(agents): restore model-fetch info logs. Related #89300. Thanks @xiaobao-k8s and @Enominera.
  • PR #93841 fix(ui): render persisted history text blocks. Related #90241. Thanks @mushuiyu886 and @pronzcw.
  • PR #93502 docs: fix docs metadata spellcheck. Thanks @harjothkhara.
  • PR #86608 docs: add existing-solutions preflight guardrail. Thanks @cablackmon.
  • PR #95322 fix(reply): preserve usage footer across rollover. Thanks @litang9.
  • PR #91559 fix(agents): clean Gemini tool schemas by model id. Related #91542. Thanks @Pick-cat and @qiukui666.
  • PR #94701 Fix embedded-run recovery after refreshed session activity. Thanks @imadal1n.
  • PR #95472 [AI] fix(main-session): skip current-gen abort controllers for completed sessions. Thanks @xydt-tanshanshan.
  • PR #95401 fix(lmstudio): canonicalize variant model keys. Thanks @MonkeyLeeT.
  • PR #94323 fix(cron): stop add/remove from dropping a due recurring job's pending run. Thanks @yetval.
  • PR #94443 fix(memory-wiki): retry transient source-page rewrite race instead of aborting wiki_status. Related #92134. Thanks @ZengWen-DT and @cknzraposo.
  • PR #95120 feat(channels): add directUserId support for per-DM model override. Related #53638. Thanks @xydigit-zt and @thomaszta and @gandalf-at-lerian.
  • PR #91049 fix: handle terminal chat send acknowledgements. Related #91048. Thanks @nxmxbbd.
  • PR #95081 fix: keep text transform runtime imports hashed. Related #95057. Thanks @849261680 and @YvesLaRose.
  • PR #93356 fix(plugins): cache plugin setup registry to kill the /models CPU storm. Thanks @obuchowski.
  • PR #85341 refactor: internalize OpenClaw agent runtime.
  • PR #94233 fix(model-fallback): coalesce auth decision logs. Related #56979. Thanks @goutamadwant and @yanan1991.
  • PR #92399 fix(llm): collapse cumulative openai-responses message snapshots instead of concatenating [AI-assisted]. Related #91959. Thanks @amersheeny and @phoenixyy.
  • PR #94811 fix(ollama): honor memory embedding output dimensionality. Thanks @mushuiyu886.
  • PR #84708 fix(agents): recover message-tool mirror replay poison. Thanks @anyech.
  • PR #95274 fix(memory): preserve Windows QMD command paths. Related #92302. Thanks @ly85206559 and @Ardooken.
  • PR #95686 fix(xai): request encrypted reasoning include for all reasoning models. Thanks @geraint0923 and @fuller-stack-dev.
  • PR #82909 fix(telegram): repair message cache reply types. Thanks @lidge-jun.
  • PR #94942 fix(matrix): prune finished fake-indexeddb transactions to prevent OOM. Related #90455. Thanks @xzh-icenter and @yar-sh.
  • PR #93994 fix(setup): point non-interactive health hints at onboard flags. Related #93947. Thanks @zhouhe-xydt and @NianJiuZst.
  • PR #93956 fix(ollama): skip auto-discovery for remote/cloud base URLs. Thanks @jason-allen-oneal.
  • PR #93547 fix(acp): recover stale persistent sessions by structured resume-required code [AI-assisted]. Related #87830. Thanks @amersheeny and @chouzz.
  • PR #94204 fix(control-ui): rewrite manifest hrefs for configured base path. Related #94157. Thanks @hugenshen and @xrow.
  • PR #95637 fix(qqbot): recognize GFM table separators with one or two dashes. Thanks @ly-wang19.
  • PR #95467 fix(sessions): keep bound channel identity across non-delivery turns. Thanks @yetval.
  • PR #93919 perf(plugins): cache existence probes within bundle manifest scan [AI-assisted]. Related #76209. Thanks @ml12580 and @shenhonglong456-ai.
  • PR #94726 fix(google): add gemini-3.5-flash model catalog entry. Related #94723. Thanks @ajwan8998 and @anguslogan01.
  • PR #94238 fix(config): fail closed when configure runs without an interactive TTY (#93953). Thanks @ruomuxydt and @NianJiuZst.
  • PR #89949 fix(media): pin requester delivery route when task starts. Related #86034. Thanks @wangwllu and @tianxiaochannel-oss88.
  • PR #94470 chore: sync yuanbao plugin catalog to 2.15.0. Thanks @jase-283.
  • PR #93585 fix(daemon): keep systemd gateway running after child OOM. Thanks @snowzlm.
  • PR #94442 fix(imessage): strip leading echo corruption markers in the persisted echo cache. Thanks @ly-wang19.
  • PR #93511 fix(imessage): normalize leading NUL echo-cache prefixes. Thanks @vincentkoc and @ly-wang19.
  • PR #87121 test(cli): add banner emission reset helper. Related #83903. Thanks @lizuju and @davinci282828.
  • PR #89172 fix(feishu): show voice message duration via upload duration. Related #53798. Thanks @areslp and @kinrocW.
  • PR #95118 fix: bound agents load their own inbound workspace context. Related #92903. Thanks @849261680 and @axjing.
  • PR #94752 fix(reply): clarify stale model override resets. Related #94713. Thanks @snowzlmbot and @Gr4via.
  • PR #89716 fix(providers): strip cache-boundary marker from non-Anthropic prompts. Thanks @masatohoshino.
  • PR #95268 fix(openrouter): expand short canonical model IDs to upstream API slugs (fixes #95198). Thanks @Darren2030 and @daniel-alejandro-t.
  • PR #90475 fix(telegram): keep bot reply answers anchored to current message. Thanks @moeedahmed.
  • PR #94219 fix(control-ui): restore provider usage quota pill in sidebar session switcher (fixes #93041). Thanks @Pick-cat and @jazzroutine.
  • PR #93369 fix(cron): expose per-job fallbacks in CLI. Related #90302. Thanks @849261680 and @Walliiee.
  • PR #87912 Handle Codex toolResult blocks in tool-result truncation. Thanks @AdrianIp0204.
  • PR #95744 fix(model-catalog): strip manifest model-id prefixes by the matched length. Related #95743. Thanks @parveshsaini.
  • PR #95300 fix(cli): expose --count on infer image edit, matching image generate. Thanks @ly-wang19.
  • PR #94156 fix: expose OpenAI image quality and moderation CLI options. Thanks @lastguru-net and @ly-wang19.
  • PR #94062 fix(agents): classify generic "LLM request failed." as transient time…. Related #93931. Thanks @hugenshen and @hyphae-bot.
  • PR #93965 fix(opencode-go): streaming completes when provider ends responses. Related #93610. Thanks @zhangguiping-xydt and @ForceConstant.
  • PR #89017 fix(webchat): sessions persist after reconnects. Related #87700. Thanks @zhangguiping-xydt and @asicoe.
  • PR #94627 fix(ios): centralize app accent colors. Thanks @zats.
  • PR #94054 fix(gateway.tls): reject empty/whitespace certPath and keyPath. Thanks @miorbnli.
  • PR #95674 fix(cron): trim trailing whitespace from recognized job object keys. Related #95407. Thanks @zw-xysk and @Nassiel.
  • PR #95857 Fix SQLite user version guardrail allowlist. Thanks @RomneyDa.
  • PR #95858 feat(qa): expose active memory toggles to scenarios. Thanks @RomneyDa.
  • PR #84326 Doctor: expose sandbox registry findings. Thanks @giodl73-repo.
  • PR #73079 fix(minimax): request hex TTS output explicitly. Thanks @efe-arv.
  • PR #94483 feat(gateway-cli): scope usage-cost by agent. Thanks @ly-wang19.
  • PR #91502 feat(qa): crabline channel driver. Thanks @RomneyDa.
  • PR #95872 Move TUI PTY tests into CI node shard. Thanks @RomneyDa.
  • PR #89800 fix(agents): resolve webchat current session status. Related #89773. Thanks @sweetcornna and @killo3967.
  • PR #95870 fix(ci): restore macOS and Windows QA gates. Thanks @vincentkoc.
  • PR #94445 fix(agents): keep cron cloud idle watchdog enabled. Thanks @bek91.
  • PR #91506 fix(qa): reserve shared QA suite flags across runners. Thanks @RomneyDa.
  • PR #95876 ci: add manual release QA profile evidence workflow. Thanks @RomneyDa.
  • PR #95879 fix(ci): use workflow revision for proof checks. Thanks @vincentkoc.
  • PR #93113 fix(memory-core): report active dreaming phases in status. Related #67868. Thanks @AgentArcLab and @mrossit.
  • PR #95837 Simplify color mode button labels. Thanks @SannidhyaSah and @hannesrudolph.
  • PR #95797 fix: /status is too verbose for pinned model sessions. Thanks @Solvely-Colin.
  • PR #90223 test: make qqbot symlinked media helper test robust on Windows. Thanks @aniruddhaadak80.
  • PR #95557 improve: refresh Android overview control surface. Thanks @Solvely-Colin and @joshavant.
  • PR #95593 fix: route Android exec approvals to in-app inbox. Thanks @Solvely-Colin.
  • PR #95570 fix(cli): resolve trajectory export stores consistently. Related #95568. Thanks @youngting520.
  • PR #95880 ci: generalize QA profile evidence workflow. Thanks @RomneyDa.
  • PR #95218 fix(agents): bound provider JSON response reads. Thanks @Alix-007.
  • PR #95614 fix(memory-wiki): preserve human notes block on source re-ingest. Thanks @yetval.
  • PR #95148 feat(android): add settings detail panels. Thanks @Tosko4.
  • PR #95893 Add iOS push sandbox profiles and relay tooling. Thanks @joshavant.
  • PR #95723 fix(control-ui): exclude disabled cron jobs from Overview failed count. Related #95716. Thanks @ZengWen-DT and @voytas75.
  • PR #78715 Fix minor grammar issue in plugin documentation (capabilities plural). Thanks @mehrazmorshed.
  • PR #95890 fix(ci): restore QA workflow gates. Thanks @vincentkoc.
  • PR #95661 fix(discord): reserve closing-fence space on fence-closing lines. Thanks @ly-wang19.
  • PR #94272 ci: add maturity scorecard renderer. Thanks @RomneyDa.
  • PR #95901 ci: add maturity scorecard renderer. Thanks @RomneyDa.
  • PR #95914 fix(whatsapp): preserve durable reply target. Thanks @mcaxtr.
  • PR #95697 improve: reduce hot-path linear scans and redundant I/O. Thanks @vincentkoc.
  • PR #95916 fix(memory): improve node:sqlite unavailable guidance. Thanks @vincentkoc and @rrrrrredy.
  • PR #78884 docs: document local avatar file size limit. Related #65312. Thanks @wangjieweb3-design and @wraxle-geargrind.
  • PR #95909 fix(ci): use available Android SDK platform. Thanks @vincentkoc.
  • PR #68389 plugins: clarify allowlist warning when entries don't match discovered ids. Related #68352. Thanks @lyfuci and @JIRBOY.
  • PR #95898 ci: simplify maturity scorecard QA evidence inputs. Thanks @RomneyDa.
  • PR #95928 fix(ci): honor reusable QA evidence failure policy. Thanks @vincentkoc.
  • PR #95508 fix #95489: [Bug]: claude-cli out-of-credits error bypasses model fallback chain — error text delivered as final response. Thanks @mikasa0818 and @sallyom and @riazrahaman.
  • PR #95420 fix(agents): bound OpenRouter model catalog response reads. Thanks @Alix-007 and @sallyom.
  • PR #95103 fix(gateway): bound pricing catalog streams. Thanks @vincentkoc and @sallyom.
  • PR #95108 fix(agents): bound Anthropic error streams. Thanks @vincentkoc and @sallyom.
  • PR #95418 fix(agents): bound OpenRouter model-scan catalog success body. Thanks @Alix-007.
  • PR #95922 fix(ci): finalize testbox sessions after setup failures. Thanks @vincentkoc.
  • PR #95417 fix(agents): bound Google prompt cache response reads. Thanks @Alix-007.
  • PR #95935 fix(whatsapp): resolve approval reactions across JID drift. Thanks @mcaxtr.
  • PR #84340 Doctor: expose extra gateway service findings. Thanks @giodl73-repo.
  • PR #95946 fix(ci): finalize Windows Testbox after setup failures. Thanks @vincentkoc.
  • PR #95947 feat(qa): add "all" taxonomy profile. Thanks @RomneyDa.
  • PR #91903 feat(plugin-sdk): add extensible channel identity hook context. Thanks @lanzhi-lee and @vincentkoc.
  • PR #95930 docs(copilot): refresh harness parity notes. Thanks @vincentkoc.
  • PR #95952 fix(ci): require QA live evidence artifacts. Thanks @vincentkoc.
  • PR #95666 Fix memory-wiki bridge self-import loop. Related #95657. Thanks @TurboTheTurtle and @vincentkoc and @Johannes0402.
  • PR #91724 fix(agents): infer runtime provider from qualified model ids. Thanks @yu-xin-c and @vincentkoc.
  • PR #95957 improve: speed up provider tool-call streaming. Thanks @vincentkoc.
  • PR #95541 fix(cli): show working commands for pinned plugin drift. Thanks @ooiuuii and @vincentkoc.
  • PR #95933 docs: update maturity scorecard. Thanks @RomneyDa.
  • PR #78105 fix(plugins): make empty-allowlist actionable for new users. Related #68780. Thanks @pahuchi-joe and @JIRBOY.
  • PR #95961 fix(ci): require live proof evidence artifacts. Thanks @vincentkoc.
  • PR #95400 fix(model-fallback): classify Codex usage-limit payloads. Thanks @jason-allen-oneal and @sallyom.
  • PR #95944 perf(qa-lab): speed up unified QA suites. Thanks @RomneyDa.
  • PR #95971 ci: fail QA profile evidence on QA failures. Thanks @RomneyDa.
  • PR #95845 feat: add bundled plugin icon manifest URLs. Thanks @Patrick-Erichsen.
  • PR #95975 fix(ci): require iOS Periphery evidence artifact. Thanks @vincentkoc.
  • PR #95972 docs: update ClawHub skill route references. Thanks @Patrick-Erichsen.
  • PR #90537 Warn on generated wrapper overwrites and status diagnostics. Related #90518. Thanks @TurboTheTurtle and @vincentkoc.
  • PR #93567 fix(cron): normalize run-log jobId on write to match read-side validation. Thanks @Alix-007 and @vincentkoc.
  • PR #95967 perf(ci): widen main test fanout and move codeql off blacksmith. Thanks @vincentkoc.
  • PR #95983 fix(ci): require OpenGrep SARIF artifacts. Thanks @vincentkoc.
  • PR #64490 CLI: escape zsh completion descriptions. Thanks @EdenKangdw.
  • PR #95682 Fix Gemini day freshness time range handling. Thanks @Sunjae-k and @vincentkoc.
  • PR #93374 fix(agents): suggest recovery for unknown tool ids. Related #92273. Thanks @mushuiyu886 and @vincentkoc and @poison.
  • PR #95991 fix(ci): require release QA evidence artifacts. Thanks @vincentkoc.
  • PR #89886 fix(context-engine): forward abortSignal through delegation bridge to runtime compaction. Related #89868. Thanks @openperf and @vincentkoc and @lykeion-dev.
  • PR #95999 fix(release): require postpublish evidence artifact. Thanks @vincentkoc.
  • PR #96003 test(qa): harden all-profile QA evidence scenarios. Thanks @RomneyDa.
  • PR #95860 fix(compaction): trim prefix when transcript ends in an oversized tool result. Related #78478. Thanks @yetval and @wzhgba.
  • PR #95934 fix(xiaomi): correct mimo-v2.5 and mimo-v2.5-pro max output tokens to 128K. Thanks @idootop.
  • PR #95782 fix(sessions): honor configured store for outbound transcript mirrors. Related #95781. Thanks @youngting520.
  • PR #96005 feat(copilot): wire harness parity helpers. Thanks @vincentkoc.
  • PR #95886 fix: avoid false macOS update failures during gateway shutdown. Thanks @fuller-stack-dev.
  • PR #91906 perf: skip subagent live stream parsing. Thanks @lanzhi-lee.
  • PR #87861 fix(model-usage): coerce numeric-string costs and ignore non-finite values. Related #37878. Thanks @coder999999999 and @vincentkoc and @shuofengzhang.
  • PR #96030 fix(qa-lab): avoid duplicate child evidence files. Thanks @RomneyDa.
  • PR #94369 fix(memory-wiki): exclude durable reference pages from stale report. Thanks @SunnyShu0925 and @vincentkoc.
  • PR #94578 Fix recent session resume with long headers. Related #94577. Thanks @rohitjavvadi and @vincentkoc.
  • PR #95919 ci: add Codex maturity scorecard agent. Thanks @RomneyDa.
  • PR #92356 fix(heartbeat): skip reasoning payloads when selecting heartbeat reply. Related #92260. Thanks @tangtaizong666 and @vincentkoc and @jmpei.
  • PR #94328 fix(agents): keep post-compaction user re-issue of a kept-tail prompt during compaction rotation. Thanks @yetval and @vincentkoc.
  • PR #95432 fix(reply): suppress per-message finals across multi-message block streaming. Thanks @yetval and @vincentkoc.
  • PR #95431 fix(auto-reply): keep drain/restart-abort reply paths silent. Thanks @moeedahmed and @vincentkoc.
  • PR #96017 test(qa): gate maturity docs on passing evidence. Thanks @RomneyDa.
  • PR #95552 feat(mattermost): persist participated threads for mention-free follow-ups. Thanks @amknight.
  • PR #95480 fix #89231: [Bug]: Windows installer-created scheduled task launches gateway.cmd with visible console — should use windowless launcher. Thanks @mikasa0818 and @vincentkoc and @CameronWeller.
  • PR #96049 fix(copilot): preserve compaction metadata. Thanks @vincentkoc.
  • PR #96044 docs: rename top maturity tier to Clawesome. Thanks @RomneyDa.
  • PR #92154 Gate private QQBot group commands. Thanks @sliverp.
  • PR #95484 fix: assistant reply lost between compaction summary and first kept user in successor transcript. Related #76729. Thanks @maweibin and @vincentkoc and @njuboy11.
  • PR #95094 ci: add release QA profile evidence. Thanks @RomneyDa.
  • PR #96057 docs: redesign maturity scorecard pages. Thanks @vincentkoc.
  • PR #96014 perf(agents): index displaced tool results. Thanks @vincentkoc.
  • PR #96019 perf(usage): bound session log retention. Thanks @vincentkoc.
  • PR #96013 perf(anthropic): index active stream blocks. Thanks @vincentkoc.
  • PR #96061 docs: place maturity pages under release reference. Thanks @vincentkoc.
  • PR #95589 fix: npm plugin updates break running gateway imports. Thanks @ooiuuii and @vincentkoc.
  • PR #96068 fix(acpx): consume acpx 0.11.1 model capability errors. Related #95869. Thanks @vincentkoc and @SabaTech-dev.
  • PR #89912 refactor: add transcript update identity contract. Thanks @jalehman.
  • PR #96055 fix(maint): use rebase PR landing. Thanks @vincentkoc.
  • PR #96062 feat(copilot): mirror native plan and subagent events. Thanks @vincentkoc.
  • PR #96032 fix(acpx): detect wrapper orphan on any PPID change, not just init reparenting. Thanks @t2wei and @vincentkoc.
  • PR #96124 chore(acpx): bump bundled client to 0.11.2. Thanks @vincentkoc.
  • PR #84352 Fix WebChat dispatch failure session status. Thanks @jesse-merhi.
  • PR #89518 refactor: migrate plugin transcript mirrors. Thanks @jalehman.
  • PR #90439 refactor: add embedded run session target seam. Thanks @jalehman.
  • PR #95699 perf(gateway): drop redundant per-access session-key case scan. Thanks @jzakirov and @jalehman.
  • PR #95992 fix(skills): accept owner-qualified verify refs. Thanks @Patrick-Erichsen.
  • PR #95987 fix(plugins): remove Simple Icons color paths. Thanks @Patrick-Erichsen.
  • PR #96162 refactor: use accessor-backed transcript corpus for memory. Thanks @jalehman.
  • PR #96181 Defer iOS local network permission until onboarding. Thanks @joshavant.
  • PR #95475 test(cli): isolate service env in run and update suites. Thanks @kklouzal.
  • PR #95226 fix(infra): bound ClawHub fetchJson and error response bodies. Thanks @Alix-007.
  • PR #95240 fix(matrix): bound non-raw JSON response body in transport. Thanks @Alix-007.
  • PR #91742 fix(memory): abort orphaned embedding work when memory_search times out. Related #91718. Thanks @dreamhunter2333 and @NOVA-Openclaw.
  • PR #93394 fix(memory): abort orphaned qmd search subprocess when memory_search times out. Thanks @Alix-007.
  • PR #89911 refactor: migrate bundled transcript target lookups. Thanks @jalehman.
  • PR #96191 refactor: route plugin host hook state through accessor. Thanks @jalehman.
  • PR #96179 fix: route gateway history through session accessor target. Thanks @jalehman.
  • PR #96201 refactor: add abort target session accessor. Thanks @jalehman.
  • PR #96193 fix(memory-core): migrate dreaming cleanup lifecycle. Thanks @jalehman.
  • PR #96195 fix: bridge ACP metadata to session accessors. Thanks @jalehman.
  • PR #96182 refactor: migrate agent session accessors. Thanks @jalehman.
  • PR #96218 refactor: guard reply session initialization. Thanks @jalehman.
  • PR #96213 refactor(gateway): add alias mutation accessor. Thanks @jalehman.
  • PR #96204 refactor: migrate command session persistence to accessor. Thanks @jalehman.
  • PR #96206 refactor: route live model fresh reads through session accessor. Thanks @jalehman.
  • PR #96220 fix(whatsapp): quote current follow-up in durable replies. Thanks @mcaxtr.
  • PR #96226 fix(macos): drop Textual from chat packaging. Thanks @vincentkoc.
  • PR #96212 fix(codex): deliver generated images from remote app-server. Thanks @sjf-oa.
  • PR #96235 fix(crabbox): require Xcode for macOS proof. Thanks @vincentkoc.
  • PR #96145 fix: UI glitch: config is not visible. Related #94202. Thanks @sunlit-deng and @vporton.
  • PR #96072 perf(browser): index role snapshot references. Thanks @vincentkoc.
  • PR #96085 perf(codex): index rollout transcript ids. Thanks @vincentkoc.
  • PR #96087 perf(reply): hoist direct-send fragment index. Thanks @vincentkoc.
  • PR #94154 fix(gateway): resolve plugin-registered gateway methods through live registry. Related #94127. Thanks @Pick-cat and @vincentkoc and @BryceMurray.
  • PR #95393 fix #92582: Bug: doctor falsely warns local memory embeddings are not ready. Thanks @mikasa0818 and @vincentkoc and @neekolascmd.
  • PR #96246 fix(qa): accept pnpm separator for lab up. Thanks @vincentkoc.
  • PR #94949 fix(ports): route isPortBusy through checkPortInUse to catch IPv4-only occupants. Related #94426. Thanks @sunlit-deng and @vincentkoc and @wangwllu.
  • PR #94562 fix(workboard): hide archived cards in CLI list by default. Related #94555. Thanks @ZengWen-DT and @vincentkoc and @ecican.
  • PR #96243 fix(nextcloud-talk): ignore signed non-message webhook events. Related #81566. Thanks @arkyu2077 and @vincentkoc and @rafaelmgbh.
  • PR #96140 fix(exec): preserve turn-source routing target in approval followups for plugin channels. Related #96103. Thanks @yetval and @vincentkoc and @lansenger-pm.
  • PR #96258 ci: move CodeQL quality scans to hosted runners. Thanks @vincentkoc.
  • PR #96271 chore(release): close out 2026.6.10 on main. Thanks @vincentkoc.
  • PR #96233 fix(agents): run heartbeatpromptcontribution on harness prompt builds. Thanks @azogheb and @vincentkoc.
  • PR #55018 fix: avoid O(N²) shallow-copy in mapSensitivePaths schema traversal. Thanks @xdhuangyandi and @vincentkoc and @huangyandi-red.
  • PR #95831 fix: compact Codex OAuth OpenAI sessions without API keys. Related #95693. Thanks @sallyom and @YUI-TIEN.
  • PR #96244 fix(auto-reply): align channel intro wording with chat_type. Related #95645. Thanks @arkyu2077 and @vincentkoc and @iloveleon19.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.11-beta.1
  • release SHA: c862a644bff366599ead53df81f452aa913497ae
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/28123941058
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/28130211221
  • npm publish: https://github.com/openclaw/openclaw/actions/runs/28136271139
  • ClawHub follow-up: four existing code-plugin family conflicts and the pre-claimed tencent id remain in the child publish runs; OpenClaw npm and GitHub beta publication are unaffected.
v2026.6.10 [Jun 24, 2026] details → github →

# openclaw 2026.6.10

Automatic fast mode starts short conversations quickly, then returns longer or fallback work to normal mode without losing visible state. Provider routing, channel progress, session identity, and trusted tool policies are more reliable, with smaller improvements spanning provider setup, diagnostics, and transcript tooling.

Highlights

Automatic fast mode

  • Adds /fast auto so short conversational calls can start quickly, while longer or fallback work returns to normal mode with the effective state still visible. PR #85104, Issue #85087. Thanks @alexph-dev and @vincentkoc.
  • Shows the effective automatic fast-mode state in status instead of reducing it to on/off, and avoids carrying a cleared Codex service-tier choice into later runs. 8845f2f. Thanks @vincentkoc.
  • Keeps automatic fast-mode timing consistent when a turn switches to a fallback model. 075091d. Thanks @vincentkoc.
  • Keeps the original fast-mode timing and progress behavior when a live model switch retries a turn. d1e190f. Thanks @vincentkoc.
  • Keeps automatic fast-mode progress and reset behavior distinct from explicit fast mode after a run switches modes. 20aec98. Thanks @vincentkoc.
  • Shows the effective fast-mode value in connected-agent sessions instead of the configured value, so status reflects what the session is actually using. 9509aa0. Thanks @vincentkoc.
  • Keeps the effective automatic fast-mode setting visible through fallback transitions in connected-agent sessions. 7f5423c. Thanks @vincentkoc.
  • Keeps automatic fast-mode timing and progress consistent when reply and scheduled-agent runs retry or switch models. 6c29f88. Thanks @vincentkoc.
  • Keeps fast-mode cleanup and status consistent when a run switches between fallback models. c4694f8. Thanks @vincentkoc.
  • Shows the automatic fast-mode reset only when fallback work is finished, so status messages match the end of the transition. f4d93c8. Thanks @vincentkoc.
  • Shows reset and delivery progress at the right time when auto-reply or other follow-up runs retry or leave automatic fast mode. 684e440. Thanks @vincentkoc.

Channels and Messaging

Channel delivery and progress updates

  • Prevents the next turn after a scheduled message from losing what was delivered or whether delivery failed, so replies can use that context without exposing cron details in the channel. PR #93580. Thanks @jalehman and @scotthuang.
  • Prevents streamed channel progress from dropping a repeated status that represents a separate step, so each meaningful step remains visible in the draft. 2d42e52. Thanks @vincentkoc.
  • Prevents keyed streamed progress from staying on an older status, so viewers see the latest state instead of stale text. 8bb6472. Thanks @vincentkoc.

Providers and Models

Provider model catalogs and reasoning controls

  • Treats Zhipu/GLM overload responses as overloads, so a configured fallback is selected for the right reason instead of following the wrong failover path. PR #93241, Issue #93211. Thanks @0xghost42 and @zhengli0922.
  • Prevents Telegram, Slack, and Discord /think menus for live Ollama models from hiding supported levels, so users can choose valid reasoning settings without guessing. PR #94067, Issue #93835. Thanks @civiltox and @openperf.
  • Expands zai/glm-5.2 thinking choices beyond binary on/off and sends high or max requests as the intended Z.AI reasoning effort. PR #94136. Thanks @borclaw.
  • Prevents bundled Z.ai GLM-5 models from falling through to OpenAI and producing misleading API-key errors, so they use Z.AI by default. PR #94461, Issue #94269. Thanks @chrysb and @pandah97.
  • Adds GLM-5.2 and Kimi K2.7 Code to the OpenCode Go catalog with current limits, so users can select the models from OpenClaw. 66f84a9. Thanks @samson1357924.
  • Corrects kimi-k2.7-code capability listings so OpenCode Go users are not offered unsupported video prompts when the model accepts text and images. 715dc71.

Provider plugin onboarding

  • Prevents first-run setup from skipping the selected provider's credential prompt after plugin installation, so onboarding continues with that provider instead of falling back to OpenAI. PR #95792, Issue #95765. Thanks @snowzlmbot.

Memory, Sessions, and State

Session transcript SDK helpers

Cross-channel session identity

  • Prevents a shared direct-message session from carrying the previous channel's identity after a switch, so status, reactions, threads, and message references target the current channel. PR #95328, Issue #95325. Thanks @gorkem2020, @jalehman, and @zengwen-dt.

Gateway, Security, and Trust

Prompt context boundaries

  • Keeps empty prompts separate from hook-added context during compaction or session reuse in Copilot and Codex sessions, so prompt boundaries remain consistent. PR #94838. Thanks @vincentkoc.

Trusted tool policy enforcement

Trusted package redirects

  • Prevents authenticated package-source tokens from being sent to an allowed redirect on another origin, while the valid redirected download still completes. b0df6dc.

Clients and Interfaces

Docker and Podman setup timeouts

  • Prevents Docker and Podman setup from running unbounded on hosts where GNU timeout is installed as gtimeout, so image pulls, builds, and detached startup receive the intended guard. 62b2e9e.

Plugins and Packaging

Codex service-tier clearing

  • Prevents cleared Codex service tiers from being persisted as explicit stale state, so resumed or switched conversations use the normal default instead. cd32d9f. Thanks @vincentkoc.

StepFun provider installation

Docs and Operator Workflows

Doctor check ordering

  • Keeps core openclaw doctor diagnostics in their normal order before extension checks, making lint and repair output easier to follow. PR #86627. Thanks @giodl73-repo.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.10
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.10.tgz
  • integrity: sha512-LcooND2tBQw8A+kc1Ujltu3lg30bJ0w7XaeRy7eYzobb8BBdcW6DOGbwJL4vpj1vl9+gjRceOtlh5nh9OARcug==
  • release SHA: aa69b12d0086b631b139c1435c9621a5783e3a40
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.10/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/28071368306
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/28068484614
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/28068476120
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/28071564667
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/28071565774
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/28071984141
  • npm Telegram beta E2E: not supplied
  • Windows Hub promotion: https://github.com/openclaw/openclaw/actions/runs/28072271374 from openclaw/openclaw-windows-node@v0.6.3
v2026.6.10-beta.2 pre [Jun 22, 2026] details → github →

# openclaw 2026.6.10-beta.2

2026.6.10

Highlights

  • Automatic fast mode for talks: OpenClaw can enable fast mode for short conversational turns, then return to normal mode for longer runs with bounded fallback and delivery behavior. (#85104) Thanks @alexph-dev and @vincentkoc.
  • More reliable model routing: Zai model synthesis, GLM overload failover, and native reasoning-level selection now follow the active model catalog more consistently. (#94461, #93241, #94067, #94136) Thanks @Pandah97, @chrysb, @0xghost42, @zhengli0922, @openperf, @civiltox, and @BorClaw.
  • Safer session and channel state: channel switches reset stale origin fields, and cron delivery awareness stays attached to the target session. (#95328, #93580) Thanks @ZengWen-DT, @jalehman, @gorkem2020, and @scotthuang.
  • Trusted policies survive hook composition: composed hook registries keep the trusted tool policies required by approval-sensitive flows. (#94545) Thanks @jesse-merhi.

Changes

  • Agent and channel runtime: fast-mode state now survives retries, fallback transitions, progress events, and embedded/CLI/ACP normalization; session and channel routing retain the current target and delivery context. (#85104, #93580, #95328) Thanks @alexph-dev, @vincentkoc, @scotthuang, @ZengWen-DT, @jalehman, and @gorkem2020.
  • Provider behavior: model catalogs now supply the correct Zai base URL, overload classification, and native reasoning controls for live-discovered models. (#94461, #93241, #94067, #94136) Thanks @Pandah97, @chrysb, @0xghost42, @zhengli0922, @openperf, @civiltox, and @BorClaw.

Fixes

  • Fast-mode and policy correctness: fallback cutoffs and reset notices are bounded, repeated progress events remain visible, Codex service-tier state is normalized, and trusted policies are not lost when hook registries are composed. (#85104, #94545) Thanks @alexph-dev, @vincentkoc, and @jesse-merhi.
  • Model and delivery edge cases: Zai and GLM failover paths use the right runtime metadata, while stale channel-origin state no longer leaks across session changes. (#94461, #93241, #95328) Thanks @Pandah97, @chrysb, @0xghost42, @zhengli0922, @ZengWen-DT, @jalehman, and @gorkem2020.

Complete contribution record

This audited record covers the complete v2026.6.9..HEAD history: 11 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #86627 Keep core doctor health in contribution order. Thanks @giodl73-repo.
  • PR #93580 fix: preserve cron delivery awareness for target sessions. Thanks @scotthuang and @jalehman.
  • PR #95030 refactor: add SDK transcript identity target API. Thanks @jalehman.
  • PR #94838 refactor(copilot): complete harness lifecycle parity. Thanks @vincentkoc.
  • PR #95328 fix(sessions): reset stale per-channel origin fields on channel switch. Related #95325. Thanks @ZengWen-DT and @jalehman and @gorkem2020.
  • PR #94461 fix(zai): fall back to manifest baseUrl for synthesized GLM-5 models. Related #94269. Thanks @Pandah97 and @chrysb.
  • PR #93241 fix(agents): classify Zhipu GLM overload as overloaded for failover. Related #93211. Thanks @0xghost42 and @zhengli0922.
  • PR #94067 fix(channels): resolve native /think menu levels via runtime catalog for live-discovered models. Related #93835. Thanks @openperf and @civiltox.
  • PR #94136 fix(zai): expose GLM-5.2 reasoning levels [AI-assisted]. Thanks @BorClaw.
  • PR #85104 feat: fast talks auto mode. Related #85087. Thanks @alexph-dev.
  • PR #94545 fix: keep trusted policies with hook registry. Thanks @jesse-merhi.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.10-beta.2
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.10-beta.2.tgz
  • integrity: sha512-fOz52YzVw3MhQjQ5qqfPsfSbaMWOM62DNCxDsO/wZXvgvgrqPdZuNEPQokjFX9J7QXDeidl2uMBCnXRxynMzRg==
  • release SHA: 87b40c7160da1e9d470f86520f64ff1642a55b66
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.10-beta.2/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27942155128
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27938779493
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27938779833
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27942563340
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/27942565547
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27943117132
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/27941744910
v2026.6.10-beta.1 pre BREAKING [Jun 21, 2026] details → github →

# openclaw 2026.6.10-beta.1

Highlights

  • More reliable agent turns and session state: OpenClaw now preserves pending subagent completion announcements, keeps chat history transcripts non-empty, maintains media index alignment, restarts dormant follow-up drains, and resolves compaction model aliases consistently. (#94349, #92383, #94257, #95039, #90885) Thanks @sallyom, @oiGaDio, @Hidetsugu55, @Nas01010101, @SFVVC, @Pick-cat, and @vincentkoc.
  • Stronger Codex and approval flows: Codex app-server SecretRefs, thread context, bounded turn text, routed approval context, and typed SDK approval/session helpers now work together more predictably. (#94093, #94324, #94756, #90918, #95144, #95188, #95196, #95169) Thanks @VACInc, @kevinlin-openai, @kevinslin, @Nas01010101, @849261680, @choury, and @vincentkoc.
  • Richer channel delivery: Telegram, Discord, and Slack now preserve richer progress/reasoning/thread output, handle structured send errors, support Slack shortcuts, and record canonical sent threads more reliably. (#94891, #94856, #94810, #95029, #94881, #78536, #95250) Thanks @obviyus, @zhangqueping, @jairrab, @ZOOWH, @parveshsaini, @vincentkoc, @Marvinthebored, @chrisbaker2000, @KennanHoa, @bek91, and @rockyloveswine.
  • Safer release and network boundaries: SSH tunnel preflight is loopback-scoped, device-backed node pairings are removed, volatile SQLite state is surfaced by doctor, and legacy Codex routes are repaired instead of silently persisting stale state. (#94607, #90373, #94725, #94478) Thanks @wangwllu, @Alix-007, @manju-rn, @vincentkoc, @TurboTheTurtle, and @Sleepyarno.
  • Useful new CLI and status workflows: Rename sessions from chat, compact sessions explicitly, show session duration, preserve command progress detail, and preview message sends/polls with dry-run output. (#88581, #91378, #88988, #94868, #94684) Thanks @BSG2000, @Alix-007, @sallyom, @redasadki, @marshall-gordfam, @vincentkoc, @lzyyzznl, and @YB0y.
  • More capable mobile and desktop clients: Android settings are grouped by intent, iOS notification state is cleaner, the Watch app uses the Xcode 27-compatible target layout, and macOS file inputs open through the native panel. (#94539, #91923, #92477, #94612) Thanks @Tosko4, @zats, @joshavant, @bbblending, @DINGDANGMAOUP, and @vincentkoc.
  • Broader plugin and skill coverage: Zalo is available as an external channel entry, Trello skills declare their curl dependency, stale managed skill links are retargeted, and tool discovery no longer clears active providers. (#89586, #94729, #86719, #93276) Thanks @ken-kuro, @liuhao1024, @berkgungor, @stevenepalmer, @shakkernerd, @medns, and @vincentkoc.

Changes

  • Agent and provider behavior: Codex turn limits, CLI-owned auth, provider-internal error wording, recurring cron backoff, explicit cron delivery targets, and isolated cron key requirements now fail or recover more clearly. (#94756, #88551, #94737, #93051, #94453, #92318, #91685) Thanks @Nas01010101, @yu-xin-c, @snowzlmbot, @Alix-007, @jincheng-xydt, @sallyom, @davectr, @hxy91819, @nxmxbbd, and @vincentkoc.
  • Channels and integrations: WhatsApp retries the opening text chunk after media failure, Feishu avoids axios internals, Slack records inbound mentions and preserves buffered streams, and external Zalo/Slack shortcuts are wired through the current channel seams. (#93823, #89806, #94790, #78536, #89586, #94881) Thanks @yetval, @sweetcornna, @davinci282828, @ZengWen-DT, @BryceMurray, @vincentkoc, @KennanHoa, @ken-kuro, and @chrisbaker2000.
  • Skills and setup: OnePassword auth no longer forces tmux when the desktop app is available, stale plugin skill symlinks are repaired, and Trello requirements match their examples. (#81825, #86719, #94729) Thanks @koshaji, @tylerbittner, @stevenepalmer, @shakkernerd, @liuhao1024, @berkgungor, and @vincentkoc.
  • Apps and platform support: iOS notification cleanup, the single-target Watch migration, Android intent grouping, native macOS file panels, and explicit realtime SDP bounds keep the app surfaces aligned with the Gateway. (#91923, #92477, #94539, #94612, #95093) Thanks @zats, @joshavant, @Tosko4, @bbblending, @DINGDANGMAOUP, and @vincentkoc.
  • Operator diagnostics: Gateway probes now distinguish reachable-but-errored from unreachable, plugin methods authorize through the attached registry, session status exposes duration, and provider pricing streams are bounded. (#93948, #94343, #88988, #95103) Thanks @xialonglee, @MAdArab872, @wangmiao0668000666, @RDavies8, @Alix-007, @marshall-gordfam, @vincentkoc, @ozthedivine, and @shakkernerd.

Fixes

  • Reply and transcript correctness: OpenClaw now keeps pending completions, non-empty histories, media fields, queued follow-ups, buffered Slack replies, and reasoning deliveries intact across retries and partial turns. (#94349, #92383, #94257, #95039, #78536, #95029, #84292) Thanks @sallyom, @oiGaDio, @Hidetsugu55, @Nas01010101, @SFVVC, @vincentkoc, @KennanHoa, @Marvinthebored, @zerone0x, and @pearl-dot.
  • Security and bounded input handling: SSH tunnel checks stay on loopback, unsafe chat/tool/package/response lengths are rejected, device-backed pairings are removed, and stale abort markers no longer affect fresh chat events. (#94607, #95066, #95078, #95085, #95090, #90373, #91013) Thanks @wangwllu, @vincentkoc, @Alix-007, @manju-rn, and @nxmxbbd.
  • Telegram, WhatsApp, and Slack delivery: Rich progress previews, structured Telegram errors, WhatsApp listener recovery, and canonical Slack thread/send behavior now survive the edge cases covered by the new release. (#94891, #94856, #94810, #93873, #95250) Thanks @obviyus, @zhangqueping, @jairrab, @ZOOWH, @parveshsaini, @xialonglee, @octaivermatt, @bek91, and @rockyloveswine.
  • Cron and queue safety: Recurring error backoff honors configured floors, implicit isolated delivery requires an explicit target, and dormant follow-up drains restart instead of disappearing. (#93051, #91685, #92318, #95039) Thanks @Alix-007, @nxmxbbd, @hxy91819, and @SFVVC.
  • Provider, auth, and migration repair: CLI-owned transports skip the wrong auth gate, compaction aliases resolve canonically, legacy Codex routes are repaired, and tool discovery no longer clears active providers. (#88551, #90885, #94478, #93276) Thanks @yu-xin-c, @Pick-cat, @TurboTheTurtle, @Sleepyarno, @medns, and @vincentkoc.
  • SDK and release tooling: Approval/session RPC params are typed more strictly, stale packed tarballs are ignored, and DMG output directories are created reliably. (#95144, #95152, #95188, #95196, #95169, #95126, #95133) Thanks @vincentkoc.

Complete contribution record

This audited record covers the complete v2026.6.9-beta.1..HEAD history: 109 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #93685 refactor(auto-reply): add lifecycle storage seams. Thanks @jalehman.
  • PR #94349 fix(agents): preserve pending subagent completion announces. Related #93323. Thanks @sallyom and @oiGaDio.
  • PR #93174 test: fold channel message flows into qa e2e. Thanks @RomneyDa.
  • PR #94093 Prevent Codex thread rotation from losing next-step context. Thanks @VACInc.
  • PR #53920 fix(scripts): avoid mutating tracked auth-monitor template during setup. Thanks @JackWuGlobal.
  • PR #94702 Standardize QA coverage IDs on dotted names. Thanks @RomneyDa.
  • PR #81825 fix(skills/1password): stop forcing tmux for desktop app auth (#52540). Thanks @koshaji and @tylerbittner.
  • PR #94725 fix(doctor): warn on volatile SQLite state. Thanks @vincentkoc.
  • PR #88551 fix(agents): skip auth gate for CLI-owned transport. Thanks @yu-xin-c.
  • PR #88581 feat(commands): add /name to rename the current session from chat. Thanks @BSG2000.
  • PR #94324 feat(codex): support app-server SecretRefs. Thanks @kevinlin-openai and @kevinslin.
  • PR #90882 fix: add self-knowledge docs rule to system prompt. Related #90713. Thanks @SutraHsing.
  • PR #94684 fix: #80507 show dry-run output for message send/poll. Thanks @lzyyzznl and @YB0y.
  • PR #93823 fix(whatsapp): keep opening text chunk when first media fails on multi-chunk reply. Thanks @yetval.
  • PR #89203 refactor: route SDK session compatibility through seam. Thanks @jalehman.
  • PR #94453 fix: default cron runMode to "due" instead of "force" (#94270). Thanks @jincheng-xydt and @sallyom and @davectr.
  • PR #94746 fix(note): prevent clack from re-breaking copy-sensitive tokens. Related #94730. Thanks @xzh-icenter and @berkgungor.
  • PR #89904 refactor: route sdk session compatibility through accessor. Thanks @jalehman.
  • PR #86719 fix(skills): retarget stale plugin skill symlinks. Related #85925. Thanks @stevenepalmer and @shakkernerd.
  • PR #94337 fix(tui): show 0 not ? for fresh-session context tokens in footer. Thanks @mushuiyu886.
  • PR #94539 fix(android): group settings by intent. Thanks @Tosko4.
  • PR #92383 fix(gateway): never return an empty chat.history transcript. Thanks @Hidetsugu55.
  • PR #92574 test(browser): cover action-input CLI request bodies. Related #83877. Thanks @yu-xin-c and @davinci282828.
  • PR #92873 test(diffs): add viewerState, toolbar toggle, shadow root, and hydrateProps tests (fixes #83915). Thanks @liuhao1024 and @davinci282828.
  • PR #94257 fix(sessions): preserve Media\* index alignment when reading user-turn fields. Thanks @Nas01010101.
  • PR #94756 fix(codex): bound turn/start text when context budget is non-positive. Related #94748. Thanks @Nas01010101.
  • PR #94729 fix(skills/trello): add curl to requires.bins to match body examples (fixes #94727). Thanks @liuhao1024 and @berkgungor.
  • PR #94790 feat(slack): log INFO receipt for inbound app_mention events. Related #94691. Thanks @ZengWen-DT and @BryceMurray.
  • PR #81696 fix: guard tool event callbacks (AI-assisted). Thanks @enjoylife1243.
  • PR #94809 chore: forward-port alpha release fixes.
  • PR #94612 fix(macos): open NSOpenPanel for embedded Control UI file inputs (#94468). Thanks @bbblending and @DINGDANGMAOUP.
  • PR #89806 fix(feishu): avoid axios interceptor internals. Related #83913. Thanks @sweetcornna and @davinci282828.
  • PR #91923 fix(ios): clean up notification settings state. Thanks @zats.
  • PR #91345 fix: suggest close CLI commands. Related #83999. Thanks @glenn-agent and @HannesOberreiter.
  • PR #94561 Add stdout diagnostics OTEL log exporter. Thanks @jesse-merhi.
  • PR #91013 fix(gateway): ignore stale abort markers for fresh chat events. Related #91012. Thanks @nxmxbbd.
  • PR #89279 fix(tasks): deliver ACP completions to bound Discord threads. Related #84022. Thanks @anyech and @h-mascot.
  • PR #91656 test(cron): expand parseAbsoluteTimeMs test coverage to 39 cases. Related #91654. Thanks @SpecialLeon.
  • PR #94810 fix(telegram): classify sendChatAction 401 by structured error_code, not bare substring match. Related #94787. Thanks @ZOOWH and @parveshsaini.
  • PR #94737 fix(reply): clarify provider internal error copy. Thanks @snowzlmbot.
  • PR #94868 fix(channels): preserve command progress detail. Thanks @vincentkoc.
  • PR #94891 fix(telegram): send progress previews as html text. Thanks @obviyus.
  • PR #94683 fix(outbound): keep direct-only targets out of group sessions. Related #92384. Thanks @scotthuang and @haiwei01.
  • PR #92477 fix: migrate watch app to single-target app (Xcode 27+ compat). Thanks @zats and @joshavant.
  • PR #94812 test(perf): compare saved CLI startup benchmarks. Thanks @FelixIsaac.
  • PR #94856 fix(telegram): normalize all HTML tables before entity-escaping in rich messages. Related #94317. Thanks @zhangqueping and @jairrab.
  • PR #91685 fix(cron): refuse keyless implicit isolated cron delivery inherited from shared agent-main bucket. Thanks @nxmxbbd.
  • PR #88988 feat(status): show session duration in footer. Related #68226. Thanks @Alix-007 and @marshall-gordfam.
  • PR #94020 docs(browser): resolve networkidle contradiction across browser docs. Related #80587. Thanks @ZengWen-DT and @esqandil.
  • PR #93948 fix(gateway): distinguish reachable-but-errored from unreachable in probe diagnostics. Related #79099. Thanks @xialonglee and @ozthedivine.
  • PR #93276 fix(plugins): stop tool-discovery loads from clearing active providers. Thanks @medns.
  • PR #94343 fix(gateway): authorize plugin methods from attached registry. Related #92044. Thanks @wangmiao0668000666 and @RDavies8.
  • PR #94589 fix(channels): stop duplicating inbound previews in system events. Related #94549. Thanks @hugenshen and @gorkem2020.
  • PR #93873 fix(whatsapp): restart listener on selfChatMode config change. Related #86888. Thanks @xialonglee and @octaivermatt.
  • PR #93969 fix(xai): reject unsupported multi-agent model refs before runtime fallback. Related #85106. Thanks @xialonglee and @tess020126-cmyk.
  • PR #89586 feat(channels): add Zalo ClawBot external channel entry and documenta…. Thanks @ken-kuro.
  • PR #78536 fix(slack): preserve buffered thread stream replies. Related #78061. Thanks @vincentkoc and @KennanHoa.
  • PR #89236 fix(slack): default member-info userId to inbound sender. Thanks @stroupaloop.
  • PR #94881 feat(slack): handle global and message shortcuts. Related #63920. Thanks @chrisbaker2000.
  • PR #90885 fix(agent): resolve compaction model alias to canonical model ref. Thanks @Pick-cat.
  • PR #90918 fix(agents): forward turn-source routing fields to plugin.approval.request. Related #74003. Thanks @849261680 and @choury.
  • PR #95029 fix(discord): deliver reasoning replies. Related #94936. Thanks @vincentkoc and @Marvinthebored.
  • PR #89581 refactor: use canonical transcript reader identity. Thanks @jalehman.
  • PR #94607 fix(ssh): scope tunnel port preflight to loopback (#94603). Thanks @wangwllu.
  • PR #95060 fix(test): harden script probe bounds. Thanks @vincentkoc.
  • PR #95066 fix(e2e): reject unsafe chat tools body lengths. Thanks @vincentkoc.
  • PR #93941 docs: fix two broken cross-reference anchors. Thanks @Alix-007.
  • PR #92996 fix(cli): reject present-but-invalid --timeout on status/health fast path. Thanks @Alix-007.
  • PR #94314 refactor(policy): split doctor modules. Thanks @giodl73-repo.
  • PR #93051 fix(cron): honor configured retry.backoffMs for recurring error backoff floor. Thanks @Alix-007.
  • PR #95078 fix(scripts): reject unsafe package download lengths. Thanks @vincentkoc.
  • PR #91378 feat(cli): add openclaw sessions compact and fail loudly on CLI /compact (fixes #90640). Thanks @Alix-007 and @sallyom and @redasadki.
  • PR #94676 improve: simplify PR context and evidence. Thanks @hannesrudolph.
  • PR #95085 fix(scripts): reject unsafe bounded response lengths. Thanks @vincentkoc.
  • PR #95090 fix(e2e): reject unsafe bounded response text lengths. Thanks @vincentkoc.
  • PR #95076 [codex] docs: clarify PR body evidence updates. Thanks @brokemac79.
  • PR #84292 fix(agents): preserve delivered message send results. Related #84271. Thanks @zerone0x and @pearl-dot.
  • PR #95039 fix(queue): restart dormant followup drains. Related #91909. Thanks @SFVVC.
  • PR #90373 fix(gateway): remove device-backed node pairings. Related #88488. Thanks @Alix-007 and @manju-rn.
  • PR #95093 fix(dev): bound realtime SDP answer reads. Thanks @vincentkoc.
  • PR #95103 fix(gateway): bound pricing catalog streams. Thanks @vincentkoc.
  • PR #95108 fix(agents): bound Anthropic error streams. Thanks @vincentkoc.
  • PR #95111 fix(memory): abort batch upload response reads. Thanks @vincentkoc.
  • PR #95105 fix(ci): cancel stale Testbox PR runs. Thanks @RomneyDa.
  • PR #95114 fix(test): stabilize tooling guard probes. Thanks @vincentkoc.
  • PR #94478 fix(doctor): repair legacy Codex route persistence. Related #94184. Thanks @TurboTheTurtle and @Sleepyarno.
  • PR #95119 fix(test): stream QA Lab stdout artifacts. Thanks @vincentkoc.
  • PR #95116 fix(ci): cancel stale CodeQL runs. Thanks @RomneyDa.
  • PR #95126 fix(package): ignore stale packed tarballs. Thanks @vincentkoc.
  • PR #95133 fix(macos): create DMG output directories. Thanks @vincentkoc.
  • PR #95137 test(docker): stabilize build signal probe. Thanks @vincentkoc.
  • PR #95144 fix(sdk): send exec approval resolve id. Thanks @vincentkoc.
  • PR #95152 fix(sdk): list helpers work without filters. Thanks @vincentkoc.
  • PR #95207 fix(scripts): preserve kitchen sink RPC request errors. Thanks @vincentkoc.
  • PR #95203 fix(scripts): guard reused testbox keys. Thanks @vincentkoc.
  • PR #95188 fix(sdk): type agent mutation RPC params. Thanks @vincentkoc.
  • PR #95196 fix(sdk): tighten approval response params. Thanks @vincentkoc.
  • PR #95169 fix(sdk): require session key for effective tools. Thanks @vincentkoc.
  • PR #95250 fix(slack): record canonical sent thread. Related #95235. Thanks @bek91 and @rockyloveswine.
  • PR #86627 Keep core doctor health in contribution order. Thanks @giodl73-repo.
  • PR #93580 fix: preserve cron delivery awareness for target sessions. Thanks @scotthuang and @jalehman.
  • PR #95030 refactor: add SDK transcript identity target API. Thanks @jalehman.
  • PR #94838 refactor(copilot): complete harness lifecycle parity. Thanks @vincentkoc.
  • PR #95328 fix(sessions): reset stale per-channel origin fields on channel switch. Related #95325. Thanks @ZengWen-DT and @jalehman and @gorkem2020.
  • PR #94461 fix(zai): fall back to manifest baseUrl for synthesized GLM-5 models. Related #94269. Thanks @Pandah97 and @chrysb.
  • PR #93241 fix(agents): classify Zhipu GLM overload as overloaded for failover. Related #93211. Thanks @0xghost42 and @zhengli0922.
  • PR #94067 fix(channels): resolve native /think menu levels via runtime catalog for live-discovered models. Related #93835. Thanks @openperf and @civiltox.
  • PR #94136 fix(zai): expose GLM-5.2 reasoning levels [AI-assisted]. Thanks @BorClaw.
  • PR #92318 fix(cron): require explicit message target proof. Thanks @hxy91819.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.10-beta.1
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.10-beta.1.tgz
  • integrity: sha512-OgdN7P0Scm8rNgcXUrCGFyrMPJGdC3TdMxdS95jPbEzws9tp3CgZnehcmBNyBqCc9QU4uK0QUk7bnNSW+3ohbw==
  • release SHA: d91c1607c4d254b6dafa2ea052aef82e68b0c1b0
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.10-beta.1/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27898612086
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27897098428
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27897098492
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27898772805
  • plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/27898773498
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27899322972
  • npm Telegram beta E2E: not supplied
v2026.6.9 BREAKING [Jun 21, 2026] details → github →

# openclaw 2026.6.9

2026.6.9

Highlights

  • Richer Telegram delivery: Telegram now sends rich HTML, preserves rich markdown and sticker paths, renders progress drafts and command output more faithfully, normalizes HTML tables safely, and keeps mentions and spooled handlers on the right delivery path. (#93286, #93164, #93124, #93364, #93130, #93088, #93281, #94891, #94856) Thanks @obviyus, @vincentkoc, @goutamadwant, @kesslerio, @NianJiuZst, @SweetSophia, @Marvinthebored, @aaajiao, @zhangqueping, and @jairrab.
  • More dependable agent recovery: retries, terminal outcomes, usage after compaction, session history repair, and reply reconciliation now keep more interrupted or partial turns moving toward a visible final result. (#92191, #93073, #93228, #93084, #93469, #93291, #90943) Thanks @ai-hpc, @lml2468, @fuller-stack-dev, @Hollychou924, @leno23, @de1tydev, @425072024, @wuwahe3, @drvoss, @yetval, @sandieman2, and @vincentkoc.
  • A stronger Codex integration: Codex gains automatic plugin approvals, GPT-5.3 Spark OAuth routing, remote-node exec as a dynamic tool, and more reliable app-server teardown and terminal outcomes. (#92625, #89133, #93654, #91767, #93287) Thanks @kevinslin, @VACInc, @vincentkoc, @JPKay-AI, and @aliahnaf2013-max.
  • Standalone official provider plugins: external provider packages are now first-class npm releases, externally installed channel plugins load at Gateway startup, and StepFun is available from npm and ClawHub. (#93470) Thanks @sunlit-deng, @cxdnicole, and @vincentkoc.
  • More capable web and native clients: the Control UI adds a session workspace rail and extension health, iOS adds Watch controls, and Android shows chat context. (#92856, #91952, #93387, #92837) Thanks @Solvely-Colin, @jalehman, @joshavant, and @Tosko4.
  • More useful search and skills: Codex Hosted Search is available, key-free search providers remain deliberate opt-ins, and ClawHub skill installs retain verified source provenance. (#93446, #93616, #93283, #93506) Thanks @fuller-stack-dev, @davemorin, @momothemage, @nmccready-tars, and @vincentkoc.

Changes

  • Providers and auth: add Codex Hosted Search, improve Gemini CLI OAuth behind proxies, and keep external provider onboarding on current choices and package metadata. (#93446, #92815) Thanks @fuller-stack-dev, @yetval, @EvetteYoung, and @vincentkoc.
  • Plugins and installs: externalized official providers publish as independent npm packages, Gateway discovers installed channel plugins at startup, and StepFun installs from npm or ClawHub. (#93470) Thanks @sunlit-deng, @cxdnicole, and @vincentkoc.
  • Dashboard and mobile: add a session workspace rail, plugin health in status, compact cron lists, and iOS Watch controls. (#92856, #91952, #93395, #93387) Thanks @Solvely-Colin, @jalehman, @yu-xin-c, @centralpc, @joshavant, and @vincentkoc.
  • Codex, observability, and skills: add automatic plugin approvals and SecretRefs, preserve ClawHub skill provenance, add OpenTelemetry log export, and expose remote-node execution to Codex when a node is connected. (#92625, #94324, #93283, #94561, #93654) Thanks @kevinslin, @kevinlin-openai, @momothemage, @nmccready-tars, @jesse-merhi, @vincentkoc, and @JPKay-AI.
  • QA and release engineering: QA scenarios now use YAML, with broader profile evidence and release coverage for the plugin and channel matrix. Thanks @vincentkoc.

Fixes

  • Security and privacy: redact secrets from debug/config output, block internal HTTP session overrides, audit open-DM tool exposure, and retain plugin write ownership checks. (#93333, #88496, #93443, #92883, #93353) Thanks @Alix-007, @jason-allen-oneal, @coygeek, @RichardCao, @yu-xin-c, @cjg20ss, @eleqtrizit, and @vincentkoc.
  • Agent and session runtime: retry thinking-only and empty post-tool turns, prevent duplicate hook execution, preserve pending subagent delivery, preserve fresh usage through compaction, and repair partial JSON/history artifacts. (#92191, #93073, #93009, #93084, #93469, #94349, #92383, #94257) Thanks @ai-hpc, @lml2468, @fuller-stack-dev, @zenglingbiao, @dertbv, @Hollychou924, @leno23, @de1tydev, @425072024, @wuwahe3, @drvoss, @vincentkoc, @sallyom, @oiGaDio, @Hidetsugu55, and @Nas01010101.
  • Channels and replies: fix Telegram rich delivery, table rendering, action-error handling, and ingress recovery; preserve command progress detail across channel adapters; retain WhatsApp opening text after a media failure; keep Mattermost thread replies intact; and harden Discord action handling. (#93286, #93364, #93281, #93076, #93334, #93424, #93488, #94868, #94891, #94856, #94810, #93823) Thanks @obviyus, @NianJiuZst, @mcaxtr, @rushindrasinha, @amknight, @lzyyzznl, @darealgege, @vincentkoc, @zhangqueping, @jairrab, @ZOOWH, @parveshsaini, and @yetval.
  • Storage and migrations: avoid SQLite WAL on network filesystems, clean reindex artifacts, keep setup state out of workspace dot-directories, and import default-agent auth profiles into SQLite. (#93454, #92891, #93182, #93295, #93520, #93156) Thanks @vincentkoc, @ZengWen-DT, @Zeng-wen, @potterdigital, @Alix-007, @Pick-cat, @sallyom, @1qh, and @Tazio7.
  • Provider and model behavior: fix Gemini CLI proxy OAuth, restore Codex Spark OAuth routing, correct Bedrock embedding model IDs, and preserve configured defaults in embedded runs. (#92815, #89133, #93452, #93428) Thanks @yetval, @EvetteYoung, @VACInc, @LiuwqGit, @aleck31, @zenglingbiao, @danielgerlag, and @vincentkoc.
  • CLI, TUI, and apps: accept global flags after subcommands, keep terminal output and activity indicators visible, preserve CJK IME composition, and refresh stale UI state. (#93455, #93460, #93006, #93427, #93498, #93606) Thanks @ooiuuii, @Alix-007, @ZengWen-DT, @Zeng-wen, @AlethiaQuizForge, @Zhaoqj2016, @liuhao1024, @BrianClaw1955, @vincentkoc, and @NicoBoom13.
  • Operations and updates: harden official plugin recovery, restart managed Gateways after failed update handoff, keep safe cron delivery defaults, avoid Node-specific npm prefixes, and keep package validation paths reliable. (#93325, #92111, #93650, #94453, #91685) Thanks @vincentkoc, @yetval, @ofan, @yaanfpv, @jincheng-xydt, @sallyom, @davectr, and @nxmxbbd.

Complete contribution record

This audited record covers the complete v2026.6.8..HEAD history: 422 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #90463 refactor: add session accessor seam with gateway consumer. Thanks @jalehman.
  • PR #88656 Drop reasoning-only length turns from replay. Thanks @abel-zer0.
  • PR #92856 feat(webui): add session workspace rail. Thanks @Solvely-Colin.
  • PR #92845 docs(browser-control): document OPENCLAWEAGERBROWSERCONTROLSERVER requirement. Related #92841. Thanks @liuhao1024 and @jeugregg.
  • PR #82366 fix: use passive periodic sqlite wal checkpoints. Related #81715. Thanks @honor2030 and @KrasimirKralev.
  • PR #92815 fix(google): route Gemini CLI OAuth through the env proxy (#46184). Thanks @yetval and @EvetteYoung.
  • PR #91331 fix(mattermost): merge progress preview lines by identity. Related #89761. Thanks @iloveleon19 and @leonthe8th and @vincentkoc.
  • PR #92909 fix(tui): keep spinner active when toggling tools. Related #49763. Thanks @ZengWen-DT and @Zeng-wen and @vincentkoc and @CrimsonDump.
  • PR #92904 fix(elevenlabs): use current TTS model ids. Thanks @vortexopenclaw and @vincentkoc.
  • PR #92642 fix #86872: Subagent run reports success but fails to write output file. Thanks @zhangguiping-xydt and @vincentkoc and @zapper35.
  • PR #89122 refactor: route command session reads through seam. Thanks @jalehman.
  • PR #90943 fix(reply): deliver final reply when queued follow-up claims session; scope dedupe to routed thread. Thanks @sandieman2 and @vincentkoc.
  • PR #92894 fix(skills): keep managed prompt paths readable. Related #92875. Thanks @kesslerio and @sallyom.
  • PR #39617 fix: reload config in slash command routing so dmScope is respected. Related #39605. Thanks @Ciward.
  • PR #92191 fix(agents): retry thinking-only errored turns. Related #91953. Thanks @ai-hpc and @lml2468.
  • PR #92891 fix(memory): clean stale reindex temp files. Related #92874. Thanks @ZengWen-DT and @Zeng-wen and @vincentkoc and @potterdigital.
  • PR #93005 Add OpenRouter Fusion guidance and prompt context. Related #92984. Thanks @sallyom.
  • PR #88792 fix(state): harden sqlite path caching. Thanks @vincentkoc.
  • PR #93022 fix(gateway): repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49.
  • PR #93020 fix(telegram): cool down transient sendChatAction failures. Related #56096. Thanks @Boulea7 and @sumaiazaman and @Pick-cat and @cal-rufus.
  • PR #89160 fix(agents): detect truncated API responses to prevent silent session hang. Related #89051. Thanks @joelnishanth and @ArthurusDent.
  • PR #93009 fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv.
  • PR #92991 fix(agents): tolerate missing attribution baseUrl. Related #92974. Thanks @samrusani and @Haderach-Ram.
  • PR #92913 fix(opencode-go): register model catalog to fix context window detection. Related #92912. Thanks @kumaxs.
  • PR #89129 refactor: route bundled plugin session callers through seam. Thanks @jalehman.
  • PR #93084 fix(agents): preserve fresh usage after compaction. Related #50795. Thanks @Hollychou924 and @leno23 and @de1tydev and @425072024 and @vincentkoc and @wuwahe3.
  • PR #92869 fix #90333: [Bug]: Discord image build aborts at step 66 — openclaw-build-messaging-plugins.py exits 1. Thanks @zhangguiping-xydt and @vincentkoc and @chriskosys.
  • PR #93011 fix(gateway): accept file-only input on /v1/responses (parity with image-only). Thanks @yetval and @vincentkoc.
  • PR #92915 Convert QA scenarios to YAML files. Thanks @RomneyDa.
  • PR #91767 Fix one-shot Codex app-server teardown. Thanks @aliahnaf2013-max.
  • PR #92625 feat(codex): add auto plugin approvals. Thanks @kevinslin.
  • PR #91587 test(qa): add qa run --qa-profile and unified output summary/evidence. Thanks @RomneyDa.
  • PR #93104 test(reply): seed channel fixtures for dedupe tests. Thanks @RomneyDa.
  • PR #93107 test(reply): preserve telegram dedupe fallback. Thanks @RomneyDa.
  • PR #92954 fix(memory): accept local default model path migration. Thanks @mushuiyu886 and @vincentkoc.
  • PR #90936 fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon.
  • PR #90812 fix(voice-call): preserve live Twilio streams in stale reaper. Related #79121. Thanks @Takhoffman and @sahibzada-allahyar and @donkeykong91.
  • PR #93094 fix(whatsapp): bound socket operations. Thanks @mcaxtr.
  • PR #91629 fix(scripts): add database-first legacy store guard. Related #91628. Thanks @galiniliev.
  • PR #93124 fix(telegram): render progress drafts as rich previews. Thanks @Marvinthebored.
  • PR #93109 test(qa): embed profile scorecard evidence. Thanks @RomneyDa.
  • PR #87298 test: add temp directory helper guidance. Thanks @hxy91819.
  • PR #92318 fix(cron): require explicit message target proof. Thanks @hxy91819.
  • PR #93137 fix(imessage): honor disabled reply actions. Related #92142. Thanks @omarshahine and @dprev.
  • PR #93134 fix(feishu): pass cardmsgcontent_type to get full card content (fixes #78289). Thanks @liuhao1024 and @vincentkoc and @longdoubled7.
  • PR #93138 fix(agents): preserve literal current session resolution. Thanks @liuhao1024 and @vincentkoc.
  • PR #91225 fix #83830: [Bug]: Dreaming diary repeats "first day" narrative every sweep — same early memories dominate snippets. Thanks @mushuiyu886 and @YinLiuLiu66.
  • PR #93153 simplify QA evidence profile and mappings/coverage shape. Thanks @RomneyDa.
  • PR #93164 fix(telegram): preserve rich markdown line breaks. Thanks @vincentkoc.
  • PR #93119 fix: accept mixed source/dist bundled roots. Related #87730. Thanks @arkyu2077 and @vincentkoc and @jasonftl.
  • PR #93130 fix(telegram): preserve sticker media paths. Related #83748. Thanks @goutamadwant and @vincentkoc and @aaajiao.
  • PR #93073 fix(agents): retry empty post-tool final turns. Thanks @fuller-stack-dev.
  • PR #91784 fix(voice-call): require realtime websocket path boundary. Thanks @jason-allen-oneal.
  • PR #89133 Restore GPT-5.3 Codex Spark OAuth routing. Thanks @VACInc.
  • PR #91996 refactor: prune unused iOS code. Thanks @zats.
  • PR #90231 fix #69443: [Bug] Subagent RPC callback to WeChat session key routed to main session instead. Thanks @zhangguiping-xydt and @sliverp and @chen11221.
  • PR #89920 fix(matrix): replace recovered command progress lines. Thanks @bdjben and @jesse-merhi.
  • PR #93159 fix(tui): keep parent stdin paused after exit. Thanks @fuller-stack-dev.
  • PR #93201 fix(auto-reply): clear pending-final state before honoring post-send abort (#89115). Thanks @amknight and @danashburn.
  • PR #93228 fix(agents): replace prose terminal classifiers. Thanks @fuller-stack-dev.
  • PR #93231 fix(status): correct pinned model clear hint. Thanks @hxy91819.
  • PR #92428 fix(qqbot): keep markdown table chunks valid. Thanks @sliverp.
  • PR #93220 fix(status): avoid stale session context windows. Thanks @hxy91819.
  • PR #91957 perf(sessions): share one enumeration across archive retention sweeps. Thanks @amknight.
  • PR #93281 fix(telegram): recover pid-reused ingress claims. Thanks @obviyus.
  • PR #93287 fix(codex): preserve terminal outcome ordering.
  • PR #93182 fix(memory): clean rollback-journal reindex temp sidecar on NFS stores. Thanks @Alix-007.
  • PR #93283 Persist ClawHub skill install provenance. Related #92077. Thanks @momothemage and @nmccready-tars.
  • PR #88872 fix: attribute spawned task runs to child agent. Related #66670. Thanks @Alix-007 and @Neomail2.
  • PR #92837 fix(android): show live chat context usage. Thanks @Tosko4.
  • PR #93325 fix(cli): harden official plugin recovery. Thanks @vincentkoc.
  • PR #93286 feat(telegram): send rich messages as rich html. Thanks @obviyus.
  • PR #92910 fix(memory-core): safely refresh qmd index during collection repair.
  • PR #93329 fix(cli): allow zero Discord timeout duration. Related #93327. Thanks @rohitjavvadi.
  • PR #91625 fix(cron): add cron edit --clear-model to clear a job's model override. Thanks @ly-wang19.
  • PR #91691 [AI] fix(memory): prevent empty-string expectedModel in resolveMemory…. Thanks @xydt-tanshanshan.
  • PR #93006 fix(tui): keep stderr visible when local shell stdout fills the output cap. Thanks @Alix-007.
  • PR #93001 fix(daemon): prefer stderr over stale stdout in gateway restart diagnostics. Thanks @Alix-007.
  • PR #91117 refactor: remove dead code and improve string concatenation. Thanks @Pommelle.
  • PR #90893 fix(models): mask paste-token input in CLI auth prompt. Thanks @anurag-bg-neu.
  • PR #90571 fix(configure): mask gateway password input in CLI wizard prompt. Thanks @anurag-bg-neu.
  • PR #91768 fix(ios): respect chat header safe area. Thanks @zats.
  • PR #93245 fix(cron): resolve lastRunStatus in cron list/show human output. Thanks @ly-wang19.
  • PR #78765 fix(tui): avoid inserting spaces into long CJK text. Thanks @hpt.
  • PR #91776 fix(ios): refresh permission rows after grants. Thanks @zats.
  • PR #92817 fix(cron): trust agent output when channel is unresolved without explicit delivery. Related #90664. Thanks @fsdwen and @dertbv.
  • PR #93297 fix(control-ui): respect agents.defaults.timeFormat for timestamps. Related #58147. Thanks @ZengWen-DT and @Zeng-wen and @TommoT2.
  • PR #93364 Fix Telegram rich progress command output. Thanks @obviyus.
  • PR #91952 feat(status): surface plugin health. Thanks @jalehman.
  • PR #75025 fix(heartbeat): refresh stale Current time line on every helper call (#44993). Thanks @MoerAI and @mclee1975.
  • PR #90992 docs(windows): fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0 idle-termination. Thanks @spencer2211.
  • PR #86544 fix(cli): show Gemini CLI runtime auth status. Related #79585. Thanks @giodl73-repo and @fabricefoy.
  • PR #88945 fix(plugins): serialize binding approval saves. Related #64065. Thanks @Alix-007 and @lihaokun.
  • PR #90115 fix(gateway): pass managed inbound PDFs through chat.send. Related #90097. Thanks @harjothkhara and @joeykrug.
  • PR #74613 docs(cli): add agent selector to CLI backend quick start. Related #68940. Thanks @vyctorbrzezowski and @drmarcopapa.
  • PR #89121 refactor: add transcript reader seam. Thanks @jalehman.
  • PR #84434 fix(cli): disable ScheduleWakeup/CronCreate in --print claude runs. Thanks @SkyWolfDreamer.
  • PR #66985 fix(agents): resolve requestedNode to canonical ID before boundNode comparison. Related #87213. Thanks @mujiannan.
  • PR #91488 fix(reply): project preflight compaction gate by next-input size on fresh tokens. Thanks @yetval.
  • PR #93353 fix(plugins): require owner for plugin writes. Thanks @eleqtrizit.
  • PR #91499 fix(cron): preserve scheduled turn tool policy [AI]. Thanks @mmaps.
  • PR #90412 fix(sessions): cache warm transcript reads to avoid per-turn re-parse. Related #83943. Thanks @Alix-007 and @yyds-xxxx.
  • PR #93118 fix(gateway): guard fast-path startup migrations. Related #93032. Thanks @openperf and @Haderach-Ram.
  • PR #93355 fix(ci): verify performance workflow downloads. Thanks @eleqtrizit.
  • PR #93358 fix(outbound): guard cross-context message mutations. Thanks @eleqtrizit.
  • PR #93362 fix(flock): bind allow-always to wrapped command. Thanks @eleqtrizit.
  • PR #92578 refactor(whatsapp): add inbound admission foundation. Thanks @mcaxtr.
  • PR #89547 Control Telegram group history context. Thanks @mmaps.
  • PR #89201 refactor: add transcript runtime identity contract. Thanks @jalehman.
  • PR #93357 fix(plugins): enforce install policy in wrappers. Thanks @eleqtrizit.
  • PR #93156 fix(doctor): import default-agent auth profiles into sqlite. Related #93145. Thanks @Pick-cat and @sallyom and @Tazio7.
  • PR #93179 Add slim evidence mode for QA profile evidence. Thanks @RomneyDa.
  • PR #93349 fix(control-ui): keep workboard card titles visible in overflowing columns (fixes #91717). Thanks @Pick-cat and @NicoBoom13.
  • PR #93324 fix(cli): accept --no-color after subcommands. Thanks @ooiuuii.
  • PR #89621 Return Google Chat thread metadata from message sends. Thanks @franco-viotti.
  • PR #82458 fix(infra): drop duplicated "restart" word in restart-sentinel summary. Thanks @jameswniu.
  • PR #85471 Suppress cron announce control replies. Related #85421. Thanks @TurboTheTurtle and @leatherneck-33.
  • PR #85316 fix(auth): keep alias-compatible auth-profile overrides instead of clearing them. Thanks @SkyWolfDreamer.
  • PR #89260 fix(doctor): separate platform-incompatible skills from missing requirements. Related #89232. Thanks @Alix-007 and @CameronWeller.
  • PR #90846 fix(media): stop pruning media on write; let the configured timer do it. Thanks @lundog.
  • PR #88062 fix(logging): avoid stalled warnings for active model calls. Thanks @litang9.
  • PR #93308 fix(discord): reject malformed realtime consult calls. Thanks @khoek.
  • PR #93334 fix(whatsapp): notify user when trailing media send fails instead of silent drop. Thanks @rushindrasinha.
  • PR #92575 fix(sessions): preserve user behavior overrides across daily/idle rollover (#92562) [AI-assisted]. Thanks @harjothkhara and @civiltox.
  • PR #89124 refactor: route auto-reply sessions through session seam. Thanks @jalehman.
  • PR #93431 fix: stabilize transcript cache and CLI env isolation. Thanks @shakkernerd.
  • PR #93412 fix(discord): suppress tool progress for message-tool replies. Thanks @mgunnin and @vincentkoc.
  • PR #93409 fix(whatsapp): stop markdownToWhatsApp dropping code spans followed by a digit. Thanks @rushindrasinha.
  • PR #93295 fix(memory): swap rollback-journal sidecar during atomic reindex. Thanks @Alix-007.
  • PR #93076 fix(whatsapp): preserve auth on terminal disconnects. Thanks @mcaxtr.
  • PR #93435 fix(agents): bound autoreview scope. Thanks @vincentkoc.
  • PR #93279 fix(telegram): restore readable default text sends. Related #93263. Thanks @NianJiuZst and @SweetSophia.
  • PR #93429 fix(line): cap carousel column text at 60 chars when a title or image is set. Thanks @harjothkhara and @vincentkoc.
  • PR #93428 fix(agents): resolve configured default model in runEmbeddedAgent (fixes #93419). Thanks @zenglingbiao and @vincentkoc and @danielgerlag.
  • PR #93427 fix(tui): show activity indicator for system-injected runs. Related #51825. Thanks @ZengWen-DT and @vincentkoc and @Zeng-wen and @AlethiaQuizForge.
  • PR #90003 feat(policy): cover exec approvals artifact. Thanks @giodl73-repo.
  • PR #93448 fix(guards): allow auth profile sqlite reader. Thanks @amknight.
  • PR #93424 fix(mattermost): keep message tool replies in threads. Thanks @amknight and @vincentkoc.
  • PR #93418 fix(telegram): forward Bot API 10.1 rich_message content to agent. Related #93410. Thanks @xzh-icenter and @vincentkoc and @0pen7ech.
  • PR #93175 test(qa): taxonomy profiles: includeAllCategories for release profile, update some coverage. Thanks @RomneyDa.
  • PR #93456 fix(agents): handle string assistant message content. Thanks @vincentkoc.
  • PR #93441 fix(outbound): ignore schema-padded poll metadata on send. Related #43015. Thanks @weichengdeng and @charzhou.
  • PR #93443 fix(gateway): block internal HTTP session overrides. Thanks @RichardCao.
  • PR #93454 fix(sqlite): disable WAL on network filesystems. Thanks @vincentkoc.
  • PR #90275 test: make install-safe-path symlink tests compatible with Windows. Thanks @aniruddhaadak80.
  • PR #93464 fix(qa): suppress empty WhatsApp debug artifacts. Thanks @vincentkoc.
  • PR #90861 fix(cli): preserve sessions_yield over MCP. Related #77426. Thanks @zhangguiping-xydt and @jarvisagimuspicard-hub.
  • PR #90946 fix(infra): preserve inherited gateway PID across reparent during cleanup. Thanks @amittell.
  • PR #92220 fix(media): extract large managed inbound PDFs via media-understanding. Related #90096, #90097. Thanks @amknight and @joeykrug.
  • PR #91208 fix #91047: Plugin session-extension registry not pinned; sessions.pluginPatch fails after agent/subagent plugin-load churn. Thanks @mushuiyu886 and @teamadams.
  • PR #92111 fix(update): restart managed gateway when update handoff fails after stop. Related #92088. Thanks @yetval and @ofan.
  • PR #93238 fix(agents): honor disabled envelope timestamps at model boundary. Thanks @osolmaz.
  • PR #93343 fix(codex): de-duplicate commentary notes across the raw response lane. Related #93296. Thanks @Marvinthebored and @Peetiegonzalez.
  • PR #93361 fix(openshell): pin mirror remote mutations. Thanks @eleqtrizit.
  • PR #93354 fix(discord): block cross-provider guild admin actions. Thanks @eleqtrizit.
  • PR #92178 fix(gateway): normalize malformed paired access lists. Related #90654. Thanks @wangmiao0668000666 and @EmilioNicolas.
  • PR #85254 perf(plugins): thread prepared manifestPlugins through runtime model-id normalize chain. Thanks @zeroaltitude.
  • PR #93489 Add ClawHub content rights docs to sidebar. Thanks @Patrick-Erichsen.
  • PR #93466 [AI] fix(feishu): guard against missing inbound in channelRuntime fallback. Thanks @xydt-tanshanshan.
  • PR #93460 fix(cli): honor --log-level in route-first commands. Related #93457. Thanks @ooiuuii.
  • PR #93495 fix(cron): clear delivery routing fields from cron edit. Thanks @ly-wang19 and @vincentkoc.
  • PR #93494 docs: point PR landing at maintainer workflow. Thanks @fuller-stack-dev and @vincentkoc.
  • PR #93487 fix(ui): add agent selector to skills page. Related #78553. Thanks @goutamadwant and @vincentkoc and @xiaobu1112.
  • PR #93488 fix(discord): apply tool status emojis immediately to avoid override by thinking reactions. Related #92715. Thanks @lzyyzznl and @vincentkoc and @darealgege.
  • PR #93055 fix(ui): restore provider usage pill in desktop chat composer [AI]. Thanks @harjothkhara.
  • PR #83156 fix(matrix): accept bracketed display-name mentions. Related #83142. Thanks @wdx-agent-io and @wdongxv.
  • PR #93333 fix(auto-reply): redact secrets in /debug show and /debug set output. Thanks @Alix-007.
  • PR #88496 fix(auto-reply): redact secrets in config show output. Related #65623. Thanks @jason-allen-oneal and @coygeek.
  • PR #93105 fix(doctor): repair null agents.list[].workspace values. Related #77718. Thanks @xydigit-sj and @slideshow-dingo.
  • PR #73923 fix(ui): preserve gateway token during safe websocket url edits. Related #41545. Thanks @wsyjh8.
  • PR #88970 fix #85871: [Bug]: Heartbeat scheduler silently fails to fire on 5.20 and all 5.x versions (regression from 4.23). Thanks @zhangguiping-xydt and @vincentkoc and @carlbjson.
  • PR #93511 fix(imessage): normalize leading NUL echo-cache prefixes. Thanks @vincentkoc and @drvoss.
  • PR #92594 [Bug]: ollama-cloud runtime fails DNS lookup for ai.ollama.com, while ollama/<model>:cloud works. Related #92391. Thanks @zhangguiping-xydt and @vincentkoc and @kvzsolt.
  • PR #93512 build(docs): finish PowerShell-safe docs formatting. Related #44293. Thanks @vincentkoc and @yil337 and @aniruddhaadak80.
  • PR #93513 fix(skills): refresh persisted snapshots after restart. Thanks @vincentkoc and @fif911 and @skadauke.
  • PR #93517 fix(skills): quote skill-creator template description. Thanks @vincentkoc and @parubets.
  • PR #73976 fix(memory): use per-keyword FTS search in hybrid mode #39484. Thanks @joshuakeithpa-sudo.
  • PR #93520 fix(workspace): store setup state outside workspace dot-dir. Thanks @vincentkoc and @1qh.
  • PR #93521 fix(onboard): skip Homebrew prompt on unsupported platforms. Related #68893. Thanks @vincentkoc and @yurivict.
  • PR #93522 fix(feishu): send post mentions as native at elements. Thanks @vincentkoc and @gavin-ali and @YizukiAme and @Panniantong.
  • PR #93496 fix(gateway): rotate already-stale generated transcript filename on /reset. Thanks @harjothkhara and @vincentkoc.
  • PR #93471 fix(cron): preserve aborted isolated-run failure. Thanks @BhargavSatya and @vincentkoc.
  • PR #93473 fix(memory): report skipped QMD embedding probe. Related #77645. Thanks @TurboTheTurtle and @vincentkoc and @aderius.
  • PR #93498 fix(ui): preserve CJK IME composition. Related #86035. Thanks @Zhaoqj2016 and @vincentkoc.
  • PR #93088 fix(telegram): bind bot mentions to assistant identity. Thanks @kesslerio and @vincentkoc.
  • PR #93499 fix(nodes): return screen snapshots as media. Related #90126. Thanks @zenglingbiao and @vincentkoc and @JeffSteinbok.
  • PR #93506 fix(skills): trust verified ClawHub source provenance. Thanks @vincentkoc.
  • PR #93525 agents: notify chat exec empty-success completions. Thanks @vincentkoc and @wenkang-xie.
  • PR #93446 feat: add Codex hosted web search. Thanks @fuller-stack-dev.
  • PR #92883 fix(security): audit open dm tool exposure. Related #55612. Thanks @yu-xin-c and @vincentkoc and @cjg20ss.
  • PR #93476 fix(mattermost): preserve Codex progress preview. Related #88766. Thanks @goutamadwant and @vincentkoc and @KelTech-Services.
  • PR #93395 feat(cron): add compact list responses. Related #93366. Thanks @yu-xin-c and @vincentkoc and @centralpc.
  • PR #93527 fix(cron): preserve model overrides for text payloads. Thanks @vincentkoc and @liaoandi.
  • PR #90487 fix: harden ChatGPT Responses missing content-type streams. Thanks @anyech and @vincentkoc.
  • PR #93528 fix(gateway): tolerate transient pre-hello clean closes. Thanks @vincentkoc and @ruanrrn.
  • PR #93529 fix(auto-reply): allow message tool for group attachments. Related #43146. Thanks @vincentkoc and @Robcis.
  • PR #93291 fix(reply): preserve pending thread evidence when reconciling partial send results. Thanks @yetval and @vincentkoc.
  • PR #90572 fix(feishu): drop self-authored receive echoes. Thanks @baskduf.
  • PR #93455 fix(cli): accept --log-level after subcommands. Thanks @ooiuuii and @vincentkoc.
  • PR #93452 fix(bedrock): strip inference profile prefix from model ID in embedding adapter. Related #79212. Thanks @LiuwqGit and @vincentkoc and @aleck31.
  • PR #89799 fix(cli): skip compile cache on early Node 24.x to avoid startup deadlock. Related #86550. Thanks @zhangguiping-xydt and @vincentkoc and @renyuliang000.
  • PR #93469 fix(agents): drop partialJson streaming artifacts from session history repair. Thanks @drvoss and @vincentkoc.
  • PR #93463 fix(codex): log app-server compaction completion. Related #83932. Thanks @goutamadwant and @vincentkoc and @aounakram.
  • PR #93562 fix(tui): refresh after external session reset. Related #38966. Thanks @vincentkoc and @wsyjh8 and @yizhanzjz.
  • PR #93470 fix(plugins): load externally-installed channel plugins at gateway startup. Related #93219. Thanks @sunlit-deng and @vincentkoc and @cxdnicole.
  • PR #88796 fix(discord): resolve guildId from session channel for search actions. Related #88790. Thanks @SebTardif and @vincentkoc and @mugabuga.
  • PR #93194 fix(agents): preserve prompt-released session metadata. Related #93193. Thanks @snowzlm.
  • PR #89483 fix(gateway): project failed agent turns in chat history. Related #89197. Thanks @IWhatsskill and @vincentkoc and @yangiit.
  • PR #93434 fix: avoid parent group allowlist false positive. Related #92684. Thanks @kingrubic and @vincentkoc and @motteman.
  • PR #93449 fix(feishu): dedupe redelivered text by stable retry identity. Related #46778. Thanks @ZengWen-DT and @vincentkoc and @kingcuty.
  • PR #93407 AGT-80 AGT-81 Fix Discord ingress ack ordering. Thanks @mgunnin and @vincentkoc.
  • PR #93439 fix(agents): honor embedded run default model. Related #93419. Thanks @harjothkhara and @vincentkoc and @danielgerlag.
  • PR #93565 fix(cli): summarize cleanup dry-run by label. Related #76826. Thanks @AgentArcLab and @vincentkoc and @renatomaluhy.
  • PR #93509 fix(skills): clear orphaned idempotency pointer on corrupt-metadata re-begin. Thanks @Alix-007 and @vincentkoc.
  • PR #93274 Clarify plugin channel config additional-property errors. Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #93555 fix(read): route text decoding through shared Windows codepage fallba…. Thanks @zhanxingxin1998 and @vincentkoc.
  • PR #93314 fix(skills): preserve ClawHub origin provenance on readback. Thanks @Alix-007 and @vincentkoc.
  • PR #93573 fix(acp): keep bridge sessions out of stale ACP classification [AI-assisted]. Related #38907. Thanks @eldar702 and @vincentkoc and @ninaopenclaw.
  • PR #93398 fix(cron): emit isolated model usage diagnostics. Related #92338. Thanks @849261680 and @vincentkoc and @niks999.
  • PR #93367 Fix SSH sandbox remote directory args. Related #93344. Thanks @dmorn and @vincentkoc.
  • PR #93574 fix(feishu): suppress log noise for botp2pchatenteredv1 event [AI-assisted]. Related #42351. Thanks @eldar702 and @vincentkoc and @sunking0223.
  • PR #93269 Fix tokenjuice bash results without details. Thanks @moeedahmed and @vincentkoc.
  • PR #93575 fix(telegram): hydrate group reply-chain media into model context [AI-assisted]. Thanks @eldar702 and @vincentkoc.
  • PR #93261 fix(plugins): resolve provider policy surface for plugin-owned CLI backends. Related #93259. Thanks @BitmapAsset and @vincentkoc.
  • PR #93303 fix(whatsapp): bound stalled read-receipt socket operations. Thanks @Alix-007 and @vincentkoc.
  • PR #93242 fix(mattermost): keep bare @mention with empty body instead of dropping it. Related #93205. Thanks @iloveleon19 and @vincentkoc.
  • PR #93606 fix(ui): clear stale Talk error when session transitions to non-error state (fixes #88176). Thanks @liuhao1024 and @vincentkoc and @BrianClaw1955.
  • PR #93607 perf(tasks): memoize reconcileInspectableTasks for same-tick calls (fixes #73531). Thanks @liuhao1024 and @vincentkoc and @slideshow-dingo.
  • PR #93612 fix(gateway): compute sessions.usage aggregate totals from all sessions, not just the limited page (fixes #76496). Thanks @liuhao1024 and @vincentkoc and @bobsahur-robot.
  • PR #93615 fix(telegram): recover lone active spooled handler on timeout (#84158). Thanks @0xghost42 and @vincentkoc and @crash2kx.
  • PR #93616 Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc.
  • PR #93298 fix #93044: control-ui webchat double-renders agent replies when dmScope=main. Thanks @zhangguiping-xydt and @vincentkoc and @cfmilam.
  • PR #93618 fix(feishu): filter temporary card-action-c-\* IDs from reply target to prevent Invalid openmessageid errors (fixes #56818). Thanks @liuhao1024 and @vincentkoc and @SwordImmortal.
  • PR #93387 feat(ios): add watch action surface. Thanks @Solvely-Colin and @joshavant.
  • PR #93648 fix(doctor): archive superseded plugin install index conflicts. Related #90418. Thanks @vincentkoc and @ramitrkar-hash.
  • PR #93649 fix(qwen): place DashScope image prompts in user content. Related #92688. Thanks @vincentkoc and @Yachiyo404.
  • PR #93650 fix(update): avoid per-Node npm prefixes during self-update. Related #80387. Thanks @vincentkoc and @yaanfpv.
  • PR #93653 fix(skill-workshop): skip helper sessions during auto-capture. Thanks @vincentkoc and @zhangguiping-xydt.
  • PR #93654 fix(codex): expose remote node exec as a Codex dynamic tool. Related #92141. Thanks @vincentkoc and @JPKay-AI.
  • PR #93662 fix(discord): protect mention aliases in code fences. Thanks @vincentkoc and @rohitjavvadi.
  • PR #93663 fix(clawdock): open dashboard on published port without starting deps. Related #77344. Thanks @vincentkoc and @dhoman.
  • PR #93670 fix(browser): recover stale managed Chrome CDP listener. Related #41750. Thanks @vincentkoc and @rohitjavvadi and @kissman911.
  • PR #93672 fix(commands): preserve multiline slash skill args. Related #79155. Thanks @vincentkoc and @web3blind.
  • PR #93674 fix(browser): accept top-level act fields with nested requests. Related #38762. Thanks @vincentkoc and @angelusbr and @Lumos-789.
  • PR #93678 fix(plugins): allow Dreaming sidecar through restrictive memory allowlists. Related #92536. Thanks @vincentkoc and @pradeep7127 and @resYuto.
  • PR #93306 fix(status): ignore stale context after model switch. Thanks @hxy91819.
  • PR #93666 fix(control-ui): copy code blocks over plain HTTP via clipboard fallback. Related #93628. Thanks @Pick-cat and @pjq2926.
  • PR #93629 fix(reply): preserve unsent text-only finals after block pipeline streamed partial content (fixes #81078). Thanks @liuhao1024 and @Jackten.
  • PR #93690 fix(telegram): dispatch MEDIA directives as attachments. Related #77702. Thanks @vincentkoc and @butttersbot.
  • PR #93693 fix(gateway): ignore stale sudo scope for root user services. Related #81410. Thanks @vincentkoc and @Ericksza.
  • PR #93646 fix(agents): return string assistant content in getLastAssistantText. Thanks @Alix-007 and @vincentkoc.
  • PR #93687 fix(i18n): retain Codex error tails in logs. Thanks @hxy91819.
  • PR #93630 fix(heartbeat): bootstrap plugin session targets. Thanks @ZengWen-DT and @vincentkoc.
  • PR #93658 fix(wizard): preserve existing default model during setup auth choice [AI-assisted]. Related #64129. Thanks @ml12580 and @vegapunk9527.
  • PR #93671 fix(respawn): rewrite pnpm versioned entry paths to stable wrapper (fixes #52313). Thanks @liuhao1024 and @vincentkoc and @RichardCao.
  • PR #93698 Fix Telegram rich progress detail updates. Thanks @obviyus.
  • PR #93656 fix(gateway): send approval route notices with write scope. Related #93563. Thanks @mushuiyu886 and @vincentkoc and @clawbot247-commits.
  • PR #93665 fix(gateway): surface codex app-server returned failures. Thanks @litang9 and @vincentkoc.
  • PR #93727 fix(context-engine): avoid turn-maintenance lane livelock. Related #77340. Thanks @vincentkoc and @baghvn and @Veda-openclaw.
  • PR #93681 fix(llm): handle string assistant content on the OpenAI-compatible completion path. Thanks @Alix-007.
  • PR #93722 chore(release): update appcast for 2026.6.8. Thanks @vincentkoc.
  • PR #93677 fix(google-meet): declare realtime provider secret inputs. Related #81891. Thanks @goutamadwant and @vincentkoc and @chachi-max.
  • PR #92947 fix(qqbot): deliver cron auto-TTS voice by trusting OpenClaw temp root. Related #92816. Thanks @ZengWen-DT and @Zeng-wen and @lewiswu1209.
  • PR #93679 fix(whatsapp): extract GIF metadata and distinguish gifPlayback in media placeholders (fixes #49099). Thanks @liuhao1024 and @vincentkoc and @bugkill3r.
  • PR #93688 fix(minimax): check base_resp envelope errors in TTS provider. Related #76904. Thanks @dwc1997 and @najef1979-code.
  • PR #93714 fix: isolate async model resolution mock from sync mock in flaky test. Related #92117. Thanks @lsr911 and @wangwllu.
  • PR #93705 test(macos): cover root command dispatch. Related #83879. Thanks @markoub and @vincentkoc and @davinci282828.
  • PR #93711 Keep command text in progress drafts. Thanks @keshavbotagent and @vincentkoc.
  • PR #93712 fix: scope assistant avatar override to agent ID. Related #90890. Thanks @lsr911 and @vincentkoc and @najef1979-code.
  • PR #93725 fix(usage): prune stale usage cache temp files. Related #78939. Thanks @markoub and @Tramsrepus.
  • PR #93726 fix(typing): start typing on reasoning deltas in thinking mode before visible text. Related #79681. Thanks @xialonglee and @novaflash82.
  • PR #93716 fix(discord): propagate timeout through channel capabilities diagnostics. Related #77040. Thanks @xialonglee and @vincentkoc and @unicebondoc.
  • PR #93729 fix(ollama): preserve configured API during discovery. Related #93710. Thanks @zhangguiping-xydt and @vincentkoc and @obnoxious2011-cmd.
  • PR #93719 fix: pin plugin workspace dir for sessions.list to avoid O(rows) memo busting. Related #90814. Thanks @lsr911 and @vincentkoc and @k-l-lambda.
  • PR #93732 fix(agents): preserve re-sent user prompt during compaction transcript rotation. Thanks @yetval.
  • PR #93738 fix: break plugin registry type import cycle. Thanks @giodl73-repo.
  • PR #93740 fix(sessions): release retained locks after takeover. Thanks @TurboTheTurtle.
  • PR #93745 fix(usage): reject invalid explicit dates in usage RPC date parsing. Thanks @harjothkhara and @vincentkoc.
  • PR #93746 fix(ui): populate realtime talk provider and transport options from talk.catalog. Thanks @shushushv and @vincentkoc.
  • PR #93751 fix(ios): fix quick setup sheet layout design. Thanks @zats.
  • PR #93749 fix(compaction): ignore stale persisted totalTokens in preflight gate. Thanks @yetval.
  • PR #93753 fix: correct tautological uppercase check in tool description summarizer. Thanks @GautamKumarOffical.
  • PR #89123 refactor: route transcript writers through session seam. Thanks @jalehman.
  • PR #93758 feat(memory): apply outputDimensionality truncation to local GGUF embeddings (fixes #58765). Thanks @liuhao1024 and @vincentkoc and @losz5000.
  • PR #93754 feat(inbound-meta): expose per-turn source modality. Related #50482. Thanks @liuhao1024 and @vincentkoc and @JTOrca.
  • PR #93767 fix(reasoning-tags): strip MiniMax mm: namespaced reasoning tags. Thanks @DrHack1 and @vincentkoc.
  • PR #93772 fix(feishu): recover CJK filenames from JSON file_name field (fixes #81103). Thanks @liuhao1024 and @vincentkoc and @pjuneye.
  • PR #93773 fix(ui): scope Skill Workshop proposals to selected agent. Related #93760. Thanks @TurboTheTurtle and @vincentkoc and @hannesrudolph.
  • PR #88750 feat(context-engine): pass runtime settings into lifecycle. Thanks @ragesaq and @jalehman.
  • PR #93763 fix(agents): use neutral billing copy for subscription auth. Related #80877. Thanks @eldar702 and @vincentkoc and @22kyasue.
  • PR #93818 List all ClawHub docs in sidebar. Thanks @Patrick-Erichsen.
  • PR #93779 fix(webchat): skip textarea resize during IME composition to eliminate typing lag. Related #90800. Thanks @joelnishanth and @vincentkoc and @w10497-create.
  • PR #93786 fix(plugins): treat refreshable catalogs as requiring runtime discovery (fixes #93775). Thanks @liuhao1024 and @St0rmz1.
  • PR #93791 fix(memory): await search-sync before returning results to prevent stale index (fixes #52115). Thanks @liuhao1024 and @vincentkoc and @FicheallADa.
  • PR #93780 fix(google): keep parallel Gemini tool responses in the turn after the model. Thanks @yetval and @vincentkoc.
  • PR #93789 fix(agents): make lane suspension consistent across cooldown-precheck and embedded-runner paths. Related #93036. Thanks @joelnishanth and @vincentkoc and @kumaxs.
  • PR #93798 fix(status): show 0 (not ?) for fresh-session context tokens. Related #93771. Thanks @Alix-007 and @vincentkoc and @anarchia-99.
  • PR #93810 fix(cron): preserve startup overflow catch-up deferrals in start() maintenance pass. Thanks @yetval.
  • PR #93811 Strip UTF-8 BOM when reading SKILL.md in quick_validate. Thanks @HrachShah.
  • PR #93803 fix(ui): preserve WebChat visible messages across session switches. Related #80855. Thanks @LiuwqGit and @vincentkoc and @viagarsuker.
  • PR #93792 fix(android): wait for node capability approval before onboarding. Thanks @Solvely-Colin and @vincentkoc.
  • PR #93796 fix(feishu): paginate wiki node and space listing (#37626). Thanks @ZengWen-DT and @vincentkoc and @ritou11.
  • PR #93797 fix(browser): use openTab return value to prevent wsUrl race in ensureTabAvailable (fixes #63343). Thanks @liuhao1024 and @vincentkoc and @OpenCodeEngineer.
  • PR #93806 fix(reasoning-tags): strip MiniMax mm: tags on silent-reply and streaming paths missed by #93767. Thanks @Alix-007 and @vincentkoc.
  • PR #93691 refactor: add gateway sessions.create lifecycle seam. Thanks @jalehman.
  • PR #88748 fix(gemini): bridge OAuth profiles into CLI runtime. Related #88742. Thanks @jason-allen-oneal.
  • PR #93857 fix(deps): remediate Dependabot alerts. Thanks @vincentkoc.
  • PR #93874 fix(slack): recognize MiniMax mm: namespaced reasoning tags in monitor preview. Thanks @Alix-007.
  • PR #93832 feat(providers): add ClawRouter managed proxy. Thanks @vincentkoc.
  • PR #93880 fix(macos): preserve approvals migration data. Thanks @vincentkoc.
  • PR #93903 fix(cron): reject invalid absolute timestamps. Thanks @Alix-007 and @vincentkoc.
  • PR #93879 fix(update): use configured npm registry for update metadata. Related #79140. Thanks @vincentkoc and @sixerLiu.
  • PR #93924 revert(providers): remove ClawRouter provider. Thanks @vincentkoc.
  • PR #93955 fix(telegram): surface rich-message disabled state. Thanks @obviyus.
  • PR #93881 fix(agents): route BTW through canonical Codex runtime. Related #88902. Thanks @vincentkoc and @TurboTheTurtle and @khalil-omer.
  • PR #90192 fix(feishu): fetch quoted content before empty-message guard. Related #90177. Thanks @bladin and @sliverp and @lkxlaz.
  • PR #93237 Fix Mattermost open DM validation. Thanks @amknight.
  • PR #93945 feat(diagnostics): add SIEM security events. Thanks @vincentkoc.
  • PR #87487 fix(cli): clarify mcp list registry scope. Related #65209. Thanks @Alix-007 and @slideshow-dingo.
  • PR #24661 feat(cohere): add provider plugin. Thanks @vincentkoc.
  • PR #93532 Expose verified ClawHub source in skill verify output. Thanks @momothemage.
  • PR #93538 feat(codex): support app-server network proxy profiles. Thanks @vincentkoc.
  • PR #93938 fix(telegram): guard UTF-16 surrogate pairs in outbound chunkers. Related #93921. Thanks @Nas01010101 and @vincentkoc.
  • PR #94104 feat(agents): trace compaction summarization model calls. Thanks @amknight.
  • PR #94108 Fix package Telegram temp root. Thanks @obviyus.
  • PR #94113 Fix Telegram package output mount. Thanks @obviyus.
  • PR #89062 feat(docker): support offline setup reruns. Related #70443. Thanks @Alix-007 and @safrano9999.
  • PR #93929 fix(secrets): explicitly pass BWSSERVERURL to resolver for self-hosted instances. Related #93851. Thanks @Pandah97 and @vincentkoc and @AdoShan.
  • PR #90057 Polish Workboard operations view. Thanks @fuller-stack-dev.
  • PR #89396 fix(doctor): drop inert legacy cron notify when cron.webhook is unset. Related #44460. Thanks @Alix-007.
  • PR #94138 fix(session): prevent stale finalizer from recreating deleted session rows. Related #40840. Thanks @xialonglee and @vincentkoc and @AL-knows.
  • PR #93739 refactor: add session patch projection seam. Thanks @jalehman.
  • PR #94178 fix(workspace): skip optional bootstrap files when workspace setup is already completed. Related #83593. Thanks @dwc1997 and @jsompis.
  • PR #93363 fix(feishu): enforce account tool family gates. Thanks @eleqtrizit.
  • PR #93813 fix(codex): keep message registered for internal turns. Related #93750. Thanks @jalehman and @hannesrudolph.
  • PR #93659 refactor: add session reset delete lifecycle seam. Thanks @jalehman.
  • PR #93852 ci(release): harden release controls. Thanks @vincentkoc.
  • PR #94203 feat(codex): support remote app-server plugins. Thanks @kevinslin.
  • PR #94263 chore: migrate claw-score skill. Thanks @RomneyDa and @kevinslin.
  • PR #93695 refactor: add compact trim lifecycle seam. Thanks @jalehman.
  • PR #93114 test: fold lifecycle and package proof into QA Lab. Thanks @RomneyDa.
  • PR #93181 test: fold otel smoke into qa e2e. Thanks @RomneyDa.
  • PR #93178 test: fold gateway smoke into qa e2e. Thanks @RomneyDa.
  • PR #94276 qa-lab: support script-backed evidence scenarios. Thanks @Solvely-Colin and @RomneyDa.
  • PR #94282 Support owner-qualified ClawHub skill installs. Thanks @Patrick-Erichsen.
  • PR #93704 refactor: add session cleanup lifecycle seam. Thanks @jalehman.
  • PR #94296 fix: require all taxonomy coverage ids for a feature - AND not OR. Thanks @RomneyDa.
  • PR #92016 fix(plugins): compose live hook registry view for tool-call hooks. Related #91918. Thanks @amknight and @vokaplok.
  • PR #89596 fix(policy): recognize declared tool allowlists. Thanks @giodl73-repo.
  • PR #93713 fix: route deleted-agent session purge through lifecycle seam. Thanks @jalehman.
  • PR #84172 fix(exec): rebuild command authorization on the Tree-sitter command planner. Thanks @jesse-merhi.
  • PR #94332 docs: add ClawHub namespace claims to sidebar. Thanks @Patrick-Erichsen.
  • PR #86360 fix(codex): honor bound agent exec host policy. Thanks @jesse-merhi.
  • PR #73162 fix(slack): remove socket reconnect attempt cap so gateway stays connected indefinitely. Related #72808. Thanks @suboss87 and @tleyden.
  • PR #94156 fix: expose OpenAI image quality and moderation CLI options. Thanks @lastguru-net and @fuller-stack-dev.
  • PR #94350 feat: externalize GMI provider plugin. Thanks @Patrick-Erichsen and @vincentkoc.
  • PR #94543 fix(gateway): bound config.get middleware results. Related #94265. Thanks @vincentkoc and @v-s-gusev.
  • PR #91409 fix(update): run plugin convergence after RPC git updates. Thanks @masatohoshino.
  • PR #94556 chore(extensions): bump tokenjuice to 0.8.1. Thanks @vincentkoc.
  • PR #94580 fix(ci): stabilize update run gates.
  • PR #94394 fix(infra): probe 127.0.0.1 in ensurePortAvailable to detect IPv4-only occupants. Related #94379. Thanks @Pandah97 and @wangwllu.
  • PR #94421 fix(agents): preserve active compaction retries. Related #94391. Thanks @dexiosmb.
  • PR #94428 fix(feishu): preserve replies before error finals. Related #94360. Thanks @xunx33.
  • PR #93735 refactor: add restart recovery lifecycle seam. Thanks @jalehman.
  • PR #94591 docs(release): backfill complete contribution records. Thanks @vincentkoc.
  • PR #94588 fix(cron): retry isolated setup timeouts. Thanks @aaroneden.
  • PR #94082 fix(cron): prevent lane timeout during long tool execution. Related #94033. Thanks @ajwan8998 and @JingWang-Star996.
  • PR #94551 feat(firecrawl): add keyless scrape support. Thanks @vincentkoc and @developersdigest.
  • PR #94619 test(ci): stabilize timeout-sensitive shards. Thanks @vincentkoc.
  • PR #94048 fix(telegram): set richMessages default to false explicitly in schema. Related #93770, #93794. Thanks @Monkey-wusky and @obviyus and @Nardoa375 and @laurenceputra.
  • PR #94118 [codex] Fix Telegram rich local Markdown link hrefs. Related #94117. Thanks @dankarization and @obviyus.
  • PR #94646 refactor(sqlite): land database-first memory and proxy alignment. Thanks @vincentkoc.
  • PR #94658 test(sqlite): use shared temp directory helper. Thanks @vincentkoc.
  • PR #92135 fix(openai-embedding): preserve openai/ prefix for non-native base URLs. Related #92124. Thanks @xialonglee and @Kambrian.
  • PR #93737 refactor: add session maintenance transaction seam. Thanks @jalehman.
  • PR #93685 refactor(auto-reply): add lifecycle storage seams. Thanks @jalehman.
  • PR #94349 fix(agents): preserve pending subagent completion announces. Related #93323. Thanks @sallyom and @oiGaDio.
  • PR #93174 test: fold channel message flows into qa e2e. Thanks @RomneyDa.
  • PR #94093 Prevent Codex thread rotation from losing next-step context. Thanks @VACInc.
  • PR #53920 fix(scripts): avoid mutating tracked auth-monitor template during setup. Thanks @JackWuGlobal.
  • PR #94702 Standardize QA coverage IDs on dotted names. Thanks @RomneyDa.
  • PR #81825 fix(skills/1password): stop forcing tmux for desktop app auth (#52540). Thanks @koshaji and @tylerbittner.
  • PR #94725 fix(doctor): warn on volatile SQLite state. Thanks @vincentkoc.
  • PR #88551 fix(agents): skip auth gate for CLI-owned transport. Thanks @yu-xin-c.
  • PR #88581 feat(commands): add /name to rename the current session from chat. Thanks @BSG2000.
  • PR #94324 feat(codex): support app-server SecretRefs. Thanks @kevinlin-openai and @kevinslin.
  • PR #90882 fix: add self-knowledge docs rule to system prompt. Related #90713. Thanks @SutraHsing.
  • PR #94684 fix: #80507 show dry-run output for message send/poll. Thanks @lzyyzznl and @YB0y.
  • PR #93823 fix(whatsapp): keep opening text chunk when first media fails on multi-chunk reply. Thanks @yetval.
  • PR #89203 refactor: route SDK session compatibility through seam. Thanks @jalehman.
  • PR #94453 fix: default cron runMode to "due" instead of "force" (#94270). Thanks @jincheng-xydt and @sallyom and @davectr.
  • PR #94746 fix(note): prevent clack from re-breaking copy-sensitive tokens. Related #94730. Thanks @xzh-icenter and @berkgungor.
  • PR #89904 refactor: route sdk session compatibility through accessor. Thanks @jalehman.
  • PR #86719 fix(skills): retarget stale plugin skill symlinks. Related #85925. Thanks @stevenepalmer and @shakkernerd.
  • PR #94337 fix(tui): show 0 not ? for fresh-session context tokens in footer. Thanks @mushuiyu886.
  • PR #94539 fix(android): group settings by intent. Thanks @Tosko4.
  • PR #92383 fix(gateway): never return an empty chat.history transcript. Thanks @Hidetsugu55.
  • PR #92574 test(browser): cover action-input CLI request bodies. Related #83877. Thanks @yu-xin-c and @davinci282828.
  • PR #92873 test(diffs): add viewerState, toolbar toggle, shadow root, and hydrateProps tests (fixes #83915). Thanks @liuhao1024 and @davinci282828.
  • PR #94257 fix(sessions): preserve Media\* index alignment when reading user-turn fields. Thanks @Nas01010101.
  • PR #94756 fix(codex): bound turn/start text when context budget is non-positive. Related #94748. Thanks @Nas01010101.
  • PR #94729 fix(skills/trello): add curl to requires.bins to match body examples (fixes #94727). Thanks @liuhao1024 and @berkgungor.
  • PR #94790 feat(slack): log INFO receipt for inbound app_mention events. Related #94691. Thanks @ZengWen-DT and @BryceMurray.
  • PR #81696 fix: guard tool event callbacks (AI-assisted). Thanks @enjoylife1243.
  • PR #94809 chore: forward-port alpha release fixes.
  • PR #94612 fix(macos): open NSOpenPanel for embedded Control UI file inputs (#94468). Thanks @bbblending and @DINGDANGMAOUP.
  • PR #89806 fix(feishu): avoid axios interceptor internals. Related #83913. Thanks @sweetcornna and @davinci282828.
  • PR #91923 fix(ios): clean up notification settings state. Thanks @zats.
  • PR #91345 fix: suggest close CLI commands. Related #83999. Thanks @glenn-agent and @HannesOberreiter.
  • PR #94561 Add stdout diagnostics OTEL log exporter. Thanks @jesse-merhi.
  • PR #91013 fix(gateway): ignore stale abort markers for fresh chat events. Related #91012. Thanks @nxmxbbd.
  • PR #89279 fix(tasks): deliver ACP completions to bound Discord threads. Related #84022. Thanks @anyech and @h-mascot.
  • PR #91656 test(cron): expand parseAbsoluteTimeMs test coverage to 39 cases. Related #91654. Thanks @SpecialLeon.
  • PR #94810 fix(telegram): classify sendChatAction 401 by structured error_code, not bare substring match. Related #94787. Thanks @ZOOWH and @parveshsaini.
  • PR #94737 fix(reply): clarify provider internal error copy. Thanks @snowzlmbot.
  • PR #94868 fix(channels): preserve command progress detail. Thanks @vincentkoc.
  • PR #94891 fix(telegram): send progress previews as html text. Thanks @obviyus.
  • PR #94683 fix(outbound): keep direct-only targets out of group sessions. Related #92384. Thanks @scotthuang and @haiwei01.
  • PR #92477 fix: migrate watch app to single-target app (Xcode 27+ compat). Thanks @zats and @joshavant.
  • PR #94812 test(perf): compare saved CLI startup benchmarks. Thanks @FelixIsaac.
  • PR #94856 fix(telegram): normalize all HTML tables before entity-escaping in rich messages. Related #94317. Thanks @zhangqueping and @jairrab.
  • PR #91685 fix(cron): refuse keyless implicit isolated cron delivery inherited from shared agent-main bucket. Thanks @nxmxbbd.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.9
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.9.tgz
  • integrity: sha512-y0PGUdE87S8QtQXABPDL0CjNKhH3q/R1h9/WiRQkhVCGSBVhs63/M1iZn2DYVyJCAbDyMz3KNyAE0WzSQIWCRg==
  • release SHA: c645ec4555c017931de0e35ad9847dffae2741ef
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.9/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27889455826
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27879798419
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27879798405
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27889611545
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/27889612007
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27889785109
  • npm Telegram beta E2E: not supplied
  • Windows Hub promotion: https://github.com/openclaw/openclaw/actions/runs/27890002427 from openclaw/openclaw-windows-node@v0.6.3
v2026.6.9-beta.1 pre BREAKING [Jun 19, 2026] details → github →

# openclaw 2026.6.9-beta.1

2026.6.9

Highlights

  • Richer Telegram delivery: Telegram now sends rich HTML, preserves rich markdown and sticker paths, renders progress drafts and command output more faithfully, and keeps mentions and spooled handlers on the right delivery path. (#93286, #93164, #93124, #93364, #93130, #93088, #93281) Thanks @obviyus, @vincentkoc, @goutamadwant, @kesslerio, @NianJiuZst, @SweetSophia, @Marvinthebored, and @aaajiao.
  • More dependable agent recovery: retries, terminal outcomes, usage after compaction, session history repair, and reply reconciliation now keep more interrupted or partial turns moving toward a visible final result. (#92191, #93073, #93228, #93084, #93469, #93291, #90943) Thanks @ai-hpc, @lml2468, @fuller-stack-dev, @Hollychou924, @leno23, @de1tydev, @425072024, @wuwahe3, @drvoss, @yetval, @sandieman2, and @vincentkoc.
  • A stronger Codex integration: Codex gains automatic plugin approvals, GPT-5.3 Spark OAuth routing, remote-node exec as a dynamic tool, and more reliable app-server teardown and terminal outcomes. (#92625, #89133, #93654, #91767, #93287) Thanks @kevinslin, @VACInc, @vincentkoc, @JPKay-AI, and @aliahnaf2013-max.
  • Standalone official provider plugins: external provider packages are now first-class npm releases, externally installed channel plugins load at Gateway startup, and StepFun is intentionally npm-only because its ClawHub package name is unavailable. (#93470) Thanks @sunlit-deng, @cxdnicole, and @vincentkoc.
  • More capable web and native clients: the Control UI adds a session workspace rail and extension health, iOS adds Watch controls, and Android shows chat context. (#92856, #91952, #93387, #92837) Thanks @Solvely-Colin, @jalehman, @joshavant, and @Tosko4.
  • More useful search and skills: Codex Hosted Search is available, key-free search providers remain deliberate opt-ins, and ClawHub skill installs retain verified source provenance. (#93446, #93616, #93283, #93506) Thanks @fuller-stack-dev, @davemorin, @momothemage, @nmccready-tars, and @vincentkoc.

Changes

  • Providers and auth: add Codex Hosted Search, improve Gemini CLI OAuth behind proxies, and keep external provider onboarding on current choices and package metadata. (#93446, #92815) Thanks @fuller-stack-dev, @yetval, @EvetteYoung, and @vincentkoc.
  • Plugins and installs: externalized official providers publish as independent npm packages, Gateway discovers installed channel plugins at startup, and StepFun installs exclusively from npm. (#93470) Thanks @sunlit-deng, @cxdnicole, and @vincentkoc.
  • Dashboard and mobile: add a session workspace rail, plugin health in status, compact cron lists, and iOS Watch controls. (#92856, #91952, #93395, #93387) Thanks @Solvely-Colin, @jalehman, @yu-xin-c, @centralpc, @joshavant, and @vincentkoc.
  • Codex and skills: add automatic plugin approvals, preserve ClawHub skill provenance, and expose remote-node execution to Codex when a node is connected. (#92625, #93283, #93654) Thanks @kevinslin, @momothemage, @nmccready-tars, @vincentkoc, and @JPKay-AI.
  • QA and release engineering: QA scenarios now use YAML, with broader profile evidence and release coverage for the plugin and channel matrix.

Fixes

  • Security and privacy: redact secrets from debug/config output, block internal HTTP session overrides, audit open-DM tool exposure, and retain plugin write ownership checks. (#93333, #88496, #93443, #92883, #93353) Thanks @Alix-007, @jason-allen-oneal, @coygeek, @RichardCao, @yu-xin-c, @cjg20ss, @eleqtrizit, and @vincentkoc.
  • Agent and session runtime: retry thinking-only and empty post-tool turns, prevent duplicate hook execution, preserve fresh usage through compaction, and repair partial JSON/history artifacts. (#92191, #93073, #93009, #93084, #93469) Thanks @ai-hpc, @lml2468, @fuller-stack-dev, @zenglingbiao, @dertbv, @Hollychou924, @leno23, @de1tydev, @425072024, @wuwahe3, @drvoss, and @vincentkoc.
  • Channels and replies: fix Telegram rich delivery and ingress recovery, preserve WhatsApp auth and media error reporting, keep Mattermost thread replies intact, and harden Discord action handling. (#93286, #93364, #93281, #93076, #93334, #93424, #93488) Thanks @obviyus, @NianJiuZst, @mcaxtr, @rushindrasinha, @amknight, @lzyyzznl, @darealgege, and @vincentkoc.
  • Storage and migrations: avoid SQLite WAL on network filesystems, clean reindex artifacts, keep setup state out of workspace dot-directories, and import default-agent auth profiles into SQLite. (#93454, #92891, #93182, #93295, #93520, #93156) Thanks @vincentkoc, @ZengWen-DT, @Zeng-wen, @potterdigital, @Alix-007, @Pick-cat, @sallyom, @1qh, and @Tazio7.
  • Provider and model behavior: fix Gemini CLI proxy OAuth, restore Codex Spark OAuth routing, correct Bedrock embedding model IDs, and preserve configured defaults in embedded runs. (#92815, #89133, #93452, #93428) Thanks @yetval, @EvetteYoung, @VACInc, @LiuwqGit, @aleck31, @zenglingbiao, @danielgerlag, and @vincentkoc.
  • CLI, TUI, and apps: accept global flags after subcommands, keep terminal output and activity indicators visible, preserve CJK IME composition, and refresh stale UI state. (#93455, #93460, #93006, #93427, #93498, #93606) Thanks @ooiuuii, @Alix-007, @ZengWen-DT, @Zeng-wen, @AlethiaQuizForge, @Zhaoqj2016, @liuhao1024, @BrianClaw1955, @vincentkoc, and @NicoBoom13.
  • Operations and updates: harden official plugin recovery, restart managed Gateways after failed update handoff, avoid Node-specific npm prefixes, and keep package validation paths reliable. (#93325, #92111, #93650) Thanks @vincentkoc, @yetval, @ofan, and @yaanfpv.

Complete contribution record

This audited record covers the complete v2026.6.8..HEAD~1 history: 375 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #90463 refactor: add session accessor seam with gateway consumer. Thanks @jalehman.
  • PR #88656 Drop reasoning-only length turns from replay. Thanks @abel-zer0.
  • PR #92856 feat(webui): add session workspace rail. Thanks @Solvely-Colin.
  • PR #92845 docs(browser-control): document OPENCLAWEAGERBROWSERCONTROLSERVER requirement. Related #92841. Thanks @liuhao1024 and @jeugregg.
  • PR #82366 fix: use passive periodic sqlite wal checkpoints. Related #81715. Thanks @honor2030 and @KrasimirKralev.
  • PR #92815 fix(google): route Gemini CLI OAuth through the env proxy (#46184). Thanks @yetval and @EvetteYoung.
  • PR #91331 fix(mattermost): merge progress preview lines by identity. Related #89761. Thanks @iloveleon19 and @leonthe8th and @vincentkoc.
  • PR #92909 fix(tui): keep spinner active when toggling tools. Related #49763. Thanks @ZengWen-DT and @Zeng-wen and @vincentkoc and @CrimsonDump.
  • PR #92904 fix(elevenlabs): use current TTS model ids. Thanks @vortexopenclaw and @vincentkoc.
  • PR #92642 fix #86872: Subagent run reports success but fails to write output file. Thanks @zhangguiping-xydt and @vincentkoc and @zapper35.
  • PR #89122 refactor: route command session reads through seam. Thanks @jalehman.
  • PR #90943 fix(reply): deliver final reply when queued follow-up claims session; scope dedupe to routed thread. Thanks @sandieman2 and @vincentkoc.
  • PR #92894 fix(skills): keep managed prompt paths readable. Related #92875. Thanks @kesslerio and @sallyom.
  • PR #39617 fix: reload config in slash command routing so dmScope is respected. Related #39605. Thanks @Ciward.
  • PR #92191 fix(agents): retry thinking-only errored turns. Related #91953. Thanks @ai-hpc and @lml2468.
  • PR #92891 fix(memory): clean stale reindex temp files. Related #92874. Thanks @ZengWen-DT and @Zeng-wen and @vincentkoc and @potterdigital.
  • PR #93005 Add OpenRouter Fusion guidance and prompt context. Related #92984. Thanks @sallyom.
  • PR #88792 fix(state): harden sqlite path caching. Thanks @vincentkoc.
  • PR #93022 fix(gateway): repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49.
  • PR #93020 fix(telegram): cool down transient sendChatAction failures. Related #56096. Thanks @Boulea7 and @sumaiazaman and @Pick-cat and @cal-rufus.
  • PR #89160 fix(agents): detect truncated API responses to prevent silent session hang. Related #89051. Thanks @joelnishanth and @ArthurusDent.
  • PR #93009 fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv.
  • PR #92991 fix(agents): tolerate missing attribution baseUrl. Related #92974. Thanks @samrusani and @Haderach-Ram.
  • PR #92913 fix(opencode-go): register model catalog to fix context window detection. Related #92912. Thanks @kumaxs.
  • PR #89129 refactor: route bundled plugin session callers through seam. Thanks @jalehman.
  • PR #93084 fix(agents): preserve fresh usage after compaction. Related #50795. Thanks @Hollychou924 and @leno23 and @de1tydev and @425072024 and @vincentkoc and @wuwahe3.
  • PR #92869 fix #90333: [Bug]: Discord image build aborts at step 66 — openclaw-build-messaging-plugins.py exits 1. Thanks @zhangguiping-xydt and @vincentkoc and @chriskosys.
  • PR #93011 fix(gateway): accept file-only input on /v1/responses (parity with image-only). Thanks @yetval and @vincentkoc.
  • PR #92915 Convert QA scenarios to YAML files. Thanks @RomneyDa.
  • PR #91767 Fix one-shot Codex app-server teardown. Thanks @aliahnaf2013-max.
  • PR #92625 feat(codex): add auto plugin approvals. Thanks @kevinslin.
  • PR #91587 test(qa): add qa run --qa-profile and unified output summary/evidence. Thanks @RomneyDa.
  • PR #93104 test(reply): seed channel fixtures for dedupe tests. Thanks @RomneyDa.
  • PR #93107 test(reply): preserve telegram dedupe fallback. Thanks @RomneyDa.
  • PR #92954 fix(memory): accept local default model path migration. Thanks @mushuiyu886 and @vincentkoc.
  • PR #90936 fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon.
  • PR #90812 fix(voice-call): preserve live Twilio streams in stale reaper. Related #79121. Thanks @Takhoffman and @sahibzada-allahyar and @donkeykong91.
  • PR #93094 fix(whatsapp): bound socket operations. Thanks @mcaxtr.
  • PR #91629 fix(scripts): add database-first legacy store guard. Related #91628. Thanks @galiniliev.
  • PR #93124 fix(telegram): render progress drafts as rich previews. Thanks @Marvinthebored.
  • PR #93109 test(qa): embed profile scorecard evidence. Thanks @RomneyDa.
  • PR #87298 test: add temp directory helper guidance. Thanks @hxy91819.
  • PR #92318 fix(cron): require explicit message target proof. Thanks @hxy91819.
  • PR #93137 fix(imessage): honor disabled reply actions. Related #92142. Thanks @omarshahine and @dprev.
  • PR #93134 fix(feishu): pass cardmsgcontent_type to get full card content (fixes #78289). Thanks @liuhao1024 and @vincentkoc and @longdoubled7.
  • PR #93138 fix(agents): preserve literal current session resolution. Thanks @liuhao1024 and @vincentkoc.
  • PR #91225 fix #83830: [Bug]: Dreaming diary repeats "first day" narrative every sweep — same early memories dominate snippets. Thanks @mushuiyu886 and @YinLiuLiu66.
  • PR #93153 simplify QA evidence profile and mappings/coverage shape. Thanks @RomneyDa.
  • PR #93164 fix(telegram): preserve rich markdown line breaks. Thanks @vincentkoc.
  • PR #93119 fix: accept mixed source/dist bundled roots. Related #87730. Thanks @arkyu2077 and @vincentkoc and @jasonftl.
  • PR #93130 fix(telegram): preserve sticker media paths. Related #83748. Thanks @goutamadwant and @vincentkoc and @aaajiao.
  • PR #93073 fix(agents): retry empty post-tool final turns. Thanks @fuller-stack-dev.
  • PR #91784 fix(voice-call): require realtime websocket path boundary. Thanks @jason-allen-oneal.
  • PR #89133 Restore GPT-5.3 Codex Spark OAuth routing. Thanks @VACInc.
  • PR #91996 refactor: prune unused iOS code. Thanks @zats.
  • PR #90231 fix #69443: [Bug] Subagent RPC callback to WeChat session key routed to main session instead. Thanks @zhangguiping-xydt and @sliverp and @chen11221.
  • PR #89920 fix(matrix): replace recovered command progress lines. Thanks @bdjben and @jesse-merhi.
  • PR #93159 fix(tui): keep parent stdin paused after exit. Thanks @fuller-stack-dev.
  • PR #93201 fix(auto-reply): clear pending-final state before honoring post-send abort (#89115). Thanks @amknight and @danashburn.
  • PR #93228 fix(agents): replace prose terminal classifiers. Thanks @fuller-stack-dev.
  • PR #93231 fix(status): correct pinned model clear hint. Thanks @hxy91819.
  • PR #92428 fix(qqbot): keep markdown table chunks valid. Thanks @sliverp.
  • PR #93220 fix(status): avoid stale session context windows. Thanks @hxy91819.
  • PR #91957 perf(sessions): share one enumeration across archive retention sweeps. Thanks @amknight.
  • PR #93281 fix(telegram): recover pid-reused ingress claims. Thanks @obviyus.
  • PR #93287 fix(codex): preserve terminal outcome ordering.
  • PR #93182 fix(memory): clean rollback-journal reindex temp sidecar on NFS stores. Thanks @Alix-007.
  • PR #93283 Persist ClawHub skill install provenance. Related #92077. Thanks @momothemage and @nmccready-tars.
  • PR #88872 fix: attribute spawned task runs to child agent. Related #66670. Thanks @Alix-007 and @Neomail2.
  • PR #92837 fix(android): show live chat context usage. Thanks @Tosko4.
  • PR #93325 fix(cli): harden official plugin recovery. Thanks @vincentkoc.
  • PR #93286 feat(telegram): send rich messages as rich html. Thanks @obviyus.
  • PR #92910 fix(memory-core): safely refresh qmd index during collection repair.
  • PR #93329 fix(cli): allow zero Discord timeout duration. Related #93327. Thanks @rohitjavvadi.
  • PR #91625 fix(cron): add cron edit --clear-model to clear a job's model override. Thanks @ly-wang19.
  • PR #91691 [AI] fix(memory): prevent empty-string expectedModel in resolveMemory…. Thanks @xydt-tanshanshan.
  • PR #93006 fix(tui): keep stderr visible when local shell stdout fills the output cap. Thanks @Alix-007.
  • PR #93001 fix(daemon): prefer stderr over stale stdout in gateway restart diagnostics. Thanks @Alix-007.
  • PR #91117 refactor: remove dead code and improve string concatenation. Thanks @Pommelle.
  • PR #90893 fix(models): mask paste-token input in CLI auth prompt. Thanks @anurag-bg-neu.
  • PR #90571 fix(configure): mask gateway password input in CLI wizard prompt. Thanks @anurag-bg-neu.
  • PR #91768 fix(ios): respect chat header safe area. Thanks @zats.
  • PR #93245 fix(cron): resolve lastRunStatus in cron list/show human output. Thanks @ly-wang19.
  • PR #78765 fix(tui): avoid inserting spaces into long CJK text. Thanks @hpt.
  • PR #91776 fix(ios): refresh permission rows after grants. Thanks @zats.
  • PR #92817 fix(cron): trust agent output when channel is unresolved without explicit delivery. Related #90664. Thanks @fsdwen and @dertbv.
  • PR #93297 fix(control-ui): respect agents.defaults.timeFormat for timestamps. Related #58147. Thanks @ZengWen-DT and @Zeng-wen and @TommoT2.
  • PR #93364 Fix Telegram rich progress command output. Thanks @obviyus.
  • PR #91952 feat(status): surface plugin health. Thanks @jalehman.
  • PR #75025 fix(heartbeat): refresh stale Current time line on every helper call (#44993). Thanks @MoerAI and @mclee1975.
  • PR #90992 docs(windows): fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0 idle-termination. Thanks @spencer2211.
  • PR #86544 fix(cli): show Gemini CLI runtime auth status. Related #79585. Thanks @giodl73-repo and @fabricefoy.
  • PR #88945 fix(plugins): serialize binding approval saves. Related #64065. Thanks @Alix-007 and @lihaokun.
  • PR #90115 fix(gateway): pass managed inbound PDFs through chat.send. Related #90097. Thanks @harjothkhara and @joeykrug.
  • PR #74613 docs(cli): add agent selector to CLI backend quick start. Related #68940. Thanks @vyctorbrzezowski and @drmarcopapa.
  • PR #89121 refactor: add transcript reader seam. Thanks @jalehman.
  • PR #84434 fix(cli): disable ScheduleWakeup/CronCreate in --print claude runs. Thanks @SkyWolfDreamer.
  • PR #66985 fix(agents): resolve requestedNode to canonical ID before boundNode comparison. Related #87213. Thanks @mujiannan.
  • PR #91488 fix(reply): project preflight compaction gate by next-input size on fresh tokens. Thanks @yetval.
  • PR #93353 fix(plugins): require owner for plugin writes. Thanks @eleqtrizit.
  • PR #91499 fix(cron): preserve scheduled turn tool policy [AI]. Thanks @mmaps.
  • PR #90412 fix(sessions): cache warm transcript reads to avoid per-turn re-parse. Related #83943. Thanks @Alix-007 and @yyds-xxxx.
  • PR #93118 fix(gateway): guard fast-path startup migrations. Related #93032. Thanks @openperf and @Haderach-Ram.
  • PR #93355 fix(ci): verify performance workflow downloads. Thanks @eleqtrizit.
  • PR #93358 fix(outbound): guard cross-context message mutations. Thanks @eleqtrizit.
  • PR #93362 fix(flock): bind allow-always to wrapped command. Thanks @eleqtrizit.
  • PR #92578 refactor(whatsapp): add inbound admission foundation. Thanks @mcaxtr.
  • PR #89547 Control Telegram group history context. Thanks @mmaps.
  • PR #89201 refactor: add transcript runtime identity contract. Thanks @jalehman.
  • PR #93357 fix(plugins): enforce install policy in wrappers. Thanks @eleqtrizit.
  • PR #93156 fix(doctor): import default-agent auth profiles into sqlite. Related #93145. Thanks @Pick-cat and @sallyom and @Tazio7.
  • PR #93179 Add slim evidence mode for QA profile evidence. Thanks @RomneyDa.
  • PR #93349 fix(control-ui): keep workboard card titles visible in overflowing columns (fixes #91717). Thanks @Pick-cat and @NicoBoom13.
  • PR #93324 fix(cli): accept --no-color after subcommands. Thanks @ooiuuii.
  • PR #89621 Return Google Chat thread metadata from message sends. Thanks @franco-viotti.
  • PR #82458 fix(infra): drop duplicated "restart" word in restart-sentinel summary. Thanks @jameswniu.
  • PR #85471 Suppress cron announce control replies. Related #85421. Thanks @TurboTheTurtle and @leatherneck-33.
  • PR #85316 fix(auth): keep alias-compatible auth-profile overrides instead of clearing them. Thanks @SkyWolfDreamer.
  • PR #89260 fix(doctor): separate platform-incompatible skills from missing requirements. Related #89232. Thanks @Alix-007 and @CameronWeller.
  • PR #90846 fix(media): stop pruning media on write; let the configured timer do it. Thanks @lundog.
  • PR #88062 fix(logging): avoid stalled warnings for active model calls. Thanks @litang9.
  • PR #93308 fix(discord): reject malformed realtime consult calls. Thanks @khoek.
  • PR #93334 fix(whatsapp): notify user when trailing media send fails instead of silent drop. Thanks @rushindrasinha.
  • PR #92575 fix(sessions): preserve user behavior overrides across daily/idle rollover (#92562) [AI-assisted]. Thanks @harjothkhara and @civiltox.
  • PR #89124 refactor: route auto-reply sessions through session seam. Thanks @jalehman.
  • PR #93431 fix: stabilize transcript cache and CLI env isolation. Thanks @shakkernerd.
  • PR #93412 fix(discord): suppress tool progress for message-tool replies. Thanks @mgunnin and @vincentkoc.
  • PR #93409 fix(whatsapp): stop markdownToWhatsApp dropping code spans followed by a digit. Thanks @rushindrasinha.
  • PR #93295 fix(memory): swap rollback-journal sidecar during atomic reindex. Thanks @Alix-007.
  • PR #93076 fix(whatsapp): preserve auth on terminal disconnects. Thanks @mcaxtr.
  • PR #93435 fix(agents): bound autoreview scope. Thanks @vincentkoc.
  • PR #93279 fix(telegram): restore readable default text sends. Related #93263. Thanks @NianJiuZst and @SweetSophia.
  • PR #93429 fix(line): cap carousel column text at 60 chars when a title or image is set. Thanks @harjothkhara and @vincentkoc.
  • PR #93428 fix(agents): resolve configured default model in runEmbeddedAgent (fixes #93419). Thanks @zenglingbiao and @vincentkoc and @danielgerlag.
  • PR #93427 fix(tui): show activity indicator for system-injected runs. Related #51825. Thanks @ZengWen-DT and @vincentkoc and @Zeng-wen and @AlethiaQuizForge.
  • PR #90003 feat(policy): cover exec approvals artifact. Thanks @giodl73-repo.
  • PR #93448 fix(guards): allow auth profile sqlite reader. Thanks @amknight.
  • PR #93424 fix(mattermost): keep message tool replies in threads. Thanks @amknight and @vincentkoc.
  • PR #93418 fix(telegram): forward Bot API 10.1 rich_message content to agent. Related #93410. Thanks @xzh-xydt and @vincentkoc and @0pen7ech.
  • PR #93175 test(qa): taxonomy profiles: includeAllCategories for release profile, update some coverage. Thanks @RomneyDa.
  • PR #93456 fix(agents): handle string assistant message content. Thanks @vincentkoc.
  • PR #93441 fix(outbound): ignore schema-padded poll metadata on send. Related #43015. Thanks @weichengdeng and @charzhou.
  • PR #93443 fix(gateway): block internal HTTP session overrides. Thanks @RichardCao.
  • PR #93454 fix(sqlite): disable WAL on network filesystems. Thanks @vincentkoc.
  • PR #90275 test: make install-safe-path symlink tests compatible with Windows. Thanks @aniruddhaadak80.
  • PR #93464 fix(qa): suppress empty WhatsApp debug artifacts. Thanks @vincentkoc.
  • PR #90861 fix(cli): preserve sessions_yield over MCP. Related #77426. Thanks @zhangguiping-xydt and @jarvisagimuspicard-hub.
  • PR #90946 fix(infra): preserve inherited gateway PID across reparent during cleanup. Thanks @amittell.
  • PR #92220 fix(media): extract large managed inbound PDFs via media-understanding. Related #90096, #90097. Thanks @amknight and @joeykrug.
  • PR #91208 fix #91047: Plugin session-extension registry not pinned; sessions.pluginPatch fails after agent/subagent plugin-load churn. Thanks @mushuiyu886 and @teamadams.
  • PR #92111 fix(update): restart managed gateway when update handoff fails after stop. Related #92088. Thanks @yetval and @ofan.
  • PR #93238 fix(agents): honor disabled envelope timestamps at model boundary. Thanks @osolmaz.
  • PR #93343 fix(codex): de-duplicate commentary notes across the raw response lane. Related #93296. Thanks @Marvinthebored and @Peetiegonzalez.
  • PR #93361 fix(openshell): pin mirror remote mutations. Thanks @eleqtrizit.
  • PR #93354 fix(discord): block cross-provider guild admin actions. Thanks @eleqtrizit.
  • PR #92178 fix(gateway): normalize malformed paired access lists. Related #90654. Thanks @wangmiao0668000666 and @EmilioNicolas.
  • PR #85254 perf(plugins): thread prepared manifestPlugins through runtime model-id normalize chain. Thanks @zeroaltitude.
  • PR #93489 Add ClawHub content rights docs to sidebar. Thanks @Patrick-Erichsen.
  • PR #93466 [AI] fix(feishu): guard against missing inbound in channelRuntime fallback. Thanks @xydt-tanshanshan.
  • PR #93460 fix(cli): honor --log-level in route-first commands. Related #93457. Thanks @ooiuuii.
  • PR #93495 fix(cron): clear delivery routing fields from cron edit. Thanks @ly-wang19 and @vincentkoc.
  • PR #93494 docs: point PR landing at maintainer workflow. Thanks @fuller-stack-dev and @vincentkoc.
  • PR #93487 fix(ui): add agent selector to skills page. Related #78553. Thanks @goutamadwant and @vincentkoc and @xiaobu1112.
  • PR #93488 fix(discord): apply tool status emojis immediately to avoid override by thinking reactions. Related #92715. Thanks @lzyyzznl and @vincentkoc and @darealgege.
  • PR #93055 fix(ui): restore provider usage pill in desktop chat composer [AI]. Thanks @harjothkhara.
  • PR #83156 fix(matrix): accept bracketed display-name mentions. Related #83142. Thanks @wdx-agent-io and @wdongxv.
  • PR #93333 fix(auto-reply): redact secrets in /debug show and /debug set output. Thanks @Alix-007.
  • PR #88496 fix(auto-reply): redact secrets in config show output. Related #65623. Thanks @jason-allen-oneal and @coygeek.
  • PR #93105 fix(doctor): repair null agents.list[].workspace values. Related #77718. Thanks @xydigit-sj and @slideshow-dingo.
  • PR #73923 fix(ui): preserve gateway token during safe websocket url edits. Related #41545. Thanks @wsyjh8.
  • PR #88970 fix #85871: [Bug]: Heartbeat scheduler silently fails to fire on 5.20 and all 5.x versions (regression from 4.23). Thanks @zhangguiping-xydt and @vincentkoc and @carlbjson.
  • PR #93511 fix(imessage): normalize leading NUL echo-cache prefixes. Thanks @vincentkoc and @drvoss.
  • PR #92594 [Bug]: ollama-cloud runtime fails DNS lookup for ai.ollama.com, while ollama/<model>:cloud works. Related #92391. Thanks @zhangguiping-xydt and @vincentkoc and @kvzsolt.
  • PR #93512 build(docs): finish PowerShell-safe docs formatting. Related #44293. Thanks @vincentkoc and @yil337 and @aniruddhaadak80.
  • PR #93513 fix(skills): refresh persisted snapshots after restart. Thanks @vincentkoc and @fif911 and @skadauke.
  • PR #93517 fix(skills): quote skill-creator template description. Thanks @vincentkoc and @parubets.
  • PR #73976 fix(memory): use per-keyword FTS search in hybrid mode #39484. Thanks @joshuakeithpa-sudo.
  • PR #93520 fix(workspace): store setup state outside workspace dot-dir. Thanks @vincentkoc and @1qh.
  • PR #93521 fix(onboard): skip Homebrew prompt on unsupported platforms. Related #68893. Thanks @vincentkoc and @yurivict.
  • PR #93522 fix(feishu): send post mentions as native at elements. Thanks @vincentkoc and @gavin-ali and @YizukiAme and @Panniantong.
  • PR #93496 fix(gateway): rotate already-stale generated transcript filename on /reset. Thanks @harjothkhara and @vincentkoc.
  • PR #93471 fix(cron): preserve aborted isolated-run failure. Thanks @BhargavSatya and @vincentkoc.
  • PR #93473 fix(memory): report skipped QMD embedding probe. Related #77645. Thanks @TurboTheTurtle and @vincentkoc and @aderius.
  • PR #93498 fix(ui): preserve CJK IME composition. Related #86035. Thanks @Zhaoqj2016 and @vincentkoc.
  • PR #93088 fix(telegram): bind bot mentions to assistant identity. Thanks @kesslerio and @vincentkoc.
  • PR #93499 fix(nodes): return screen snapshots as media. Related #90126. Thanks @zenglingbiao and @vincentkoc and @JeffSteinbok.
  • PR #93506 fix(skills): trust verified ClawHub source provenance. Thanks @vincentkoc.
  • PR #93525 agents: notify chat exec empty-success completions. Thanks @vincentkoc and @wenkang-xie.
  • PR #93446 feat: add Codex hosted web search. Thanks @fuller-stack-dev.
  • PR #92883 fix(security): audit open dm tool exposure. Related #55612. Thanks @yu-xin-c and @vincentkoc and @cjg20ss.
  • PR #93476 fix(mattermost): preserve Codex progress preview. Related #88766. Thanks @goutamadwant and @vincentkoc and @KelTech-Services.
  • PR #93395 feat(cron): add compact list responses. Related #93366. Thanks @yu-xin-c and @vincentkoc and @centralpc.
  • PR #93527 fix(cron): preserve model overrides for text payloads. Thanks @vincentkoc and @liaoandi.
  • PR #90487 fix: harden ChatGPT Responses missing content-type streams. Thanks @anyech and @vincentkoc.
  • PR #93528 fix(gateway): tolerate transient pre-hello clean closes. Thanks @vincentkoc and @ruanrrn.
  • PR #93529 fix(auto-reply): allow message tool for group attachments. Related #43146. Thanks @vincentkoc and @Robcis.
  • PR #93291 fix(reply): preserve pending thread evidence when reconciling partial send results. Thanks @yetval and @vincentkoc.
  • PR #90572 fix(feishu): drop self-authored receive echoes. Thanks @baskduf.
  • PR #93455 fix(cli): accept --log-level after subcommands. Thanks @ooiuuii and @vincentkoc.
  • PR #93452 fix(bedrock): strip inference profile prefix from model ID in embedding adapter. Related #79212. Thanks @LiuwqGit and @vincentkoc and @aleck31.
  • PR #89799 fix(cli): skip compile cache on early Node 24.x to avoid startup deadlock. Related #86550. Thanks @zhangguiping-xydt and @vincentkoc and @renyuliang000.
  • PR #93469 fix(agents): drop partialJson streaming artifacts from session history repair. Thanks @drvoss and @vincentkoc.
  • PR #93463 fix(codex): log app-server compaction completion. Related #83932. Thanks @goutamadwant and @vincentkoc and @aounakram.
  • PR #93562 fix(tui): refresh after external session reset. Related #38966. Thanks @vincentkoc and @wsyjh8 and @yizhanzjz.
  • PR #93470 fix(plugins): load externally-installed channel plugins at gateway startup. Related #93219. Thanks @sunlit-deng and @vincentkoc and @cxdnicole.
  • PR #88796 fix(discord): resolve guildId from session channel for search actions. Related #88790. Thanks @SebTardif and @vincentkoc and @mugabuga.
  • PR #93194 fix(agents): preserve prompt-released session metadata. Related #93193. Thanks @snowzlm.
  • PR #89483 fix(gateway): project failed agent turns in chat history. Related #89197. Thanks @IWhatsskill and @vincentkoc and @yangiit.
  • PR #93434 fix: avoid parent group allowlist false positive. Related #92684. Thanks @kingrubic and @vincentkoc and @motteman.
  • PR #93449 fix(feishu): dedupe redelivered text by stable retry identity. Related #46778. Thanks @ZengWen-DT and @vincentkoc and @kingcuty.
  • PR #93407 AGT-80 AGT-81 Fix Discord ingress ack ordering. Thanks @mgunnin and @vincentkoc.
  • PR #93439 fix(agents): honor embedded run default model. Related #93419. Thanks @harjothkhara and @vincentkoc and @danielgerlag.
  • PR #93565 fix(cli): summarize cleanup dry-run by label. Related #76826. Thanks @AgentArcLab and @vincentkoc and @renatomaluhy.
  • PR #93509 fix(skills): clear orphaned idempotency pointer on corrupt-metadata re-begin. Thanks @Alix-007 and @vincentkoc.
  • PR #93274 Clarify plugin channel config additional-property errors. Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #93555 fix(read): route text decoding through shared Windows codepage fallba…. Thanks @zhanxingxin1998 and @vincentkoc.
  • PR #93314 fix(skills): preserve ClawHub origin provenance on readback. Thanks @Alix-007 and @vincentkoc.
  • PR #93573 fix(acp): keep bridge sessions out of stale ACP classification [AI-assisted]. Related #38907. Thanks @eldar702 and @vincentkoc and @ninaopenclaw.
  • PR #93398 fix(cron): emit isolated model usage diagnostics. Related #92338. Thanks @849261680 and @vincentkoc and @niks999.
  • PR #93367 Fix SSH sandbox remote directory args. Related #93344. Thanks @dmorn and @vincentkoc.
  • PR #93574 fix(feishu): suppress log noise for botp2pchatenteredv1 event [AI-assisted]. Related #42351. Thanks @eldar702 and @vincentkoc and @sunking0223.
  • PR #93269 Fix tokenjuice bash results without details. Thanks @moeedahmed and @vincentkoc.
  • PR #93575 fix(telegram): hydrate group reply-chain media into model context [AI-assisted]. Thanks @eldar702 and @vincentkoc.
  • PR #93261 fix(plugins): resolve provider policy surface for plugin-owned CLI backends. Related #93259. Thanks @BitmapAsset and @vincentkoc.
  • PR #93303 fix(whatsapp): bound stalled read-receipt socket operations. Thanks @Alix-007 and @vincentkoc.
  • PR #93242 fix(mattermost): keep bare @mention with empty body instead of dropping it. Related #93205. Thanks @iloveleon19 and @vincentkoc.
  • PR #93606 fix(ui): clear stale Talk error when session transitions to non-error state (fixes #88176). Thanks @liuhao1024 and @vincentkoc and @BrianClaw1955.
  • PR #93607 perf(tasks): memoize reconcileInspectableTasks for same-tick calls (fixes #73531). Thanks @liuhao1024 and @vincentkoc and @slideshow-dingo.
  • PR #93612 fix(gateway): compute sessions.usage aggregate totals from all sessions, not just the limited page (fixes #76496). Thanks @liuhao1024 and @vincentkoc and @bobsahur-robot.
  • PR #93615 fix(telegram): recover lone active spooled handler on timeout (#84158). Thanks @0xghost42 and @vincentkoc and @crash2kx.
  • PR #93616 Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc.
  • PR #93298 fix #93044: control-ui webchat double-renders agent replies when dmScope=main. Thanks @zhangguiping-xydt and @vincentkoc and @cfmilam.
  • PR #93618 fix(feishu): filter temporary card-action-c-\* IDs from reply target to prevent Invalid openmessageid errors (fixes #56818). Thanks @liuhao1024 and @vincentkoc and @SwordImmortal.
  • PR #93387 feat(ios): add watch action surface. Thanks @Solvely-Colin and @joshavant.
  • PR #93648 fix(doctor): archive superseded plugin install index conflicts. Related #90418. Thanks @vincentkoc and @ramitrkar-hash.
  • PR #93649 fix(qwen): place DashScope image prompts in user content. Related #92688. Thanks @vincentkoc and @Yachiyo404.
  • PR #93650 fix(update): avoid per-Node npm prefixes during self-update. Related #80387. Thanks @vincentkoc and @yaanfpv.
  • PR #93653 fix(skill-workshop): skip helper sessions during auto-capture. Thanks @vincentkoc and @zhangguiping-xydt.
  • PR #93654 fix(codex): expose remote node exec as a Codex dynamic tool. Related #92141. Thanks @vincentkoc and @JPKay-AI.
  • PR #93662 fix(discord): protect mention aliases in code fences. Thanks @vincentkoc and @rohitjavvadi.
  • PR #93663 fix(clawdock): open dashboard on published port without starting deps. Related #77344. Thanks @vincentkoc and @dhoman.
  • PR #93670 fix(browser): recover stale managed Chrome CDP listener. Related #41750. Thanks @vincentkoc and @rohitjavvadi and @kissman911.
  • PR #93672 fix(commands): preserve multiline slash skill args. Related #79155. Thanks @vincentkoc and @web3blind.
  • PR #93674 fix(browser): accept top-level act fields with nested requests. Related #38762. Thanks @vincentkoc and @angelusbr and @Lumos-789.
  • PR #93678 fix(plugins): allow Dreaming sidecar through restrictive memory allowlists. Related #92536. Thanks @vincentkoc and @pradeep7127 and @resYuto.
  • PR #93306 fix(status): ignore stale context after model switch. Thanks @hxy91819.
  • PR #93666 fix(control-ui): copy code blocks over plain HTTP via clipboard fallback. Related #93628. Thanks @Pick-cat and @pjq2926.
  • PR #93629 fix(reply): preserve unsent text-only finals after block pipeline streamed partial content (fixes #81078). Thanks @liuhao1024 and @Jackten.
  • PR #93690 fix(telegram): dispatch MEDIA directives as attachments. Related #77702. Thanks @vincentkoc and @butttersbot.
  • PR #93693 fix(gateway): ignore stale sudo scope for root user services. Related #81410. Thanks @vincentkoc and @Ericksza.
  • PR #93646 fix(agents): return string assistant content in getLastAssistantText. Thanks @Alix-007 and @vincentkoc.
  • PR #93687 fix(i18n): retain Codex error tails in logs. Thanks @hxy91819.
  • PR #93630 fix(heartbeat): bootstrap plugin session targets. Thanks @ZengWen-DT and @vincentkoc.
  • PR #93658 fix(wizard): preserve existing default model during setup auth choice [AI-assisted]. Related #64129. Thanks @ml12580 and @vegapunk9527.
  • PR #93671 fix(respawn): rewrite pnpm versioned entry paths to stable wrapper (fixes #52313). Thanks @liuhao1024 and @vincentkoc and @RichardCao.
  • PR #93698 Fix Telegram rich progress detail updates. Thanks @obviyus.
  • PR #93656 fix(gateway): send approval route notices with write scope. Related #93563. Thanks @mushuiyu886 and @vincentkoc and @clawbot247-commits.
  • PR #93665 fix(gateway): surface codex app-server returned failures. Thanks @litang9 and @vincentkoc.
  • PR #93727 fix(context-engine): avoid turn-maintenance lane livelock. Related #77340. Thanks @vincentkoc and @baghvn and @Veda-openclaw.
  • PR #93681 fix(llm): handle string assistant content on the OpenAI-compatible completion path. Thanks @Alix-007.
  • PR #93722 chore(release): update appcast for 2026.6.8. Thanks @vincentkoc.
  • PR #93677 fix(google-meet): declare realtime provider secret inputs. Related #81891. Thanks @goutamadwant and @vincentkoc and @chachi-max.
  • PR #92947 fix(qqbot): deliver cron auto-TTS voice by trusting OpenClaw temp root. Related #92816. Thanks @ZengWen-DT and @Zeng-wen and @lewiswu1209.
  • PR #93679 fix(whatsapp): extract GIF metadata and distinguish gifPlayback in media placeholders (fixes #49099). Thanks @liuhao1024 and @vincentkoc and @bugkill3r.
  • PR #93688 fix(minimax): check base_resp envelope errors in TTS provider. Related #76904. Thanks @dwc1997 and @najef1979-code.
  • PR #93714 fix: isolate async model resolution mock from sync mock in flaky test. Related #92117. Thanks @lsr911 and @wangwllu.
  • PR #93705 test(macos): cover root command dispatch. Related #83879. Thanks @markoub and @vincentkoc and @davinci282828.
  • PR #93711 Keep command text in progress drafts. Thanks @keshavbotagent and @vincentkoc.
  • PR #93712 fix: scope assistant avatar override to agent ID. Related #90890. Thanks @lsr911 and @vincentkoc and @najef1979-code.
  • PR #93725 fix(usage): prune stale usage cache temp files. Related #78939. Thanks @markoub and @Tramsrepus.
  • PR #93726 fix(typing): start typing on reasoning deltas in thinking mode before visible text. Related #79681. Thanks @xialonglee and @novaflash82.
  • PR #93716 fix(discord): propagate timeout through channel capabilities diagnostics. Related #77040. Thanks @xialonglee and @vincentkoc and @unicebondoc.
  • PR #93729 fix(ollama): preserve configured API during discovery. Related #93710. Thanks @zhangguiping-xydt and @vincentkoc and @obnoxious2011-cmd.
  • PR #93719 fix: pin plugin workspace dir for sessions.list to avoid O(rows) memo busting. Related #90814. Thanks @lsr911 and @vincentkoc and @k-l-lambda.
  • PR #93732 fix(agents): preserve re-sent user prompt during compaction transcript rotation. Thanks @yetval.
  • PR #93738 fix: break plugin registry type import cycle. Thanks @giodl73-repo.
  • PR #93740 fix(sessions): release retained locks after takeover. Thanks @TurboTheTurtle.
  • PR #93745 fix(usage): reject invalid explicit dates in usage RPC date parsing. Thanks @harjothkhara and @vincentkoc.
  • PR #93746 fix(ui): populate realtime talk provider and transport options from talk.catalog. Thanks @shushushv and @vincentkoc.
  • PR #93751 fix(ios): fix quick setup sheet layout design. Thanks @zats.
  • PR #93749 fix(compaction): ignore stale persisted totalTokens in preflight gate. Thanks @yetval.
  • PR #93753 fix: correct tautological uppercase check in tool description summarizer. Thanks @GautamKumarOffical.
  • PR #89123 refactor: route transcript writers through session seam. Thanks @jalehman.
  • PR #93758 feat(memory): apply outputDimensionality truncation to local GGUF embeddings (fixes #58765). Thanks @liuhao1024 and @vincentkoc and @losz5000.
  • PR #93754 feat(inbound-meta): expose per-turn source modality. Related #50482. Thanks @liuhao1024 and @vincentkoc and @JTOrca.
  • PR #93767 fix(reasoning-tags): strip MiniMax mm: namespaced reasoning tags. Thanks @DrHack1 and @vincentkoc.
  • PR #93772 fix(feishu): recover CJK filenames from JSON file_name field (fixes #81103). Thanks @liuhao1024 and @vincentkoc and @pjuneye.
  • PR #93773 fix(ui): scope Skill Workshop proposals to selected agent. Related #93760. Thanks @TurboTheTurtle and @vincentkoc and @hannesrudolph.
  • PR #88750 feat(context-engine): pass runtime settings into lifecycle. Thanks @ragesaq and @jalehman.
  • PR #93763 fix(agents): use neutral billing copy for subscription auth. Related #80877. Thanks @eldar702 and @vincentkoc and @22kyasue.
  • PR #93818 List all ClawHub docs in sidebar. Thanks @Patrick-Erichsen.
  • PR #93779 fix(webchat): skip textarea resize during IME composition to eliminate typing lag. Related #90800. Thanks @joelnishanth and @vincentkoc and @w10497-create.
  • PR #93786 fix(plugins): treat refreshable catalogs as requiring runtime discovery (fixes #93775). Thanks @liuhao1024 and @St0rmz1.
  • PR #93791 fix(memory): await search-sync before returning results to prevent stale index (fixes #52115). Thanks @liuhao1024 and @vincentkoc and @FicheallADa.
  • PR #93780 fix(google): keep parallel Gemini tool responses in the turn after the model. Thanks @yetval and @vincentkoc.
  • PR #93789 fix(agents): make lane suspension consistent across cooldown-precheck and embedded-runner paths. Related #93036. Thanks @joelnishanth and @vincentkoc and @kumaxs.
  • PR #93798 fix(status): show 0 (not ?) for fresh-session context tokens. Related #93771. Thanks @Alix-007 and @vincentkoc and @anarchia-99.
  • PR #93810 fix(cron): preserve startup overflow catch-up deferrals in start() maintenance pass. Thanks @yetval.
  • PR #93811 Strip UTF-8 BOM when reading SKILL.md in quick_validate. Thanks @HrachShah.
  • PR #93803 fix(ui): preserve WebChat visible messages across session switches. Related #80855. Thanks @LiuwqGit and @vincentkoc and @viagarsuker.
  • PR #93792 fix(android): wait for node capability approval before onboarding. Thanks @Solvely-Colin and @vincentkoc.
  • PR #93796 fix(feishu): paginate wiki node and space listing (#37626). Thanks @ZengWen-DT and @vincentkoc and @ritou11.
  • PR #93797 fix(browser): use openTab return value to prevent wsUrl race in ensureTabAvailable (fixes #63343). Thanks @liuhao1024 and @vincentkoc and @OpenCodeEngineer.
  • PR #93806 fix(reasoning-tags): strip MiniMax mm: tags on silent-reply and streaming paths missed by #93767. Thanks @Alix-007 and @vincentkoc.
  • PR #93691 refactor: add gateway sessions.create lifecycle seam. Thanks @jalehman.
  • PR #88748 fix(gemini): bridge OAuth profiles into CLI runtime. Related #88742. Thanks @jason-allen-oneal.
  • PR #93857 fix(deps): remediate Dependabot alerts. Thanks @vincentkoc.
  • PR #93874 fix(slack): recognize MiniMax mm: namespaced reasoning tags in monitor preview. Thanks @Alix-007.
  • PR #93832 feat(providers): add ClawRouter managed proxy. Thanks @vincentkoc.
  • PR #93880 fix(macos): preserve approvals migration data. Thanks @vincentkoc.
  • PR #93903 fix(cron): reject invalid absolute timestamps. Thanks @Alix-007 and @vincentkoc.
  • PR #93879 fix(update): use configured npm registry for update metadata. Related #79140. Thanks @vincentkoc and @sixerLiu.
  • PR #93924 revert(providers): remove ClawRouter provider. Thanks @vincentkoc.
  • PR #93955 fix(telegram): surface rich-message disabled state. Thanks @obviyus.
  • PR #93881 fix(agents): route BTW through canonical Codex runtime. Related #88902. Thanks @vincentkoc and @TurboTheTurtle and @khalil-omer.
  • PR #90192 fix(feishu): fetch quoted content before empty-message guard. Related #90177. Thanks @bladin and @sliverp and @lkxlaz.
  • PR #93237 Fix Mattermost open DM validation. Thanks @amknight.
  • PR #93945 feat(diagnostics): add SIEM security events. Thanks @vincentkoc.
  • PR #87487 fix(cli): clarify mcp list registry scope. Related #65209. Thanks @Alix-007 and @slideshow-dingo.
  • PR #24661 feat(cohere): add provider plugin. Thanks @vincentkoc.
  • PR #93532 Expose verified ClawHub source in skill verify output. Thanks @momothemage.
  • PR #93538 feat(codex): support app-server network proxy profiles. Thanks @vincentkoc.
  • PR #93938 fix(telegram): guard UTF-16 surrogate pairs in outbound chunkers. Related #93921. Thanks @Nas01010101 and @vincentkoc.
  • PR #94104 feat(agents): trace compaction summarization model calls. Thanks @amknight.
  • PR #94108 Fix package Telegram temp root. Thanks @obviyus.
  • PR #94113 Fix Telegram package output mount. Thanks @obviyus.
  • PR #89062 feat(docker): support offline setup reruns. Related #70443. Thanks @Alix-007 and @safrano9999.
  • PR #93929 fix(secrets): explicitly pass BWSSERVERURL to resolver for self-hosted instances. Related #93851. Thanks @Pandah97 and @vincentkoc and @AdoShan.
  • PR #90057 Polish Workboard operations view. Thanks @fuller-stack-dev.
  • PR #89396 fix(doctor): drop inert legacy cron notify when cron.webhook is unset. Related #44460. Thanks @Alix-007.
  • PR #94138 fix(session): prevent stale finalizer from recreating deleted session rows. Related #40840. Thanks @xialonglee and @vincentkoc and @AL-knows.
  • PR #93739 refactor: add session patch projection seam. Thanks @jalehman.
  • PR #94178 fix(workspace): skip optional bootstrap files when workspace setup is already completed. Related #83593. Thanks @dwc1997 and @jsompis.
  • PR #93363 fix(feishu): enforce account tool family gates. Thanks @eleqtrizit.
  • PR #93813 fix(codex): keep message registered for internal turns. Related #93750. Thanks @jalehman and @hannesrudolph.
  • PR #93659 refactor: add session reset delete lifecycle seam. Thanks @jalehman.
  • PR #93852 ci(release): harden release controls. Thanks @vincentkoc.
  • PR #94203 feat(codex): support remote app-server plugins. Thanks @kevinslin.
  • PR #94263 chore: migrate claw-score skill. Thanks @RomneyDa and @kevinslin.
  • PR #93695 refactor: add compact trim lifecycle seam. Thanks @jalehman.
  • PR #93114 test: fold lifecycle and package proof into QA Lab. Thanks @RomneyDa.
  • PR #93181 test: fold otel smoke into qa e2e. Thanks @RomneyDa.
  • PR #93178 test: fold gateway smoke into qa e2e. Thanks @RomneyDa.
  • PR #94276 qa-lab: support script-backed evidence scenarios. Thanks @Solvely-Colin and @RomneyDa.
  • PR #94282 Support owner-qualified ClawHub skill installs. Thanks @Patrick-Erichsen.
  • PR #93704 refactor: add session cleanup lifecycle seam. Thanks @jalehman.
  • PR #94296 fix: require all taxonomy coverage ids for a feature - AND not OR. Thanks @RomneyDa.
  • PR #92016 fix(plugins): compose live hook registry view for tool-call hooks. Related #91918. Thanks @amknight and @vokaplok.
  • PR #89596 fix(policy): recognize declared tool allowlists. Thanks @giodl73-repo.
  • PR #93713 fix: route deleted-agent session purge through lifecycle seam. Thanks @jalehman.
  • PR #84172 fix(exec): rebuild command authorization on the Tree-sitter command planner. Thanks @jesse-merhi.
  • PR #94332 docs: add ClawHub namespace claims to sidebar. Thanks @Patrick-Erichsen.
  • PR #86360 fix(codex): honor bound agent exec host policy. Thanks @jesse-merhi.
  • PR #73162 fix(slack): remove socket reconnect attempt cap so gateway stays connected indefinitely. Related #72808. Thanks @suboss87 and @tleyden.
  • PR #94156 fix: expose OpenAI image quality and moderation CLI options. Thanks @lastguru-net and @fuller-stack-dev.
  • PR #94350 feat: externalize GMI provider plugin. Thanks @Patrick-Erichsen and @vincentkoc.
  • PR #94543 fix(gateway): bound config.get middleware results. Related #94265. Thanks @vincentkoc and @v-s-gusev.
  • PR #91409 fix(update): run plugin convergence after RPC git updates. Thanks @masatohoshino.
  • PR #94556 chore(extensions): bump tokenjuice to 0.8.1. Thanks @vincentkoc.
  • PR #94580 fix(ci): stabilize update run gates.
  • PR #94394 fix(infra): probe 127.0.0.1 in ensurePortAvailable to detect IPv4-only occupants. Related #94379. Thanks @Pandah97 and @wangwllu.
  • PR #94421 fix(agents): preserve active compaction retries. Related #94391. Thanks @dexiosmb.
  • PR #94428 fix(feishu): preserve replies before error finals. Related #94360. Thanks @xunx33.
  • PR #93735 refactor: add restart recovery lifecycle seam. Thanks @jalehman.
  • PR #94591 docs(release): backfill complete contribution records. Thanks @vincentkoc.
  • PR #94588 fix(cron): retry isolated setup timeouts. Thanks @aaroneden.
  • PR #94082 fix(cron): prevent lane timeout during long tool execution. Related #94033. Thanks @ajwan8998 and @JingWang-Star996.
  • PR #94551 feat(firecrawl): add keyless scrape support. Thanks @vincentkoc and @developersdigest.
  • PR #94619 test(ci): stabilize timeout-sensitive shards. Thanks @vincentkoc.
  • PR #94048 fix(telegram): set richMessages default to false explicitly in schema. Related #93770, #93794. Thanks @Monkey-wusky and @obviyus and @Nardoa375 and @laurenceputra.
  • PR #94118 [codex] Fix Telegram rich local Markdown link hrefs. Related #94117. Thanks @dankarization and @obviyus.
  • PR #94646 refactor(sqlite): land database-first memory and proxy alignment. Thanks @vincentkoc.
  • PR #94658 test(sqlite): use shared temp directory helper. Thanks @vincentkoc.
  • PR #92135 fix(openai-embedding): preserve openai/ prefix for non-native base URLs. Related #92124. Thanks @xialonglee and @Kambrian.
  • PR #93737 refactor: add session maintenance transaction seam. Thanks @jalehman.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.9-beta.1
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.9-beta.1.tgz
  • integrity: sha512-V50OMp+liBbw/soP1SxhZ04yXUGy3VsfVccI5I1oQCfdBGHNoTLtbvuQ44oaOY/C/CdTcmFvMDt2IzWmB9jQRw==
  • release SHA: 687234af56e1f7c2b4037faa9ab2041b159dccf1
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.9-beta.1/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27805906361
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27799737148
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27801668529
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27806014895
  • plugin ClawHub publish recovery: https://github.com/openclaw/openclaw/actions/runs/27806975206, https://github.com/openclaw/openclaw/actions/runs/27807226080, https://github.com/openclaw/openclaw/actions/runs/27807501599, https://github.com/openclaw/openclaw/actions/runs/27807783949
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27806117514
  • npm Telegram beta E2E: not supplied
v2026.6.8 [Jun 16, 2026] details → github →

# openclaw 2026.6.8

2026.6.8

Highlights

  • Richer channel delivery: Telegram and WhatsApp are less brittle: Telegram renders structured text with tables, lists, expandable blockquotes, preserved intentional line breaks, and CLI-backed replies, while WhatsApp now honors configured ACP bindings. (#92679, #93164, #84082, #89421, #92513) Thanks @obviyus, @vincentkoc, @jzakirov, @spacegeologist, @TurboTheTurtle, @mcaxtr, @myrzka, and @dmorn.
  • More reliable agent runs: account-scoped DM sends, generated media completions, auto-reply message-tool final replies, reset archive fallback reads, restart shutdown aborts, yielded subagent pauses, and session identity prompts all stay on the correct recovery path. (#92788, #91246, #92879, #91357, #92631, #92468) Thanks @yetval, @TurboTheTurtle, @masatohoshino, @CadanHu, @vincentkoc, @ooiuuii, @openperf, @zhangguiping-xydt, @QQSHI13, @kumaxs, and @aleps001.
  • Safer model routing: new GLM-5.2 and Claude Haiku 4.5 catalog support arrives with normalized provider IDs, managed SecretRef auth, bounded model browsing, and safer OpenAI/Anthropic tool-schema recovery. (#92796, #90116, #92627, #90686, #92247, #92941) Thanks @arkyu2077, @liuhao1024, @lijenhsin, @rohitjavvadi, @samson910022, @maaron34, @syfvb, and @samson1357924.
  • Useful usage footers: /usage and reply payload hooks now have a native full footer renderer, default template, fixed-decimal formatting, credential-aware limits, better partial-count handling, and warnings for broken templates instead of silent bad output. (#92657, #89835, #89629) Thanks @Marvinthebored.
  • Predictable web search defaults: key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search remain explicit opt-ins rather than surprising automatic fallbacks. (#93616) Thanks @davemorin and @vincentkoc.
  • Calmer UI and mobile sessions: workspace files start collapsed, WebChat backscroll survives streaming, the desktop session picker remains interactive, reset arguments survive dispatch, and iOS reconnects stale foreground Gateways. (#92779, #92622, #92705, #91353, #92552) Thanks @shakkernerd, @TurboTheTurtle, @NianJiuZst, @zhouhe-xydt, @Solvely-Colin, @MaBeitian, @vincentkoc, @Chang2020618, and @DrtyMorty.
  • Resilient memory and state: oversized OpenAI embedding batches split before 431s, QMD search stays available in transient mode, SQLite avoids WAL on NFS volumes, and full reindexes preserve rollback/cache recovery. (#92650, #92618, #92639, #91247, #92881) Thanks @mushuiyu886, @BrettHamlin, @zhbcher, @TurboTheTurtle, @Takhoffman, @849261680, @TSHOGX, @vincentkoc, and @AFabyTWE.

Changes

  • Providers/models: add GLM-5.2 support and Claude Haiku 4.5 catalog entries while keeping provider-qualified model IDs normalized across OpenRouter and Google Vertex paths. (#92796, #90116, #92627, #91218) Thanks @arkyu2077, @liuhao1024, @bymle, @maaron34, @lijenhsin, @davemorin, and @vincentkoc.
  • Web search: keep key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search as explicit opt-ins instead of selecting them automatically when no API-backed provider is configured. (#93616) Thanks @davemorin and @vincentkoc.
  • Channel plugins: ship Telegram rich-message delivery and WhatsApp ACP binding support, including preserved intentional line breaks, rich prompt handoff to CLI backends, and transport fixtures for richer drafts. (#92679, #93164, #92513) Thanks @obviyus, @TurboTheTurtle, @vincentkoc, @mcaxtr, and @dmorn.
  • Agent commands: support /btw in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162) Thanks @joshavant, @Pandah97, @marcospaulo, @davemorin, and @vincentkoc.
  • Usage hooks: add built-in full footer rendering, default footer templates, per-turn usage state, credential-aware limits, and fixed-decimal formatting for usage-bar templates. (#92657, #89835, #89629) Thanks @Marvinthebored.

Fixes

  • Channels and delivery: preserve account-scoped DM channel send policy, intentional rich-message line breaks in Telegram and status output, rich Telegram final replies, rich Telegram tables and lists, Telegram thread-create CLI remapping, Feishu dynamic-agent routes after persisted binding reuse, Slack outbound message_sent hooks, contributed message-tool schema optionality, same-channel generated media completions, and channel chunking around surrogate pairs and Infinity limits. (#92788, #93164, #92679, #89421, #89943, #42837, #92814, #91137, #91246, #92735) Thanks @yetval, @obviyus, @spacegeologist, @rishitamrakar, @liuhao1024, @lundog, @TurboTheTurtle, @yhterrance, @vincentkoc, @myrzka, @cwlong163-afk, @kumaxs, @shakkernerd, and @RewardsPal.
  • Gemini CLI: use the selected OpenClaw OAuth/API-key auth profile in an isolated Gemini CLI runtime home, preventing ambient Google machine credentials from overriding the chosen profile. (#88748) Thanks @jason-allen-oneal and @shakkernerd.
  • Discord: give generated auto-thread titles a 60-second timeout and 4,096-token reasoning-model output budget, clamped to the selected model output cap. (#64734) Thanks @hanamizuki.
  • Agent, cron, and Gateway runtime: mark active main sessions before restart shutdown aborts, pause yielded subagent runs whose terminal also signals abort, clamp trusted subagent thinking overrides through provider/model fallback, preserve yielded media completions, deliver channel message-tool final replies through auto-reply while hiding internal delivery hints, restore reset archive fallback reads when active async transcripts are missing, de-duplicate main-session heartbeat events, expose session identity in runtime prompts, reject unknown OpenAI agent selectors, keep generated media completions, slash-command block replies, and trajectory export commands in WebChat, and require admin privileges for HTTP session/model override surfaces. (#91357, #92631, #92412, #92146, #92879, #91287, #92468, #92510, #91246, #92651, #92646) Thanks @ooiuuii, @openperf, @IWhatsskill, @masatohoshino, @CadanHu, @ZengWen-DT, @zhangguiping-xydt, @TurboTheTurtle, @oiGaDio, @aleps001, @vincentkoc, @GSL-R, @QQSHI13, @ryanhelms, @kumaxs, @steipete-oai, @hxy91819, @davemorin, and @nailujac.
  • Providers and model replay: preserve storeless OpenAI Responses replay compatibility, recover invalid OpenAI reasoning signatures and genericized Anthropic thinking-signature replay errors, route OAuth image defaults through Codex for eligible OpenAI profiles, avoid eager tool streaming for Claude 4.5 in Copilot, quarantine unreadable and post-hook OpenAI/Anthropic-family tool schemas without broadening allowed tool choices, deliver explicit thinking-off requests to LM Studio binary-thinking models, honor profile auth for SecretRef model entries, bound model browsing, strip provider prefixes where runtimes need bare IDs, and surface nested embedding fetch failures. (#90706, #92941, #92201, #92916, #92824, #75393, #92908, #92921, #92928, #92002, #90686, #92247, #92627, #91218, #92628) Thanks @snowzlm, @mmyzwl, @CarlCapital, @bek91, @Kailigithub, @vincentkoc, @rohitjavvadi, @samson910022, @nxmxbbd, @liuhao1024, @bymle, @mushuiyu886, @finchinslc, @syfvb, @lijenhsin, @crsnpalmer-art, @samson1357924, @shakkernerd, and @mlaihk.
  • Memory, state, diagnostics, and config: split header-too-large embedding batches, keep QMD memory search enabled in transient mode, avoid SQLite WAL on NFS volumes, preserve recovery scheduling outside stuck-session warning backoff, preserve full-reindex rollback/cache recovery, and treat raw Memory Wiki source pages as source evidence. (#92650, #92618, #92639, #91247, #92752, #92881, #59137, #92876) Thanks @mushuiyu886, @TurboTheTurtle, @849261680, @gnanam1990, @TSHOGX, @vincentkoc, @arlen8411, @BrettHamlin, @zhbcher, @Takhoffman, @AFabyTWE, @davemorin, and @zhuyankarl.
  • UI/mobile/TUI: preserve dashboard session parent lineage, WebChat backscroll, reset soft command args, sidebar session picker interactivity, collapsed workspace files, resolved /model confirmation refs, stale foreground iOS Gateway reconnects, and paused setup-parent stdin after inherited-stdio child exit. (#90658, #92622, #91353, #92705, #92779, #92773, #92552, #93159) Thanks @luoyanglang, @TurboTheTurtle, @zhouhe-xydt, @NianJiuZst, @shakkernerd, @NarahariRaghava, @Solvely-Colin, @fuller-stack-dev, @lily-oc, @MaBeitian, @vincentkoc, @obviyus, @DrtyMorty, and @Chang2020618.
  • Plugins and updates: repair missing required platform packages during managed plugin installs and updates, including omitted Codex platform binaries. Thanks @vincentkoc.
  • Dependencies: update Hono to 4.12.25 so published OpenClaw and ACPX packages use the patched runtime. Thanks @vincentkoc.
  • Updates: avoid a false downgrade prompt when the latest tag cannot resolve. (#92911) Thanks @Andy312432 and @vincentkoc.

Complete contribution record

This audited record covers the complete v2026.6.6..v2026.6.8 history: 192 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #92144 fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766. Thanks @liuhao1024 and @AaronFaby.
  • PR #92175 fix(channel): harden local setup trust. Thanks @hxy91819.
  • PR #91528 fix #73837: stop after failed Node package installs. Thanks @mushuiyu886 and @ItsMeForLua.
  • PR #91561 fix(wizard): report keyless web_search providers as ready, not missing a key. Thanks @NormallyGaussian.
  • PR #92073 fix: handle explicit silent assistant replies. Related #92038. Thanks @sallyom and @vultusv.
  • PR #91311 Allow Skill Workshop apply through trusted skill symlinks. Thanks @abnershang.
  • PR #88245 refactor(whatsapp): introduce inbound message contexts. Thanks @mcaxtr.
  • PR #92212 refactor: move workspace skill writes to lifecycle. Thanks @shakkernerd.
  • PR #92248 Remove ClawHub owner preflight. Thanks @Patrick-Erichsen.
  • PR #91617 test(sqlite): add state perf query plan harness. Related #91616. Thanks @galiniliev.
  • PR #91626 fix(daemon): keep status readable on unsupported services. Related #25621. Thanks @mushuiyu886 and @kucharskim.
  • PR #92295 fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291. Thanks @liuhao1024 and @dcapclaw.
  • PR #92087 fix(docker): bundle QA Lab runtime in the image. Thanks @jesse-merhi.
  • PR #92004 fix(telegram): classify streaming preview edit failures instead of killing the draft. Thanks @obviyus.
  • PR #91997 fix(telegram): survive getUpdates conflicts in isolated polling ingress. Thanks @obviyus.
  • PR #92387 fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982. Thanks @openperf and @Takhoffman and @danieljimz.
  • PR #92229 Fix doctor preview channel SecretRef resolution. Related #91939. Thanks @joshavant and @Niriakot.
  • PR #92225 Fix disabled heartbeat one-shot cron retries. Related #91775. Thanks @joshavant and @A1fred-AI.
  • PR #92265 Fix configured DeepSeek model transport inheritance. Related #92148. Thanks @joshavant and @marcoraepple-sys.
  • PR #92226 Fail closed for CLI-backed /btw fallback. Related #92168. Thanks @joshavant and @wangwllu.
  • PR #92231 Fix suppressed heartbeat commitment delivery. Related #91948. Thanks @joshavant and @bizzle12368239.
  • PR #92280 fix(agents): classify structured unsupported model errors. Related #92118. Thanks @joshavant and @pikaqqqqqq.
  • PR #92276 Fix OTLP log trace correlation. Related #91865. Thanks @joshavant and @sinzin91.
  • PR #92282 fix(update): hand off Linux service auto-updates. Related #91823. Thanks @joshavant and @hanyizuo.
  • PR #92235 fix: resolve managed SecretRef provider auth. Related #92097. Thanks @joshavant and @LINSUISHENG034.
  • PR #92293 Fix provider static model fallback resolution. Related #92009. Thanks @joshavant and @mattsfraser.
  • PR #92343 fix(agent): continue after source message tool replies. Related #92169. Thanks @joshavant and @elyalvarado.
  • PR #92350 fix(codex): preserve memory prompt registration. Thanks @rubencu and @sallyom.
  • PR #92290 fix: clarify gateway SecretRef auth diagnostics. Related #91815. Thanks @joshavant and @mattsfraser.
  • PR #92286 fix: repair rejected Anthropic thinking replay. Related #91983. Thanks @joshavant and @reginaldomarcilon.
  • PR #92281 Fix Telegram spooled buffered replay. Related #92129. Thanks @joshavant and @riseandshinefutures.
  • PR #47493 fix(doctor): show per-step progress spinners during update. Thanks @amersheeny.
  • PR #92416 fix(outbound): honor top-level image param as send media source (#92407). Thanks @xydigit-sj and @ichirokyoto.
  • PR #92508 fix(sandbox): render CLI skill prompts from materialized paths. Thanks @brokemac79.
  • PR #92540 chore: fix esbuild production audit failure. Thanks @RomneyDa.
  • PR #91484 Add QA evidence artifact output. Thanks @RomneyDa.
  • PR #91500 Add QA scorecard taxonomy validation. Thanks @RomneyDa.
  • PR #84082 fix(telegram): allow expandable blockquotes. Thanks @jzakirov.
  • PR #92554 feat(moonshot): add Kimi K2.7 Code support.
  • PR #92396 fix(moonshot): backfill reasoning_content on assistant tool-call replay messages. Related #71491. Thanks @xialonglee and @RoseKongPS.
  • PR #92566 Fix lifecycle timeout cleanup after leader exit. Thanks @RomneyDa.
  • PR #92311 ci: split plugin ClawHub publishing paths. Thanks @Patrick-Erichsen.
  • PR #92216 fix(gateway): mirror hidden commentary-phase assistant events. Thanks @ragesaq.
  • PR #87596 fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593. Thanks @Pluviobyte and @Faaab84.
  • PR #88993 Expose paged channel action results. Thanks @fuller-stack-dev.
  • PR #90326 fix(fireworks): resolve catalog model params from plugin.json via core. Thanks @obuchowski.
  • PR #86629 fix(doctor): warn for untrusted external Discord plugin. Related #83212. Thanks @brokemac79 and @ooiuuii and @cdeyoung67.
  • PR #90242 fix(providers): skip unreadable Mistral tool schemas. Thanks @vincentkoc.
  • PR #92498 fix(reply): mirror same-channel Slack final replies. Related #92489. Thanks @TurboTheTurtle and @TalkingHeadsJed.
  • PR #92083 fix(channels): default boundary logger for swallowed progress-draft start errors. Thanks @hansraj316.
  • PR #92564 fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553. Thanks @tangtaizong666 and @fxstein.
  • PR #89827 docs: UX-013 — design system documentation. Thanks @BunsDev.
  • PR #89615 feat(ui): hide empty workboard columns. Thanks @BunsDev.
  • PR #89822 fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes. Thanks @BunsDev.
  • PR #92618 fix #92218: memory_search tool disabled with QMD backend. Thanks @mushuiyu886 and @zhbcher.
  • PR #92608 docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768). Thanks @liuhao1024 and @faahim.
  • PR #92605 fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470. Thanks @lzyyzznl and @arjkul.
  • PR #92593 #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters. Thanks @zhangqueping and @jovi2014-cyber.
  • PR #92606 Run Vitest and Playwright scenarios from qa suite. Thanks @RomneyDa.
  • PR #89629 feat(hooks): per-turn usageState on replypayloadsending. Thanks @Marvinthebored.
  • PR #89835 feat(usage): native templated /usage full footer renderer. Thanks @Marvinthebored.
  • PR #92247 fix(models): bound /models and models list catalog loading. Related #91809. Thanks @samson910022 and @samson1357924 and @syfvb.
  • PR #92646 fix: require admin for HTTP model overrides. Thanks @steipete-oai.
  • PR #90686 fix(gateway): honor profile auth for SecretRef model entries. Related #90685. Thanks @rohitjavvadi.
  • PR #92651 fix: require admin for HTTP session kills. Thanks @steipete-oai.
  • PR #92652 test(models): stabilize plugin auth marker fixtures.
  • PR #89438 fix(slack): warn when channels map is keyed by name instead of channel ID. Related #81665. Thanks @Alix-007 and @cjalden.
  • PR #92631 fix(agents): pause yielded subagent runs whose terminal also signals abort. Related #92448. Thanks @openperf and @vincentkoc and @aleps001.
  • PR #92622 fix(ui): preserve WebChat backscroll during streaming. Related #92386. Thanks @TurboTheTurtle and @vincentkoc and @DrtyMorty.
  • PR #92627 fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611). Thanks @liuhao1024 and @lijenhsin.
  • PR #92146 fix(cron): preserve yielded media completions. Related #92120. Thanks @IWhatsskill and @nailujac.
  • PR #90116 fix: add Claude Haiku 4.5 static catalog entries. Related #90088. Thanks @arkyu2077 and @maaron34.
  • PR #91137 fix(channels): keep contributed message-tool schema properties optional. Related #67852. Thanks @lundog and @RewardsPal.
  • PR #75393 fix(copilot): disable eager tool streaming for Claude 4.5. Related #75348. Thanks @Kailigithub and @finchinslc.
  • PR #92628 fix #73713: surface nested embedding fetch failures. Thanks @mushuiyu886 and @crsnpalmer-art.
  • PR #92510 fix(gateway): reject unknown OpenAI agent selectors. Related #92504. Thanks @zhangguiping-xydt and @ryanhelms.
  • PR #91453 fix #91420: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none. Thanks @zhangguiping-xydt and @CarotaWealth.
  • PR #92468 fix #92453: add session identity to runtime prompt. Thanks @zhangguiping-xydt and @QQSHI13.
  • PR #89943 fix(slack): emit message_sent hook on outbound delivery (mirror Telegram). Related #89942. Thanks @rishitamrakar.
  • PR #92668 fix(docs): finalize i18n postprocess before skip. Thanks @hxy91819.
  • PR #92673 fix: split image setup and request timeout semantics. Thanks @hxy91819.
  • PR #92162 #92069: fix(cli): usage errors exit 0. Thanks @Pandah97 and @marcospaulo.
  • PR #91185 fix(browser): remove dead requireRef import and void expression in register.navigation.ts. Related #83878. Thanks @whiteyzy and @davinci282828.
  • PR #90706 fix(OpenAI Responses): disable item id replay for storeless providers. Related #89728. Thanks @snowzlm.
  • PR #90247 fix(disk-space): promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245. Thanks @jbetala7.
  • PR #92657 feat(usage): ship built-in /usage full footer. Thanks @Marvinthebored.
  • PR #90464 perf(terminal): reuse ANSI scanner during truncation. Thanks @yyzquwu.
  • PR #91281 fix(feishu): clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911. Thanks @whiteyzy and @davinci282828.
  • PR #92639 fix(memory): keep memory_search in transient qmd mode. Related #92464. Thanks @TurboTheTurtle and @Takhoffman and @BrettHamlin.
  • PR #91287 fix(cron): de-duplicate main-session systemEvent in heartbeat model input. Related #44922. Thanks @ZengWen-DT and @GSL-R.
  • PR #91246 Fix webchat media completion handoff. Related #91003. Thanks @TurboTheTurtle and @kumaxs.
  • PR #91353 fix(ui): preserve /reset soft args in Control UI dispatch. Related #91316. Thanks @zhouhe-xydt and @MaBeitian.
  • PR #92679 feat(telegram): send rich message text. Thanks @obviyus.
  • PR #92705 fix(ui): restore sidebar session picker interactivity above desktop workbench. Related #92707. Thanks @NianJiuZst and @vincentkoc.
  • PR #91218 fix(google): strip provider prefix from Vertex model path. Thanks @bymle.
  • PR #92669 feat: support /btw in CLI-backed sessions. Thanks @joshavant.
  • PR #91357 fix(gateway): mark active main sessions before restart shutdown aborts. Related #91355. Thanks @ooiuuii.
  • PR #91066 fix(parallel): send openclaw-parallel User-Agent on free Search MCP requests. Thanks @NormallyGaussian.
  • PR #90658 fix(ui): preserve dashboard session parent lineage when session list is stale. Related #90623. Thanks @luoyanglang and @lily-oc.
  • PR #92552 fix(ios): force stale foreground gateway reconnects. Thanks @Solvely-Colin.
  • PR #89421 fix(telegram): expose thread create CLI remap. Related #81581. Thanks @spacegeologist and @myrzka.
  • PR #92779 fix: start workspace files collapsed. Related #90359. Thanks @shakkernerd and @Chang2020618.
  • PR #91247 fix(state): avoid sqlite wal on nfs state volumes. Related #90491. Thanks @849261680 and @AFabyTWE.
  • PR #92773 fix(tui): show resolved canonical model ref in /model confirmation. Thanks @NarahariRaghava.
  • PR #92752 fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff. Related #92742. Thanks @gnanam1990 and @Takhoffman and @zhuyankarl.
  • PR #92735 fix(markdown-core): treat Infinity chunk limit as unbounded, not 1. Related #92734. Thanks @yhterrance.
  • PR #92695 docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted). Thanks @ArielSmoliar.
  • PR #92766 clarify before_install hook scope. Related #91593. Thanks @sallyom and @Trump-last.
  • PR #92677 docs(nodes): add openclaw.json config example to Nodes overview. Related #92662. Thanks @liuhao1024 and @Casper-Mars.
  • PR #92513 Honor WhatsApp configured ACP bindings. Related #92449. Thanks @TurboTheTurtle and @mcaxtr and @dmorn.
  • PR #92650 fix #92465: split OpenAI 431 embedding batches. Thanks @mushuiyu886 and @BrettHamlin.
  • PR #92796 feat(providers): add GLM-5.2 support.
  • PR #92788 fix(sessions): derive channel from account-scoped DM session keys in send-policy. Thanks @yetval.
  • PR #92590 Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551. Thanks @lzyyzznl and @fxstein.
  • PR #92393 chore(deps): bump the swift-deps group across 1 directory with 3 updates.
  • PR #92476 fix(agents): preserve compatible CLI session runtime pins. Thanks @yu-xin-c.
  • PR #92483 fix(matrix): validate CLI numeric option ranges. Related #92482. Thanks @rohitjavvadi.
  • PR #92490 fix(canvas): validate CLI numeric options. Related #92487. Thanks @rohitjavvadi.
  • PR #92802 fix(ui): reflow composer beside workspace rail. Thanks @Solvely-Colin and @shakkernerd.
  • PR #91059 fix(configure): mask gateway token input in CLI wizard prompt. Thanks @anurag-bg-neu.
  • PR #91143 fix(ports): only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142. Thanks @jbetala7.
  • PR #91110 fix(tavily): keep web_search contract executable. Related #91096. Thanks @extrasmall0 and @xucongyuan98-sys.
  • PR #91181 fix(daemon): strip schtasks backslash prefix when matching gateway task name. Related #90494. Thanks @425072024 and @Darnellicious.
  • PR #91187 fix(cron): isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991. Thanks @openperf and @cx306806112.
  • PR #92807 fix(heartbeat): route outbound mirror to isolated session key. Thanks @agent-merkava.
  • PR #92745 fix(memory): explain skipped short-term recall hits. Related #92706. Thanks @mushuiyu886 and @armarinho.
  • PR #92488 fix(gateway): forward image-only input on /v1/responses (parity with chat completions). Thanks @s554097550 and @cursoragent.
  • PR #92604 fix(status): avoid cumulative usage for context percent. Related #83526. Thanks @ashishpatel26 and @darconadalabarga.
  • PR #92810 fix: reject unvalidated voice media streams. Thanks @steipete-oai.
  • PR #92800 fix(telegram): answer callback queries before sequentialize delays them. Related #42156. Thanks @liuhao1024 and @Diaspar4u.
  • PR #92547 fix(nodes): surface pending reapproval diagnostics. Thanks @fuller-stack-dev.
  • PR #92690 fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes #92683). Thanks @liuhao1024 and @motteman.
  • PR #92806 fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671). Thanks @liuhao1024 and @vincentkoc and @leandroirani933-ctrl.
  • PR #92778 fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480). Thanks @liuhao1024 and @vincentkoc and @gdiab.
  • PR #92795 fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009). Thanks @liuhao1024 and @vincentkoc and @ltxy12138-ai.
  • PR #92746 fix(gateway): preserve active runs during plugin finalization. Thanks @scotthuang and @vincentkoc.
  • PR #92820 UI: localize Logs tab labels. Thanks @rubensfox20.
  • PR #92825 fix(telegram): preserve command callbacks while prefixing generic callback data. Related #54909. Thanks @hnshah and @timt80.
  • PR #90889 fix: cap session context overrides by model window. Related #39857. Thanks @xdanger.
  • PR #92830 fix(copilot): strip replayed thinking blocks. Related #81520. Thanks @giodl73-repo and @warcold.
  • PR #92834 feat(browser): extend --labels overlay to full-page and element captures. Thanks @hxy91819 and @FMLS and @cursoragent.
  • PR #92836 fix(discord): raise thread title timeout and tokens to fit reasoning models. Thanks @hanamizuki.
  • PR #92095 fix #92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink. Thanks @zhangguiping-xydt and @dinorastoder.
  • PR #92801 fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564). Thanks @liuhao1024 and @brokemac79.
  • PR #89736 fix(status): render sub-1000 token counts as plain integers. Related #89735. Thanks @jbetala7 and @vincentkoc.
  • PR #92792 fix(agents): catch malformed image blocks in sanitizeContentBlocksImages. Thanks @LowCode191 and @vincentkoc.
  • PR #92555 ci: gate stable releases on Windows companion assets. Thanks @fuller-stack-dev.
  • PR #91824 fix(agents): add usage guidance to sessions_spawn tool description (fixes #91814). Thanks @zenglingbiao and @vincentkoc and @cattails-lgao.
  • PR #92840 fix(feishu): await HTTP server shutdown during monitor cleanup. Related #48183. Thanks @alex-xuweilong and @ai-nurmamat.
  • PR #91632 feat: add tool search directory mode. Thanks @fuller-stack-dev.
  • PR #92823 fix(qqbot): surface failed media sends. Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #92849 fix(tailscale): preserve parse errors for malformed JSON. Thanks @franciscomaestre.
  • PR #92045 Fix diagnostics OTEL runtime install trust. Thanks @efpiva.
  • PR #92853 fix(acp): accept MCP date protocolVersion in ACP server. Related #56102. Thanks @bugkill3r and @moliveto.
  • PR #92854 fix(hooks): reject slug-generator error payloads. Thanks @Cypherm.
  • PR #92855 fix(ui): repair iOS Safari chat viewport handling. Thanks @macdao.
  • PR #91586 fix(update): continue after package doctor warnings. Thanks @fuller-stack-dev.
  • PR #92862 fix(feishu): target typing reaction on inbound message. Thanks @huiwen01.
  • PR #92861 fix(lobster): surface workflow path errors. Related #68101. Thanks @vvitovec and @MPC7500.
  • PR #69975 fix(cli): clarify --tz help text for offset-less --at values. Related #59456. Thanks @rrrrrredy.
  • PR #90682 fix(openai): preserve opaque reasoning transcript fields. Related #90093. Thanks @toruvieI and @richardmqq.
  • PR #92373 fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes #92360). Thanks @liuhao1024 and @notnaji.
  • PR #87346 fix(anthropic): merge consecutive assistant turns in turn validation. Related #87329. Thanks @Jefsky and @travellingsoldier85.
  • PR #92896 fix(anthropic): quarantine invalid direct tool schemas. Thanks @vincentkoc.
  • PR #90739 fix(active-memory): preserve verbose recall summaries. Related #90454. Thanks @brokemac79 and @nocode-ananas.
  • PR #92558 Simplify QA scorecard mapping shape. Thanks @RomneyDa.
  • PR #92876 fix(memory-wiki): stop flagging raw source pages as malformed. Thanks @vincentkoc.
  • PR #92908 fix(providers): quarantine unreadable Anthropic payload tools. Thanks @vincentkoc.
  • PR #92881 fix(memory): preserve reindex rollback recovery. Thanks @TSHOGX and @vincentkoc.
  • PR #92921 fix(openai): quarantine unreadable tool schemas. Thanks @vincentkoc.
  • PR #92550 Fold Telegram RTT sampling into live QA evidence. Thanks @RomneyDa.
  • PR #92824 fix(media): route OAuth image defaults through Codex. Related #87168. Thanks @bek91.
  • PR #92928 fix(openai): guard post-hook tool payloads. Thanks @vincentkoc.
  • PR #92814 fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837). Thanks @liuhao1024 and @vincentkoc and @cwlong163-afk.
  • PR #89055 fix: restart gateway after isolated cron setup timeout. Thanks @ghitafilali.
  • PR #90574 fix(openai): omit gpt-5.5 tool reasoning effort. Thanks @BSG2000.
  • PR #92941 fix(openai): recover invalid reasoning signatures.
  • PR #92914 fix(agents): clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412. Thanks @openperf and @oiGaDio.
  • PR #92573 fix: preserve config-selected subagent model overrides. Related #92486. Thanks @arkyu2077 and @PatrickTrent.
  • PR #92852 fix(gateway): fall back to polling when config watcher exhausts inotify retries. Related #92851. Thanks @danbao.
  • PR #92362 fix(gateway): build row metadata context for single session lists. Thanks @anyech.
  • PR #92897 fix(memory-wiki): tolerate public artifacts without agent ids. Related #92207. Thanks @yu-xin-c and @qq230849622-a11y.
  • PR #92002 fix(lmstudio): deliver thinking "off" to binary-thinking models. Related #91913. Thanks @nxmxbbd and @mlaihk.
  • PR #92738 Forward suppressed-source progress for message-tool channel replies. Thanks @ragesaq.
  • PR #92916 #92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized. Thanks @mmyzwl and @CarlCapital.
  • PR #90936 fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon.
  • PR #93009 fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv.
  • PR #92318 fix(cron): require explicit message target proof. Thanks @hxy91819.
  • PR #93022 fix(gateway): repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49.
  • PR #93159 fix(tui): keep parent stdin paused after exit. Thanks @fuller-stack-dev.
  • PR #93616 Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc.
  • PR #93164 fix(telegram): preserve rich markdown line breaks. Thanks @vincentkoc.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.8
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.8.tgz
  • integrity: sha512-iziR8fi69+ojrtX7FYYvTpkGcVnmyLpIhvchgt5LFkkdHVWw973XAAekKVZ3/xQJ5FG4NwgHkXL0LLTrgsNOSQ==
  • release SHA: 844f405ac1be805d5c598922a37254f12ab6d765
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.8/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27631170936
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27627935264
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27627935341
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27631412538
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/27631418543
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27632229765
  • npm Telegram beta E2E: not supplied
  • Windows Hub promotion: https://github.com/openclaw/openclaw/actions/runs/27632639125 from openclaw/openclaw-windows-node@v0.6.3
  • macOS signed/notarized preflight: https://github.com/openclaw/releases/actions/runs/27632793120
  • macOS Swift validation: https://github.com/openclaw/releases/actions/runs/27632792831
  • macOS asset promotion: https://github.com/openclaw/releases/actions/runs/27635471007
  • stable appcast: https://github.com/openclaw/openclaw/pull/93722
v2026.6.8-beta.2 pre [Jun 16, 2026] details → github →

# openclaw 2026.6.8-beta.2

2026.6.8

Highlights

  • Richer channel delivery: Telegram and WhatsApp are less brittle: Telegram renders structured text with tables, lists, expandable blockquotes, preserved intentional line breaks, and CLI-backed replies, while WhatsApp now honors configured ACP bindings. (#92679, #93164, #84082, #89421, #92513) Thanks @obviyus, @vincentkoc, @jzakirov, @spacegeologist, @TurboTheTurtle, @mcaxtr, @myrzka, and @dmorn.
  • More reliable agent runs: account-scoped DM sends, generated media completions, auto-reply message-tool final replies, reset archive fallback reads, restart shutdown aborts, yielded subagent pauses, and session identity prompts all stay on the correct recovery path. (#92788, #91246, #92879, #91357, #92631, #92468) Thanks @yetval, @TurboTheTurtle, @masatohoshino, @CadanHu, @vincentkoc, @ooiuuii, @openperf, @zhangguiping-xydt, @QQSHI13, @kumaxs, and @aleps001.
  • Safer model routing: new GLM-5.2 and Claude Haiku 4.5 catalog support arrives with normalized provider IDs, managed SecretRef auth, bounded model browsing, and safer OpenAI/Anthropic tool-schema recovery. (#92796, #90116, #92627, #90686, #92247, #92941) Thanks @arkyu2077, @liuhao1024, @lijenhsin, @rohitjavvadi, @samson910022, @maaron34, @syfvb, and @samson1357924.
  • Useful usage footers: /usage and reply payload hooks now have a native full footer renderer, default template, fixed-decimal formatting, credential-aware limits, better partial-count handling, and warnings for broken templates instead of silent bad output. (#92657, #89835, #89629) Thanks @Marvinthebored.
  • Predictable web search defaults: key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search remain explicit opt-ins rather than surprising automatic fallbacks. (#93616) Thanks @davemorin and @vincentkoc.
  • Calmer UI and mobile sessions: workspace files start collapsed, WebChat backscroll survives streaming, the desktop session picker remains interactive, reset arguments survive dispatch, and iOS reconnects stale foreground Gateways. (#92779, #92622, #92705, #91353, #92552) Thanks @shakkernerd, @TurboTheTurtle, @NianJiuZst, @zhouhe-xydt, @Solvely-Colin, @MaBeitian, @vincentkoc, @Chang2020618, and @DrtyMorty.
  • Resilient memory and state: oversized OpenAI embedding batches split before 431s, QMD search stays available in transient mode, SQLite avoids WAL on NFS volumes, and full reindexes preserve rollback/cache recovery. (#92650, #92618, #92639, #91247, #92881) Thanks @mushuiyu886, @BrettHamlin, @zhbcher, @TurboTheTurtle, @Takhoffman, @849261680, @TSHOGX, @vincentkoc, and @AFabyTWE.

Changes

  • Providers/models: add GLM-5.2 support and Claude Haiku 4.5 catalog entries while keeping provider-qualified model IDs normalized across OpenRouter and Google Vertex paths. (#92796, #90116, #92627, #91218) Thanks @arkyu2077, @liuhao1024, @bymle, @maaron34, @lijenhsin, @davemorin, and @vincentkoc.
  • Web search: keep key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search as explicit opt-ins instead of selecting them automatically when no API-backed provider is configured. (#93616) Thanks @davemorin and @vincentkoc.
  • Channel plugins: ship Telegram rich-message delivery and WhatsApp ACP binding support, including preserved intentional line breaks, rich prompt handoff to CLI backends, and transport fixtures for richer drafts. (#92679, #93164, #92513) Thanks @obviyus, @TurboTheTurtle, @vincentkoc, @mcaxtr, and @dmorn.
  • Agent commands: support /btw in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162) Thanks @joshavant, @Pandah97, @marcospaulo, @davemorin, and @vincentkoc.
  • Usage hooks: add built-in full footer rendering, default footer templates, per-turn usage state, credential-aware limits, and fixed-decimal formatting for usage-bar templates. (#92657, #89835, #89629) Thanks @Marvinthebored.

Fixes

  • Channels and delivery: preserve account-scoped DM channel send policy, intentional rich-message line breaks in Telegram and status output, rich Telegram final replies, rich Telegram tables and lists, Telegram thread-create CLI remapping, Feishu dynamic-agent routes after persisted binding reuse, Slack outbound message_sent hooks, contributed message-tool schema optionality, same-channel generated media completions, and channel chunking around surrogate pairs and Infinity limits. (#92788, #93164, #92679, #89421, #89943, #42837, #92814, #91137, #91246, #92735) Thanks @yetval, @obviyus, @spacegeologist, @rishitamrakar, @liuhao1024, @lundog, @TurboTheTurtle, @yhterrance, @vincentkoc, @myrzka, @cwlong163-afk, @kumaxs, @shakkernerd, and @RewardsPal.
  • Gemini CLI: use the selected OpenClaw OAuth/API-key auth profile in an isolated Gemini CLI runtime home, preventing ambient Google machine credentials from overriding the chosen profile. (#88748) Thanks @jason-allen-oneal and @shakkernerd.
  • Discord: give generated auto-thread titles a 60-second timeout and 4,096-token reasoning-model output budget, clamped to the selected model output cap. (#64734) Thanks @hanamizuki.
  • Agent, cron, and Gateway runtime: mark active main sessions before restart shutdown aborts, pause yielded subagent runs whose terminal also signals abort, clamp trusted subagent thinking overrides through provider/model fallback, preserve yielded media completions, deliver channel message-tool final replies through auto-reply while hiding internal delivery hints, restore reset archive fallback reads when active async transcripts are missing, de-duplicate main-session heartbeat events, expose session identity in runtime prompts, reject unknown OpenAI agent selectors, keep generated media completions, slash-command block replies, and trajectory export commands in WebChat, and require admin privileges for HTTP session/model override surfaces. (#91357, #92631, #92412, #92146, #92879, #91287, #92468, #92510, #91246, #92651, #92646) Thanks @ooiuuii, @openperf, @IWhatsskill, @masatohoshino, @CadanHu, @ZengWen-DT, @zhangguiping-xydt, @TurboTheTurtle, @oiGaDio, @aleps001, @vincentkoc, @GSL-R, @QQSHI13, @ryanhelms, @kumaxs, @steipete-oai, @hxy91819, @davemorin, and @nailujac.
  • Providers and model replay: preserve storeless OpenAI Responses replay compatibility, recover invalid OpenAI reasoning signatures and genericized Anthropic thinking-signature replay errors, route OAuth image defaults through Codex for eligible OpenAI profiles, avoid eager tool streaming for Claude 4.5 in Copilot, quarantine unreadable and post-hook OpenAI/Anthropic-family tool schemas without broadening allowed tool choices, deliver explicit thinking-off requests to LM Studio binary-thinking models, honor profile auth for SecretRef model entries, bound model browsing, strip provider prefixes where runtimes need bare IDs, and surface nested embedding fetch failures. (#90706, #92941, #92201, #92916, #92824, #75393, #92908, #92921, #92928, #92002, #90686, #92247, #92627, #91218, #92628) Thanks @snowzlm, @mmyzwl, @CarlCapital, @bek91, @Kailigithub, @vincentkoc, @rohitjavvadi, @samson910022, @nxmxbbd, @liuhao1024, @bymle, @mushuiyu886, @finchinslc, @syfvb, @lijenhsin, @crsnpalmer-art, @samson1357924, @shakkernerd, and @mlaihk.
  • Memory, state, diagnostics, and config: split header-too-large embedding batches, keep QMD memory search enabled in transient mode, avoid SQLite WAL on NFS volumes, preserve recovery scheduling outside stuck-session warning backoff, preserve full-reindex rollback/cache recovery, and treat raw Memory Wiki source pages as source evidence. (#92650, #92618, #92639, #91247, #92752, #92881, #59137, #92876) Thanks @mushuiyu886, @TurboTheTurtle, @849261680, @gnanam1990, @TSHOGX, @vincentkoc, @arlen8411, @BrettHamlin, @zhbcher, @Takhoffman, @AFabyTWE, @davemorin, and @zhuyankarl.
  • UI/mobile/TUI: preserve dashboard session parent lineage, WebChat backscroll, reset soft command args, sidebar session picker interactivity, collapsed workspace files, resolved /model confirmation refs, stale foreground iOS Gateway reconnects, and paused setup-parent stdin after inherited-stdio child exit. (#90658, #92622, #91353, #92705, #92779, #92773, #92552, #93159) Thanks @luoyanglang, @TurboTheTurtle, @zhouhe-xydt, @NianJiuZst, @shakkernerd, @NarahariRaghava, @Solvely-Colin, @fuller-stack-dev, @lily-oc, @MaBeitian, @vincentkoc, @obviyus, @DrtyMorty, and @Chang2020618.
  • Plugins and updates: repair missing required platform packages during managed plugin installs and updates, including omitted Codex platform binaries. Thanks @vincentkoc.
  • Dependencies: update Hono to 4.12.25 so published OpenClaw and ACPX packages use the patched runtime. Thanks @vincentkoc.
  • Updates: avoid a false downgrade prompt when the latest tag cannot resolve. (#92911) Thanks @Andy312432 and @vincentkoc.

Complete contribution record

This audited record covers the complete v2026.6.6..v2026.6.8 history: 192 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #92144 fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766. Thanks @liuhao1024 and @AaronFaby.
  • PR #92175 fix(channel): harden local setup trust. Thanks @hxy91819.
  • PR #91528 fix #73837: stop after failed Node package installs. Thanks @mushuiyu886 and @ItsMeForLua.
  • PR #91561 fix(wizard): report keyless web_search providers as ready, not missing a key. Thanks @NormallyGaussian.
  • PR #92073 fix: handle explicit silent assistant replies. Related #92038. Thanks @sallyom and @vultusv.
  • PR #91311 Allow Skill Workshop apply through trusted skill symlinks. Thanks @abnershang.
  • PR #88245 refactor(whatsapp): introduce inbound message contexts. Thanks @mcaxtr.
  • PR #92212 refactor: move workspace skill writes to lifecycle. Thanks @shakkernerd.
  • PR #92248 Remove ClawHub owner preflight. Thanks @Patrick-Erichsen.
  • PR #91617 test(sqlite): add state perf query plan harness. Related #91616. Thanks @galiniliev.
  • PR #91626 fix(daemon): keep status readable on unsupported services. Related #25621. Thanks @mushuiyu886 and @kucharskim.
  • PR #92295 fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291. Thanks @liuhao1024 and @dcapclaw.
  • PR #92087 fix(docker): bundle QA Lab runtime in the image. Thanks @jesse-merhi.
  • PR #92004 fix(telegram): classify streaming preview edit failures instead of killing the draft. Thanks @obviyus.
  • PR #91997 fix(telegram): survive getUpdates conflicts in isolated polling ingress. Thanks @obviyus.
  • PR #92387 fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982. Thanks @openperf and @Takhoffman and @danieljimz.
  • PR #92229 Fix doctor preview channel SecretRef resolution. Related #91939. Thanks @joshavant and @Niriakot.
  • PR #92225 Fix disabled heartbeat one-shot cron retries. Related #91775. Thanks @joshavant and @A1fred-AI.
  • PR #92265 Fix configured DeepSeek model transport inheritance. Related #92148. Thanks @joshavant and @marcoraepple-sys.
  • PR #92226 Fail closed for CLI-backed /btw fallback. Related #92168. Thanks @joshavant and @wangwllu.
  • PR #92231 Fix suppressed heartbeat commitment delivery. Related #91948. Thanks @joshavant and @bizzle12368239.
  • PR #92280 fix(agents): classify structured unsupported model errors. Related #92118. Thanks @joshavant and @pikaqqqqqq.
  • PR #92276 Fix OTLP log trace correlation. Related #91865. Thanks @joshavant and @sinzin91.
  • PR #92282 fix(update): hand off Linux service auto-updates. Related #91823. Thanks @joshavant and @hanyizuo.
  • PR #92235 fix: resolve managed SecretRef provider auth. Related #92097. Thanks @joshavant and @LINSUISHENG034.
  • PR #92293 Fix provider static model fallback resolution. Related #92009. Thanks @joshavant and @mattsfraser.
  • PR #92343 fix(agent): continue after source message tool replies. Related #92169. Thanks @joshavant and @elyalvarado.
  • PR #92350 fix(codex): preserve memory prompt registration. Thanks @rubencu and @sallyom.
  • PR #92290 fix: clarify gateway SecretRef auth diagnostics. Related #91815. Thanks @joshavant and @mattsfraser.
  • PR #92286 fix: repair rejected Anthropic thinking replay. Related #91983. Thanks @joshavant and @reginaldomarcilon.
  • PR #92281 Fix Telegram spooled buffered replay. Related #92129. Thanks @joshavant and @riseandshinefutures.
  • PR #47493 fix(doctor): show per-step progress spinners during update. Thanks @amersheeny.
  • PR #92416 fix(outbound): honor top-level image param as send media source (#92407). Thanks @xydigit-sj and @ichirokyoto.
  • PR #92508 fix(sandbox): render CLI skill prompts from materialized paths. Thanks @brokemac79.
  • PR #92540 chore: fix esbuild production audit failure. Thanks @RomneyDa.
  • PR #91484 Add QA evidence artifact output. Thanks @RomneyDa.
  • PR #91500 Add QA scorecard taxonomy validation. Thanks @RomneyDa.
  • PR #84082 fix(telegram): allow expandable blockquotes. Thanks @jzakirov.
  • PR #92554 feat(moonshot): add Kimi K2.7 Code support.
  • PR #92396 fix(moonshot): backfill reasoning_content on assistant tool-call replay messages. Related #71491. Thanks @xialonglee and @RoseKongPS.
  • PR #92566 Fix lifecycle timeout cleanup after leader exit. Thanks @RomneyDa.
  • PR #92311 ci: split plugin ClawHub publishing paths. Thanks @Patrick-Erichsen.
  • PR #92216 fix(gateway): mirror hidden commentary-phase assistant events. Thanks @ragesaq.
  • PR #87596 fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593. Thanks @Pluviobyte and @Faaab84.
  • PR #88993 Expose paged channel action results. Thanks @fuller-stack-dev.
  • PR #90326 fix(fireworks): resolve catalog model params from plugin.json via core. Thanks @obuchowski.
  • PR #86629 fix(doctor): warn for untrusted external Discord plugin. Related #83212. Thanks @brokemac79 and @ooiuuii and @cdeyoung67.
  • PR #90242 fix(providers): skip unreadable Mistral tool schemas. Thanks @vincentkoc.
  • PR #92498 fix(reply): mirror same-channel Slack final replies. Related #92489. Thanks @TurboTheTurtle and @TalkingHeadsJed.
  • PR #92083 fix(channels): default boundary logger for swallowed progress-draft start errors. Thanks @hansraj316.
  • PR #92564 fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553. Thanks @tangtaizong666 and @fxstein.
  • PR #89827 docs: UX-013 — design system documentation. Thanks @BunsDev.
  • PR #89615 feat(ui): hide empty workboard columns. Thanks @BunsDev.
  • PR #89822 fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes. Thanks @BunsDev.
  • PR #92618 fix #92218: memory_search tool disabled with QMD backend. Thanks @mushuiyu886 and @zhbcher.
  • PR #92608 docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768). Thanks @liuhao1024 and @faahim.
  • PR #92605 fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470. Thanks @lzyyzznl and @arjkul.
  • PR #92593 #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters. Thanks @zhangqueping and @jovi2014-cyber.
  • PR #92606 Run Vitest and Playwright scenarios from qa suite. Thanks @RomneyDa.
  • PR #89629 feat(hooks): per-turn usageState on replypayloadsending. Thanks @Marvinthebored.
  • PR #89835 feat(usage): native templated /usage full footer renderer. Thanks @Marvinthebored.
  • PR #92247 fix(models): bound /models and models list catalog loading. Related #91809. Thanks @samson910022 and @samson1357924 and @syfvb.
  • PR #92646 fix: require admin for HTTP model overrides. Thanks @steipete-oai.
  • PR #90686 fix(gateway): honor profile auth for SecretRef model entries. Related #90685. Thanks @rohitjavvadi.
  • PR #92651 fix: require admin for HTTP session kills. Thanks @steipete-oai.
  • PR #92652 test(models): stabilize plugin auth marker fixtures.
  • PR #89438 fix(slack): warn when channels map is keyed by name instead of channel ID. Related #81665. Thanks @Alix-007 and @cjalden.
  • PR #92631 fix(agents): pause yielded subagent runs whose terminal also signals abort. Related #92448. Thanks @openperf and @vincentkoc and @aleps001.
  • PR #92622 fix(ui): preserve WebChat backscroll during streaming. Related #92386. Thanks @TurboTheTurtle and @vincentkoc and @DrtyMorty.
  • PR #92627 fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611). Thanks @liuhao1024 and @lijenhsin.
  • PR #92146 fix(cron): preserve yielded media completions. Related #92120. Thanks @IWhatsskill and @nailujac.
  • PR #90116 fix: add Claude Haiku 4.5 static catalog entries. Related #90088. Thanks @arkyu2077 and @maaron34.
  • PR #91137 fix(channels): keep contributed message-tool schema properties optional. Related #67852. Thanks @lundog and @RewardsPal.
  • PR #75393 fix(copilot): disable eager tool streaming for Claude 4.5. Related #75348. Thanks @Kailigithub and @finchinslc.
  • PR #92628 fix #73713: surface nested embedding fetch failures. Thanks @mushuiyu886 and @crsnpalmer-art.
  • PR #92510 fix(gateway): reject unknown OpenAI agent selectors. Related #92504. Thanks @zhangguiping-xydt and @ryanhelms.
  • PR #91453 fix #91420: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none. Thanks @zhangguiping-xydt and @CarotaWealth.
  • PR #92468 fix #92453: add session identity to runtime prompt. Thanks @zhangguiping-xydt and @QQSHI13.
  • PR #89943 fix(slack): emit message_sent hook on outbound delivery (mirror Telegram). Related #89942. Thanks @rishitamrakar.
  • PR #92668 fix(docs): finalize i18n postprocess before skip. Thanks @hxy91819.
  • PR #92673 fix: split image setup and request timeout semantics. Thanks @hxy91819.
  • PR #92162 #92069: fix(cli): usage errors exit 0. Thanks @Pandah97 and @marcospaulo.
  • PR #91185 fix(browser): remove dead requireRef import and void expression in register.navigation.ts. Related #83878. Thanks @whiteyzy and @davinci282828.
  • PR #90706 fix(OpenAI Responses): disable item id replay for storeless providers. Related #89728. Thanks @snowzlm.
  • PR #90247 fix(disk-space): promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245. Thanks @jbetala7.
  • PR #92657 feat(usage): ship built-in /usage full footer. Thanks @Marvinthebored.
  • PR #90464 perf(terminal): reuse ANSI scanner during truncation. Thanks @yyzquwu.
  • PR #91281 fix(feishu): clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911. Thanks @whiteyzy and @davinci282828.
  • PR #92639 fix(memory): keep memory_search in transient qmd mode. Related #92464. Thanks @TurboTheTurtle and @Takhoffman and @BrettHamlin.
  • PR #91287 fix(cron): de-duplicate main-session systemEvent in heartbeat model input. Related #44922. Thanks @ZengWen-DT and @GSL-R.
  • PR #91246 Fix webchat media completion handoff. Related #91003. Thanks @TurboTheTurtle and @kumaxs.
  • PR #91353 fix(ui): preserve /reset soft args in Control UI dispatch. Related #91316. Thanks @zhouhe-xydt and @MaBeitian.
  • PR #92679 feat(telegram): send rich message text. Thanks @obviyus.
  • PR #92705 fix(ui): restore sidebar session picker interactivity above desktop workbench. Related #92707. Thanks @NianJiuZst and @vincentkoc.
  • PR #91218 fix(google): strip provider prefix from Vertex model path. Thanks @bymle.
  • PR #92669 feat: support /btw in CLI-backed sessions. Thanks @joshavant.
  • PR #91357 fix(gateway): mark active main sessions before restart shutdown aborts. Related #91355. Thanks @ooiuuii.
  • PR #91066 fix(parallel): send openclaw-parallel User-Agent on free Search MCP requests. Thanks @NormallyGaussian.
  • PR #90658 fix(ui): preserve dashboard session parent lineage when session list is stale. Related #90623. Thanks @luoyanglang and @lily-oc.
  • PR #92552 fix(ios): force stale foreground gateway reconnects. Thanks @Solvely-Colin.
  • PR #89421 fix(telegram): expose thread create CLI remap. Related #81581. Thanks @spacegeologist and @myrzka.
  • PR #92779 fix: start workspace files collapsed. Related #90359. Thanks @shakkernerd and @Chang2020618.
  • PR #91247 fix(state): avoid sqlite wal on nfs state volumes. Related #90491. Thanks @849261680 and @AFabyTWE.
  • PR #92773 fix(tui): show resolved canonical model ref in /model confirmation. Thanks @NarahariRaghava.
  • PR #92752 fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff. Related #92742. Thanks @gnanam1990 and @Takhoffman and @zhuyankarl.
  • PR #92735 fix(markdown-core): treat Infinity chunk limit as unbounded, not 1. Related #92734. Thanks @yhterrance.
  • PR #92695 docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted). Thanks @ArielSmoliar.
  • PR #92766 clarify before_install hook scope. Related #91593. Thanks @sallyom and @Trump-last.
  • PR #92677 docs(nodes): add openclaw.json config example to Nodes overview. Related #92662. Thanks @liuhao1024 and @Casper-Mars.
  • PR #92513 Honor WhatsApp configured ACP bindings. Related #92449. Thanks @TurboTheTurtle and @mcaxtr and @dmorn.
  • PR #92650 fix #92465: split OpenAI 431 embedding batches. Thanks @mushuiyu886 and @BrettHamlin.
  • PR #92796 feat(providers): add GLM-5.2 support.
  • PR #92788 fix(sessions): derive channel from account-scoped DM session keys in send-policy. Thanks @yetval.
  • PR #92590 Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551. Thanks @lzyyzznl and @fxstein.
  • PR #92393 chore(deps): bump the swift-deps group across 1 directory with 3 updates.
  • PR #92476 fix(agents): preserve compatible CLI session runtime pins. Thanks @yu-xin-c.
  • PR #92483 fix(matrix): validate CLI numeric option ranges. Related #92482. Thanks @rohitjavvadi.
  • PR #92490 fix(canvas): validate CLI numeric options. Related #92487. Thanks @rohitjavvadi.
  • PR #92802 fix(ui): reflow composer beside workspace rail. Thanks @Solvely-Colin and @shakkernerd.
  • PR #91059 fix(configure): mask gateway token input in CLI wizard prompt. Thanks @anurag-bg-neu.
  • PR #91143 fix(ports): only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142. Thanks @jbetala7.
  • PR #91110 fix(tavily): keep web_search contract executable. Related #91096. Thanks @extrasmall0 and @xucongyuan98-sys.
  • PR #91181 fix(daemon): strip schtasks backslash prefix when matching gateway task name. Related #90494. Thanks @425072024 and @Darnellicious.
  • PR #91187 fix(cron): isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991. Thanks @openperf and @cx306806112.
  • PR #92807 fix(heartbeat): route outbound mirror to isolated session key. Thanks @agent-merkava.
  • PR #92745 fix(memory): explain skipped short-term recall hits. Related #92706. Thanks @mushuiyu886 and @armarinho.
  • PR #92488 fix(gateway): forward image-only input on /v1/responses (parity with chat completions). Thanks @s554097550 and @cursoragent.
  • PR #92604 fix(status): avoid cumulative usage for context percent. Related #83526. Thanks @ashishpatel26 and @darconadalabarga.
  • PR #92810 fix: reject unvalidated voice media streams. Thanks @steipete-oai.
  • PR #92800 fix(telegram): answer callback queries before sequentialize delays them. Related #42156. Thanks @liuhao1024 and @Diaspar4u.
  • PR #92547 fix(nodes): surface pending reapproval diagnostics. Thanks @fuller-stack-dev.
  • PR #92690 fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes #92683). Thanks @liuhao1024 and @motteman.
  • PR #92806 fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671). Thanks @liuhao1024 and @vincentkoc and @leandroirani933-ctrl.
  • PR #92778 fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480). Thanks @liuhao1024 and @vincentkoc and @gdiab.
  • PR #92795 fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009). Thanks @liuhao1024 and @vincentkoc and @ltxy12138-ai.
  • PR #92746 fix(gateway): preserve active runs during plugin finalization. Thanks @scotthuang and @vincentkoc.
  • PR #92820 UI: localize Logs tab labels. Thanks @rubensfox20.
  • PR #92825 fix(telegram): preserve command callbacks while prefixing generic callback data. Related #54909. Thanks @hnshah and @timt80.
  • PR #90889 fix: cap session context overrides by model window. Related #39857. Thanks @xdanger.
  • PR #92830 fix(copilot): strip replayed thinking blocks. Related #81520. Thanks @giodl73-repo and @warcold.
  • PR #92834 feat(browser): extend --labels overlay to full-page and element captures. Thanks @hxy91819 and @FMLS and @cursoragent.
  • PR #92836 fix(discord): raise thread title timeout and tokens to fit reasoning models. Thanks @hanamizuki.
  • PR #92095 fix #92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink. Thanks @zhangguiping-xydt and @dinorastoder.
  • PR #92801 fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564). Thanks @liuhao1024 and @brokemac79.
  • PR #89736 fix(status): render sub-1000 token counts as plain integers. Related #89735. Thanks @jbetala7 and @vincentkoc.
  • PR #92792 fix(agents): catch malformed image blocks in sanitizeContentBlocksImages. Thanks @LowCode191 and @vincentkoc.
  • PR #92555 ci: gate stable releases on Windows companion assets. Thanks @fuller-stack-dev.
  • PR #91824 fix(agents): add usage guidance to sessions_spawn tool description (fixes #91814). Thanks @zenglingbiao and @vincentkoc and @cattails-lgao.
  • PR #92840 fix(feishu): await HTTP server shutdown during monitor cleanup. Related #48183. Thanks @alex-xuweilong and @ai-nurmamat.
  • PR #91632 feat: add tool search directory mode. Thanks @fuller-stack-dev.
  • PR #92823 fix(qqbot): surface failed media sends. Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #92849 fix(tailscale): preserve parse errors for malformed JSON. Thanks @franciscomaestre.
  • PR #92045 Fix diagnostics OTEL runtime install trust. Thanks @efpiva.
  • PR #92853 fix(acp): accept MCP date protocolVersion in ACP server. Related #56102. Thanks @bugkill3r and @moliveto.
  • PR #92854 fix(hooks): reject slug-generator error payloads. Thanks @Cypherm.
  • PR #92855 fix(ui): repair iOS Safari chat viewport handling. Thanks @macdao.
  • PR #91586 fix(update): continue after package doctor warnings. Thanks @fuller-stack-dev.
  • PR #92862 fix(feishu): target typing reaction on inbound message. Thanks @huiwen01.
  • PR #92861 fix(lobster): surface workflow path errors. Related #68101. Thanks @vvitovec and @MPC7500.
  • PR #69975 fix(cli): clarify --tz help text for offset-less --at values. Related #59456. Thanks @rrrrrredy.
  • PR #90682 fix(openai): preserve opaque reasoning transcript fields. Related #90093. Thanks @toruvieI and @richardmqq.
  • PR #92373 fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes #92360). Thanks @liuhao1024 and @notnaji.
  • PR #87346 fix(anthropic): merge consecutive assistant turns in turn validation. Related #87329. Thanks @Jefsky and @travellingsoldier85.
  • PR #92896 fix(anthropic): quarantine invalid direct tool schemas. Thanks @vincentkoc.
  • PR #90739 fix(active-memory): preserve verbose recall summaries. Related #90454. Thanks @brokemac79 and @nocode-ananas.
  • PR #92558 Simplify QA scorecard mapping shape. Thanks @RomneyDa.
  • PR #92876 fix(memory-wiki): stop flagging raw source pages as malformed. Thanks @vincentkoc.
  • PR #92908 fix(providers): quarantine unreadable Anthropic payload tools. Thanks @vincentkoc.
  • PR #92881 fix(memory): preserve reindex rollback recovery. Thanks @TSHOGX and @vincentkoc.
  • PR #92921 fix(openai): quarantine unreadable tool schemas. Thanks @vincentkoc.
  • PR #92550 Fold Telegram RTT sampling into live QA evidence. Thanks @RomneyDa.
  • PR #92824 fix(media): route OAuth image defaults through Codex. Related #87168. Thanks @bek91.
  • PR #92928 fix(openai): guard post-hook tool payloads. Thanks @vincentkoc.
  • PR #92814 fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837). Thanks @liuhao1024 and @vincentkoc and @cwlong163-afk.
  • PR #89055 fix: restart gateway after isolated cron setup timeout. Thanks @ghitafilali.
  • PR #90574 fix(openai): omit gpt-5.5 tool reasoning effort. Thanks @BSG2000.
  • PR #92941 fix(openai): recover invalid reasoning signatures.
  • PR #92914 fix(agents): clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412. Thanks @openperf and @oiGaDio.
  • PR #92573 fix: preserve config-selected subagent model overrides. Related #92486. Thanks @arkyu2077 and @PatrickTrent.
  • PR #92852 fix(gateway): fall back to polling when config watcher exhausts inotify retries. Related #92851. Thanks @danbao.
  • PR #92362 fix(gateway): build row metadata context for single session lists. Thanks @anyech.
  • PR #92897 fix(memory-wiki): tolerate public artifacts without agent ids. Related #92207. Thanks @yu-xin-c and @qq230849622-a11y.
  • PR #92002 fix(lmstudio): deliver thinking "off" to binary-thinking models. Related #91913. Thanks @nxmxbbd and @mlaihk.
  • PR #92738 Forward suppressed-source progress for message-tool channel replies. Thanks @ragesaq.
  • PR #92916 #92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized. Thanks @mmyzwl and @CarlCapital.
  • PR #90936 fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon.
  • PR #93009 fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv.
  • PR #92318 fix(cron): require explicit message target proof. Thanks @hxy91819.
  • PR #93022 fix(gateway): repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49.
  • PR #93159 fix(tui): keep parent stdin paused after exit. Thanks @fuller-stack-dev.
  • PR #93616 Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc.
  • PR #93164 fix(telegram): preserve rich markdown line breaks. Thanks @vincentkoc.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.8-beta.2
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.8-beta.2.tgz
  • integrity: sha512-44ab7b24zUY14dpEVt9TZpd6o6PfbYfnNjSbALHULsCkE7e1ju+ZOia46EawvRLqbYqOwjM9oucnbk7P9/eWsQ==
  • release SHA: b1736723d716b1abe1f8d324772371661146f3b8
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27587320308
  • postpublish recovery: exact npm install, 35 npm plugins, and 35 ClawHub packages verified after registry propagation
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27582865457
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27584541070
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27587508776
  • plugin ClawHub publish: https://github.com/openclaw/openclaw/actions/runs/27587512198
  • plugin ClawHub bootstrap: not needed
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27587814328
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/27588410701
v2026.6.8-beta.1 pre [Jun 14, 2026] details → github →

# openclaw 2026.6.8-beta.1

2026.6.8

Highlights

  • Richer channel delivery: Telegram and WhatsApp are less brittle: Telegram renders structured text with tables, lists, expandable blockquotes, preserved intentional line breaks, and CLI-backed replies, while WhatsApp now honors configured ACP bindings. (#92679, #93164, #84082, #89421, #92513) Thanks @obviyus, @vincentkoc, @jzakirov, @spacegeologist, @TurboTheTurtle, @mcaxtr, @myrzka, and @dmorn.
  • More reliable agent runs: account-scoped DM sends, generated media completions, auto-reply message-tool final replies, reset archive fallback reads, restart shutdown aborts, yielded subagent pauses, and session identity prompts all stay on the correct recovery path. (#92788, #91246, #92879, #91357, #92631, #92468) Thanks @yetval, @TurboTheTurtle, @masatohoshino, @CadanHu, @vincentkoc, @ooiuuii, @openperf, @zhangguiping-xydt, @QQSHI13, @kumaxs, and @aleps001.
  • Safer model routing: new GLM-5.2 and Claude Haiku 4.5 catalog support arrives with normalized provider IDs, managed SecretRef auth, bounded model browsing, and safer OpenAI/Anthropic tool-schema recovery. (#92796, #90116, #92627, #90686, #92247, #92941) Thanks @arkyu2077, @liuhao1024, @lijenhsin, @rohitjavvadi, @samson910022, @maaron34, @syfvb, and @samson1357924.
  • Useful usage footers: /usage and reply payload hooks now have a native full footer renderer, default template, fixed-decimal formatting, credential-aware limits, better partial-count handling, and warnings for broken templates instead of silent bad output. (#92657, #89835, #89629) Thanks @Marvinthebored.
  • Predictable web search defaults: key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search remain explicit opt-ins rather than surprising automatic fallbacks. (#93616) Thanks @davemorin and @vincentkoc.
  • Calmer UI and mobile sessions: workspace files start collapsed, WebChat backscroll survives streaming, the desktop session picker remains interactive, reset arguments survive dispatch, and iOS reconnects stale foreground Gateways. (#92779, #92622, #92705, #91353, #92552) Thanks @shakkernerd, @TurboTheTurtle, @NianJiuZst, @zhouhe-xydt, @Solvely-Colin, @MaBeitian, @vincentkoc, @Chang2020618, and @DrtyMorty.
  • Resilient memory and state: oversized OpenAI embedding batches split before 431s, QMD search stays available in transient mode, SQLite avoids WAL on NFS volumes, and full reindexes preserve rollback/cache recovery. (#92650, #92618, #92639, #91247, #92881) Thanks @mushuiyu886, @BrettHamlin, @zhbcher, @TurboTheTurtle, @Takhoffman, @849261680, @TSHOGX, @vincentkoc, and @AFabyTWE.

Changes

  • Providers/models: add GLM-5.2 support and Claude Haiku 4.5 catalog entries while keeping provider-qualified model IDs normalized across OpenRouter and Google Vertex paths. (#92796, #90116, #92627, #91218) Thanks @arkyu2077, @liuhao1024, @bymle, @maaron34, @lijenhsin, @davemorin, and @vincentkoc.
  • Web search: keep key-free providers such as Parallel Free, DuckDuckGo, Ollama, and Codex Hosted Search as explicit opt-ins instead of selecting them automatically when no API-backed provider is configured. (#93616) Thanks @davemorin and @vincentkoc.
  • Channel plugins: ship Telegram rich-message delivery and WhatsApp ACP binding support, including preserved intentional line breaks, rich prompt handoff to CLI backends, and transport fixtures for richer drafts. (#92679, #93164, #92513) Thanks @obviyus, @TurboTheTurtle, @vincentkoc, @mcaxtr, and @dmorn.
  • Agent commands: support /btw in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162) Thanks @joshavant, @Pandah97, @marcospaulo, @davemorin, and @vincentkoc.
  • Usage hooks: add built-in full footer rendering, default footer templates, per-turn usage state, credential-aware limits, and fixed-decimal formatting for usage-bar templates. (#92657, #89835, #89629) Thanks @Marvinthebored.

Fixes

  • Channels and delivery: preserve account-scoped DM channel send policy, intentional rich-message line breaks in Telegram and status output, rich Telegram final replies, rich Telegram tables and lists, Telegram thread-create CLI remapping, Feishu dynamic-agent routes after persisted binding reuse, Slack outbound message_sent hooks, contributed message-tool schema optionality, same-channel generated media completions, and channel chunking around surrogate pairs and Infinity limits. (#92788, #93164, #92679, #89421, #89943, #42837, #92814, #91137, #91246, #92735) Thanks @yetval, @obviyus, @spacegeologist, @rishitamrakar, @liuhao1024, @lundog, @TurboTheTurtle, @yhterrance, @vincentkoc, @myrzka, @cwlong163-afk, @kumaxs, @shakkernerd, and @RewardsPal.
  • Gemini CLI: use the selected OpenClaw OAuth/API-key auth profile in an isolated Gemini CLI runtime home, preventing ambient Google machine credentials from overriding the chosen profile. (#88748) Thanks @jason-allen-oneal and @shakkernerd.
  • Discord: give generated auto-thread titles a 60-second timeout and 4,096-token reasoning-model output budget, clamped to the selected model output cap. (#64734) Thanks @hanamizuki.
  • Agent, cron, and Gateway runtime: mark active main sessions before restart shutdown aborts, pause yielded subagent runs whose terminal also signals abort, clamp trusted subagent thinking overrides through provider/model fallback, preserve yielded media completions, deliver channel message-tool final replies through auto-reply while hiding internal delivery hints, restore reset archive fallback reads when active async transcripts are missing, de-duplicate main-session heartbeat events, expose session identity in runtime prompts, reject unknown OpenAI agent selectors, keep generated media completions, slash-command block replies, and trajectory export commands in WebChat, and require admin privileges for HTTP session/model override surfaces. (#91357, #92631, #92412, #92146, #92879, #91287, #92468, #92510, #91246, #92651, #92646) Thanks @ooiuuii, @openperf, @IWhatsskill, @masatohoshino, @CadanHu, @ZengWen-DT, @zhangguiping-xydt, @TurboTheTurtle, @oiGaDio, @aleps001, @vincentkoc, @GSL-R, @QQSHI13, @ryanhelms, @kumaxs, @steipete-oai, @hxy91819, @davemorin, and @nailujac.
  • Providers and model replay: preserve storeless OpenAI Responses replay compatibility, recover invalid OpenAI reasoning signatures and genericized Anthropic thinking-signature replay errors, route OAuth image defaults through Codex for eligible OpenAI profiles, avoid eager tool streaming for Claude 4.5 in Copilot, quarantine unreadable and post-hook OpenAI/Anthropic-family tool schemas without broadening allowed tool choices, deliver explicit thinking-off requests to LM Studio binary-thinking models, honor profile auth for SecretRef model entries, bound model browsing, strip provider prefixes where runtimes need bare IDs, and surface nested embedding fetch failures. (#90706, #92941, #92201, #92916, #92824, #75393, #92908, #92921, #92928, #92002, #90686, #92247, #92627, #91218, #92628) Thanks @snowzlm, @mmyzwl, @CarlCapital, @bek91, @Kailigithub, @vincentkoc, @rohitjavvadi, @samson910022, @nxmxbbd, @liuhao1024, @bymle, @mushuiyu886, @finchinslc, @syfvb, @lijenhsin, @crsnpalmer-art, @samson1357924, @shakkernerd, and @mlaihk.
  • Memory, state, diagnostics, and config: split header-too-large embedding batches, keep QMD memory search enabled in transient mode, avoid SQLite WAL on NFS volumes, preserve recovery scheduling outside stuck-session warning backoff, preserve full-reindex rollback/cache recovery, and treat raw Memory Wiki source pages as source evidence. (#92650, #92618, #92639, #91247, #92752, #92881, #59137, #92876) Thanks @mushuiyu886, @TurboTheTurtle, @849261680, @gnanam1990, @TSHOGX, @vincentkoc, @arlen8411, @BrettHamlin, @zhbcher, @Takhoffman, @AFabyTWE, @davemorin, and @zhuyankarl.
  • UI/mobile/TUI: preserve dashboard session parent lineage, WebChat backscroll, reset soft command args, sidebar session picker interactivity, collapsed workspace files, resolved /model confirmation refs, stale foreground iOS Gateway reconnects, and paused setup-parent stdin after inherited-stdio child exit. (#90658, #92622, #91353, #92705, #92779, #92773, #92552, #93159) Thanks @luoyanglang, @TurboTheTurtle, @zhouhe-xydt, @NianJiuZst, @shakkernerd, @NarahariRaghava, @Solvely-Colin, @fuller-stack-dev, @lily-oc, @MaBeitian, @vincentkoc, @obviyus, @DrtyMorty, and @Chang2020618.
  • Plugins and updates: repair missing required platform packages during managed plugin installs and updates, including omitted Codex platform binaries. Thanks @vincentkoc.
  • Dependencies: update Hono to 4.12.25 so published OpenClaw and ACPX packages use the patched runtime. Thanks @vincentkoc.
  • Updates: avoid a false downgrade prompt when the latest tag cannot resolve. (#92911) Thanks @Andy312432 and @vincentkoc.

Complete contribution record

This audited record covers the complete v2026.6.6..v2026.6.8 history: 192 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #92144 fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766. Thanks @liuhao1024 and @AaronFaby.
  • PR #92175 fix(channel): harden local setup trust. Thanks @hxy91819.
  • PR #91528 fix #73837: stop after failed Node package installs. Thanks @mushuiyu886 and @ItsMeForLua.
  • PR #91561 fix(wizard): report keyless web_search providers as ready, not missing a key. Thanks @NormallyGaussian.
  • PR #92073 fix: handle explicit silent assistant replies. Related #92038. Thanks @sallyom and @vultusv.
  • PR #91311 Allow Skill Workshop apply through trusted skill symlinks. Thanks @abnershang.
  • PR #88245 refactor(whatsapp): introduce inbound message contexts. Thanks @mcaxtr.
  • PR #92212 refactor: move workspace skill writes to lifecycle. Thanks @shakkernerd.
  • PR #92248 Remove ClawHub owner preflight. Thanks @Patrick-Erichsen.
  • PR #91617 test(sqlite): add state perf query plan harness. Related #91616. Thanks @galiniliev.
  • PR #91626 fix(daemon): keep status readable on unsupported services. Related #25621. Thanks @mushuiyu886 and @kucharskim.
  • PR #92295 fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291. Thanks @liuhao1024 and @dcapclaw.
  • PR #92087 fix(docker): bundle QA Lab runtime in the image. Thanks @jesse-merhi.
  • PR #92004 fix(telegram): classify streaming preview edit failures instead of killing the draft. Thanks @obviyus.
  • PR #91997 fix(telegram): survive getUpdates conflicts in isolated polling ingress. Thanks @obviyus.
  • PR #92387 fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982. Thanks @openperf and @Takhoffman and @danieljimz.
  • PR #92229 Fix doctor preview channel SecretRef resolution. Related #91939. Thanks @joshavant and @Niriakot.
  • PR #92225 Fix disabled heartbeat one-shot cron retries. Related #91775. Thanks @joshavant and @A1fred-AI.
  • PR #92265 Fix configured DeepSeek model transport inheritance. Related #92148. Thanks @joshavant and @marcoraepple-sys.
  • PR #92226 Fail closed for CLI-backed /btw fallback. Related #92168. Thanks @joshavant and @wangwllu.
  • PR #92231 Fix suppressed heartbeat commitment delivery. Related #91948. Thanks @joshavant and @bizzle12368239.
  • PR #92280 fix(agents): classify structured unsupported model errors. Related #92118. Thanks @joshavant and @pikaqqqqqq.
  • PR #92276 Fix OTLP log trace correlation. Related #91865. Thanks @joshavant and @sinzin91.
  • PR #92282 fix(update): hand off Linux service auto-updates. Related #91823. Thanks @joshavant and @hanyizuo.
  • PR #92235 fix: resolve managed SecretRef provider auth. Related #92097. Thanks @joshavant and @LINSUISHENG034.
  • PR #92293 Fix provider static model fallback resolution. Related #92009. Thanks @joshavant and @mattsfraser.
  • PR #92343 fix(agent): continue after source message tool replies. Related #92169. Thanks @joshavant and @elyalvarado.
  • PR #92350 fix(codex): preserve memory prompt registration. Thanks @rubencu and @sallyom.
  • PR #92290 fix: clarify gateway SecretRef auth diagnostics. Related #91815. Thanks @joshavant and @mattsfraser.
  • PR #92286 fix: repair rejected Anthropic thinking replay. Related #91983. Thanks @joshavant and @reginaldomarcilon.
  • PR #92281 Fix Telegram spooled buffered replay. Related #92129. Thanks @joshavant and @riseandshinefutures.
  • PR #47493 fix(doctor): show per-step progress spinners during update. Thanks @amersheeny.
  • PR #92416 fix(outbound): honor top-level image param as send media source (#92407). Thanks @xydigit-sj and @ichirokyoto.
  • PR #92508 fix(sandbox): render CLI skill prompts from materialized paths. Thanks @brokemac79.
  • PR #92540 chore: fix esbuild production audit failure. Thanks @RomneyDa.
  • PR #91484 Add QA evidence artifact output. Thanks @RomneyDa.
  • PR #91500 Add QA scorecard taxonomy validation. Thanks @RomneyDa.
  • PR #84082 fix(telegram): allow expandable blockquotes. Thanks @jzakirov.
  • PR #92554 feat(moonshot): add Kimi K2.7 Code support.
  • PR #92396 fix(moonshot): backfill reasoning_content on assistant tool-call replay messages. Related #71491. Thanks @xialonglee and @RoseKongPS.
  • PR #92566 Fix lifecycle timeout cleanup after leader exit. Thanks @RomneyDa.
  • PR #92311 ci: split plugin ClawHub publishing paths. Thanks @Patrick-Erichsen.
  • PR #92216 fix(gateway): mirror hidden commentary-phase assistant events. Thanks @ragesaq.
  • PR #87596 fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593. Thanks @Pluviobyte and @Faaab84.
  • PR #88993 Expose paged channel action results. Thanks @fuller-stack-dev.
  • PR #90326 fix(fireworks): resolve catalog model params from plugin.json via core. Thanks @obuchowski.
  • PR #86629 fix(doctor): warn for untrusted external Discord plugin. Related #83212. Thanks @brokemac79 and @ooiuuii and @cdeyoung67.
  • PR #90242 fix(providers): skip unreadable Mistral tool schemas. Thanks @vincentkoc.
  • PR #92498 fix(reply): mirror same-channel Slack final replies. Related #92489. Thanks @TurboTheTurtle and @TalkingHeadsJed.
  • PR #92083 fix(channels): default boundary logger for swallowed progress-draft start errors. Thanks @hansraj316.
  • PR #92564 fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553. Thanks @tangtaizong666 and @fxstein.
  • PR #89827 docs: UX-013 — design system documentation. Thanks @BunsDev.
  • PR #89615 feat(ui): hide empty workboard columns. Thanks @BunsDev.
  • PR #89822 fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes. Thanks @BunsDev.
  • PR #92618 fix #92218: memory_search tool disabled with QMD backend. Thanks @mushuiyu886 and @zhbcher.
  • PR #92608 docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768). Thanks @liuhao1024 and @faahim.
  • PR #92605 fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470. Thanks @lzyyzznl and @arjkul.
  • PR #92593 #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters. Thanks @zhangqueping and @jovi2014-cyber.
  • PR #92606 Run Vitest and Playwright scenarios from qa suite. Thanks @RomneyDa.
  • PR #89629 feat(hooks): per-turn usageState on replypayloadsending. Thanks @Marvinthebored.
  • PR #89835 feat(usage): native templated /usage full footer renderer. Thanks @Marvinthebored.
  • PR #92247 fix(models): bound /models and models list catalog loading. Related #91809. Thanks @samson910022 and @samson1357924 and @syfvb.
  • PR #92646 fix: require admin for HTTP model overrides. Thanks @steipete-oai.
  • PR #90686 fix(gateway): honor profile auth for SecretRef model entries. Related #90685. Thanks @rohitjavvadi.
  • PR #92651 fix: require admin for HTTP session kills. Thanks @steipete-oai.
  • PR #92652 test(models): stabilize plugin auth marker fixtures.
  • PR #89438 fix(slack): warn when channels map is keyed by name instead of channel ID. Related #81665. Thanks @Alix-007 and @cjalden.
  • PR #92631 fix(agents): pause yielded subagent runs whose terminal also signals abort. Related #92448. Thanks @openperf and @vincentkoc and @aleps001.
  • PR #92622 fix(ui): preserve WebChat backscroll during streaming. Related #92386. Thanks @TurboTheTurtle and @vincentkoc and @DrtyMorty.
  • PR #92627 fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611). Thanks @liuhao1024 and @lijenhsin.
  • PR #92146 fix(cron): preserve yielded media completions. Related #92120. Thanks @IWhatsskill and @nailujac.
  • PR #90116 fix: add Claude Haiku 4.5 static catalog entries. Related #90088. Thanks @arkyu2077 and @maaron34.
  • PR #91137 fix(channels): keep contributed message-tool schema properties optional. Related #67852. Thanks @lundog and @RewardsPal.
  • PR #75393 fix(copilot): disable eager tool streaming for Claude 4.5. Related #75348. Thanks @Kailigithub and @finchinslc.
  • PR #92628 fix #73713: surface nested embedding fetch failures. Thanks @mushuiyu886 and @crsnpalmer-art.
  • PR #92510 fix(gateway): reject unknown OpenAI agent selectors. Related #92504. Thanks @zhangguiping-xydt and @ryanhelms.
  • PR #91453 fix #91420: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none. Thanks @zhangguiping-xydt and @CarotaWealth.
  • PR #92468 fix #92453: add session identity to runtime prompt. Thanks @zhangguiping-xydt and @QQSHI13.
  • PR #89943 fix(slack): emit message_sent hook on outbound delivery (mirror Telegram). Related #89942. Thanks @rishitamrakar.
  • PR #92668 fix(docs): finalize i18n postprocess before skip. Thanks @hxy91819.
  • PR #92673 fix: split image setup and request timeout semantics. Thanks @hxy91819.
  • PR #92162 #92069: fix(cli): usage errors exit 0. Thanks @Pandah97 and @marcospaulo.
  • PR #91185 fix(browser): remove dead requireRef import and void expression in register.navigation.ts. Related #83878. Thanks @whiteyzy and @davinci282828.
  • PR #90706 fix(OpenAI Responses): disable item id replay for storeless providers. Related #89728. Thanks @snowzlm.
  • PR #90247 fix(disk-space): promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245. Thanks @jbetala7.
  • PR #92657 feat(usage): ship built-in /usage full footer. Thanks @Marvinthebored.
  • PR #90464 perf(terminal): reuse ANSI scanner during truncation. Thanks @yyzquwu.
  • PR #91281 fix(feishu): clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911. Thanks @whiteyzy and @davinci282828.
  • PR #92639 fix(memory): keep memory_search in transient qmd mode. Related #92464. Thanks @TurboTheTurtle and @Takhoffman and @BrettHamlin.
  • PR #91287 fix(cron): de-duplicate main-session systemEvent in heartbeat model input. Related #44922. Thanks @ZengWen-DT and @GSL-R.
  • PR #91246 Fix webchat media completion handoff. Related #91003. Thanks @TurboTheTurtle and @kumaxs.
  • PR #91353 fix(ui): preserve /reset soft args in Control UI dispatch. Related #91316. Thanks @zhouhe-xydt and @MaBeitian.
  • PR #92679 feat(telegram): send rich message text. Thanks @obviyus.
  • PR #92705 fix(ui): restore sidebar session picker interactivity above desktop workbench. Related #92707. Thanks @NianJiuZst and @vincentkoc.
  • PR #91218 fix(google): strip provider prefix from Vertex model path. Thanks @bymle.
  • PR #92669 feat: support /btw in CLI-backed sessions. Thanks @joshavant.
  • PR #91357 fix(gateway): mark active main sessions before restart shutdown aborts. Related #91355. Thanks @ooiuuii.
  • PR #91066 fix(parallel): send openclaw-parallel User-Agent on free Search MCP requests. Thanks @NormallyGaussian.
  • PR #90658 fix(ui): preserve dashboard session parent lineage when session list is stale. Related #90623. Thanks @luoyanglang and @lily-oc.
  • PR #92552 fix(ios): force stale foreground gateway reconnects. Thanks @Solvely-Colin.
  • PR #89421 fix(telegram): expose thread create CLI remap. Related #81581. Thanks @spacegeologist and @myrzka.
  • PR #92779 fix: start workspace files collapsed. Related #90359. Thanks @shakkernerd and @Chang2020618.
  • PR #91247 fix(state): avoid sqlite wal on nfs state volumes. Related #90491. Thanks @849261680 and @AFabyTWE.
  • PR #92773 fix(tui): show resolved canonical model ref in /model confirmation. Thanks @NarahariRaghava.
  • PR #92752 fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff. Related #92742. Thanks @gnanam1990 and @Takhoffman and @zhuyankarl.
  • PR #92735 fix(markdown-core): treat Infinity chunk limit as unbounded, not 1. Related #92734. Thanks @yhterrance.
  • PR #92695 docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted). Thanks @ArielSmoliar.
  • PR #92766 clarify before_install hook scope. Related #91593. Thanks @sallyom and @Trump-last.
  • PR #92677 docs(nodes): add openclaw.json config example to Nodes overview. Related #92662. Thanks @liuhao1024 and @Casper-Mars.
  • PR #92513 Honor WhatsApp configured ACP bindings. Related #92449. Thanks @TurboTheTurtle and @mcaxtr and @dmorn.
  • PR #92650 fix #92465: split OpenAI 431 embedding batches. Thanks @mushuiyu886 and @BrettHamlin.
  • PR #92796 feat(providers): add GLM-5.2 support.
  • PR #92788 fix(sessions): derive channel from account-scoped DM session keys in send-policy. Thanks @yetval.
  • PR #92590 Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551. Thanks @lzyyzznl and @fxstein.
  • PR #92393 chore(deps): bump the swift-deps group across 1 directory with 3 updates.
  • PR #92476 fix(agents): preserve compatible CLI session runtime pins. Thanks @yu-xin-c.
  • PR #92483 fix(matrix): validate CLI numeric option ranges. Related #92482. Thanks @rohitjavvadi.
  • PR #92490 fix(canvas): validate CLI numeric options. Related #92487. Thanks @rohitjavvadi.
  • PR #92802 fix(ui): reflow composer beside workspace rail. Thanks @Solvely-Colin and @shakkernerd.
  • PR #91059 fix(configure): mask gateway token input in CLI wizard prompt. Thanks @anurag-bg-neu.
  • PR #91143 fix(ports): only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142. Thanks @jbetala7.
  • PR #91110 fix(tavily): keep web_search contract executable. Related #91096. Thanks @extrasmall0 and @xucongyuan98-sys.
  • PR #91181 fix(daemon): strip schtasks backslash prefix when matching gateway task name. Related #90494. Thanks @425072024 and @Darnellicious.
  • PR #91187 fix(cron): isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991. Thanks @openperf and @cx306806112.
  • PR #92807 fix(heartbeat): route outbound mirror to isolated session key. Thanks @agent-merkava.
  • PR #92745 fix(memory): explain skipped short-term recall hits. Related #92706. Thanks @mushuiyu886 and @armarinho.
  • PR #92488 fix(gateway): forward image-only input on /v1/responses (parity with chat completions). Thanks @s554097550 and @cursoragent.
  • PR #92604 fix(status): avoid cumulative usage for context percent. Related #83526. Thanks @ashishpatel26 and @darconadalabarga.
  • PR #92810 fix: reject unvalidated voice media streams. Thanks @steipete-oai.
  • PR #92800 fix(telegram): answer callback queries before sequentialize delays them. Related #42156. Thanks @liuhao1024 and @Diaspar4u.
  • PR #92547 fix(nodes): surface pending reapproval diagnostics. Thanks @fuller-stack-dev.
  • PR #92690 fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes #92683). Thanks @liuhao1024 and @motteman.
  • PR #92806 fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671). Thanks @liuhao1024 and @vincentkoc and @leandroirani933-ctrl.
  • PR #92778 fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480). Thanks @liuhao1024 and @vincentkoc and @gdiab.
  • PR #92795 fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009). Thanks @liuhao1024 and @vincentkoc and @ltxy12138-ai.
  • PR #92746 fix(gateway): preserve active runs during plugin finalization. Thanks @scotthuang and @vincentkoc.
  • PR #92820 UI: localize Logs tab labels. Thanks @rubensfox20.
  • PR #92825 fix(telegram): preserve command callbacks while prefixing generic callback data. Related #54909. Thanks @hnshah and @timt80.
  • PR #90889 fix: cap session context overrides by model window. Related #39857. Thanks @xdanger.
  • PR #92830 fix(copilot): strip replayed thinking blocks. Related #81520. Thanks @giodl73-repo and @warcold.
  • PR #92834 feat(browser): extend --labels overlay to full-page and element captures. Thanks @hxy91819 and @FMLS and @cursoragent.
  • PR #92836 fix(discord): raise thread title timeout and tokens to fit reasoning models. Thanks @hanamizuki.
  • PR #92095 fix #92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink. Thanks @zhangguiping-xydt and @dinorastoder.
  • PR #92801 fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564). Thanks @liuhao1024 and @brokemac79.
  • PR #89736 fix(status): render sub-1000 token counts as plain integers. Related #89735. Thanks @jbetala7 and @vincentkoc.
  • PR #92792 fix(agents): catch malformed image blocks in sanitizeContentBlocksImages. Thanks @LowCode191 and @vincentkoc.
  • PR #92555 ci: gate stable releases on Windows companion assets. Thanks @fuller-stack-dev.
  • PR #91824 fix(agents): add usage guidance to sessions_spawn tool description (fixes #91814). Thanks @zenglingbiao and @vincentkoc and @cattails-lgao.
  • PR #92840 fix(feishu): await HTTP server shutdown during monitor cleanup. Related #48183. Thanks @alex-xuweilong and @ai-nurmamat.
  • PR #91632 feat: add tool search directory mode. Thanks @fuller-stack-dev.
  • PR #92823 fix(qqbot): surface failed media sends. Thanks @zhangguiping-xydt and @vincentkoc.
  • PR #92849 fix(tailscale): preserve parse errors for malformed JSON. Thanks @franciscomaestre.
  • PR #92045 Fix diagnostics OTEL runtime install trust. Thanks @efpiva.
  • PR #92853 fix(acp): accept MCP date protocolVersion in ACP server. Related #56102. Thanks @bugkill3r and @moliveto.
  • PR #92854 fix(hooks): reject slug-generator error payloads. Thanks @Cypherm.
  • PR #92855 fix(ui): repair iOS Safari chat viewport handling. Thanks @macdao.
  • PR #91586 fix(update): continue after package doctor warnings. Thanks @fuller-stack-dev.
  • PR #92862 fix(feishu): target typing reaction on inbound message. Thanks @huiwen01.
  • PR #92861 fix(lobster): surface workflow path errors. Related #68101. Thanks @vvitovec and @MPC7500.
  • PR #69975 fix(cli): clarify --tz help text for offset-less --at values. Related #59456. Thanks @rrrrrredy.
  • PR #90682 fix(openai): preserve opaque reasoning transcript fields. Related #90093. Thanks @toruvieI and @richardmqq.
  • PR #92373 fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes #92360). Thanks @liuhao1024 and @notnaji.
  • PR #87346 fix(anthropic): merge consecutive assistant turns in turn validation. Related #87329. Thanks @Jefsky and @travellingsoldier85.
  • PR #92896 fix(anthropic): quarantine invalid direct tool schemas. Thanks @vincentkoc.
  • PR #90739 fix(active-memory): preserve verbose recall summaries. Related #90454. Thanks @brokemac79 and @nocode-ananas.
  • PR #92558 Simplify QA scorecard mapping shape. Thanks @RomneyDa.
  • PR #92876 fix(memory-wiki): stop flagging raw source pages as malformed. Thanks @vincentkoc.
  • PR #92908 fix(providers): quarantine unreadable Anthropic payload tools. Thanks @vincentkoc.
  • PR #92881 fix(memory): preserve reindex rollback recovery. Thanks @TSHOGX and @vincentkoc.
  • PR #92921 fix(openai): quarantine unreadable tool schemas. Thanks @vincentkoc.
  • PR #92550 Fold Telegram RTT sampling into live QA evidence. Thanks @RomneyDa.
  • PR #92824 fix(media): route OAuth image defaults through Codex. Related #87168. Thanks @bek91.
  • PR #92928 fix(openai): guard post-hook tool payloads. Thanks @vincentkoc.
  • PR #92814 fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837). Thanks @liuhao1024 and @vincentkoc and @cwlong163-afk.
  • PR #89055 fix: restart gateway after isolated cron setup timeout. Thanks @ghitafilali.
  • PR #90574 fix(openai): omit gpt-5.5 tool reasoning effort. Thanks @BSG2000.
  • PR #92941 fix(openai): recover invalid reasoning signatures.
  • PR #92914 fix(agents): clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412. Thanks @openperf and @oiGaDio.
  • PR #92573 fix: preserve config-selected subagent model overrides. Related #92486. Thanks @arkyu2077 and @PatrickTrent.
  • PR #92852 fix(gateway): fall back to polling when config watcher exhausts inotify retries. Related #92851. Thanks @danbao.
  • PR #92362 fix(gateway): build row metadata context for single session lists. Thanks @anyech.
  • PR #92897 fix(memory-wiki): tolerate public artifacts without agent ids. Related #92207. Thanks @yu-xin-c and @qq230849622-a11y.
  • PR #92002 fix(lmstudio): deliver thinking "off" to binary-thinking models. Related #91913. Thanks @nxmxbbd and @mlaihk.
  • PR #92738 Forward suppressed-source progress for message-tool channel replies. Thanks @ragesaq.
  • PR #92916 #92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized. Thanks @mmyzwl and @CarlCapital.
  • PR #90936 fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764. Thanks @openperf and @reginaldomarcilon.
  • PR #93009 fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973). Thanks @zenglingbiao and @dertbv.
  • PR #92318 fix(cron): require explicit message target proof. Thanks @hxy91819.
  • PR #93022 fix(gateway): repair usage cost aggregation across agents. Thanks @luke-skywalker-open-claw and @stablegenius49.
  • PR #93159 fix(tui): keep parent stdin paused after exit. Thanks @fuller-stack-dev.
  • PR #93616 Keep key-free web search providers opt-in. Thanks @davemorin and @vincentkoc.
  • PR #93164 fix(telegram): preserve rich markdown line breaks. Thanks @vincentkoc.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.8-beta.1
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.8-beta.1.tgz
  • integrity: sha512-m1SHMi+aFaQnlAczgBvUgKA9mgL1Td3WnySoaf8X9Uy5SOLbBzdJ1miBV7NnINTVE+ec6Rb+jfXCGlEspthX/g==
  • release SHA: 43d00c7724b5b4856ad4055b2dcd21ce6ef61550
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27505699831
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27504321919
  • release publish orchestration: https://github.com/openclaw/openclaw/actions/runs/27513932430 (failed after plugin publish verification; direct OpenClaw npm recovery used)
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27514038012 (published; one post-publish metadata verifier failed for @openclaw/llama-cpp-provider readme metadata)
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27514298229
  • postpublish verifier: node --import tsx scripts/openclaw-npm-postpublish-verify.ts 2026.6.8-beta.1 passed
  • clean npm smoke: npm exec --package openclaw@2026.6.8-beta.1 -- openclaw --version returned OpenClaw 2026.6.8-beta.1 (43d00c7)
  • ClawHub plugin publish: https://github.com/openclaw/openclaw/actions/runs/27514039764 failed plugin-inspector on packaged transport plugin setupEntry metadata; follow-up required
  • dependency evidence asset: openclaw-2026.6.8-beta.1-dependency-evidence.zip
  • npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/27514468230 (running)
v2026.6.7-beta.1 pre [Jun 13, 2026] details → github →

# openclaw 2026.6.7-beta.1

2026.6.7

Highlights

  • Durable channel replies: Telegram polling and preview failures recover instead of ending a stream, Slack keeps delivered replies in the transcript, and top-level image sends retain their intended media source. (#92281, #92498, #92416) Thanks @joshavant, @TurboTheTurtle, @xydigit-sj, @ichirokyoto, @TalkingHeadsJed, and @riseandshinefutures.
  • More dependable provider sessions: SecretRef-backed profiles, configured DeepSeek transports, static model fallback, Anthropic thinking replay, and Codex prompt memory all recover cleanly instead of leaving a turn unusable. (#92265, #92235, #92293, #92286, #92350) Thanks @joshavant, @rubencu, @sallyom, @marcoraepple-sys, @LINSUISHENG034, @mattsfraser, and @reginaldomarcilon.
  • Kimi K2.7 Code support: the provider catalog now includes the new Kimi coding model, with replay handling that preserves its reasoning content across tool turns. (#92554, #92396) Thanks @xialonglee and @RoseKongPS.
  • Safer operations: SQLite-backed cron status, disabled heartbeat retries, Linux service updates, and external-plugin diagnosis now expose clearer, actionable state to operators. (#92144, #92225, #92282, #86629) Thanks @liuhao1024, @joshavant, @brokemac79, @AaronFaby, @cdeyoung67, @ooiuuii, @shakkernerd, @A1fred-AI, and @hanyizuo.
  • Guarded skill installs: Skill Workshop support-file targets now go through trusted lifecycle writes instead of unbounded filesystem updates, while ClawHub package checks stay on the current release path. (#91311) Thanks @abnershang.

Changes

  • Skills and plugin workflows now permit trusted Skill Workshop support-file targets only through guarded lifecycle writes, and package publishing uses the current ClawHub plugin checks. (#91311) Thanks @abnershang and @vincentkoc.
  • Providers: add Kimi K2.7 Code support. (#92554)

Fixes

  • Channels and delivery: recover Telegram preview and polling failures, retain Slack final replies in transcripts, preserve top-level outbound image parameters, and make channel-action result pages available to callers. (#92281, #92498, #92407, #88993) Thanks @joshavant, @TurboTheTurtle, @xydigit-sj, @fuller-stack-dev, @TalkingHeadsJed, and @riseandshinefutures.
  • Agent/provider reliability: preserve configured model transport/auth resolution, fail closed for unsupported CLI-backed /btw fallback, continue after source message-tool replies, repair Anthropic thinking replay, and keep Codex memory prompts registered. (#92265, #92226, #92343, #92286, #92350) Thanks @joshavant, @rubencu, @sallyom, @marcoraepple-sys, @wangwllu, @elyalvarado, and @reginaldomarcilon.
  • Operations: make cron and daemon status resilient, preserve disabled heartbeat one-shot retries, hand off Linux service auto-updates, and keep lifecycle timeout cleanup alive after leader exit. (#92144, #92225, #92282, #92566) Thanks @liuhao1024, @joshavant, @RomneyDa, @AaronFaby, @A1fred-AI, and @hanyizuo.

Complete contribution record

This audited record covers the complete v2026.6.6..v2026.6.7-beta.1 history: 59 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #92144 fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766. Thanks @liuhao1024 and @AaronFaby.
  • PR #92175 fix(channel): harden local setup trust. Thanks @hxy91819.
  • PR #91528 fix #73837: stop after failed Node package installs. Thanks @mushuiyu886 and @ItsMeForLua.
  • PR #91561 fix(wizard): report keyless web_search providers as ready, not missing a key. Thanks @NormallyGaussian.
  • PR #92073 fix: handle explicit silent assistant replies. Related #92038. Thanks @sallyom and @vultusv.
  • PR #91311 Allow Skill Workshop apply through trusted skill symlinks. Thanks @abnershang.
  • PR #88245 refactor(whatsapp): introduce inbound message contexts. Thanks @mcaxtr.
  • PR #92212 refactor: move workspace skill writes to lifecycle. Thanks @shakkernerd.
  • PR #92248 Remove ClawHub owner preflight. Thanks @Patrick-Erichsen.
  • PR #91617 test(sqlite): add state perf query plan harness. Related #91616. Thanks @galiniliev.
  • PR #91626 fix(daemon): keep status readable on unsupported services. Related #25621. Thanks @mushuiyu886 and @kucharskim.
  • PR #92295 fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291. Thanks @liuhao1024 and @dcapclaw.
  • PR #92087 fix(docker): bundle QA Lab runtime in the image. Thanks @jesse-merhi.
  • PR #92004 fix(telegram): classify streaming preview edit failures instead of killing the draft. Thanks @obviyus.
  • PR #91997 fix(telegram): survive getUpdates conflicts in isolated polling ingress. Thanks @obviyus.
  • PR #92387 fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982. Thanks @openperf and @Takhoffman and @danieljimz.
  • PR #92229 Fix doctor preview channel SecretRef resolution. Related #91939. Thanks @joshavant and @Niriakot.
  • PR #92225 Fix disabled heartbeat one-shot cron retries. Related #91775. Thanks @joshavant and @A1fred-AI.
  • PR #92265 Fix configured DeepSeek model transport inheritance. Related #92148. Thanks @joshavant and @marcoraepple-sys.
  • PR #92226 Fail closed for CLI-backed /btw fallback. Related #92168. Thanks @joshavant and @wangwllu.
  • PR #92231 Fix suppressed heartbeat commitment delivery. Related #91948. Thanks @joshavant and @bizzle12368239.
  • PR #92280 fix(agents): classify structured unsupported model errors. Related #92118. Thanks @joshavant and @pikaqqqqqq.
  • PR #92276 Fix OTLP log trace correlation. Related #91865. Thanks @joshavant and @sinzin91.
  • PR #92282 fix(update): hand off Linux service auto-updates. Related #91823. Thanks @joshavant and @hanyizuo.
  • PR #92235 fix: resolve managed SecretRef provider auth. Related #92097. Thanks @joshavant and @LINSUISHENG034.
  • PR #92293 Fix provider static model fallback resolution. Related #92009. Thanks @joshavant and @mattsfraser.
  • PR #92343 fix(agent): continue after source message tool replies. Related #92169. Thanks @joshavant and @elyalvarado.
  • PR #92350 fix(codex): preserve memory prompt registration. Thanks @rubencu and @sallyom.
  • PR #92290 fix: clarify gateway SecretRef auth diagnostics. Related #91815. Thanks @joshavant and @mattsfraser.
  • PR #92286 fix: repair rejected Anthropic thinking replay. Related #91983. Thanks @joshavant and @reginaldomarcilon.
  • PR #92281 Fix Telegram spooled buffered replay. Related #92129. Thanks @joshavant and @riseandshinefutures.
  • PR #47493 fix(doctor): show per-step progress spinners during update. Thanks @amersheeny.
  • PR #92416 fix(outbound): honor top-level image param as send media source (#92407). Thanks @xydigit-sj and @ichirokyoto.
  • PR #92508 fix(sandbox): render CLI skill prompts from materialized paths. Thanks @brokemac79.
  • PR #92540 chore: fix esbuild production audit failure. Thanks @RomneyDa.
  • PR #91484 Add QA evidence artifact output. Thanks @RomneyDa.
  • PR #91500 Add QA scorecard taxonomy validation. Thanks @RomneyDa.
  • PR #84082 fix(telegram): allow expandable blockquotes. Thanks @jzakirov.
  • PR #92554 feat(moonshot): add Kimi K2.7 Code support.
  • PR #92396 fix(moonshot): backfill reasoning_content on assistant tool-call replay messages. Related #71491. Thanks @xialonglee and @RoseKongPS.
  • PR #92566 Fix lifecycle timeout cleanup after leader exit. Thanks @RomneyDa.
  • PR #92311 ci: split plugin ClawHub publishing paths. Thanks @Patrick-Erichsen.
  • PR #92216 fix(gateway): mirror hidden commentary-phase assistant events. Thanks @ragesaq.
  • PR #87596 fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593. Thanks @Pluviobyte and @Faaab84.
  • PR #88993 Expose paged channel action results. Thanks @fuller-stack-dev.
  • PR #90326 fix(fireworks): resolve catalog model params from plugin.json via core. Thanks @obuchowski.
  • PR #86629 fix(doctor): warn for untrusted external Discord plugin. Related #83212. Thanks @brokemac79 and @ooiuuii and @cdeyoung67.
  • PR #90242 fix(providers): skip unreadable Mistral tool schemas. Thanks @vincentkoc.
  • PR #92498 fix(reply): mirror same-channel Slack final replies. Related #92489. Thanks @TurboTheTurtle and @TalkingHeadsJed.
  • PR #92083 fix(channels): default boundary logger for swallowed progress-draft start errors. Thanks @hansraj316.
  • PR #92564 fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553. Thanks @tangtaizong666 and @fxstein.
  • PR #89827 docs: UX-013 — design system documentation. Thanks @BunsDev.
  • PR #89615 feat(ui): hide empty workboard columns. Thanks @BunsDev.
  • PR #89822 fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes. Thanks @BunsDev.
  • PR #92618 fix #92218: memory_search tool disabled with QMD backend. Thanks @mushuiyu886 and @zhbcher.
  • PR #92608 docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768). Thanks @liuhao1024 and @faahim.
  • PR #92605 fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470. Thanks @lzyyzznl and @arjkul.
  • PR #92593 #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters. Thanks @zhangqueping and @jovi2014-cyber.
  • PR #92606 Run Vitest and Playwright scenarios from qa suite. Thanks @RomneyDa.
v2026.6.6 [Jun 12, 2026] details → github →

# openclaw 2026.6.6

2026.6.6

Highlights

  • Tighter security boundaries: transcript, sandbox, MCP, browser, channel, and exec-approval paths now fail closed around unsafe access, timed-out approvals, and malformed boundary input. (#91529, #91618, #91741, #91750, #89938) Thanks @joshavant, @pgondhi987, @mmaps, @eleqtrizit, @drobison00, @vincentkoc, and @devinkuhn.
  • Reliable Telegram delivery: account-scoped topics route to the correct agent, streamed text survives tool calls, callbacks and draft chunks stay coherent, and unauthorized DM text does not enter cache or prompt context. (#91189, #88682, #90212, #91478, #91915) Thanks @codysai001, @alexzhu0, @snowzlm, @obviyus, @sallyom, @AbdelftahZowail, @producedbysavant, @shakkernerd, @vincentkoc, and @BSG2000.
  • iMessage stays connected: always-on inbound recovery, durable echo markers, block streaming, idle approval discovery, and outbound transport now survive restarts and idle periods. (#91335, #91449, #88969, #91783) Thanks @omarshahine, @jmissig, @dwonshin, @colmbrogan, @vincentkoc, and @TurboTheTurtle.
  • Better browser and MCP connectivity: existing browser sessions, CDP/WebSocket discovery, default-profile URLs, OAuth/SSE transport, and tool schemas now connect through clearer, safer paths. (#91422, #89851, #91736, #91451) Thanks @pgondhi987, @anagnorisis2peripeteia, @eleqtrizit, @LiuwqGit, @lifuyue, @marcusbsorensen, @cursoragent, @vincentkoc, @849261680, and @mgrandau.
  • Faster first replies: Control UI startup no longer waits on broad model loading, while cached metadata, lazy slash-command work, and first-event tracing make slow initial responses visible. (#91531, #91538, #91568, #91583) Thanks @vincentkoc and @BSG2000.
  • Broader provider support: OpenRouter OAuth and Claude Fable 5 land alongside correct Codex compaction ownership, local-model execution, normalized tool progress, and Gemma 4 reasoning replay. (#91830, #91882, #91590, #88630, #91696) Thanks @Patrick-Erichsen, @joshavant, @bdjben, @Coder-Wangyankun, @vincentkoc, @bfox55, @shakkernerd, and @NOVA-Openclaw.

Changes

  • CLI progress: emit Claude CLI commentary progress events and bridge inter-tool commentary into channel progress without exposing internal protocol scaffolding. (#89834, #90883) Thanks @anagnorisis2peripeteia, @AbdelftahZowail, @kentuscn, and @vincentkoc.
  • Observability: allow trusted diagnostics channels to capture tool input/output content, add first-assistant-event traces, and warn on slow initial replies. (#91256, #91568, #91583) Thanks @amknight, @mjunaidca, and @vincentkoc.
  • Plugins/ClawHub: dogfood reusable package publishing, let dry runs skip publish approval, allow declared installed trusted hooks, report managed plugin version drift, and warn instead of failing on retired Skill Workshop configuration. (#91574, #91591, #90004, #90927, #90838) Thanks @Patrick-Erichsen, @brokemac79, @lonexreb, @rogerallen1, @vincentkoc, and @ryanhelms.
  • Memory/providers: move the local llama.cpp runtime into its provider plugin, batch embeddings across files, persist the agent model catalog cache, and keep QMD JSON search one-shot while filtering stale REM recall previews. (#91324, #89138, #90457, #91837, #91851) Thanks @osolmaz, @mushuiyu886, @ai-hpc, @TurboTheTurtle, @jalehman, @hartmark, @vincentkoc, @rudi193-cmd, @Peilsender, and @xpysgdhr.
  • Channels/mobile: add the QQBot group mention toggle, improve iPad and iPhone control surfaces, and expose the active connection host in the TUI footer. (#91423, #91557, #89909) Thanks @cxyhhhhh, @Solvely-Colin, @baskduf, @joshavant, @sliverp, and @deuxksy.
  • Performance: prewarm TUI runtime plugins, deduplicate plugin auto-enable fanout, trim dense text-delta snapshots, and reuse prepared startup model metadata. (#90782, #89978, #91580, #91531) Thanks @RomneyDa, @ai-hpc, @vincentkoc, and @JakeBiggs.

Fixes

  • Agent/session recovery: drop stale approval follow-ups after session rebind, remove drained reply-queue items by identity, recover stale main and visible replies, preserve Codex context-engine compaction ownership, lower the default compaction timeout to 180 seconds while respecting explicit configuration, and keep provider-failure terminal lifecycle state correct. (#85679, #91450, #91566, #91840, #91590, #91361, #91895) Thanks @openperf, @yetval, @joshavant, @wangmiao0668000666, @TurboTheTurtle, @two3pro, @velvet-shark, @sallyom, @849261680, @vincentkoc, @Tony-ooo, @Jerry-Xin, @olveww-dot, and @nikhilmaddirala.
  • User-visible content boundaries: suppress Codex/Harmony protocol artifacts, neutralize browser and LanceDB memory media directives, redact transcript images, and preserve native /compact replies through source suppression. (#89151, #91422, #91425, #91529, #90212) Thanks @joelnishanth, @pgondhi987, @joshavant, @snowzlm, @reslp, @vincentkoc, and @devinkuhn.
  • Channel delivery: keep WhatsApp captured replies attached to the successor controller after restart, retry Feishu rate limits, preserve Mattermost thread replies, canonicalize LINE webhook paths, restore Discord reply hydration and runtime timeout exports, and show OpenAI Realtime WebRTC assistant transcripts. (#85823, #89659, #91684, #91649, #90263, #91686, #90426) Thanks @itsuzef, @ladygege, @jacobtomlinson, @fuller-stack-dev, @shushushv, @mcaxtr, @AxelHu, @vincentkoc, @marshallm-create, @sliverp, and @dahifi.
  • Cron: cancel active task runs cleanly, preserve terminal timeout/cancel state, and recover no-deliver tool warnings instead of silently losing the outcome. (#90666, #90678) Thanks @ai-hpc.
  • Gateway/config/auth: share the approval runtime socket token, replace arrays explicitly in config.patch, skip the deleted-agent guard only for valid ACP harness sessions, surface headless LaunchAgent state, verify SQLite auth migration before cleanup, and arm QMD startup maintenance. (#87105, #91551, #91219, #91614, #91740, #91978) Thanks @fuller-stack-dev, @scotthuang, @joshavant, @velvet-shark, @vincentkoc, and @dahifi.
  • Providers/Codex: clarify quota errors, restore the Codex synthetic usage line, canonicalize Codex protocol assets, require API-key auth for realtime voice, normalize ACP model refs, preserve Gemma 4 reasoning_content, and avoid guardian review for local models. (#91390, #91709, #91507, #91567, #88630, #91696) Thanks @hxy91819, @brokemac79, @RomneyDa, @joshavant, @Coder-Wangyankun, @vincentkoc, @bfox55, @shakkernerd, and @sergiopesch.
  • Updates/builds: recover package Gateway restarts after refresh failure, expose plugin convergence repair, fall back to Corepack in PATH-less pnpm environments, seed the correct Docker store packages, and keep ClawHub dry-run and publish paths reusable. (#91581, #91599, #91547, #91591) Thanks @fuller-stack-dev, @sallyom, @Patrick-Erichsen, @vincentkoc, and @laurenceputra.
  • UI: require explicit user intent before opening chat sessions and drain restored chat queues after session switches. (#91480) Thanks @TurboTheTurtle, @Takhoffman, and @zdwalter.
  • Android: avoid the dataSync foreground-service type for persistent nodes. (#80082) Thanks @davelutztx.
  • Native hooks: bound relay lifetimes so abandoned native hook connections cannot linger indefinitely. (#91550) Thanks @joshavant and @clem-git.

Complete contribution record

This audited record covers the complete v2026.6.5..v2026.6.6 history: 198 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

Pull requests

  • PR #91335 fix(imessage): always-on inbound recovery and dedupe. Related #89237. Thanks @omarshahine and @vincentkoc and @dwonshin.
  • PR #91189 fix(telegram): route account-scoped topic agents. Thanks @codysai001.
  • PR #88682 Preserve Telegram streamed text blocks between tool calls. Related #87326. Thanks @alexzhu0 and @AbdelftahZowail.
  • PR #91390 fix: clarify provider quota errors. Thanks @hxy91819.
  • PR #90883 fix(cli): bridge inter-tool commentary events to channel progress. Thanks @anagnorisis2peripeteia.
  • PR #91419 docs: preserve channel brand terms in Chinese i18n. Thanks @hxy91819.
  • PR #87105 fix(gateway): share approval runtime socket token. Thanks @fuller-stack-dev.
  • PR #80082 fix(android): avoid dataSync FGS for persistent node. Thanks @davelutztx.
  • PR #91442 docs: preserve LINE across localized docs glossaries. Thanks @hxy91819.
  • PR #88768 fix(codex): normalize dynamic tool progress results. Thanks @bdjben.
  • PR #91422 fix(browser): neutralize media directives in browser output [AI]. Thanks @pgondhi987.
  • PR #89834 feat(cli): emit commentary progress events from Claude CLI parser. Related #87326. Thanks @anagnorisis2peripeteia and @AbdelftahZowail.
  • PR #85679 fix(agents): drop stale exec approval followups after session rebind. Related #59349. Thanks @openperf and @two3pro.
  • PR #91450 fix(reply-queue): remove the drained item by reference instead of front index. Thanks @yetval.
  • PR #89151 fix(delivery): suppress Codex/Harmony internal protocol artifacts from user-facing channels. Related #88128. Thanks @joelnishanth and @reslp.
  • PR #90678 fix(cron): recover no-deliver tool warnings. Thanks @ai-hpc.
  • PR #91449 fix(imessage): honor block streaming config. Thanks @jmissig and @omarshahine.
  • PR #91508 Revert "docs: add maturity scorecard mirror". Thanks @kevinslin.
  • PR #91364 build(deps): bump github.com/steipete/peekaboo from 3.3.0 to 3.4.0 in /apps/macos in the swift-deps group.
  • PR #91368 build(deps): bump actions/github-script from 8 to 9.
  • PR #91512 chore: add taxonomy file. Thanks @kevinslin.
  • PR #91369 build(deps): bump actions/cache from 4 to 5.
  • PR #91367 build(deps): bump the actions group with 2 updates.
  • PR #91365 build(deps): bump the android-deps group in /apps/android with 3 updates.
  • PR #91496 chore: bump Codex app-server to 0.137.0. Thanks @RomneyDa.
  • PR #90666 fix(cron): cancel active cron task runs. Thanks @ai-hpc.
  • PR #90927 fix(doctor): report managed plugin version drift. Related #90891. Thanks @brokemac79.
  • PR #91531 perf(control-ui): reuse startup model metadata. Thanks @vincentkoc.
  • PR #91538 perf(control-ui): avoid startup catalog wait. Thanks @vincentkoc.
  • PR #91507 feat: canonicalize Codex protocol JSON asset ordering. Thanks @RomneyDa.
  • PR #91550 fix: bound native hook relay lifetime. Related #90993. Thanks @joshavant and @clem-git.
  • PR #89588 fix(telegram): restore /compact on generic message ingress. Related #89525. Thanks @joelnishanth and @cursoragent and @bomberluke37-prog.
  • PR #91529 Fix transcript image redaction. Related #90760. Thanks @joshavant and @devinkuhn.
  • PR #91551 Fix config.patch explicit array replacement. Thanks @joshavant.
  • PR #91568 perf(control-ui): trace first assistant event. Thanks @vincentkoc.
  • PR #85823 fix(whatsapp): route captured replies through successor controller after restart. Thanks @itsuzef and @mcaxtr.
  • PR #91574 feat: dogfood reusable ClawHub package publish. Thanks @Patrick-Erichsen.
  • PR #91583 perf(control-ui): warn on slow first replies. Thanks @vincentkoc.
  • PR #89659 fix(feishu): retry on send rate-limit errors (230020/230006). Related #70879. Thanks @ladygege and @marshallm-create and @sliverp and @AxelHu.
  • PR #91547 Fix Docker store seed target packages. Related #91035. Thanks @sallyom and @laurenceputra.
  • PR #91578 fix: make docs i18n frontmatter translation resilient. Thanks @hxy91819.
  • PR #91567 fix(openai): require api-key auth for realtime voice. Related #90456. Thanks @joshavant and @sergiopesch.
  • PR #91591 fix: let ClawHub dry runs skip publish approval. Thanks @Patrick-Erichsen.
  • PR #91598 perf(control-ui): lazy load slash commands. Thanks @vincentkoc.
  • PR #91580 fix(agents): trim dense text delta snapshots. Related #86599. Thanks @vincentkoc and @JakeBiggs.
  • PR #91425 fix(memory-lancedb): guard memory recall output [AI]. Thanks @pgondhi987.
  • PR #88969 fix(imessage): persist echo markers before send. Thanks @colmbrogan.
  • PR #91566 Fix stale main session startup recovery. Related #90525. Thanks @joshavant and @Tony-ooo.
  • PR #91324 fix(memory): move local llama.cpp runtime to provider plugin. Related #88705. Thanks @osolmaz and @Peilsender.
  • PR #91637 docs: include plugin prerelease in release validation approval.
  • PR #91649 fix(line): canonicalize trailing-slash webhook paths.
  • PR #91423 feat(qqbot): add /bot-group-allways command to toggle mention requirement. Thanks @cxyhhhhh and @sliverp.
  • PR #91642 fix(docs): continue partial i18n batches after file errors. Thanks @hxy91819.
  • PR #91661 chore(plugin-sdk): refresh API baseline hash.
  • PR #91665 docs: fix release CI Android dispatch guidance.
  • PR #89138 fix #88009: [Feature]: batched memory embedding should batch over files. Thanks @mushuiyu886 and @jalehman and @hartmark.
  • PR #91679 fix(plugin-sdk): align Discord component edit facade types. Thanks @vincentkoc.
  • PR #91686 fix(discord): restore runtime timeout compatibility exports. Thanks @vincentkoc.
  • PR #90212 fix(agents): deliver native /compact replies through source suppression. Thanks @snowzlm.
  • PR #91618 fix: expand unsafe host env denylist. Thanks @pgondhi987.
  • PR #91615 fix: block rustup toolchain env overrides [AI]. Thanks @pgondhi987.
  • PR #89851 fix(gateway): support Streamable HTTP MCP transport on loopback server. Thanks @anagnorisis2peripeteia.
  • PR #91619 fix: block git protocol env controls [AI]. Thanks @pgondhi987.
  • PR #91684 fix(mattermost): keep default replies in existing threads. Thanks @jacobtomlinson.
  • PR #90457 fix(models): persist agent catalog cache. Thanks @ai-hpc.
  • PR #91709 fix(status): restore Codex synthetic usage line. Related #91694. Thanks @brokemac79.
  • PR #89909 fix(tui): show connection host in footer. Related #56276. Thanks @baskduf and @deuxksy.
  • PR #89978 perf(config): dedupe plugin auto-enable fanout work. Thanks @ai-hpc.
  • PR #91219 fix(gateway): skip deleted-agent guard for ACP harness session keys. Thanks @scotthuang.
  • PR #90782 perf(tui): prewarm runtime plugins before first send. Thanks @RomneyDa.
  • PR #90838 fix(config): warn for retired skill-workshop plugin entry instead of failing validation (#90244). Thanks @lonexreb and @rogerallen1.
  • PR #91753 docs: clarify Matrix plugin upgrade repair. Thanks @RomneyDa.
  • PR #91755 docs: align Feishu DM policy defaults. Thanks @RomneyDa.
  • PR #91745 fix(discord): require sender for moderation actions [AI]. Thanks @eleqtrizit.
  • PR #85950 docs: clarify trusted-proxy Control UI scope behavior. Related #80063. Thanks @nielskaspers and @longstoryscott.
  • PR #91746 fix(msteams): require admin for group actions. Thanks @eleqtrizit.
  • PR #91256 feat(diagnostics-otel): capture tool input/output content via trusted channel. Thanks @amknight.
  • PR #91749 fix(gateway): restrict non-owner loopback tools. Thanks @eleqtrizit.
  • PR #91748 fix(elevated): reject group ids as senders. Thanks @eleqtrizit.
  • PR #91752 fix(codex): guard sandbox http requests. Thanks @eleqtrizit.
  • PR #91763 fix: require ACP metadata for deleted-agent bypass. Thanks @shakkernerd.
  • PR #91751 fix(mcp): harden stdio env filtering. Thanks @eleqtrizit.
  • PR #91765 Clarify env-var executable behavior reports in SECURITY.md. Thanks @jacobtomlinson.
  • PR #91480 fix(ui): require user intent for chat sessions. Related #89760. Thanks @TurboTheTurtle and @Takhoffman and @zdwalter.
  • PR #91777 docs: remove superpowers spec draft. Thanks @Patrick-Erichsen.
  • PR #91773 fix(mcp): lowercase SSE event-source header keys to prevent duplicate Authorization (401). Thanks @Takhoffman.
  • PR #91741 Validate sandbox bind parent paths [AI]. Thanks @mmaps.
  • PR #88530 fix(imessage): skip idle approval discovery scans. Thanks @colmbrogan and @omarshahine.
  • PR #91780 fix(ui): drain restored chat queue after session switch. Thanks @tmimmanuel.
  • PR #91750 fix(search): enforce native web search tool policy. Thanks @eleqtrizit.
  • PR #91757 fix(config): clarify retired skill workshop plugin warning. Thanks @RomneyDa.
  • PR #91787 fix(doctor): keep TTS legacy migration on supported paths.
  • PR #91783 fix(imessage): harden outbound send transport. Related #84329. Thanks @omarshahine and @TurboTheTurtle.
  • PR #91785 fix(imessage): surface inbound startup diagnostics. Thanks @omarshahine.
  • PR #91590 Fix context-engine compaction ownership for Codex sessions. Thanks @joshavant.
  • PR #91557 Improve iPad and iPhone control surfaces. Thanks @Solvely-Colin and @joshavant.
  • PR #91666 chore(deps): bump useblacksmith/setup-docker-builder from 1.8.0 to 1.9.0 in the actions group.
  • PR #91819 docs: link ClawHub plugin validation fixes guide. Thanks @Patrick-Erichsen.
  • PR #88630 fix(codex): avoid guardian review for local models. Thanks @vincentkoc.
  • PR #91830 feat: add OpenRouter OAuth to onboarding. Thanks @Patrick-Erichsen.
  • PR #91842 fix(plugin-sdk): refresh API baseline hash.
  • PR #91614 fix(gateway): surface headless LaunchAgent state. Thanks @fuller-stack-dev.
  • PR #91851 fix(memory-core): filter stale recall entries in REM harness preview. Thanks @vincentkoc.
  • PR #91859 fix(ci): disable memory slot in release smoke config. Thanks @vincentkoc.
  • PR #90004 [plugin sdk] Allow declared installed trusted hooks. Related #87735. Thanks @brokemac79 and @ryanhelms.
  • PR #91837 fix(memory-core): keep QMD JSON search one-shot. Related #91821. Thanks @TurboTheTurtle and @xpysgdhr.
  • PR #91871 Remove bundled channel contract fallbacks. Thanks @obviyus.
  • PR #91879 fix(ci): include ACPX in shared live-test image.
  • PR #91840 Fix stale visible reply recovery. Related #90535. Thanks @joshavant and @Jerry-Xin.
  • PR #91876 Fix Telegram callback API handling. Thanks @obviyus.
  • PR #91874 Share channel draft chunking resolver. Thanks @obviyus.
  • PR #91599 fix(update): expose plugin convergence repair. Thanks @fuller-stack-dev.
  • PR #91581 fix(update): recover package gateway restart after refresh failure. Thanks @fuller-stack-dev.
  • PR #91904 fix(telegram): use SDK dispatch dedupe. Thanks @obviyus.
  • PR #90263 fix(discord): hydrate reply context metadata. Thanks @fuller-stack-dev.
  • PR #91478 block unauthorized Telegram DM text from prompt context. Related #91209. Thanks @sallyom and @producedbysavant.
  • PR #91915 fix(telegram): audit follow-ups — block-mode chunk config, dedupe bucket cleanup, grammy contract trust. Thanks @obviyus.
  • PR #91361 fix(compaction): lower default timeout from 900s to 180s, preserve explicit config. Related #91358. Thanks @wangmiao0668000666 and @velvet-shark and @olveww-dot.
  • PR #91791 fix(sandbox): use materialized skill paths in startup prompts. Related #91761. Thanks @brokemac79 and @vincentkoc and @gbb-netizen.
  • PR #91736 Support existing-session browser CDP endpoints. Related #56118. Thanks @lifuyue and @mgrandau.
  • PR #91747 fix(browser): validate discovered CDP websocket URLs. Thanks @eleqtrizit.
  • PR #91882 feat(anthropic): support Claude Fable 5 adaptive thinking. Related #91805. Thanks @NOVA-Openclaw.
  • PR #91884 fix(memory): keep ignored-name QMD roots watchable. Thanks @vincentkoc.
  • PR #91740 fix(auth): verify SQLite auth migration before cleanup. Thanks @fuller-stack-dev and @velvet-shark.
  • PR #91451 fix(mcp): repair OAuth redirect, errors, and unicode schema patterns. Related #91433. Thanks @LiuwqGit and @cursoragent and @vincentkoc and @marcusbsorensen.
  • PR #91978 fix(gateway): arm qmd startup maintenance. Thanks @vincentkoc.
  • PR #90426 fix(talk): show OpenAI Realtime WebRTC assistant transcripts. Thanks @shushushv and @vincentkoc.
  • PR #91696 fix(agents): preserve reasoning_content replay for Gemma 4 openai-completions models. Related #91645. Thanks @Coder-Wangyankun and @bfox55.
  • PR #89938 Fail closed on exec approval timeout. Thanks @drobison00.
  • PR #91895 fix(webchat): finalize provider failure lifecycle. Related #91730. Thanks @TurboTheTurtle and @sallyom and @nikhilmaddirala.
  • PR #80143 fix(browser): honor cdpUrl for user default profile. Related #48042. Thanks @HemantSudarshan and @Max-Resilient.
  • PR #91688 fix(cron): reject cron expressions that have no reachable run time. Thanks @yetval and @vincentkoc.
  • PR #91737 fix(cron): use final-call usage for session token totals. Related #91716. Thanks @MonkeyLeeT and @vincentkoc and @yetval.
  • PR #89605 fix(process): return timeout code for killed commands. Thanks @ai-hpc.
  • PR #80013 perf(usage-cost-cache): throttle full-cache rewrites during refresh. Thanks @zeroaltitude.
  • PR #76731 Fix mobile Control UI chat layout. Thanks @Solvely-Colin.
  • PR #83738 fix(cron): capture originating session/agent on the cron wake tool call. Thanks @anagnorisis2peripeteia.
  • PR #85196 Redact tool output secrets. Thanks @amknight.
  • PR #92007 fix(security): block build tool env overrides. Thanks @eleqtrizit.
  • PR #91891 fix: preserve non-oneOf protocol schema array order. Thanks @RomneyDa.
  • PR #91754 fix(macos): hide unsupported Voice Wake controls. Related #89575. Thanks @RomneyDa and @cwhyhy.
  • PR #92049 test(ci): restore upgrade survivor session fixture. Thanks @vincentkoc.
  • PR #89670 fix: keep skill toggles keyed by skill identity. Related #89661. Thanks @s-moffett.
  • PR #91934 fix(state): tolerate chmod failures when opening the state database. Related #91919. Thanks @truffle-dev and @david-garcia-garcia.
  • PR #92051 fix(fal): parse raw completed queue results. Related #91989. Thanks @harjothkhara and @oswaldyeo.
  • PR #92047 fix(agents): prefer explicit sessions_send keys. Related #64699. Thanks @vincentkoc and @sunxq1017-hash.
  • PR #92020 fix(memory-core): check SQLite plugin state for dreaming ingestion audit after JSON migration (fixes #92017). Thanks @zenglingbiao and @JUMPUNDER.
  • PR #92032 fix(mcp): always log channel-bridge notification failures. Thanks @hansraj316.
  • PR #92033 fix(gateway): log swallowed background-task finalization errors. Thanks @hansraj316.
  • PR #92022 fix(sessions): derive channel from direct-chat session keys in send-policy. Thanks @hansraj316.
  • PR #91163 fix(xai): clarify x_search query guidance. Thanks @rubencu.
  • PR #90121 fix(memory): write dream fallback without subagent runtime. Thanks @a-m-a-r-a.
  • PR #91215 fix(ui): show prompt progress while sending. Related #91199. Thanks @zhangguiping-xydt and @vincentkoc and @Monniasza.
  • PR #92029 fix(tools): surface unsupported-signal in anyOf availability. Thanks @hansraj316.
  • PR #92034 perf(agents): memoize XML attribute regex in DSML stream parser. Thanks @hansraj316.
  • PR #92026 perf(agents): sanitize compaction messages once for token estimation. Thanks @hansraj316.
  • PR #91351 fix(opencode-go): add qwen plus tiered pricing. Related #91238. Thanks @849261680 and @vincentkoc and @samson910022.
  • PR #92027 fix(gateway): recover config hot-reload after watcher errors. Thanks @hansraj316.
  • PR #91471 feat(cron): add readable ISO time fields to cron runs JSON output. Thanks @FMLS and @cursoragent.
  • PR #91711 :bug: fix(agents): classify harness provider mismatch as format error (#91710). Thanks @a-tokyo.
  • PR #91292 fix(models): keep bundled provider catalog when configured base URL is blank (#91270). Thanks @yetval and @vincentkoc and @resYuto.
  • PR #91720 :bug: fix(openai): remove chatgpt-responses transport override from gpt-5.3-codex catalog entry. Related #91710. Thanks @a-tokyo.
  • PR #91305 fix(control-ui): make Control UI bootstrap config endpoint base-path-relative (#66946). Thanks @Alix-007 and @vincentkoc and @yndwx01.
  • PR #92056 fix(exec): honor state dir approvals. Thanks @vincentkoc.
  • PR #91897 fix(memory): self-heal missing index identity by initializing provider during sync. Thanks @xydt-tanshanshan and @vincentkoc.
  • PR #91802 fix(diagnostics): release wedged session lane when stuck-session recovery aborts a run with queued session work. Related #91700. Thanks @openperf and @infocus13.
  • PR #92030 fix(cron): structural top-of-hour match in stagger heuristic. Thanks @hansraj316 and @vincentkoc.
  • PR #92055 fix(media): resolve state-relative inbound attachments. Thanks @sercada and @vincentkoc.
  • PR #91962 fix(agent): dampen Discord stale thread replies. Thanks @RomneyDa.
  • PR #90912 fix(agents): honor configured CLI resume timeouts. Thanks @ai-hpc and @vincentkoc.
  • PR #91296 fix: hand off supervised git updates. Thanks @abnershang.
  • PR #91950 fix(web_fetch): sanitize URL whitespace from LLM tool call arguments (fixes #91651). Thanks @zenglingbiao and @vincentkoc and @akang1798.
  • PR #77367 fix(discord): scope command-deploy cache by application id. Related #77359. Thanks @lonexreb and @sallyom and @igmarketing.
  • PR #91976 feat(auto-reply): durable inter-tool commentary via verbose standalone progress (supersedes #89850/#89890). Thanks @anagnorisis2peripeteia.
  • PR #90128 fix(sessions): preserve user /model override across daily/idle session rollover (#90119). Thanks @Marvinthebored.
  • PR #92084 fix(clickclack): allow explicit enable through plugin allowlist.
  • PR #92092 fix(auto-reply): stop dropping claude-cli narration when commentary lane is off. Thanks @ragesaq.
  • PR #92123 #92109: [Bug]: EmbeddedAttemptSessionTakeoverError caused by Btrfs ctimeNs instability. Thanks @lzyyzznl and @vincentkoc and @recruits.
  • PR #92136 fix(feishu): reply inside P2P direct-message threads. Thanks @LiaoyuanNing and @vincentkoc.
  • PR #92121 fix(memory): preserve live SQLite index during swaps. Related #91216. Thanks @xydt-tanshanshan and @chrisreddington.
  • PR #90173 fix(agents): stabilize a2a prompt cache context. Thanks @Sunjae-k and @sunjae-1.
  • PR #91974 fix(cli-runner): scope claude-cli queue to live-session owner identity (#91946). Thanks @wangwllu.
  • PR #92053 fix(thinking): apply Claude profile to anthropic-messages catalog rows. Related #91975. Thanks @wangwllu.
  • PR #41991 Google: show detailed Gemini CLI OAuth extraction failures. Thanks @bgmbgm94.
  • PR #92074 fix(qqbot): flush tool output before silent non-streaming final. Thanks @sliverp.
  • PR #89508 fix(models): clarify provider model registration hint. Related #89192. Thanks @sweetcornna and @aaajiao.
  • PR #89085 fix(agents): keep migrated session entry ids unique on v1 upgrade. Thanks @yetval.
  • PR #89552 fix(discord): clean migrated thread binding state. Thanks @SYU8384.
  • PR #89448 fix(cron): reject durations that overflow to a non-finite value. Related #83906. Thanks @Alix-007 and @davinci282828.
  • PR #89319 fix(doctor): warn on unsupported hook entry loaders. Related #89309. Thanks @leno23 and @vincentkoc and @CameronWeller.
  • PR #91966 fix(config): stop config.patch replacePaths index suffix from widening array consent. Thanks @yetval and @vincentkoc.
  • PR #92127 fix(plugins): rescan storm in "/models" call (regression shipped since v2026.5.18). Thanks @obuchowski.
  • PR #91657 fix(ollama): use provider thinking default in SDK session factory. Related #91428. Thanks @openperf and @vincentkoc and @anijatsu.
  • PR #91742 fix(memory): abort orphaned embedding work when memory_search times out. Related #91718. Thanks @dreamhunter2333 and @vincentkoc and @NOVA-Openclaw.
  • PR #89091 fix(memory-core): retry narrative message reads. Thanks @bennewell35.
  • PR #92150 fix(release): gate beta publish on plugin verification. Thanks @vincentkoc.
  • PR #92158 fix(cli): validate gateway RPC timeout inputs. Thanks @ruanrrn and @comeran.
  • PR #91911 fix(agents): retry same model across short rate-limit windows. Thanks @lanzhi-lee.

Release verification

  • npm package: https://www.npmjs.com/package/openclaw/v/2026.6.6
  • registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.6.tgz
  • integrity: sha512-oMYoQ8a7zummw1tD+AX98yYLzqoq0tQmYWHG65AA0ZivgzmOb2oD0cVdhcWP9IT3opkHdJ5vBdWywUe6xWQXtw==
  • release SHA: 8c802aa683510c7f7503597b54c3021733245e59
  • full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.6/release-evidence.md
  • release publish: https://github.com/openclaw/openclaw/actions/runs/27411250030
  • npm preflight: https://github.com/openclaw/openclaw/actions/runs/27396521799
  • full release validation: https://github.com/openclaw/openclaw/actions/runs/27396520911
  • plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27411419408
  • plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/27411423316
  • OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27411547994
  • npm Telegram beta E2E: not supplied