← BackGitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗GitHub ↗
OpenClaw Official Changelog
Source: github.com/openclaw/openclaw ↗, auto-synced hourly
v2026.8.1-beta.2pre-release2026-08-15
OpenClaw 2026.8.1-beta.2
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.
- ·**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.
- ·**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.
- ·**SQLite snapshots:** add `openclaw backup sqlite create|list|verify|restore` for compact, verified global and per-agent database artifacts with fresh-target-only restore.
- ·**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.
- ·**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.
- ·**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.
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.
- ·**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.
- ·**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.
- ·**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.
- ·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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**External gateway supervision:** add `OPENCLAW_SUPERVISOR_MODE=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.
- ·**Buzz message fidelity:** preserve Markdown output and accept Buzz normal, rich-content, and structured-diff room messages through the existing authorized inbound path.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**Control UI coding catalogs:** show provider brand icons beside Claude Code and Codex session catalog headings in the sidebar.
- ·**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)
- ·**SQLite snapshots:** add `openclaw backup sqlite create|list|verify|restore` for compact, verified global and per-agent database artifacts with fresh-target-only restore.
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**Gateway host status:** show the connected Gateway's host, network address, OS, runtime, uptime, CPU, memory, and disk details in Control UI Settings.
- ·**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.
- ·**Control UI Settings shortcut:** open Settings with ⇧⌘, while leaving the browser-owned ⌘, shortcut unchanged.
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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.
- ·**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)
Fixes
- ·**Codex subagent fan-out:** settle successful terminal yields immediately and preserve requester ownership so completed children reliably resume their parent.
- ·**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
- ·**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.
- ·**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
- ·**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
- ·**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
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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
- ·**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)
- ·**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.
- ·**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
- ·**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
- ·**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
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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
- ·**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
- ·**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.
- ·**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.
- ·**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
- ·**Codex native subagent handoff:** tell Codex harness turns to use `sessions_yield` for later-turn child completion delivery, reserve `wait_agent` for immediately blocked same-turn steps, and omit the guidance when yielding is unavailable. Fixes #115443
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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
- ·**Standalone plugin files:** let manifestless files explicitly listed in `plugins.load.paths` pass config validation and load independently when several files share a directory.
- ·**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.
- ·**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.
- ·**Reef startup reconciliation:** contain retryable relay failures during startup without supervisor restart loops, while preserving definitive-error and cancellation handling.
- ·**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.
- ·**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 (
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**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
- ·**Tlon SSE connect cleanup:** disarm opening deadlines after failed HTTP responses and rejected stream opens so reconnect attempts cannot leave stale timers behind.
- ·**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.
- ·**Mattermost websocket connection deadlines:** bound opening handshakes so stalled TCP peers cannot hang channel startup indefinitely and reconnect control resumes after timeout.
- ·**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
- ·**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.
- ·**LINE control-command mentions:** detect authorized slash commands before mention stripping so inline group and direct-message controls preserve the original ingress metadata.
- ·**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.
- ·**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.
- ·**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.
- ·**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
- ·**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.
- ·**Mattermost progress command details:** accept the documented `streaming.preview.commandText` and `streaming.progress.commandText` modes in channel config validation and bundled metadata.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**Nested resource ignores:** honor slash-free patterns and escaped literal exclamation marks in nested ignore files during skill and resource discovery.
- ·**Proxy bypass precedence:** honor blank lower-case `no_proxy` values shadowing upper-case `NO_PROXY` 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.
- ·**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.
- ·**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
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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
- ·**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)
- ·**Transcript read failures:** propagate permission and I/O failures from streaming JSONL session reads instead of treating unreadable transcripts as empty.
- ·**Restart sentinel diagnostics:** report SQLite read/write and legacy-file cleanup failures while preserving best-effort restart recovery behavior.
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**LINE directive templates:** suppress confirms and buttons with blank required fields or unlabeled actions while preserving valid titleless buttons and surrounding reply text. (#105520)
- ·**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)
- ·**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.
- ·**Swabble status config:** honor the global `--config` path when reading service status instead of silently using the default configuration.
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**Channel ingress recovery:** tombstone and scrub malformed durable ingress payloads without letting corrupt rows hide or starve later valid messages.
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**Gateway chat typecheck:** import chat event types from their owning protocol schema after the retired aggregate type module was removed, restoring full project typechecks.
- ·**Packaged Crabbox commands:** include the lease-freshness helper imported by the published wrapper so `crabbox:*` commands do not fail with `ERR_MODULE_NOT_FOUND` in npm installs.
- ·**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.
- ·**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)
- ·**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)
- ·**Outbound channel bootstrap:** suppress repeated failed plugin activation for the same channel, config, and registry generation while retrying after config or registry reloads. (#100377)
- ·**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)
- ·**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)
- ·**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)
- ·**Telegram reasoning previews:** reposition split reasoning previews through deferred deletion so prior preview messages do not remain stale while preserving client scroll position. (#97828)
- ·**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)
- ·**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)
- ·**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)
- ·**Canvas A2UI validation:** reject malformed or unsupported JSONL at CLI, agent-tool, and final node-invoke boundaries while preserving native v0.8 dispatch. (#103713)
- ·**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)
- ·**ClickClack output sanitization:** strip internal tool and XML scaffolding at the sender boundary, suppress scaffold-only sends, and preserve optional modern delivery IDs. (#103142)
- ·**CLI installer cleanup:** remove Node staging directories and pnpm workspace-rewrite temporary files on failure.
- ·**Agent-core truncation:** avoid empty-output crashes when head truncation receives negative line or byte ceilings. (#103425)
- ·**Windows Node resolution:** preserve the current executable when resolving bare case-insensitive `node.exe` entries under hostile `PATH` values. (#103907)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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 `OPENCLAW_STATE_DIR` points elsewhere, keep implicit CLI preflight notice-only, and reserve cross-state imports for direct operator doctor runs. (#103247, #103317)
- ·**Doctor clean-state guidance:** stop suggesting `openclaw doctor --fix` after a clean run with no config changes while preserving targeted repair hints. (#103233)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**Direct poll delivery:** route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks.
- ·**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.
- ·**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.
- ·**Microsoft Teams Graph response bounds:** cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit.
- ·**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)
- ·**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 `spawn_agent` through `tool_search` so native subagent task mirroring works on search-capable models.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**CJK Markdown emphasis:** render adjacent Chinese, Japanese, and Korean emphasis punctuation through the shared Markdown pipeline instead of leaking literal markers across channels. (#101120)
- ·**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. .
- ·**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.
- ·**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)
- ·**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)
- ·**Discord streamed finals:** send completion replies as fresh messages so inactive channels become unread, while preserving targeted mentions without escalating `@everyone` or `@here`. (#99662)
- ·**OpenAI-compatible SSE parsing:** recognize event streams mislabeled as JSON without prepending a second `data:` prefix, preserving valid streamed responses from non-conforming providers.
- ·**LM Studio embedding preload:** honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures.
- ·**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.
- ·**Microsoft Teams attachment metadata:** bound Bot Framework `attachmentInfo` JSON reads and cancel oversized streams before they can exhaust Gateway memory.
- ·**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.
- ·**Memory session repair:** keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so `memory status --fix` preserves healthy daily state.
- ·**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)
- ·**Config unset diagnostics:** explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion.
- ·**Crestodian command probes:** contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes.
- ·**Feishu mention forwarding:** fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions.
- ·**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.
- ·**Control UI session creation:** keep newly created sessions at the front of the stable sidebar order after selecting another session.
- ·**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.
- ·**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. (#77440)
- ·**Control UI inbound image previews:** render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#89591)
- ·**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.
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**Control UI coalesced updates:** show a clear queued-restart completion banner when an update joins an already-running Gateway restart.
- ·**Control UI connection errors:** preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged.
- ·**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.
- ·**Control UI restart recovery:** recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts.
- ·**TUI active Gateway ports:** follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#42461)
- ·**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.
- ·**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.
- ·**Phone identity normalization:** canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing.
- ·**Tlon scry response bounds:** cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses.
- ·**Source build portability:** keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory.
- ·**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.
- ·**Gateway event dispatch:** catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections.
- ·**Ollama fallback routing:** classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance.
- ·**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.
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**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.
- ·**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)
- ·**Control UI approval prompts:** keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects.
- ·**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.
- ·**Anthropic OAuth callbacks:** keep the provider-required `localhost` redirect URI stable while allowing the local callback listener to bind an explicit loopback host.
- ·**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. .
- ·**Control UI Skills filters:** align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. .
- ·**Control UI completed-run state:** bind active and completed updates to run identities so stale completions keep Send available while newer runs remain active. .
- ·**Control UI context usage:** keep stale cached totals visible as approximate without triggering warning styling or Compact actions.
- ·**Control UI file previews:** remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. .
- ·**Control UI autonomous tool failures:** preserve an earlier Tool error outcome across later autonomous recovery turns. .
- ·**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.
- ·**Child process output safety:** prevent stdout/stderr pipe failures from crashing agent exec sessions, local TUI shell commands, and bounded process execution. .
- ·**Docker sandbox command output:** fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output.
- ·**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. .
- ·**Skill scan diagnostics:** report directory enumeration failures through the existing resource diagnostics instead of silently dropping affected skills.
- ·**Exec output sanitization:** remove complete ANSI sequences and render residual C0/C1 controls as visible escapes instead of silently discarding output bytes.
- ·**Assistant visible text:** unwrap leaked standalone `<parameter>` tags while preserving their content and literal code/XML examples.
- ·**Android microphone capture:** treat negative `AudioRecord.read` results as fatal shared-session errors so both transcription and Talk capture stop cleanly after device loss.
- ·**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)
- ·**Lean local-model tools:** trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins.
- ·**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.
- ·**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.
- ·**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.
- ·**Control UI tool-result images:** render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic.
- ·**Control UI live tool ordering:** keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree.
- ·**Plugin approval diagnostics:** distinguish request validation rejections, expired wait decisions, and unavailable Gateways while keeping approval failures fail-closed.
- ·**IRC Unicode messages:** split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates.
- ·**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.
- ·**Realtime voice tools:** filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names.
- ·**Discord voice status:** treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures.
- ·**Discord voice accounts:** isolate `@discordjs/voice` connections by Discord account and recover auto-join when gateway readiness predates listener registration.
- ·**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.
- ·**Skill workshop proposals:** preserve the terminal newline in generated proposal Markdown while still rejecting blank raw content.
- ·**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. .
- ·**Gateway and memory diagnostics:** report failed start-session persistence and close-time memory work instead of silently discarding those failures. .
- ·**Unicode and plugin package verification:** match native slice semantics for reversed UTF-16 bounds, and reject published plugin packages that omit `openclaw.plugin.json`. .
- ·**Android invoke cancellation:** preserve coroutine cancellation through camera handlers and the Gateway invoke boundary so cancelled work cannot emit a stale result.
- ·**Codex native hook relay diagnostics:** avoid bridge registry writes before the local relay server begins listening.
- ·**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.
- ·**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.
- ·**WhatsApp credential recovery:** restore malformed primary auth state from a valid backup during startup.
- ·**WhatsApp quoted replies:** preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop.
- ·**WhatsApp reconnect catch-up:** admit recently missed Baileys `append` messages during a bounded reconnect window while preserving startup stale-history guards.
- ·**WhatsApp restart recovery:** stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects.
- ·**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)
- ·**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.
- ·**Shell completion repair:** generate core-only caches during doctor and update repair while preserving full plugin command completion for onboarding and explicit user rebuilds.
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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.
- ·**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.
- ·**TUI streaming:** render delta-only assistant events in live Gateway and embedded TUI sessions instead of waiting for the final response.
- ·**Model aliases:** resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias.
- ·**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)
- ·**TUI abort diagnostics:** show sanitized tool argument-validation summaries for aborted runs in both Gateway and local TUI modes without exposing raw model arguments.
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**Discord thread-title prompts:** truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**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)
Complete contribution record
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-22026-08-04
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-12026-08-04
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)
- ·**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)
- ·**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.342026-08-08
openclaw 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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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:** `before_agent_start`, 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](/plugins/sdk-migration) and [plugin manifests](/plugins/manifest).
Complete contribution record
- ·**PR #96100** Related #95915.
- ·**PR #79811** Related #79753.
- ·**PR #97041**
- ·**PR #97128** Related #96518.
- ·**PR #90908**
- ·**PR #97958**
- ·**PR #98260**
- ·**PR #99803**
- ·**PR #99067** Related #99066.
- ·**PR #100521**
- ·**PR #100910**
- ·**PR #102125**
- ·**PR #38290** Related #46520.
- ·**PR #103075**
- ·**PR #104919** Related #104903.
- ·**PR #107754** Related #98633, #102932, #105427.
- ·**PR #109108**
- ·**PR #105017**
- ·**PR #109590**
- ·**PR #110693**
- ·**PR #110954**
- ·**PR #103793**
- ·**PR #94016** Related #94008.
- ·**PR #112406**
- ·**PR #107938**.
Release verification
- ·npm package: [`openclaw@2026.6.34`](https://www.npmjs.com/package/openclaw/v/2026.6.34)
- ·npm registry tarball: [`openclaw-2026.6.34.tgz`](https://registry.npmjs.org/openclaw/-/openclaw-2026.6.34.tgz)
- ·npm integrity: `sha512-Rm4khBrWn9HYqE99NBryCFgjwlsIuwBqK5jIANn2773CGXJ1JIZkDn5twEHB+8SVFdh0FPNPHRVgZepzNJDfHg==`
- ·npm signatures and [SLSA provenance attestation](https://registry.npmjs.org/-/npm/v1/attestations/openclaw@2026.6.34) are published
- ·Container images: [GHCR](https://github.com/openclaw/openclaw/pkgs/container/openclaw) and [Docker Hub](https://hub.docker.com/r/openclaw/openclaw/tags?name=2026.6.34), with exact tags `2026.6.34`, `2026.6.34-slim`, and `2026.6.34-browser` for amd64 and arm64
- ·Container manifest digests: default/slim `sha256:47d342bafe83bd3b2dca6f1d8d8b608ba7b542a1952564960648943346206759`; browser `sha256:55203a7abced818c0378aac0a128a2fceee5448c08f36be7e0058762a3b3ff41`. The matching `extended-stable`, `extended-stable-slim`, and `extended-stable-browser` aliases resolve to those same digests in both registries.
- ·Release commit: [`5c38f996d4059ebd9080cf74dc611ec3a17f4d50`](https://github.com/openclaw/openclaw/commit/5c38f996d4059ebd9080cf74dc611ec3a17f4d50)
- ·Successful release workflows: [npm preflight](https://github.com/openclaw/openclaw/actions/runs/30904124224), [Full Release Validation](https://github.com/openclaw/openclaw/actions/runs/30904149739), [plugin npm publish](https://github.com/openclaw/openclaw/actions/runs/30916791876), and [Docker Release](https://github.com/openclaw/openclaw/actions/runs/30916780768)
v2026.7.2-beta.7pre-release2026-08-02
openclaw 2026.7.2-beta.7
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Buzz messaging:** preserve Markdown and structured room content, then add room- and thread-scoped typing indicators with reconnect-safe lifecycle handling. (#116096, #116194)
- ·**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)
- ·**DuckDuckGo search:** move DuckDuckGo search into the plugin boundary so provider ownership, installation, and runtime behavior stay outside core. (#116740)
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Compaction and response delivery:** account for CJK text in compaction estimates and treat `no_compactable_entries` as a benign skip. (#114386; related #103930; #114449; related #114385)
- ·**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)
- ·**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)
Complete contribution record
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.6pre-release2026-08-01
openclaw 2026.7.2-beta.6
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Buzz messaging:** preserve Markdown and structured room content, then add room- and thread-scoped typing indicators with reconnect-safe lifecycle handling. (#116096, #116194)
- ·**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)
- ·**DuckDuckGo search:** move DuckDuckGo search into the plugin boundary so provider ownership, installation, and runtime behavior stay outside core. (#116740)
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Compaction and response delivery:** account for CJK text in compaction estimates and treat `no_compactable_entries` as a benign skip. (#114386; related #103930; #114449; related #114385)
- ·**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)
- ·**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)
Complete contribution record
v2026.7.2-beta.5pre-release2026-07-28
openclaw 2026.7.2-beta.5
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Compaction and response delivery:** account for CJK text in compaction estimates and treat `no_compactable_entries` as a benign skip. (#114386; related #103930; #114449; related #114385)
- ·**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)
- ·**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)
Complete contribution record
- ·**PR #107116** Related #107106.
- ·**PR #107147**
- ·**PR #107148**
- ·**PR #107123**
- ·**PR #107146**
- ·**PR #107142**
- ·**PR #107156**
- ·**PR #107150**
- ·**PR #104259**
- ·**PR #107151**
- ·**PR #107157**
- ·**PR #106899** Related #106838.
- ·**PR #106995**
- ·**PR #107086**
- ·**PR #107072**
- ·**PR #107103**
- ·**PR #107165**
- ·**PR #106384**
- ·**PR #107169**
- ·**PR #107168**
- ·**PR #107101**
- ·**PR #107174**
- ·**PR #107178**
- ·**PR #107189**
- ·**PR #107190**
- ·**PR #96554**
- ·**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.
- ·**PR #107181**
- ·**PR #107212**
- ·**PR #107208**
- ·**PR #107233**
- ·**PR #107235**
- ·**PR #107050** Related #105512.
- ·**PR #107198**
- ·**PR #107241**
- ·**PR #107232**
- ·**PR #103918**
- ·**PR #107245**
- ·**PR #107167**
- ·**PR #106479** Related #105530.
- ·**PR #107162** Related #107112.
- ·**PR #107247**
- ·**PR #103914**
- ·**PR #107249**
- ·**PR #107254**
- ·**PR #107259**
- ·**PR #107258**
- ·**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**
- ·**PR #107291**
- ·**PR #107214**
- ·**PR #107293**
- ·**PR #107296**
- ·**PR #107298**
- ·**PR #107307**
- ·**PR #107301**
- ·**PR #107272**
- ·**PR #101253**
- ·**PR #106178**
- ·**PR #107312**
- ·**PR #107310**
- ·**PR #107297**
- ·**PR #107025**
- ·**PR #107319**
- ·**PR #107236**
- ·**PR #107321**
- ·**PR #107326**
- ·**PR #107328**
- ·**PR #107331**
- ·**PR #107238** Related #106875.
- ·**PR #107316**
- ·**PR #106498**
- ·**PR #107332**
- ·**PR #99404**
- ·**PR #107193**
- ·**PR #102271**
- ·**PR #107340**
- ·**PR #107342**
- ·**PR #105001**
- ·**PR #107345**
- ·**PR #107338**
- ·**PR #107311**
- ·**PR #105883**
- ·**PR #107353**
- ·**PR #107351**
- ·**PR #107337**
- ·**PR #107354**
- ·**PR #107357**
- ·**PR #107349** Related #107313.
- ·**PR #107288** Related #107246.
- ·**PR #107358**
- ·**PR #107370**
- ·**PR #107361** Related #107335.
- ·**PR #107188**
- ·**PR #107379**
- ·**PR #107380**
- ·**PR #107383**
- ·**PR #106997**
- ·**PR #107385**
- ·**PR #107387**
- ·**PR #107336** Related #107318.
- ·**PR #107390**
- ·**PR #107339** Related #107322.
- ·**PR #107392**
- ·**PR #107382**
- ·**PR #107396**
- ·**PR #107356**
- ·**PR #107371**
- ·**PR #107398**
- ·**PR #107395**
- ·**PR #107400**
- ·**PR #107377**
- ·**PR #107381**
- ·**PR #107373**
- ·**PR #107365**
- ·**PR #107407**
- ·**PR #107386**
- ·**PR #107405**
- ·**PR #107410** Related #107406.
- ·**PR #107409** Related #22676.
- ·**PR #107360**
- ·**PR #107412**
- ·**PR #107414**
- ·**PR #107348**
- ·**PR #107417**
- ·**PR #107420**
- ·**PR #107421**
- ·**PR #106359** Related #106229.
- ·**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.
- ·**PR #107455**
- ·**PR #107456**
- ·**PR #107457**
- ·**PR #107424**
- ·**PR #107460**
- ·**PR #107458**
- ·**PR #107459**
- ·**PR #105886**
- ·**PR #107462**
- ·**PR #107470**
- ·**PR #107472**
- ·**PR #107475**
- ·**PR #107476**
- ·**PR #107483**
- ·**PR #107474**
- ·**PR #107485**
- ·**PR #107402**
- ·**PR #107540**
- ·**PR #107542**
- ·**PR #107477**
- ·**PR #107545**
- ·**PR #107548**
- ·**PR #104216**
- ·**PR #107553**
- ·**PR #107554**
- ·**PR #107560**
- ·**PR #107567**
- ·**PR #107569**
- ·**PR #107563**
- ·**PR #107570**
- ·**PR #107369**
- ·**PR #107572**
- ·**PR #107576**
- ·**PR #107578**
- ·**PR #106066**
- ·**PR #107451**
- ·**PR #107043**
- ·**PR #102068** Related #101789.
- ·**PR #107583**
- ·**PR #107584**
- ·**PR #107585**
- ·**PR #107561**
- ·**PR #107422** Related #103309.
- ·**PR #102114**
- ·**PR #107594**
- ·**PR #89821**
- ·**PR #107602**
- ·**PR #107481**
- ·**PR #107573**
- ·**PR #107599**
- ·**PR #107612**
- ·**PR #107419**
- ·**PR #106035**
- ·**PR #107618**
- ·**PR #107621**
- ·**PR #78022**
- ·**PR #107613**
- ·**PR #107577** Related #107216.
- ·**PR #107229**
- ·**PR #107606**
- ·**PR #107637**
- ·**PR #107640**
- ·**PR #107144**
- ·**PR #107636**
- ·**PR #107234**
- ·**PR #104708** Related #102391.
- ·**PR #107652**
- ·**PR #107315**
- ·**PR #107654**
- ·**PR #107263**
- ·**PR #107646**
- ·**PR #107364** Related #107289.
- ·**PR #107243** Related #107133.
- ·**PR #107191**
- ·**PR #107653**
- ·**PR #107625** Related #107624.
- ·**PR #107616**
- ·**PR #107143**
- ·**PR #107665**
- ·**PR #107675**
- ·**PR #107678**
- ·**PR #107598**
- ·**PR #107674** Related #107669.
- ·**PR #104120**
- ·**PR #107689**
- ·**PR #102197**
- ·**PR #107690**
- ·**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**
- ·**PR #107714**
- ·**PR #107715**
- ·**PR #107716**
- ·**PR #107724**
- ·**PR #107726**
- ·**PR #107697** Related #107685.
- ·**PR #106258** Related #106249.
- ·**PR #107730**
- ·**PR #107723**
- ·**PR #107728**
- ·**PR #94494** Related #94482.
- ·**PR #107733**
- ·**PR #107670** Related #104294.
- ·**PR #99394** Related #97074.
- ·**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**
- ·**PR #107760**
- ·**PR #104901**
- ·**PR #107763**
- ·**PR #107767**
- ·**PR #107759** Related #107755.
- ·**PR #107454**
- ·**PR #107774**
- ·**PR #107775**
- ·**PR #107776**
- ·**PR #107772**
- ·**PR #106484**
- ·**PR #104940** Related #104762.
- ·**PR #107779**
- ·**PR #107768**
- ·**PR #107777** Related #107769.
- ·**PR #107784**
- ·**PR #107781**
- ·**PR #104629**
- ·**PR #107783**
- ·**PR #105066**
- ·**PR #107762**
- ·**PR #107634**
- ·**PR #107780**
- ·**PR #107796**
- ·**PR #107789** Related #107766.
- ·**PR #107764**
- ·**PR #107807** Related #107684.
- ·**PR #107808**
- ·**PR #107801**
- ·**PR #107791** Related #107782.
- ·**PR #101708**
- ·**PR #107817**
- ·**PR #107806**
- ·**PR #107819**
- ·**PR #107826**
- ·**PR #107633**
- ·**PR #107794**
- ·**PR #107827**
- ·**PR #107799** Related #106594.
- ·**PR #107828**
- ·**PR #107830**
- ·**PR #104824**
- ·**PR #107803**
- ·**PR #107822**
- ·**PR #107809**
- ·**PR #107837**
- ·**PR #107838**
- ·**PR #107848** Related #107840.
- ·**PR #107849**
- ·**PR #107793**
- ·**PR #107294** Related #106604.
- ·**PR #107859**
- ·**PR #107854**
- ·**PR #107858**
- ·**PR #107862**
- ·**PR #107844**
- ·**PR #107754** Related #98633, #102932, #105427.
- ·**PR #107836**
- ·**PR #107869**
- ·**PR #107870**
- ·**PR #107884**
- ·**PR #107874**
- ·**PR #107471**
- ·**PR #107887**
- ·**PR #107893**
- ·**PR #107865**
- ·**PR #107892**
- ·**PR #107900**
- ·**PR #107820** Related #107818.
- ·**PR #107898**
- ·**PR #107773** Related #107770.
- ·**PR #107907**
- ·**PR #107912**
- ·**PR #107913**
- ·**PR #107798** Related #107797.
- ·**PR #107923**
- ·**PR #107924**
- ·**PR #107688** Related #107627.
- ·**PR #95996**
- ·**PR #107906**
- ·**PR #107936**
- ·**PR #107940**
- ·**PR #107949**
- ·**PR #107951**
- ·**PR #107953**
- ·**PR #107954**
- ·**PR #107932**
- ·**PR #107927**
- ·**PR #107908**
- ·**PR #107965**
- ·**PR #107966**
- ·**PR #107699**
- ·**PR #107938**
- ·**PR #107700**
- ·**PR #107701**
- ·**PR #107702**
- ·**PR #107973**
- ·**PR #107960**
- ·**PR #107543**
- ·**PR #107778** Related #107736.
- ·**PR #106959**
- ·**PR #107786**
- ·**PR #107993**
- ·**PR #107987**
- ·**PR #108003**
- ·**PR #107997** Related #107992.
- ·**PR #107604** Related #105683.
- ·**PR #108008**
- ·**PR #107317**
- ·**PR #107961**
- ·**PR #107771** Related #106933.
- ·**PR #104516**
- ·**PR #107066**
- ·**PR #108013**
- ·**PR #108017**
- ·**PR #107989** Related #104108.
- ·**PR #106473**
- ·**PR #107977**
- ·**PR #107969**
- ·**PR #107955**
- ·**PR #105470**
- ·**PR #107063** Related #106189.
- ·**PR #106826** Related #106379.
- ·**PR #107976**
- ·**PR #107983**
- ·**PR #108020**
- ·**PR #106293**
- ·**PR #107285**
- ·**PR #107703**
- ·**PR #107970** Related #107952.
- ·**PR #108004**
- ·**PR #107985**
- ·**PR #108026**
- ·**PR #108022**
- ·**PR #107948**
- ·**PR #106397**
- ·**PR #105584** Related #103078.
- ·**PR #107926** Related #107850.
- ·**PR #107894**
- ·**PR #108038**
- ·**PR #108037**
- ·**PR #108018** Related #108016.
- ·**PR #107718**
- ·**PR #107393**
- ·**PR #108040**
- ·**PR #108045**
- ·**PR #104853**
- ·**PR #108052**
- ·**PR #108041**
- ·**PR #108043**
- ·**PR #108048**
- ·**PR #106737**
- ·**PR #108051**
- ·**PR #108046**
- ·**PR #107881**
- ·**PR #106395**
- ·**PR #108054**
- ·**PR #106994** Related #106870.
- ·**PR #108057** Related #108055.
- ·**PR #108047**
- ·**PR #108067**
- ·**PR #108032**
- ·**PR #108058**
- ·**PR #103369**
- ·**PR #108076**
- ·**PR #108042** Related #106556, #106778.
- ·**PR #108062** Related #108027, #108028.
- ·**PR #108015**
- ·**PR #107863** Related #107526.
- ·**PR #108078**
- ·**PR #104430**
- ·**PR #108034**
- ·**PR #108099**
- ·**PR #108095**
- ·**PR #107404**
- ·**PR #108093**
- ·**PR #107717**
- ·**PR #108096**
- ·**PR #108090**
- ·**PR #107638**
- ·**PR #108111**
- ·**PR #105381** Related #105380.
- ·**PR #108108**
- ·**PR #92294**
- ·**PR #108112**
- ·**PR #108118**
- ·**PR #108113**
- ·**PR #108035**
- ·**PR #108125**
- ·**PR #108105** Related #95597, #97913, #99268, #106277.
- ·**PR #108132**
- ·**PR #108123** Related #108097, #108098.
- ·**PR #108139**
- ·**PR #108121**
- ·**PR #108100** Related #107290.
- ·**PR #108129**
- ·**PR #108009**
- ·**PR #107719**
- ·**PR #108101**
- ·**PR #108091**
- ·**PR #108094**
- ·**PR #107478**
- ·**PR #106926**
- ·**PR #108150**
- ·**PR #103589**
- ·**PR #108138**
- ·**PR #108115**
- ·**PR #108122**
- ·**PR #108159**
- ·**PR #108162**
- ·**PR #108137**
- ·**PR #108170**
- ·**PR #108158**
- ·**PR #108146**
- ·**PR #103604**
- ·**PR #108081**
- ·**PR #108169**
- ·**PR #108171**
- ·**PR #108179**
- ·**PR #108173**
- ·**PR #108147** Related #102930.
- ·**PR #108074**
- ·**PR #107903**
- ·**PR #108145**
- ·**PR #108019**
- ·**PR #108191**
- ·**PR #108102**
- ·**PR #108151**
- ·**PR #108181**
- ·**PR #108201**
- ·**PR #107986**
- ·**PR #108203**
- ·**PR #108219**
- ·**PR #108202**
- ·**PR #108221**
- ·**PR #108210**
- ·**PR #108223**
- ·**PR #108130**
- ·**PR #108227**
- ·**PR #108205**
- ·**PR #108234**
- ·**PR #108228**
- ·**PR #108248**
- ·**PR #108207**
- ·**PR #108214**
- ·**PR #108164**
- ·**PR #108239**
- ·**PR #108243**
- ·**PR #108240**
- ·**PR #108153**
- ·**PR #86386** Related #48949.
- ·**PR #97827** Related #95109.
- ·**PR #105780** Related #105787.
- ·**PR #108260**
- ·**PR #107442**
- ·**PR #95729**
- ·**PR #108259**
- ·**PR #108254** Related #96815, #100556, #106375.
- ·**PR #108264**
- ·**PR #108261**
- ·**PR #108266**
- ·**PR #108275**
- ·**PR #108189**
- ·**PR #108282**
- ·**PR #108279**
- ·**PR #108271**
- ·**PR #108285**
- ·**PR #97224**
- ·**PR #108295**
- ·**PR #102903**
- ·**PR #108230**
- ·**PR #108309**
- ·**PR #108308**
- ·**PR #103582** Related #103551.
- ·**PR #107731** Related #107425.
- ·**PR #108290** Related #108289.
- ·**PR #108301**
- ·**PR #108296**
- ·**PR #108317**
- ·**PR #108325**
- ·**PR #108311** Related #106719, #107305.
- ·**PR #108247**
- ·**PR #108110** Related #107933.
- ·**PR #108334**
- ·**PR #108332**
- ·**PR #108338**
- ·**PR #108336** Related #107219, #107226, #107842.
- ·**PR #108347**
- ·**PR #107802** Related #107746.
- ·**PR #108340**
- ·**PR #108354** Related #98348, #107172, #107497.
- ·**PR #106803**
- ·**PR #107574**
- ·**PR #108199**
- ·**PR #108307**
- ·**PR #108363**
- ·**PR #108346** Related #108318.
- ·**PR #106538**
- ·**PR #108376**
- ·**PR #103116**
- ·**PR #104968**
- ·**PR #108371**
- ·**PR #108212** Related #108186.
- ·**PR #108390**
- ·**PR #108157**
- ·**PR #108381** Related #108366.
- ·**PR #104966**
- ·**PR #108343**
- ·**PR #108380**
- ·**PR #89745** Related #89709.
- ·**PR #108375** Related #108288.
- ·**PR #108400**
- ·**PR #105089**
- ·**PR #108377**
- ·**PR #108385**
- ·**PR #105556**
- ·**PR #108410**
- ·**PR #108415**
- ·**PR #108414**
- ·**PR #108398** Related #107962, #107964.
- ·**PR #108417**
- ·**PR #106497**
- ·**PR #102698**
- ·**PR #104663**
- ·**PR #108437**
- ·**PR #108426**
- ·**PR #108416**
- ·**PR #108024**
- ·**PR #103294** Related #108399.
- ·**PR #108430**
- ·**PR #108418**
- ·**PR #108450**
- ·**PR #108420**
- ·**PR #108451**
- ·**PR #108429**
- ·**PR #108454**
- ·**PR #108424**
- ·**PR #108448**
- ·**PR #108458**
- ·**PR #108457** Related #108445.
- ·**PR #108433**
- ·**PR #108468**
- ·**PR #108463**
- ·**PR #108467**
- ·**PR #108472**
- ·**PR #108476**
- ·**PR #108434** Related #108431.
- ·**PR #108481**
- ·**PR #108386**
- ·**PR #108478**
- ·**PR #108479**
- ·**PR #108484**
- ·**PR #108253**
- ·**PR #108422**
- ·**PR #108480**
- ·**PR #108483**
- ·**PR #108365**
- ·**PR #108127**
- ·**PR #108492**
- ·**PR #108493**
- ·**PR #108497**
- ·**PR #108487** Related #106961.
- ·**PR #104585**
- ·**PR #108500**
- ·**PR #108503**
- ·**PR #108464**
- ·**PR #108419**
- ·**PR #108160**
- ·**PR #105793**
- ·**PR #108515**
- ·**PR #107230** Related #107225.
- ·**PR #105549**
- ·**PR #108465**
- ·**PR #108516**
- ·**PR #108204**
- ·**PR #108521**
- ·**PR #108523**
- ·**PR #108510** Related #108507.
- ·**PR #108504**
- ·**PR #108513**
- ·**PR #105553**
- ·**PR #106515** Related #106512.
- ·**PR #108512**
- ·**PR #108538**
- ·**PR #104836**
- ·**PR #108518**
- ·**PR #108547**
- ·**PR #108268**
- ·**PR #108163**
- ·**PR #108258** Related #108250.
- ·**PR #108499**
- ·**PR #108531**
- ·**PR #108539**
- ·**PR #108564**
- ·**PR #108563**
- ·**PR #108589**
- ·**PR #108423** Related #103636.
- ·**PR #108583**
- ·**PR #108594**
- ·**PR #107367** Related #107363.
- ·**PR #108603** Related #108595.
- ·**PR #108609**
- ·**PR #108612**
- ·**PR #108611**
- ·**PR #108617**
- ·**PR #108508** Related #107933.
- ·**PR #108620** Related #108610.
- ·**PR #108597**
- ·**PR #108615** Related #108600.
- ·**PR #108626** Related #99270, #105184, #107447.
- ·**PR #108505**
- ·**PR #108628** Related #108595.
- ·**PR #108627** Related #108608.
- ·**PR #108633**
- ·**PR #108394**
- ·**PR #106412**
- ·**PR #108165**
- ·**PR #108592**
- ·**PR #108161**
- ·**PR #108292**
- ·**PR #107883**
- ·**PR #108551** Related #108550.
- ·**PR #108641**
- ·**PR #108166**
- ·**PR #108403**
- ·**PR #108638**
- ·**PR #108546**
- ·**PR #108064**
- ·**PR #108605** Related #108604.
- ·**PR #108065**
- ·**PR #108063**
- ·**PR #108606**
- ·**PR #108648**
- ·**PR #108616**
- ·**PR #108621**
- ·**PR #108283**
- ·**PR #108619**
- ·**PR #106396**
- ·**PR #105893**
- ·**PR #106100** Related #105433.
- ·**PR #108575**
- ·**PR #108537**
- ·**PR #108679** Related #108659.
- ·**PR #108652** Related #107220.
- ·**PR #108674**
- ·**PR #108630** Related #108511.
- ·**PR #106398**
- ·**PR #108405**
- ·**PR #108634**
- ·**PR #108103**
- ·**PR #108636** Related #108598.
- ·**PR #108197** Related #108196.
- ·**PR #108167**
- ·**PR #107619**
- ·**PR #108455** Related #107415.
- ·**PR #108669**
- ·**PR #104841**
- ·**PR #107325**
- ·**PR #98143** Related #97521.
- ·**PR #107720**
- ·**PR #107346**
- ·**PR #108717**
- ·**PR #108715**
- ·**PR #108661** Related #107224.
- ·**PR #108643**
- ·**PR #108680** Related #104977.
- ·**PR #104288**
- ·**PR #106850** Related #106824.
- ·**PR #104835**
- ·**PR #108696**
- ·**PR #108721**
- ·**PR #108668** Related #106920.
- ·**PR #95010**
- ·**PR #106393**
- ·**PR #108697** Related #104721.
- ·**PR #108646**
- ·**PR #107751** Related #107416.
- ·**PR #95480** Related #89231.
- ·**PR #104580**
- ·**PR #108728**
- ·**PR #108651**
- ·**PR #108440**
- ·**PR #108682** Related #108428.
- ·**PR #106036**
- ·**PR #108714** Related #108244.
- ·**PR #108736**
- ·**PR #106385**
- ·**PR #107847** Related #107846.
- ·**PR #108649** Related #107224.
- ·**PR #108672**
- ·**PR #107610**
- ·**PR #108745**
- ·**PR #108650**
- ·**PR #108602**
- ·**PR #108360** Related #107449.
- ·**PR #105240**
- ·**PR #108725**
- ·**PR #106456**
- ·**PR #106416** Related #106408.
- ·**PR #107644** Related #107579.
- ·**PR #105263** Related #105187.
- ·**PR #108752**
- ·**PR #108739**
- ·**PR #108694**
- ·**PR #108756** Related #108753.
- ·**PR #108750**
- ·**PR #106376** Related #105523.
- ·**PR #108330**
- ·**PR #107735** Related #102206.
- ·**PR #108678** Related #107682.
- ·**PR #108241**
- ·**PR #106485**
- ·**PR #108502** Related #108501.
- ·**PR #108768**
- ·**PR #108685**
- ·**PR #108775**
- ·**PR #108700**
- ·**PR #108663**
- ·**PR #108763**
- ·**PR #108744** Related #108286.
- ·**PR #108780**
- ·**PR #108778**
- ·**PR #93293** Related #84139.
- ·**PR #108772**
- ·**PR #108765**
- ·**PR #108351** Related #96163.
- ·**PR #105978**
- ·**PR #108743**
- ·**PR #108770**
- ·**PR #108760**
- ·**PR #106541**
- ·**PR #108683** Related #95131, #105445, #107262.
- ·**PR #108701**
- ·**PR #106407**
- ·**PR #108699**
- ·**PR #108698**
- ·**PR #108543** Related #108535.
- ·**PR #96267**
- ·**PR #108766**
- ·**PR #108785**
- ·**PR #108755**
- ·**PR #107691** Related #107467.
- ·**PR #108787**
- ·**PR #108548**
- ·**PR #108741**
- ·**PR #108667**
- ·**PR #105544**
- ·**PR #108718**
- ·**PR #108576**
- ·**PR #108723**
- ·**PR #106864** Related #106863.
- ·**PR #108584** Related #107628.
- ·**PR #108758**
- ·**PR #108735**
- ·**PR #108853**
- ·**PR #108857**
- ·**PR #108596**
- ·**PR #108578** Related #108571.
- ·**PR #108875**
- ·**PR #108791**
- ·**PR #108807**
- ·**PR #108870**
- ·**PR #108561**
- ·**PR #108879**
- ·**PR #108886**
- ·**PR #108805**
- ·**PR #105301**
- ·**PR #108556** Related #108524.
- ·**PR #95722**
- ·**PR #108798**
- ·**PR #108655**
- ·**PR #105724** Related #104806.
- ·**PR #108838**
- ·**PR #108810**
- ·**PR #108730** Related #108427.
- ·**PR #108657**
- ·**PR #107979**
- ·**PR #107813**
- ·**PR #103799** Related #103590.
- ·**PR #106799**
- ·**PR #101730**
- ·**PR #108871** Related #108786, #108824.
- ·**PR #108348**
- ·**PR #108880**
- ·**PR #108637** Related #108447.
- ·**PR #108788**
- ·**PR #108114**
- ·**PR #106638** Related #106637.
- ·**PR #108855**
- ·**PR #107734** Related #107732.
- ·**PR #108804**
- ·**PR #108684**
- ·**PR #108894**
- ·**PR #108397**
- ·**PR #108797**
- ·**PR #108734** Related #108277.
- ·**PR #108350** Related #107341.
- ·**PR #108873**
- ·**PR #108579** Related #108572.
- ·**PR #108545**
- ·**PR #108913**
- ·**PR #108779** Related #107591.
- ·**PR #108364**
- ·**PR #108910**
- ·**PR #108914**
- ·**PR #104989**
- ·**PR #108917**
- ·**PR #108761**
- ·**PR #108903**
- ·**PR #107480**
- ·**PR #108895**
- ·**PR #108670**
- ·**PR #108911**
- ·**PR #108887** Related #108362.
- ·**PR #108577** Related #108570.
- ·**PR #108485**
- ·**PR #108868**
- ·**PR #108926** Related #108432.
- ·**PR #108929**
- ·**PR #108932**
- ·**PR #108355**
- ·**PR #108930**
- ·**PR #107657** Related #107434.
- ·**PR #108938**
- ·**PR #108935** Related #104413.
- ·**PR #108942**
- ·**PR #108941**
- ·**PR #108072**
- ·**PR #108321**
- ·**PR #108757**
- ·**PR #108706**
- ·**PR #108927**
- ·**PR #108950**
- ·**PR #108947**
- ·**PR #108726** Related #107917.
- ·**PR #108921**
- ·**PR #108815**
- ·**PR #108771**
- ·**PR #108889**
- ·**PR #108964**
- ·**PR #108960**
- ·**PR #108949**
- ·**PR #108298**
- ·**PR #108218**
- ·**PR #108567**
- ·**PR #104495** Related #103954.
- ·**PR #106453**
- ·**PR #108558**
- ·**PR #108622** Related #82281.
- ·**PR #108368**
- ·**PR #106421**
- ·**PR #108276**
- ·**PR #108369**
- ·**PR #108759** Related #108255.
- ·**PR #108983**
- ·**PR #108382**
- ·**PR #108937**
- ·**PR #108777**
- ·**PR #108990**
- ·**PR #108449**
- ·**PR #108966** Related #97180, #104779, #108517.
- ·**PR #108335**
- ·**PR #108339** Related #107708.
- ·**PR #108737**
- ·**PR #108396**
- ·**PR #108281**
- ·**PR #108992**
- ·**PR #108783**
- ·**PR #108790**
- ·**PR #106399**
- ·**PR #108972**
- ·**PR #109013**
- ·**PR #108834** Related #107916.
- ·**PR #107327** Related #107292.
- ·**PR #108800**
- ·**PR #108991** Related #108632.
- ·**PR #109022**
- ·**PR #108751** Related #108152.
- ·**PR #106400**
- ·**PR #108392** Related #103802.
- ·**PR #108401**
- ·**PR #109051**
- ·**PR #109028**
- ·**PR #107323** Related #107255.
- ·**PR #108689** Related #107856.
- ·**PR #108825**
- ·**PR #108708** Related #108665.
- ·**PR #108833**
- ·**PR #108863**
- ·**PR #108940**
- ·**PR #108922**
- ·**PR #108877**
- ·**PR #108023** Related #108021.
- ·**PR #108928**
- ·**PR #108050** Related #108049.
- ·**PR #103829** Related #103773.
- ·**PR #109083**
- ·**PR #108948**
- ·**PR #108806**
- ·**PR #108973**
- ·**PR #109110**
- ·**PR #108209**
- ·**PR #109102**
- ·**PR #109119** Related #109105.
- ·**PR #108156**
- ·**PR #108826**
- ·**PR #108848**
- ·**PR #108816**
- ·**PR #109141**
- ·**PR #108813**
- ·**PR #108840**
- ·**PR #109117**
- ·**PR #109075** Related #108664.
- ·**PR #108866**
- ·**PR #109142** Related #109099.
- ·**PR #108900**
- ·**PR #109090**
- ·**PR #109107**
- ·**PR #108742**
- ·**PR #109127**
- ·**PR #108828**
- ·**PR #109162**
- ·**PR #109118**
- ·**PR #109154**
- ·**PR #108832**
- ·**PR #108408**
- ·**PR #104431**
- ·**PR #109166**
- ·**PR #109115**
- ·**PR #108817**
- ·**PR #109005**
- ·**PR #108882**
- ·**PR #106545**
- ·**PR #109157**
- ·**PR #108675**
- ·**PR #109188**
- ·**PR #108252**
- ·**PR #109181**
- ·**PR #108784**
- ·**PR #109182**
- ·**PR #109195**
- ·**PR #109144**
- ·**PR #109192**
- ·**PR #108862**
- ·**PR #108904** Related #107917.
- ·**PR #108618**
- ·**PR #109201**
- ·**PR #108709**
- ·**PR #109184**
- ·**PR #108823**
- ·**PR #106370**
- ·**PR #98644**
- ·**PR #102470**
- ·**PR #101728**
- ·**PR #109169**
- ·**PR #109140**
- ·**PR #108827** Related #108587.
- ·**PR #109211**
- ·**PR #109146**
- ·**PR #108977**
- ·**PR #109229**
- ·**PR #108835**
- ·**PR #108710**
- ·**PR #109223**
- ·**PR #109238**
- ·**PR #109147**
- ·**PR #109052**
- ·**PR #109222**
- ·**PR #108776**
- ·**PR #106840** Related #106839.
- ·**PR #109151**
- ·**PR #109056**
- ·**PR #109242**
- ·**PR #108856**
- ·**PR #109244**
- ·**PR #109226**
- ·**PR #109252**
- ·**PR #109183**
- ·**PR #109255**
- ·**PR #109248**
- ·**PR #105086**
- ·**PR #109257**
- ·**PR #109246**
- ·**PR #108858**
- ·**PR #108801** Related #104377.
- ·**PR #109236**
- ·**PR #108897**
- ·**PR #109259**
- ·**PR #109271**
- ·**PR #109260**
- ·**PR #109266**
- ·**PR #109064**
- ·**PR #109273**
- ·**PR #108898**
- ·**PR #109202**
- ·**PR #109272**
- ·**PR #108353** Related #108349.
- ·**PR #108955**
- ·**PR #109289**
- ·**PR #109164**
- ·**PR #109298**
- ·**PR #109296**
- ·**PR #94697** Related #76259.
- ·**PR #109297**
- ·**PR #109239**
- ·**PR #109194**
- ·**PR #109281** Related #109280.
- ·**PR #109232**
- ·**PR #109160**
- ·**PR #109000**
- ·**PR #109284**
- ·**PR #101746**
- ·**PR #101696**
- ·**PR #109279** Related #109277.
- ·**PR #109314**
- ·**PR #109322**
- ·**PR #109108**
- ·**PR #109150**
- ·**PR #109267**
- ·**PR #109318**
- ·**PR #109243**
- ·**PR #103781**
- ·**PR #109320**
- ·**PR #109326**
- ·**PR #109290** Related #109288.
- ·**PR #109215**
- ·**PR #109323**
- ·**PR #108830**
- ·**PR #106496**
- ·**PR #109332**
- ·**PR #106077**
- ·**PR #109335** Related #109334.
- ·**PR #109007**
- ·**PR #109315**
- ·**PR #109333**
- ·**PR #105017**
- ·**PR #109339**
- ·**PR #109311**
- ·**PR #108851**
- ·**PR #109338**
- ·**PR #101268**
- ·**PR #109330**
- ·**PR #109149**
- ·**PR #109342**
- ·**PR #109343**
- ·**PR #109309**
- ·**PR #109317**
- ·**PR #109366**
- ·**PR #109336**
- ·**PR #109348**
- ·**PR #109324** Related #109321.
- ·**PR #109358**
- ·**PR #109206**
- ·**PR #109372**
- ·**PR #109205**
- ·**PR #109373**
- ·**PR #109369**
- ·**PR #109354**
- ·**PR #99504** Related #99470.
- ·**PR #109345**
- ·**PR #109383**
- ·**PR #109371**
- ·**PR #109377**
- ·**PR #109179**
- ·**PR #109344**
- ·**PR #109196**
- ·**PR #109398**
- ·**PR #109319**
- ·**PR #109253**
- ·**PR #109346**
- ·**PR #88919**
- ·**PR #109341**
- ·**PR #109220**
- ·**PR #109241**
- ·**PR #109328**
- ·**PR #109410**
- ·**PR #109347**
- ·**PR #98251** Related #98250.
- ·**PR #101792**
- ·**PR #109199**
- ·**PR #109207**
- ·**PR #109426**
- ·**PR #109429**
- ·**PR #109287** Related #109219.
- ·**PR #109430**
- ·**PR #109380**
- ·**PR #109071**
- ·**PR #109254**
- ·**PR #109294**
- ·**PR #109167**
- ·**PR #109359**
- ·**PR #108829**
- ·**PR #107825** Related #107823.
- ·**PR #109438**
- ·**PR #109374**
- ·**PR #109425**
- ·**PR #108953**
- ·**PR #108764**
- ·**PR #109250**
- ·**PR #90799** Related #99131.
- ·**PR #103323**
- ·**PR #108184**
- ·**PR #99396** Related #99395.
- ·**PR #98236**
- ·**PR #109457**
- ·**PR #109413**
- ·**PR #108193**
- ·**PR #109365**
- ·**PR #108208**
- ·**PR #109475**
- ·**PR #109466**
- ·**PR #109445**
- ·**PR #108120**
- ·**PR #109480**
- ·**PR #108172**
- ·**PR #101354**
- ·**PR #105217**
- ·**PR #104840**
- ·**PR #109489**
- ·**PR #105158**
- ·**PR #109331**
- ·**PR #100237** Related #100235.
- ·**PR #105105**
- ·**PR #109258**
- ·**PR #98022**
- ·**PR #109507**
- ·**PR #109393**
- ·**PR #109481**
- ·**PR #109505**
- ·**PR #109444**
- ·**PR #109469**
- ·**PR #109513**
- ·**PR #109454**
- ·**PR #109517**
- ·**PR #109453**
- ·**PR #109212**
- ·**PR #109530**
- ·**PR #109546**
- ·**PR #109553**
- ·**PR #109422**
- ·**PR #109560**
- ·**PR #109539**
- ·**PR #101752** Related #88353.
- ·**PR #109541**
- ·**PR #96250** Related #96203.
- ·**PR #95852** Related #95780.
- ·**PR #101826**
- ·**PR #90779** Related #90296.
- ·**PR #109586**
- ·**PR #109418**
- ·**PR #101748** Related #101172.
- ·**PR #109510**
- ·**PR #109614**
- ·**PR #109605**
- ·**PR #109596**
- ·**PR #109548**
- ·**PR #109557**
- ·**PR #109587**
- ·**PR #109575**
- ·**PR #109441**
- ·**PR #109433** Related #108781.
- ·**PR #106526** Related #104854.
- ·**PR #109485**
- ·**PR #109592**
- ·**PR #92011** Related #92271.
- ·**PR #101265** Related #101204.
- ·**PR #109591**
- ·**PR #97492** Related #97489.
- ·**PR #109625**
- ·**PR #109631**
- ·**PR #109589**
- ·**PR #109629**
- ·**PR #109590**
- ·**PR #109579** Related #86425.
- ·**PR #109497**
- ·**PR #109628**
- ·**PR #69707**
- ·**PR #109363**
- ·**PR #109362**
- ·**PR #98422** Related #98419.
- ·**PR #109612** Related #109405.
- ·**PR #108924** Related #108656.
- ·**PR #109610**
- ·**PR #109635**
- ·**PR #109630**
- ·**PR #109361**
- ·**PR #109640**
- ·**PR #109648**
- ·**PR #109593**
- ·**PR #109519**
- ·**PR #109464**
- ·**PR #109627** Related #101148.
- ·**PR #109403**
- ·**PR #70737** Related #67397, #68972, #69811.
- ·**PR #109636**
- ·**PR #109442**
- ·**PR #109386**
- ·**PR #109633**
- ·**PR #109540**
- ·**PR #109655**
- ·**PR #109585**
- ·**PR #109653**
- ·**PR #109663**
- ·**PR #109233**
- ·**PR #97233**
- ·**PR #109008**
- ·**PR #109576**
- ·**PR #109494**
- ·**PR #109477**
- ·**PR #109671**
- ·**PR #109665**
- ·**PR #109660**
- ·**PR #109624**
- ·**PR #109666**
- ·**PR #109468**
- ·**PR #108985** Related #108466.
- ·**PR #109686**
- ·**PR #109168**
- ·**PR #109394**
- ·**PR #109508**
- ·**PR #109689**
- ·**PR #109651**
- ·**PR #109696**
- ·**PR #109683**
- ·**PR #109237**
- ·**PR #108969** Related #108968.
- ·**PR #109615**
- ·**PR #109706**
- ·**PR #109525**
- ·**PR #109089**
- ·**PR #109476**
- ·**PR #77158**
- ·**PR #109695**
- ·**PR #109714**
- ·**PR #109685**
- ·**PR #109417**
- ·**PR #109687**
- ·**PR #109694**
- ·**PR #109688**
- ·**PR #109722**
- ·**PR #109719**
- ·**PR #109715**
- ·**PR #90610**
- ·**PR #89491** Related #81865.
- ·**PR #109676** Related #109352.
- ·**PR #45315** Related #45314.
- ·**PR #109705**
- ·**PR #109556**
- ·**PR #109622**
- ·**PR #109737**
- ·**PR #109411** Related #108666.
- ·**PR #109717**
- ·**PR #109325**
- ·**PR #109739**
- ·**PR #109749**
- ·**PR #108967** Related #108774.
- ·**PR #86900** Related #58838.
- ·**PR #109604**
- ·**PR #107999** Related #107998.
- ·**PR #109757**
- ·**PR #109762**
- ·**PR #109724**
- ·**PR #77213** Related #75814.
- ·**PR #109752**
- ·**PR #109772**
- ·**PR #109776**
- ·**PR #68685** Related #68664.
- ·**PR #109764**
- ·**PR #109716** Related #109316.
- ·**PR #109769**
- ·**PR #109720**
- ·**PR #109681**
- ·**PR #109780**
- ·**PR #109790**
- ·**PR #109740**
- ·**PR #109677**
- ·**PR #109766**
- ·**PR #109718**
- ·**PR #109801**
- ·**PR #109701**
- ·**PR #109778** Related #95560.
- ·**PR #109617**
- ·**PR #109710**
- ·**PR #109618**
- ·**PR #109818**
- ·**PR #109609**
- ·**PR #109664**
- ·**PR #109674**
- ·**PR #109669**
- ·**PR #109721**
- ·**PR #109702**
- ·**PR #109773**
- ·**PR #109708**
- ·**PR #109667**
- ·**PR #109698**
- ·**PR #109803**
- ·**PR #109750**
- ·**PR #109845**
- ·**PR #109728**
- ·**PR #109863**
- ·**PR #109804**
- ·**PR #109826**
- ·**PR #93559** Related #92569.
- ·**PR #109755**
- ·**PR #109731**
- ·**PR #109873**
- ·**PR #109690**
- ·**PR #109892**
- ·**PR #109877**
- ·**PR #109894**
- ·**PR #109899**
- ·**PR #109725**
- ·**PR #109887**
- ·**PR #109827**
- ·**PR #109866**
- ·**PR #109888**
- ·**PR #109886** Related #76722.
- ·**PR #109895**
- ·**PR #109799**
- ·**PR #101472**
- ·**PR #109915**
- ·**PR #109917**
- ·**PR #109907**
- ·**PR #109841**
- ·**PR #98390** Related #98389.
- ·**PR #95368**
- ·**PR #109679**
- ·**PR #109921**
- ·**PR #109910**
- ·**PR #109432**
- ·**PR #109580** Related #109299.
- ·**PR #89783**
- ·**PR #109819**
- ·**PR #109926**
- ·**PR #109925**
- ·**PR #109929**
- ·**PR #109916**
- ·**PR #109936**
- ·**PR #109874**
- ·**PR #95604**
- ·**PR #109934**
- ·**PR #109844** Related #109842.
- ·**PR #108136** Related #108133.
- ·**PR #109919**
- ·**PR #109901**
- ·**PR #109791**
- ·**PR #92340** Related #91677.
- ·**PR #109796**
- ·**PR #109200**
- ·**PR #99079** Related #99078.
- ·**PR #109964**
- ·**PR #95838** Related #95811.
- ·**PR #109954**
- ·**PR #109987**
- ·**PR #109712**
- ·**PR #109483**
- ·**PR #109876**
- ·**PR #109905** Related #109893.
- ·**PR #109668**
- ·**PR #109709**
- ·**PR #109999**
- ·**PR #110000**
- ·**PR #79882**
- ·**PR #109751**
- ·**PR #110012**
- ·**PR #110013**
- ·**PR #109977**
- ·**PR #109813**
- ·**PR #110041**
- ·**PR #96230**
- ·**PR #110042**
- ·**PR #110030** Related #109838.
- ·**PR #109995**
- ·**PR #110019**
- ·**PR #110062**
- ·**PR #110029** Related #110018.
- ·**PR #109966**
- ·**PR #110076**
- ·**PR #109805**
- ·**PR #109914**
- ·**PR #110078**
- ·**PR #110014**
- ·**PR #93833** Related #93781.
- ·**PR #109828**
- ·**PR #109810**
- ·**PR #109682**
- ·**PR #109947**
- ·**PR #99287** Related #99269.
- ·**PR #109743**
- ·**PR #109952**
- ·**PR #110054**
- ·**PR #110088**
- ·**PR #106942**
- ·**PR #110106**
- ·**PR #110135**
- ·**PR #104967**
- ·**PR #109399**
- ·**PR #109564**
- ·**PR #110100** Related #110070.
- ·**PR #106365**
- ·**PR #110127**
- ·**PR #109355** Related #108442.
- ·**PR #110098**
- ·**PR #110104**
- ·**PR #108304**
- ·**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.
- ·**PR #110158**
- ·**PR #110094**
- ·**PR #110111**
- ·**PR #110170**
- ·**PR #110096**
- ·**PR #108453** Related #108421.
- ·**PR #110191** Related #110152.
- ·**PR #109742**
- ·**PR #110141**
- ·**PR #110089**
- ·**PR #110105**
- ·**PR #109837**
- ·**PR #110159**
- ·**PR #110205**
- ·**PR #110090**
- ·**PR #110107**
- ·**PR #110173**
- ·**PR #110092**
- ·**PR #109857** Related #109300.
- ·**PR #110083** Related #109832.
- ·**PR #110081**
- ·**PR #110118**
- ·**PR #110211**
- ·**PR #110218**
- ·**PR #110130**
- ·**PR #110220** Related #110209.
- ·**PR #109913**
- ·**PR #109291**
- ·**PR #105108**
- ·**PR #103513**
- ·**PR #110228**
- ·**PR #105013**
- ·**PR #110226**
- ·**PR #105903** Related #105694.
- ·**PR #109869**
- ·**PR #110200**
- ·**PR #109741**
- ·**PR #110196**
- ·**PR #110233**
- ·**PR #107046**
- ·**PR #110238**
- ·**PR #109350**
- ·**PR #109282**
- ·**PR #105477**
- ·**PR #104935**
- ·**PR #110172**
- ·**PR #110246**
- ·**PR #110241** Related #109191.
- ·**PR #103512**
- ·**PR #110174**
- ·**PR #110245**
- ·**PR #110095**
- ·**PR #109870**
- ·**PR #109817**
- ·**PR #110215**
- ·**PR #110252**
- ·**PR #110183**
- ·**PR #98541**
- ·**PR #98543**
- ·**PR #98546**
- ·**PR #108883**
- ·**PR #105633**
- ·**PR #110242**
- ·**PR #110255**
- ·**PR #109955** Related #109941.
- ·**PR #98802**
- ·**PR #98667**
- ·**PR #98801**
- ·**PR #98795**
- ·**PR #98797**
- ·**PR #98670**
- ·**PR #98668**
- ·**PR #106386**
- ·**PR #110272**
- ·**PR #109173**
- ·**PR #109174**
- ·**PR #110027**
- ·**PR #110026**
- ·**PR #104209**
- ·**PR #110275**
- ·**PR #103518**
- ·**PR #110274**
- ·**PR #110264**
- ·**PR #109903**
- ·**PR #103855**
- ·**PR #110273**
- ·**PR #110268**
- ·**PR #110283**
- ·**PR #110289**
- ·**PR #106454**
- ·**PR #110288**
- ·**PR #110221**
- ·**PR #110291**
- ·**PR #110290**
- ·**PR #101998** Related #101988.
- ·**PR #98480**
- ·**PR #109794**
- ·**PR #110267**
- ·**PR #110287**
- ·**PR #106420**
- ·**PR #110207**
- ·**PR #105297**
- ·**PR #106027** Related #106005.
- ·**PR #110259**
- ·**PR #110248**
- ·**PR #110167**
- ·**PR #110311**
- ·**PR #110310** Related #110306.
- ·**PR #104851**
- ·**PR #110254**
- ·**PR #110298**
- ·**PR #110223**
- ·**PR #110312**
- ·**PR #110269**
- ·**PR #110314**
- ·**PR #110034** Related #110033.
- ·**PR #110316**
- ·**PR #110308**
- ·**PR #110327**
- ·**PR #110285**
- ·**PR #110335** Related #110322.
- ·**PR #110317**
- ·**PR #110295**
- ·**PR #110239**
- ·**PR #110225**
- ·**PR #110276**
- ·**PR #110332**
- ·**PR #110341**
- ·**PR #110353**
- ·**PR #110351** Related #102236.
- ·**PR #110361**
- ·**PR #110326**
- ·**PR #110227**
- ·**PR #110381** Related #96815.
- ·**PR #109621**
- ·**PR #109861** Related #109851.
- ·**PR #109230**
- ·**PR #110357**
- ·**PR #110271**
- ·**PR #110409**
- ·**PR #108909**
- ·**PR #110366** Related #108976.
- ·**PR #110406**
- ·**PR #109800**
- ·**PR #110417**
- ·**PR #110279**
- ·**PR #110281**
- ·**PR #110413**
- ·**PR #110418**
- ·**PR #110426**
- ·**PR #110315**
- ·**PR #110364**
- ·**PR #110369** Related #110340.
- ·**PR #110391** Related #110354.
- ·**PR #109807**
- ·**PR #110396**
- ·**PR #110395**
- ·**PR #110375**
- ·**PR #110360** Related #110320.
- ·**PR #108569** Related #108550.
- ·**PR #110365**
- ·**PR #110028**
- ·**PR #110282**
- ·**PR #101453**
- ·**PR #110422** Related #110420.
- ·**PR #110424**
- ·**PR #110386**
- ·**PR #110213** Related #110137.
- ·**PR #110389**
- ·**PR #110446**
- ·**PR #105874**
- ·**PR #110358** Related #110343.
- ·**PR #110448**
- ·**PR #106081**
- ·**PR #106181**
- ·**PR #110428**
- ·**PR #106241** Related #106136.
- ·**PR #108925**
- ·**PR #110085**
- ·**PR #109927**
- ·**PR #110449**
- ·**PR #110305**
- ·**PR #110339**
- ·**PR #110323**
- ·**PR #110445**
- ·**PR #109210**
- ·**PR #110456**
- ·**PR #105163**
- ·**PR #110091**
- ·**PR #110459**
- ·**PR #110403**
- ·**PR #89864** Related #87303.
- ·**PR #110452**
- ·**PR #110278**
- ·**PR #110453**
- ·**PR #110447** Related #110439.
- ·**PR #104340**
- ·**PR #110461**
- ·**PR #110462**
- ·**PR #98567**
- ·**PR #110454**
- ·**PR #98663**
- ·**PR #109652**
- ·**PR #110460** Related #110247.
- ·**PR #98569**
- ·**PR #110006**
- ·**PR #109440**
- ·**PR #110330**
- ·**PR #110470**
- ·**PR #110371**
- ·**PR #107984** Related #107981.
- ·**PR #110469**
- ·**PR #110484**
- ·**PR #110486**
- ·**PR #109111**
- ·**PR #110481** Related #110473.
- ·**PR #110479**
- ·**PR #110007**
- ·**PR #110474**
- ·**PR #110478**
- ·**PR #110496**
- ·**PR #110487**
- ·**PR #110472**
- ·**PR #109878**
- ·**PR #108310**
- ·**PR #110494**
- ·**PR #110509**
- ·**PR #110476**
- ·**PR #110363**
- ·**PR #100140** Related #99611.
- ·**PR #110508**
- ·**PR #107942** Related #107941.
- ·**PR #110517**
- ·**PR #110497**
- ·**PR #109185**
- ·**PR #110331**
- ·**PR #110520**
- ·**PR #110524**
- ·**PR #110372**
- ·**PR #110523**
- ·**PR #110530**
- ·**PR #110463**
- ·**PR #110525**
- ·**PR #109822**
- ·**PR #110522**
- ·**PR #110477**
- ·**PR #110518** Related #109443.
- ·**PR #110468**
- ·**PR #110548**
- ·**PR #110505** Related #110503.
- ·**PR #110528**
- ·**PR #110493**
- ·**PR #110122**
- ·**PR #110502**
- ·**PR #110532**
- ·**PR #110557**
- ·**PR #107752**
- ·**PR #110549**
- ·**PR #109176**
- ·**PR #109247**
- ·**PR #110556**
- ·**PR #109486**
- ·**PR #106163**
- ·**PR #109982**
- ·**PR #110533**
- ·**PR #110292**
- ·**PR #109968**
- ·**PR #110380**
- ·**PR #99312** Related #99311.
- ·**PR #109501**
- ·**PR #110540**
- ·**PR #110566**
- ·**PR #109428**
- ·**PR #109114**
- ·**PR #109037**
- ·**PR #110543**
- ·**PR #108970**
- ·**PR #110574**
- ·**PR #110550**
- ·**PR #110563**
- ·**PR #101773**
- ·**PR #110491**
- ·**PR #107990**
- ·**PR #101775**
- ·**PR #106532**
- ·**PR #110466**
- ·**PR #110541**
- ·**PR #110551**
- ·**PR #105910**
- ·**PR #110585**
- ·**PR #105863**
- ·**PR #110534**
- ·**PR #110596**
- ·**PR #101774**
- ·**PR #110277**
- ·**PR #110587** Related #110586.
- ·**PR #110010**
- ·**PR #110552**
- ·**PR #100229** Related #100162.
- ·**PR #103786**
- ·**PR #108116**
- ·**PR #110589**
- ·**PR #110554**
- ·**PR #109463**
- ·**PR #110416**
- ·**PR #110607** Related #110606.
- ·**PR #110609**
- ·**PR #110567**
- ·**PR #110595**
- ·**PR #110610**
- ·**PR #110583**
- ·**PR #106073**
- ·**PR #110069**
- ·**PR #110405**
- ·**PR #110614**
- ·**PR #110613**
- ·**PR #110576**
- ·**PR #110036**
- ·**PR #110620**
- ·**PR #101776**
- ·**PR #109906**
- ·**PR #110423**
- ·**PR #109452**
- ·**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**
- ·**PR #110628**
- ·**PR #101442**
- ·**PR #101772**
- ·**PR #110629**
- ·**PR #110623**
- ·**PR #110605**
- ·**PR #110664**
- ·**PR #110654**
- ·**PR #110632**
- ·**PR #110584**
- ·**PR #110687**
- ·**PR #110651**
- ·**PR #108333**
- ·**PR #110666**
- ·**PR #110627**
- ·**PR #101448**
- ·**PR #110347**
- ·**PR #109265**
- ·**PR #110646**
- ·**PR #110705** Related #110701.
- ·**PR #110475**
- ·**PR #110660**
- ·**PR #110698**
- ·**PR #110707**
- ·**PR #110720**
- ·**PR #110495**
- ·**PR #101429**
- ·**PR #110732**
- ·**PR #110708**
- ·**PR #110483**
- ·**PR #110615**
- ·**PR #110631**
- ·**PR #101447**
- ·**PR #110751**
- ·**PR #110753**
- ·**PR #110480**
- ·**PR #109329**
- ·**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**
- ·**PR #110728**
- ·**PR #110838**
- ·**PR #110443**
- ·**PR #110527**
- ·**PR #110431** Related #110411.
- ·**PR #110762**
- ·**PR #110812**
- ·**PR #110817**
- ·**PR #110833**
- ·**PR #110779**
- ·**PR #110845**
- ·**PR #110844**
- ·**PR #110863**
- ·**PR #110441**
- ·**PR #110398**
- ·**PR #110839**
- ·**PR #110856**
- ·**PR #110864**
- ·**PR #110852**
- ·**PR #110830**
- ·**PR #110846**
- ·**PR #107879** Related #107804.
- ·**PR #110374**
- ·**PR #110869**
- ·**PR #110894**
- ·**PR #110811** Related #108693.
- ·**PR #110575** Related #110109.
- ·**PR #110892**
- ·**PR #110890**
- ·**PR #110895**
- ·**PR #110870**
- ·**PR #110899**
- ·**PR #110874**
- ·**PR #110816**
- ·**PR #110857**
- ·**PR #110904**
- ·**PR #110163**
- ·**PR #110891**
- ·**PR #110909**
- ·**PR #110889**
- ·**PR #110910**
- ·**PR #110821**
- ·**PR #110914**
- ·**PR #110912** Related #110911.
- ·**PR #110905**
- ·**PR #110919**
- ·**PR #110897**
- ·**PR #110913**
- ·**PR #110916**
- ·**PR #110139**
- ·**PR #110922** Related #110572.
- ·**PR #110893** Related #110394.
- ·**PR #102255** Related #102238.
- ·**PR #110931** Related #110930.
- ·**PR #110934**
- ·**PR #110936**
- ·**PR #110146**
- ·**PR #110832**
- ·**PR #110938**
- ·**PR #110359**
- ·**PR #105830** Related #105413.
- ·**PR #110442**
- ·**PR #110951**
- ·**PR #110924**
- ·**PR #110949**
- ·**PR #110945**
- ·**PR #110674**
- ·**PR #110944** Related #108692.
- ·**PR #110888**
- ·**PR #110681**
- ·**PR #110933**
- ·**PR #110675**
- ·**PR #110759**
- ·**PR #110943**
- ·**PR #105784**
- ·**PR #109026**
- ·**PR #109945**
- ·**PR #110677**
- ·**PR #110957**
- ·**PR #110410**
- ·**PR #109044**
- ·**PR #110925**
- ·**PR #110958**
- ·**PR #110966**
- ·**PR #109047**
- ·**PR #109691**
- ·**PR #110967**
- ·**PR #110676**
- ·**PR #110970**
- ·**PR #110908** Related #110859.
- ·**PR #105274**
- ·**PR #110959**
- ·**PR #110591**
- ·**PR #110017**
- ·**PR #110977** Related #110965.
- ·**PR #110427**
- ·**PR #110961** Related #110955.
- ·**PR #110791**
- ·**PR #90263**
- ·**PR #109823**
- ·**PR #110927**
- ·**PR #110981**
- ·**PR #110980**
- ·**PR #110594**
- ·**PR #109904** Related #100954.
- ·**PR #110148**
- ·**PR #110655**
- ·**PR #110973**
- ·**PR #110983**
- ·**PR #109161**
- ·**PR #110918**
- ·**PR #110985**
- ·**PR #110401**
- ·**PR #110969** Related #79553.
- ·**PR #110952**
- ·**PR #110971**
- ·**PR #110516**
- ·**PR #110991**
- ·**PR #110747**
- ·**PR #110968**
- ·**PR #110984**
- ·**PR #110906**
- ·**PR #110999**
- ·**PR #110978**
- ·**PR #110661**
- ·**PR #111009**
- ·**PR #98941**
- ·**PR #98098**
- ·**PR #101079**
- ·**PR #110750**
- ·**PR #111011**
- ·**PR #108249**
- ·**PR #108849**
- ·**PR #111002**
- ·**PR #110760**
- ·**PR #111021**
- ·**PR #111024**
- ·**PR #111015**
- ·**PR #111012** Related #110996.
- ·**PR #111022**
- ·**PR #111027**
- ·**PR #111001**
- ·**PR #110756**
- ·**PR #107895**
- ·**PR #111034** Related #97523.
- ·**PR #110992**
- ·**PR #111007**
- ·**PR #110412** Related #109488.
- ·**PR #111017**
- ·**PR #111003**
- ·**PR #111029** Related #109911.
- ·**PR #110052**
- ·**PR #110515** Related #110451.
- ·**PR #99115**
- ·**PR #110693**
- ·**PR #110993**
- ·**PR #111040**
- ·**PR #104904** Related #104783.
- ·**PR #111047**
- ·**PR #111049** Related #103729.
- ·**PR #108200**
- ·**PR #109053**
- ·**PR #109487**
- ·**PR #109462**
- ·**PR #111000**
- ·**PR #111042**
- ·**PR #110731**
- ·**PR #101830** Related #76233.
- ·**PR #111048**
- ·**PR #110684**
- ·**PR #98074**
- ·**PR #110994**
- ·**PR #110300**
- ·**PR #111043**
- ·**PR #111036**
- ·**PR #111069**
- ·**PR #110903**
- ·**PR #111072** Related #103849.
- ·**PR #111030**
- ·**PR #111055**
- ·**PR #110745** Related #103055.
- ·**PR #111035**
- ·**PR #111075**
- ·**PR #104140**
- ·**PR #111066**
- ·**PR #110886**
- ·**PR #111013**
- ·**PR #110956**
- ·**PR #111095**
- ·**PR #103812**
- ·**PR #111089**
- ·**PR #111096** Related #111059.
- ·**PR #110948**
- ·**PR #111097**
- ·**PR #110878**
- ·**PR #104211** Related #102017.
- ·**PR #110939**
- ·**PR #111103**
- ·**PR #110921** Related #110920.
- ·**PR #111094**
- ·**PR #111091**
- ·**PR #110536**
- ·**PR #111109**
- ·**PR #111116**
- ·**PR #111119**
- ·**PR #106018** Related #105940.
- ·**PR #111105**
- ·**PR #110954**
- ·**PR #111081**
- ·**PR #110060** Related #102392.
- ·**PR #108378**
- ·**PR #111112**
- ·**PR #111124**
- ·**PR #103793**
- ·**PR #111106**
- ·**PR #111134** Related #111130.
- ·**PR #109011** Related #65656, #109006.
- ·**PR #111056**
- ·**PR #111063** Related #111062.
- ·**PR #111136**
- ·**PR #111032**
- ·**PR #110755**
- ·**PR #111046**
- ·**PR #111150**
- ·**PR #110678**
- ·**PR #110960**
- ·**PR #105911** Related #105679.
- ·**PR #111038**
- ·**PR #110053** Related #109979.
- ·**PR #111099**
- ·**PR #111156**
- ·**PR #108789** Related #108337.
- ·**PR #111137**
- ·**PR #111179**
- ·**PR #111147**
- ·**PR #111178**
- ·**PR #111145**
- ·**PR #111188**
- ·**PR #111189**
- ·**PR #111186**
- ·**PR #111204**
- ·**PR #111207**
- ·**PR #110754**
- ·**PR #111140**
- ·**PR #110987**
- ·**PR #111212**
- ·**PR #110797**
- ·**PR #111228**
- ·**PR #111052**
- ·**PR #111234**
- ·**PR #111230**
- ·**PR #111078**
- ·**PR #111167**
- ·**PR #111238**
- ·**PR #111168**
- ·**PR #111093**
- ·**PR #111169**
- ·**PR #105929** Related #105926.
- ·**PR #111060**
- ·**PR #111077**
- ·**PR #111245**
- ·**PR #111076**
- ·**PR #110932**
- ·**PR #111214**
- ·**PR #103706** Related #103668.
- ·**PR #111061**
- ·**PR #111114**
- ·**PR #111149**
- ·**PR #110995**
- ·**PR #111259**
- ·**PR #111265**
- ·**PR #111263**
- ·**PR #111268**
- ·**PR #111249**
- ·**PR #111267** Related #110325.
- ·**PR #110941**
- ·**PR #111211**
- ·**PR #111280**
- ·**PR #110976**
- ·**PR #111142**
- ·**PR #111224**
- ·**PR #111014**
- ·**PR #111216**
- ·**PR #111158**
- ·**PR #111221**
- ·**PR #110862**
- ·**PR #107614**
- ·**PR #110989**
- ·**PR #111297** Related #110325.
- ·**PR #111039**
- ·**PR #111292** Related #111271, #111272, #111273, #111274.
- ·**PR #111044**
- ·**PR #111104**
- ·**PR #108323** Related #108238.
- ·**PR #111311**
- ·**PR #111244**
- ·**PR #107991**
- ·**PR #111315**
- ·**PR #111215**
- ·**PR #111322**
- ·**PR #110667**
- ·**PR #110384**
- ·**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.
- ·**PR #111348**
- ·**PR #111345**
- ·**PR #111225**
- ·**PR #111324** Related #110201.
- ·**PR #110831**
- ·**PR #111194**
- ·**PR #111341**
- ·**PR #111298**
- ·**PR #111041**
- ·**PR #111371**
- ·**PR #111033**
- ·**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**
- ·**PR #111424**
- ·**PR #111429** Related #111415.
- ·**PR #108974**
- ·**PR #111431**
- ·**PR #111409**
- ·**PR #111418**
- ·**PR #111382**
- ·**PR #111426**
- ·**PR #111073**
- ·**PR #111449**
- ·**PR #111444**
- ·**PR #111389**
- ·**PR #111433**
- ·**PR #111223** Related #104548.
- ·**PR #111440**
- ·**PR #111416**
- ·**PR #111477**
- ·**PR #111456**
- ·**PR #111421**
- ·**PR #111467**
- ·**PR #111473**
- ·**PR #111333**
- ·**PR #111353**
- ·**PR #111428**
- ·**PR #111390** Related #111387.
- ·**PR #111380**
- ·**PR #111327**
- ·**PR #111483**
- ·**PR #111337**
- ·**PR #111446** Related #111432.
- ·**PR #111276**
- ·**PR #111323**
- ·**PR #111374**
- ·**PR #108509** Related #108498.
- ·**PR #111490**
- ·**PR #111378** Related #72948.
- ·**PR #105241**
- ·**PR #111190**
- ·**PR #111447**
- ·**PR #111493**
- ·**PR #111459**
- ·**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.
- ·**PR #111474**
- ·**PR #111517**
- ·**PR #111529**
- ·**PR #111411**
- ·**PR #111518**
- ·**PR #111531**
- ·**PR #111465**
- ·**PR #111533**
- ·**PR #111503**
- ·**PR #111339**
- ·**PR #107017**
- ·**PR #111537**
- ·**PR #111535**
- ·**PR #111540**
- ·**PR #111555**
- ·**PR #111556**
- ·**PR #111560**
- ·**PR #111553**
- ·**PR #111554**
- ·**PR #111557** Related #111232.
- ·**PR #111448**
- ·**PR #111562**
- ·**PR #111565**
- ·**PR #111235**
- ·**PR #111201**
- ·**PR #111197**
- ·**PR #111460**
- ·**PR #111441**
- ·**PR #111364**
- ·**PR #111445**
- ·**PR #111558**
- ·**PR #111524**
- ·**PR #111530**
- ·**PR #111253**
- ·**PR #111618**
- ·**PR #111340**
- ·**PR #111607**
- ·**PR #111282**
- ·**PR #111605**
- ·**PR #109767**
- ·**PR #111569**
- ·**PR #111260**
- ·**PR #110721**
- ·**PR #111613**
- ·**PR #111481**
- ·**PR #111210**
- ·**PR #111231**
- ·**PR #111288**
- ·**PR #111375**
- ·**PR #111583**
- ·**PR #111610**
- ·**PR #111645**
- ·**PR #111314**
- ·**PR #108007**
- ·**PR #111184**
- ·**PR #111659**
- ·**PR #111642**
- ·**PR #111598**
- ·**PR #111177**
- ·**PR #111668**
- ·**PR #111677**
- ·**PR #111665**
- ·**PR #111656**
- ·**PR #111261**
- ·**PR #111680**
- ·**PR #111608**
- ·**PR #111685**
- ·**PR #111681**
- ·**PR #111532**
- ·**PR #111664**
- ·**PR #111694**
- ·**PR #111679**
- ·**PR #111691**
- ·**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**
- ·**PR #111653**
- ·**PR #111748**
- ·**PR #111749**
- ·**PR #111674**
- ·**PR #111619**
- ·**PR #111758**
- ·**PR #111113**
- ·**PR #111648**
- ·**PR #111726**
- ·**PR #111757**
- ·**PR #111710** Related #111597.
- ·**PR #111111**
- ·**PR #111772**
- ·**PR #111761**
- ·**PR #111088**
- ·**PR #111571**
- ·**PR #111651**
- ·**PR #110881**
- ·**PR #111800**
- ·**PR #111655** Related #111684.
- ·**PR #110824**
- ·**PR #110725**
- ·**PR #110741**
- ·**PR #111824** Related #111820.
- ·**PR #111687**
- ·**PR #111744** Related #111742.
- ·**PR #111855**
- ·**PR #111871**
- ·**PR #111834**
- ·**PR #111876**
- ·**PR #111486**
- ·**PR #111867**
- ·**PR #111891**
- ·**PR #111869** Related #111862.
- ·**PR #111516**
- ·**PR #111883**
- ·**PR #111911**
- ·**PR #111783**
- ·**PR #111916**
- ·**PR #111907**
- ·**PR #111918**
- ·**PR #111909**
- ·**PR #111927** Related #111919.
- ·**PR #111928**
- ·**PR #111914**
- ·**PR #111929**
- ·**PR #111933**
- ·**PR #111682**
- ·**PR #111672**
- ·**PR #111932** Related #111931.
- ·**PR #111953**
- ·**PR #111831** Related #111643.
- ·**PR #111963**
- ·**PR #111949**
- ·**PR #111803**
- ·**PR #110297** Related #107655.
- ·**PR #111967**
- ·**PR #111787**
- ·**PR #111796**
- ·**PR #111975**
- ·**PR #111974**
- ·**PR #111920**
- ·**PR #110256**
- ·**PR #111935**
- ·**PR #111984**
- ·**PR #111087** Related #111050.
- ·**PR #110345** Related #109025.
- ·**PR #111986** Related #111973.
- ·**PR #111720**
- ·**PR #111997**
- ·**PR #109960**
- ·**PR #111988**
- ·**PR #111996**
- ·**PR #109561**
- ·**PR #109499**
- ·**PR #110008**
- ·**PR #111980**
- ·**PR #110784**
- ·**PR #110002**
- ·**PR #111987**
- ·**PR #109498**
- ·**PR #109451**
- ·**PR #109950**
- ·**PR #109699** Related #109550.
- ·**PR #112009**
- ·**PR #112010**
- ·**PR #108012**
- ·**PR #110546**
- ·**PR #111269**
- ·**PR #112008**
- ·**PR #111329**
- ·**PR #111989**
- ·**PR #112011**
- ·**PR #108987**
- ·**PR #107978**
- ·**PR #111699**
- ·**PR #109495**
- ·**PR #112015**
- ·**PR #112016**
- ·**PR #110001**
- ·**PR #109923**
- ·**PR #104093**
- ·**PR #110772**
- ·**PR #112026**
- ·**PR #109697**
- ·**PR #109446** Related #109421.
- ·**PR #111866**
- ·**PR #106635**
- ·**PR #111977**
- ·**PR #111120**
- ·**PR #109532**
- ·**PR #111983**
- ·**PR #109116**
- ·**PR #111995**
- ·**PR #104564**
- ·**PR #112021**
- ·**PR #111152**
- ·**PR #112044**
- ·**PR #106314**
- ·**PR #105487** Related #105423.
- ·**PR #111769**
- ·**PR #112059**
- ·**PR #110704** Related #103905.
- ·**PR #112043**
- ·**PR #104930**
- ·**PR #111183**
- ·**PR #112019**
- ·**PR #104810**
- ·**PR #112028** Related #112023.
- ·**PR #103377**
- ·**PR #104850**
- ·**PR #109042**
- ·**PR #102329** Related #102324.
- ·**PR #109989**
- ·**PR #105085**
- ·**PR #105307** Related #105199.
- ·**PR #104727**
- ·**PR #96482**
- ·**PR #109909**
- ·**PR #112046**
- ·**PR #109729**
- ·**PR #110537**
- ·**PR #112035**
- ·**PR #103658**
- ·**PR #109401**
- ·**PR #104335**
- ·**PR #107121**
- ·**PR #112081**
- ·**PR #111968**
- ·**PR #112063**
- ·**PR #106502**
- ·**PR #101816**
- ·**PR #90169**
- ·**PR #95493** Related #95441.
- ·**PR #111435**
- ·**PR #109788** Related #109275.
- ·**PR #112071**
- ·**PR #89721**
- ·**PR #112070** Related #112068.
- ·**PR #112083**
- ·**PR #112062**
- ·**PR #105547**
- ·**PR #112066**
- ·**PR #98320** Related #98311.
- ·**PR #112036**
- ·**PR #103622**
- ·**PR #104707**
- ·**PR #112076**
- ·**PR #112108**
- ·**PR #101511**
- ·**PR #108943**
- ·**PR #109431**
- ·**PR #111669**
- ·**PR #112074**
- ·**PR #95514** Related #95291.
- ·**PR #112170**
- ·**PR #112171**
- ·**PR #112107**
- ·**PR #112031**
- ·**PR #104250**
- ·**PR #112162**
- ·**PR #104347** Related #104320.
- ·**PR #82798** Related #82621.
- ·**PR #111841** Related #111520.
- ·**PR #112172**
- ·**PR #109509**
- ·**PR #112190**
- ·**PR #112073**
- ·**PR #112191**
- ·**PR #109986**
- ·**PR #95713** Related #95696.
- ·**PR #112065**
- ·**PR #94019**
- ·**PR #112047**
- ·**PR #103171** Related #98437.
- ·**PR #108014**
- ·**PR #99772** Related #99620.
- ·**PR #112161**
- ·**PR #112165**
- ·**PR #112168**
- ·**PR #112197**
- ·**PR #103209**
- ·**PR #103266**
- ·**PR #107261**
- ·**PR #90998**
- ·**PR #112039**
- ·**PR #112201**
- ·**PR #112208**
- ·**PR #112025**
- ·**PR #104278**
- ·**PR #112186**
- ·**PR #112163**
- ·**PR #112181**
- ·**PR #112185**
- ·**PR #112199**
- ·**PR #86711** Related #72013.
- ·**PR #112038**
- ·**PR #112224**
- ·**PR #92196** Related #44540.
- ·**PR #112209**
- ·**PR #112203**
- ·**PR #112210** Related #112205, #112206, #112207.
- ·**PR #88203** Related #88111.
- ·**PR #112184**
- ·**PR #112037** Related #111971.
- ·**PR #97059**
- ·**PR #112228** Related #112218.
- ·**PR #112233**
- ·**PR #89096**
- ·**PR #112239**
- ·**PR #112060**
- ·**PR #112082**
- ·**PR #112237**
- ·**PR #112012**
- ·**PR #112006**
- ·**PR #112254**
- ·**PR #111835**
- ·**PR #112216**
- ·**PR #109313** Related #109218.
- ·**PR #112258**
- ·**PR #112188**
- ·**PR #112221**
- ·**PR #112180**
- ·**PR #109647**
- ·**PR #112279**
- ·**PR #112276**
- ·**PR #112261**
- ·**PR #112290**
- ·**PR #112291**
- ·**PR #112287**
- ·**PR #112296**
- ·**PR #112267**
- ·**PR #98631** Related #98591.
- ·**PR #112262**
- ·**PR #112301**
- ·**PR #112235** Related #112234.
- ·**PR #112249**
- ·**PR #111872**
- ·**PR #112293**
- ·**PR #105162** Related #105164.
- ·**PR #111998**
- ·**PR #112211**
- ·**PR #107137** Related #106765.
- ·**PR #112195**
- ·**PR #101906**
- ·**PR #105040** Related #105036.
- ·**PR #105807** Related #105803.
- ·**PR #99643** Related #99601.
- ·**PR #109177**
- ·**PR #109815**
- ·**PR #112175**
- ·**PR #103808**
- ·**PR #103751** Related #100988.
- ·**PR #101037**
- ·**PR #105039**
- ·**PR #112299** Related #111643.
- ·**PR #111281**
- ·**PR #91553** Related #42798.
- ·**PR #109139**
- ·**PR #104637** Related #104538.
- ·**PR #105567**
- ·**PR #102481**
- ·**PR #111209**
- ·**PR #104234**
- ·**PR #109875** Related #109293.
- ·**PR #111266**
- ·**PR #107626**
- ·**PR #111164**
- ·**PR #65359** Related #65305.
- ·**PR #108140**
- ·**PR #103970**
- ·**PR #111307**
- ·**PR #111239**
- ·**PR #110593**
- ·**PR #112056**
- ·**PR #87986** Related #87985.
- ·**PR #102537** Related #102323.
- ·**PR #78139**
- ·**PR #98053** Related #86387.
- ·**PR #99542**
- ·**PR #104265**
- ·**PR #112406**
- ·**PR #112381** Related #112377.
- ·**PR #112337**
- ·**PR #112418**
- ·**PR #112354**
- ·**PR #112379**
- ·**PR #112284**
- ·**PR #101328**
- ·**PR #104111**
- ·**PR #112387**
- ·**PR #112302**
- ·**PR #112334**
- ·**PR #112321** Related #112217, #112219, #112220.
- ·**PR #107935** Related #105423.
- ·**PR #112426**
- ·**PR #112413**
- ·**PR #112444**
- ·**PR #112443**
- ·**PR #112260**
- ·**PR #112400** Related #112040.
- ·**PR #109057** Related #108945.
- ·**PR #101755**
- ·**PR #101973**
- ·**PR #112415**
- ·**PR #112434**
- ·**PR #112412** Related #112405.
- ·**PR #112467**
- ·**PR #112457** Related #112454.
- ·**PR #112471**
- ·**PR #102228**
- ·**PR #112441**
- ·**PR #112433** Related #112242.
- ·**PR #103895** Related #103673.
- ·**PR #112357**
- ·**PR #102296**
- ·**PR #112308**
- ·**PR #112335**
- ·**PR #112338** Related #112336.
- ·**PR #112482**
- ·**PR #112393** Related #91171.
- ·**PR #100146**
- ·**PR #111527**
- ·**PR #112484**
- ·**PR #112491**
- ·**PR #112448**
- ·**PR #111122**
- ·**PR #112236**
- ·**PR #112502**
- ·**PR #112493**
- ·**PR #112503**
- ·**PR #112488**
- ·**PR #112339** Related #112315.
- ·**PR #112506**
- ·**PR #105356**
- ·**PR #111636**
- ·**PR #105884**
- ·**PR #112497**
- ·**PR #112507** Related #98674.
- ·**PR #112510**
- ·**PR #112378**
- ·**PR #112414**
- ·**PR #92261**
- ·**PR #112319**
- ·**PR #112511**
- ·**PR #103866** Related #103864.
- ·**PR #112458** Related #95612, #107668.
- ·**PR #112526**
- ·**PR #112529**
- ·**PR #90579** Related #90557.
- ·**PR #112531**
- ·**PR #112430**
- ·**PR #112465**
- ·**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**
- ·**PR #112566**
- ·**PR #112557**
- ·**PR #112539**
- ·**PR #110216**
- ·**PR #110280**
- ·**PR #112483**
- ·**PR #112232**
- ·**PR #112563**
- ·**PR #112544**
- ·**PR #112562**
- ·**PR #112569**
- ·**PR #112593** Related #100635.
- ·**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**
- ·**PR #112602**
- ·**PR #112613**
- ·**PR #112607** Related #112604.
- ·**PR #112610**
- ·**PR #112578**
- ·**PR #112594**
- ·**PR #112600**
- ·**PR #112628**
- ·**PR #112353** Related #112347.
- ·**PR #112521**
- ·**PR #112633**
- ·**PR #112635**
- ·**PR #110565** Related #108738.
- ·**PR #112639**
- ·**PR #112401** Related #112399.
- ·**PR #112646**
- ·**PR #112629**
- ·**PR #112420**
- ·**PR #112442** Related #112425.
- ·**PR #112658**
- ·**PR #112632**
- ·**PR #112663**
- ·**PR #112245**
- ·**PR #102306**
- ·**PR #112286**
- ·**PR #112396**
- ·**PR #112676**
- ·**PR #112559**
- ·**PR #112560**
- ·**PR #95824**
- ·**PR #102383**
- ·**PR #112530**
- ·**PR #102406**
- ·**PR #112671**
- ·**PR #112651**
- ·**PR #112662**
- ·**PR #112649**
- ·**PR #112673**
- ·**PR #112692**
- ·**PR #112699**
- ·**PR #112715**
- ·**PR #98245**
- ·**PR #102427**
- ·**PR #112704**
- ·**PR #112567**
- ·**PR #102959**
- ·**PR #110235**
- ·**PR #112585**
- ·**PR #108278**
- ·**PR #111258**
- ·**PR #111860** Related #111858.
- ·**PR #112325**
- ·**PR #112755**
- ·**PR #112013**
- ·**PR #112752**
- ·**PR #111877** Related #111832.
- ·**PR #112757**
- ·**PR #106474**
- ·**PR #106859**
- ·**PR #112759**
- ·**PR #112590**
- ·**PR #112766**
- ·**PR #112768**
- ·**PR #109419**
- ·**PR #112770** Related #112750.
- ·**PR #111256**
- ·**PR #112767**
- ·**PR #111905**
- ·**PR #112778**
- ·**PR #96132**
- ·**PR #89912**
- ·**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**
- ·**PR #112788**
- ·**PR #112753**
- ·**PR #112769**
- ·**PR #112781**
- ·**PR #112176**
- ·**PR #112809**
- ·**PR #102982**
- ·**PR #112558**
- ·**PR #112815**
- ·**PR #112582**
- ·**PR #112812**
- ·**PR #112813**
- ·**PR #112494**
- ·**PR #112603**
- ·**PR #112805**
- ·**PR #112802**
- ·**PR #112807** Related #112806.
- ·**PR #112817**
- ·**PR #112533**
- ·**PR #112829** Related #112827.
- ·**PR #111391**
- ·**PR #112524**
- ·**PR #112836**
- ·**PR #112794** Related #112795.
- ·**PR #112723** Related #112688.
- ·**PR #112845**
- ·**PR #112840**
- ·**PR #112782**
- ·**PR #111861**
- ·**PR #112850**
- ·**PR #112841**
- ·**PR #112763** Related #112718, #112719.
- ·**PR #112860**
- ·**PR #112821**
- ·**PR #112853**
- ·**PR #112866**
- ·**PR #112859**
- ·**PR #112874**
- ·**PR #112880** Related #112743.
- ·**PR #112879**
- ·**PR #108436** Related #91243.
- ·**PR #112873**
- ·**PR #112875**
- ·**PR #112883**
- ·**PR #112868** Related #112862.
- ·**PR #112892**
- ·**PR #112899**
- ·**PR #112803**
- ·**PR #112901** Related #111485.
- ·**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**
- ·**PR #112928** Related #112869, #112870.
- ·**PR #112878**
- ·**PR #112884**
- ·**PR #112881**
- ·**PR #112891**
- ·**PR #111641**
- ·**PR #112926**
- ·**PR #112921**
- ·**PR #112935**
- ·**PR #112919**
- ·**PR #112939** Related #77966.
- ·**PR #112937**
- ·**PR #112942**
- ·**PR #112944**
- ·**PR #112922**
- ·**PR #112913**
- ·**PR #112940**
- ·**PR #112918**
- ·**PR #112959**
- ·**PR #112887**
- ·**PR #112968**
- ·**PR #112858**
- ·**PR #112931**
- ·**PR #112972**
- ·**PR #112969**
- ·**PR #112977**
- ·**PR #112993**
- ·**PR #112992**
- ·**PR #112916**
- ·**PR #112169**
- ·**PR #112997**
- ·**PR #112985**
- ·**PR #112936**
- ·**PR #112999**
- ·**PR #113002**
- ·**PR #113003**
- ·**PR #112988**
- ·**PR #112911**
- ·**PR #112798**
- ·**PR #113007**
- ·**PR #112910**
- ·**PR #112981**
- ·**PR #113015**
- ·**PR #112744** Related #112064.
- ·**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**
- ·**PR #113050**
- ·**PR #113052** Related #112742.
- ·**PR #112980**
- ·**PR #113061**
- ·**PR #113006**
- ·**PR #113058**
- ·**PR #112453**
- ·**PR #108916**
- ·**PR #113076**
- ·**PR #113046**
- ·**PR #113075**
- ·**PR #113045**
- ·**PR #113094**
- ·**PR #113072**
- ·**PR #113099**
- ·**PR #113078**
- ·**PR #113102**
- ·**PR #113071**
- ·**PR #106890** Related #106825.
- ·**PR #113114**
- ·**PR #113100**
- ·**PR #112331**
- ·**PR #112967**
- ·**PR #113117**
- ·**PR #113113**
- ·**PR #113116**
- ·**PR #113112** Related #113108.
- ·**PR #113120**
- ·**PR #113110**
- ·**PR #113122**
- ·**PR #113042**
- ·**PR #113129**
- ·**PR #113132**
- ·**PR #113118**
- ·**PR #113134**
- ·**PR #113133**
- ·**PR #113101** Related #112995, #112996.
- ·**PR #113073**
- ·**PR #113135**
- ·**PR #113127**
- ·**PR #112478** Related #112341.
- ·**PR #113138**
- ·**PR #110037**
- ·**PR #113142**
- ·**PR #113141**
- ·**PR #113145**
- ·**PR #113153**
- ·**PR #113103**
- ·**PR #108342**
- ·**PR #113150**
- ·**PR #113151**
- ·**PR #113154**
- ·**PR #113088** Related #113085.
- ·**PR #113158**
- ·**PR #113157**
- ·**PR #113163** Related #113161.
- ·**PR #113155**
- ·**PR #113165**
- ·**PR #113167**
- ·**PR #113175**
- ·**PR #113179**
- ·**PR #113156**
- ·**PR #113174**
- ·**PR #113152**
- ·**PR #113187** Related #113186.
- ·**PR #113178** Related #113177.
- ·**PR #113173**
- ·**PR #113199**
- ·**PR #113202**
- ·**PR #113201**
- ·**PR #97881**
- ·**PR #111457**
- ·**PR #113212**
- ·**PR #112963**
- ·**PR #113216** Related #113209, #113210, #113211.
- ·**PR #113230**
- ·**PR #113235**
- ·**PR #113229**
- ·**PR #113240**
- ·**PR #112947**
- ·**PR #113242**
- ·**PR #113237**
- ·**PR #112952**
- ·**PR #112661** Related #111809.
- ·**PR #113228** Related #113227.
- ·**PR #113247**
- ·**PR #113222**
- ·**PR #113250**
- ·**PR #113223**
- ·**PR #113245**
- ·**PR #113258**
- ·**PR #112834** Related #112826.
- ·**PR #112837** Related #112830.
- ·**PR #113214** Related #113213.
- ·**PR #113248**
- ·**PR #113260**
- ·**PR #113261** Related #113255.
- ·**PR #113254**
- ·**PR #113243**
- ·**PR #113224** Related #113218.
- ·**PR #113239**
- ·**PR #113234**
- ·**PR #113238**
- ·**PR #113236**
- ·**PR #113268**
- ·**PR #113225**
- ·**PR #113256**
- ·**PR #113269**
- ·**PR #113277**
- ·**PR #113278**
- ·**PR #113276**
- ·**PR #113283**
- ·**PR #112954**
- ·**PR #113246**
- ·**PR #113280**
- ·**PR #113279**
- ·**PR #113287** Related #113265.
- ·**PR #112953**
- ·**PR #113289**
- ·**PR #112955**
- ·**PR #111818** Related #111817.
- ·**PR #113295**
- ·**PR #112956**
- ·**PR #113296**
- ·**PR #112946**
- ·**PR #112957**
- ·**PR #113303**
- ·**PR #113299**
- ·**PR #113298**
- ·**PR #113302** Related #113293.
- ·**PR #113297**
- ·**PR #113316** Related #113305.
- ·**PR #113317**
- ·**PR #113313** Related #113304.
- ·**PR #113332**
- ·**PR #113131**
- ·**PR #101981**
- ·**PR #113335**
- ·**PR #113339**
- ·**PR #113343**
- ·**PR #113334**
- ·**PR #113193** Related #85954.
- ·**PR #113350**
- ·**PR #113338**
- ·**PR #113336**
- ·**PR #113356**
- ·**PR #113324**
- ·**PR #113364**
- ·**PR #113363**
- ·**PR #113373**
- ·**PR #113355**
- ·**PR #113367**
- ·**PR #113381**
- ·**PR #113382**
- ·**PR #113384**
- ·**PR #113385**
- ·**PR #113386**
- ·**PR #112773**
- ·**PR #113387**
- ·**PR #111108**
- ·**PR #113322**
- ·**PR #113390**
- ·**PR #113393**
- ·**PR #113397**
- ·**PR #113391**
- ·**PR #113399**
- ·**PR #113400**
- ·**PR #113406**
- ·**PR #113409** Related #113195.
- ·**PR #113407**
- ·**PR #113416**
- ·**PR #113414**
- ·**PR #113392**
- ·**PR #113420**
- ·**PR #113418**
- ·**PR #113307** Related #90013.
- ·**PR #113428**
- ·**PR #113424** Related #113410.
- ·**PR #113413**
- ·**PR #113439** Related #113438.
- ·**PR #113404**
- ·**PR #113452**
- ·**PR #113448**
- ·**PR #113457**
- ·**PR #113450**
- ·**PR #113459**
- ·**PR #113461**
- ·**PR #113468** Related #112842.
- ·**PR #113472**
- ·**PR #113476**
- ·**PR #113453**
- ·**PR #113482**
- ·**PR #113484**
- ·**PR #113473**
- ·**PR #113498**
- ·**PR #113499**
- ·**PR #113464** Related #113463.
- ·**PR #113512**
- ·**PR #112678**
- ·**PR #113518**
- ·**PR #113496**
- ·**PR #113519**
- ·**PR #113522**
- ·**PR #113523**
- ·**PR #113528**
- ·**PR #113525**
- ·**PR #113529**
- ·**PR #113544**
- ·**PR #113547**
- ·**PR #113531**
- ·**PR #113541**
- ·**PR #113539**
- ·**PR #113526**
- ·**PR #113540**
- ·**PR #113552**
- ·**PR #113555**
- ·**PR #113556**
- ·**PR #113534**
- ·**PR #113538**
- ·**PR #113558**
- ·**PR #113160**
- ·**PR #113559**
- ·**PR #113536**
- ·**PR #113537**
- ·**PR #113542**
- ·**PR #113533**
- ·**PR #113543**
- ·**PR #113568**
- ·**PR #113569**
- ·**PR #112958**
- ·**PR #113581**
- ·**PR #113572**
- ·**PR #113580**
- ·**PR #113573**
- ·**PR #113489**
- ·**PR #113574**
- ·**PR #113586**
- ·**PR #113570**
- ·**PR #113585**
- ·**PR #113349** Related #101768.
- ·**PR #113589**
- ·**PR #113514**
- ·**PR #113583**
- ·**PR #111956** Related #111948.
- ·**PR #113591**
- ·**PR #111946** Related #111945.
- ·**PR #113588**
- ·**PR #111898**
- ·**PR #113595**
- ·**PR #113532**
- ·**PR #113592**
- ·**PR #113486** Related #113483.
- ·**PR #113535**
- ·**PR #113597**
- ·**PR #113557**
- ·**PR #113601**
- ·**PR #113603**
- ·**PR #113604**
- ·**PR #113594**
- ·**PR #113596**
- ·**PR #113590**
- ·**PR #113608**
- ·**PR #113259**
- ·**PR #113602**
- ·**PR #112855** Related #112854.
- ·**PR #113610**
- ·**PR #113607**
- ·**PR #112951** Related #112950.
- ·**PR #82366** Related #81715.
- ·**PR #113609**
- ·**PR #102293**
- ·**PR #113613**
- ·**PR #113618**
- ·**PR #113614**
- ·**PR #113617**
- ·**PR #113627**
- ·**PR #113624**
- ·**PR #113615**
- ·**PR #113629**
- ·**PR #113619**
- ·**PR #113636**
- ·**PR #113628**
- ·**PR #113635**
- ·**PR #111951** Related #111950.
- ·**PR #113621**
- ·**PR #113634**
- ·**PR #113616**
- ·**PR #113633** Related #113412.
- ·**PR #113639**
- ·**PR #113623**
- ·**PR #113642**
- ·**PR #113638**
- ·**PR #113632**
- ·**PR #112644**
- ·**PR #113644**
- ·**PR #113571**
- ·**PR #113576**
- ·**PR #113493**
- ·**PR #113648**
- ·**PR #111962** Related #111961.
- ·**PR #113637**
- ·**PR #113626**
- ·**PR #113649**
- ·**PR #113653**
- ·**PR #112053** Related #112049.
- ·**PR #113646**
- ·**PR #110485**
- ·**PR #112057**
- ·**PR #113645**
- ·**PR #112691**
- ·**PR #112251**
- ·**PR #113671**
- ·**PR #113670**
- ·**PR #113659**
- ·**PR #113657**
- ·**PR #113545**
- ·**PR #112640** Related #112637.
- ·**PR #113669**
- ·**PR #112751**
- ·**PR #112416**
- ·**PR #113650**
- ·**PR #113688** Related #113677.
- ·**PR #113682**
- ·**PR #113675**
- ·**PR #113091**
- ·**PR #113664**
- ·**PR #113668**
- ·**PR #113687**
- ·**PR #113647**
- ·**PR #113683**
- ·**PR #113692**
- ·**PR #113696**
- ·**PR #113684**
- ·**PR #112295** Related #112294.
- ·**PR #113700**
- ·**PR #113652**
- ·**PR #113685**
- ·**PR #113455**
- ·**PR #113674**
- ·**PR #113689**
- ·**PR #113691**
- ·**PR #112556**
- ·**PR #113703**
- ·**PR #113695**
- ·**PR #113697**
- ·**PR #112369**
- ·**PR #113681**
- ·**PR #113710**
- ·**PR #113460**
- ·**PR #113711**
- ·**PR #113708**
- ·**PR #113727**
- ·**PR #113728**
- ·**PR #113719**
- ·**PR #113106**
- ·**PR #113722**
- ·**PR #112983** Related #112712.
- ·**PR #113600**
- ·**PR #113716**
- ·**PR #113726**
- ·**PR #113723**
- ·**PR #113738**
- ·**PR #113698**
- ·**PR #113109**
- ·**PR #113690**
- ·**PR #113720**
- ·**PR #113707**
- ·**PR #113714**
- ·**PR #113715**
- ·**PR #113730**
- ·**PR #113686**
- ·**PR #113741**
- ·**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**
- ·**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**
- ·**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**
- ·**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.
- ·**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.
- ·**PR #113354** Related #113353.
- ·**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.
- ·**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**
- ·**PR #114009**
- ·**PR #114018**
- ·**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**
- ·**PR #113605**
- ·**PR #114040**
- ·**PR #114038**
- ·**PR #114051**
- ·**PR #114048**
- ·**PR #114052**
- ·**PR #113471**
- ·**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**
- ·**PR #114104**
- ·**PR #114115**
- ·**PR #114120**
- ·**PR #114122**
- ·**PR #114121**
- ·**PR #114131**
- ·**PR #113883**
- ·**PR #113197**
- ·**PR #114144**
- ·**PR #113906**
- ·**PR #114153**
- ·**PR #114156**
- ·**PR #114157**
- ·**PR #114152**
- ·**PR #114056**
- ·**PR #114130**
- ·**PR #114205**
- ·**PR #114016**
- ·**PR #114212**
- ·**PR #114037**
- ·**PR #114213**
- ·**PR #114217**
- ·**PR #107588**
- ·**PR #112000**
- ·**PR #114221**
- ·**PR #114216**
- ·**PR #114218**
- ·**PR #113667**
- ·**PR #114117**
- ·**PR #114224**
- ·**PR #114227**
- ·**PR #114226**
- ·**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.
- ·**PR #114244**
- ·**PR #114245**
- ·**PR #114246**
- ·**PR #114248**
- ·**PR #114249**
- ·**PR #113866**
- ·**PR #114247**
- ·**PR #114259** Related #114142.
- ·**PR #114258**
- ·**PR #114215** Related #113975.
- ·**PR #114260**
- ·**PR #114256**
- ·**PR #113081** Related #113079.
- ·**PR #114250** Related #114007.
- ·**PR #114265**
- ·**PR #114257**
- ·**PR #114134**
- ·**PR #114271**
- ·**PR #114251**
- ·**PR #113500**
- ·**PR #114112**
- ·**PR #114263**
- ·**PR #114268**
- ·**PR #114262**
- ·**PR #114280**
- ·**PR #114284**
- ·**PR #113063** Related #113060.
- ·**PR #114288**
- ·**PR #113905** Related #106598.
- ·**PR #114290**
- ·**PR #105896** Related #105680.
- ·**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**
- ·**PR #114349**
- ·**PR #114352**
- ·**PR #113959**
- ·**PR #114335**
- ·**PR #114347**
- ·**PR #112838** Related #112825.
- ·**PR #114325**
- ·**PR #114339**
- ·**PR #113266**
- ·**PR #114345**
- ·**PR #114358**
- ·**PR #114344**
- ·**PR #114362**
- ·**PR #114359**
- ·**PR #114360**
- ·**PR #114363**
- ·**PR #114356**
- ·**PR #114365** Related #114238.
- ·**PR #114372**
- ·**PR #114371**
- ·**PR #114373**
- ·**PR #114375**
- ·**PR #114133**
- ·**PR #113884** Related #113823.
- ·**PR #114379**
- ·**PR #114266**
- ·**PR #114136**
- ·**PR #113783**
- ·**PR #114384**
- ·**PR #114369**
- ·**PR #114394**
- ·**PR #114380** Related #114354.
- ·**PR #114346**
- ·**PR #113405**
- ·**PR #114378**
- ·**PR #114397**
- ·**PR #114381**
- ·**PR #114391**
- ·**PR #114366**
- ·**PR #114404**
- ·**PR #113935** Related #113451.
- ·**PR #114396**
- ·**PR #114393**
- ·**PR #114407**
- ·**PR #114395**
- ·**PR #114410**
- ·**PR #113465** Related #107571.
- ·**PR #114021**
- ·**PR #113966**
- ·**PR #114417**
- ·**PR #114041**
- ·**PR #113368** Related #113315.
- ·**PR #114412**
- ·**PR #114400**
- ·**PR #114422**
- ·**PR #114094** Related #114086.
- ·**PR #114399**
- ·**PR #114401**
- ·**PR #114429**
- ·**PR #114383** Related #113612.
- ·**PR #114421**
- ·**PR #114377** Related #114374.
- ·**PR #114413**
- ·**PR #114028**
- ·**PR #114420**
- ·**PR #114443** Related #38829.
- ·**PR #114057**
- ·**PR #114418**
- ·**PR #114451**
- ·**PR #114433**
- ·**PR #114415** Related #114398.
- ·**PR #112634** Related #109031.
- ·**PR #114426**
- ·**PR #114441**
- ·**PR #114446** Related #111128.
- ·**PR #114444**
- ·**PR #114436**
- ·**PR #114455**
- ·**PR #114425**
- ·**PR #114405**
- ·**PR #111743** Related #111741.
- ·**PR #114461** Related #96115, #111704.
- ·**PR #114463**
- ·**PR #114392**
- ·**PR #114469**
- ·**PR #114132**
- ·**PR #114370** Related #114279.
- ·**PR #93516** Related #102885.
- ·**PR #114353**
- ·**PR #114470**
- ·**PR #114474** Related #94529.
- ·**PR #114481**
- ·**PR #114408**
- ·**PR #114126**
- ·**PR #114439**
- ·**PR #114462** Related #114440.
- ·**PR #113654** Related #111906.
- ·**PR #56145** Related #42576.
- ·**PR #114368**
- ·**PR #114450** Related #105078.
- ·**PR #114478**
- ·**PR #114490** Related #114322.
- ·**PR #114457** Related #99174.
- ·**PR #114486**
- ·**PR #114491** Related #83538.
- ·**PR #114496**
- ·**PR #114489** Related #104501.
- ·**PR #114477** Related #103077, #103089, #113005, #114187.
- ·**PR #114495**
- ·**PR #114479**
- ·**PR #114367**
- ·**PR #114275** Related #105668.
- ·**PR #114512**
- ·**PR #114508**
- ·**PR #114494**
- ·**PR #114514**
- ·**PR #114519** Related #113282.
- ·**PR #114521** Related #114320.
- ·**PR #114520**
- ·**PR #114432**
- ·**PR #112166** Related #108331.
- ·**PR #114499**
- ·**PR #114524**
- ·**PR #114453**
- ·**PR #111709**
- ·**PR #112352**
- ·**PR #114528**
- ·**PR #114516**
- ·**PR #114533**
- ·**PR #114504**
- ·**PR #114498**
- ·**PR #114540**
- ·**PR #114537** Related #114321.
- ·**PR #114532**
- ·**PR #114522**
- ·**PR #114476**
- ·**PR #113205** Related #113144, #113148.
- ·**PR #114355**
- ·**PR #114488** Related #114485.
- ·**PR #114539**
- ·**PR #113070** Related #113069.
- ·**PR #114531**
- ·**PR #112492** Related #112477.
- ·**PR #114562**
- ·**PR #114497**
- ·**PR #114542**
- ·**PR #114515**
- ·**PR #114546** Related #105306.
- ·**PR #114567**
- ·**PR #114511**
- ·**PR #114569** Related #111383.
- ·**PR #114571**
- ·**PR #111960** Related #111959.
- ·**PR #114548**
- ·**PR #114509**
- ·**PR #110399**
- ·**PR #114549**
- ·**PR #114386** Related #103930.
- ·**PR #114568** Related #114563.
- ·**PR #114560**
- ·**PR #114581**
- ·**PR #114449** Related #114385.
- ·**PR #114106**
- ·**PR #114556**
- ·**PR #114582**
- ·**PR #114559**
- ·**PR #105931**
- ·**PR #114585**
- ·**PR #107800** Related #106568.
- ·**PR #114564** Related #113252.
- ·**PR #114558**
- ·**PR #114273** Related #106649.
- ·**PR #114597**
- ·**PR #114572**
- ·**PR #114547**
- ·**PR #113012**
- ·**PR #114607**
- ·**PR #114606**
- ·**PR #114616**
- ·**PR #114500** Related #103735.
- ·**PR #113454**
- ·**PR #97024**
- ·**PR #114618**
- ·**PR #114465**
- ·**PR #114076** Related #105701.
- ·**PR #110849**
- ·**PR #114357**
- ·**PR #114526**
- ·**PR #114505**
v2026.6.332026-08-08
openclaw 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)
- ·**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)
- ·**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)
- ·**Safer credential recovery:** service restarts preserve SecretRef-backed Telegram credentials, and OAuth repair no longer overwrites an already-valid destination profile. (#99124, #97541)
- ·**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)
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)
- ·**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)
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)
- ·**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)
- ·**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)
- ·**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)
Complete contribution record
- ·**PR #98835** Related #98672.
- ·**PR #96989**
- ·**PR #95412**
- ·**PR #95108**
- ·**PR #97499**
- ·**PR #102953**
- ·**PR #97551**
- ·**PR #97540**
- ·**PR #95416**
- ·**PR #97614**
- ·**PR #97808**
- ·**PR #96445**
- ·**PR #97961**
- ·**PR #97838**
- ·**PR #98455**
- ·**PR #100889**
- ·**PR #77973** Related #77976.
- ·**PR #99291** Related #98958.
- ·**PR #99428** Related #96982.
- ·**PR #98130**
- ·**PR #100047** Related #99976.
- ·**PR #100389** Related #99994.
- ·**PR #98682**
- ·**PR #99479**
- ·**PR #101079**
- ·**PR #101160**
- ·**PR #102105**
- ·**PR #102450**
- ·**PR #100483** Related #100423.
- ·**PR #102050**
- ·**PR #102952** Related #55365.
- ·**PR #102160** Related #85826, #96168.
- ·**PR #96224** Related #77986.
- ·**PR #96599**
- ·**PR #96615** Related #96589.
- ·**PR #89812** Related #89626.
- ·**PR #92274** Related #91527.
- ·**PR #96396** Related #95784.
- ·**PR #96096** Related #85900.
- ·**PR #96831** Related #94083.
- ·**PR #96142** Related #95574.
- ·**PR #97044** Related #96983.
- ·**PR #94452** Related #94040.
- ·**PR #96772**
- ·**PR #96042**
- ·**PR #96038**
- ·**PR #96031**
- ·**PR #95103**
- ·**PR #97620**
- ·**PR #97693**
- ·**PR #98496**
- ·**PR #97784**
- ·**PR #97140** Related #97091.
- ·**PR #95543** Related #95474.
- ·**PR #97504**
- ·**PR #90908**
- ·**PR #97356**
- ·**PR #97541** Related #97522.
- ·**PR #97520** Related #97313.
- ·**PR #96544**
- ·**PR #97579**
- ·**PR #96644**
- ·**PR #97214**
- ·**PR #97372**
- ·**PR #95774**
- ·**PR #95084** Related #90684.
- ·**PR #97367**
- ·**PR #98693**
- ·**PR #89817**
- ·**PR #96965** Related #96929.
- ·**PR #100107**
- ·**PR #97861**
- ·**PR #96444**
- ·**PR #96492**
- ·**PR #97870**
- ·**PR #98142**
- ·**PR #98226** Related #98225.
- ·**PR #99460** Related #99459.
- ·**PR #98354**
- ·**PR #98508**
- ·**PR #93379** Related #77755.
- ·**PR #99070**
- ·**PR #98720** Related #98463.
- ·**PR #99800**
- ·**PR #100744**
- ·**PR #98262** Related #98239.
- ·**PR #101366** Related #84600.
- ·**PR #100835**
- ·**PR #102035**
- ·**PR #101617**
- ·**PR #101744**
- ·**PR #101739**
- ·**PR #102089**
- ·**PR #102661** Related #98038.
- ·**PR #102403**
- ·**PR #102398**
- ·**PR #102426**
- ·**PR #102840**
- ·**PR #103441** Related #68691.
- ·**PR #103267**
- ·**PR #104015**
- ·**PR #103619**
- ·**PR #104337** Related #104330.
- ·**PR #102881** Related #102834.
- ·**PR #105769**
- ·**PR #102924**
- ·**PR #106056**
- ·**PR #106806** Related #103056.
- ·**PR #96143** Related #77616.
- ·**PR #97271**
- ·**PR #96762**
- ·**PR #97235**
- ·**PR #95542** Related #95519.
- ·**PR #97571** Related #97564.
- ·**PR #86088**
- ·**PR #99960**
- ·**PR #85296**
- ·**PR #100484**
- ·**PR #100722** Related #98864.
- ·**PR #94149** Related #84698.
- ·**PR #96065**
- ·**PR #99124** Related #98107.
- ·**PR #99931** Related #98357.
- ·**PR #91584**
- ·**PR #100896** Related #56610.
- ·**PR #103867**
- ·**PR #101378** Related #91489, #92054, #98573.
- ·**PR #101394**
- ·**PR #100686**
- ·**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.
- ·**PR #103074**
- ·**PR #103822**
- ·**PR #101107**
- ·**PR #103620**
- ·**PR #103861**
- ·**PR #105259**
- ·**PR #104213** Related #104208.
- ·**PR #104715**
- ·**PR #105082**
- ·**PR #102031**
- ·**PR #106755**
- ·**PR #106854**
- ·**PR #103994**
- ·**PR #102996**
- ·**PR #99811** Related #99808.
- ·**PR #100438**
- ·**PR #102759** Related #102757.
- ·**PR #102858**
- ·**PR #102896**
- ·**PR #103737**
- ·**PR #103759**
- ·**PR #103906**
- ·**PR #104162** Related #104161.
- ·**PR #104697**
- ·**PR #105746**
- ·**PR #99266**
- ·**PR #100448**
- ·**PR #107832**
- ·**PR #99212**
- ·**PR #107872**
- ·**PR #102600**
- ·**PR #103204** Related #103189.
Release verification
- ·npm package: [`openclaw@2026.6.33`](https://www.npmjs.com/package/openclaw/v/2026.6.33)
- ·npm registry tarball: [`openclaw-2026.6.33.tgz`](https://registry.npmjs.org/openclaw/-/openclaw-2026.6.33.tgz)
- ·npm integrity: `sha512-53MCYfnMEzQmrh/mFNpqfUcQunZASPZ2qYOmqn6wq3K4gZPzV0QOMwjxOCU2C+VmQ5FqzVU8exy7j7pyL3EBzQ==`
- ·Container images: [GHCR](https://github.com/openclaw/openclaw/pkgs/container/openclaw) and [Docker Hub](https://hub.docker.com/r/openclaw/openclaw/tags?name=2026.6.33), with exact tags `2026.6.33`, `2026.6.33-slim`, and `2026.6.33-browser` for amd64 and arm64
- ·Container manifest digests: default/slim `sha256:99546785a121ccac065263d4b609c3dc08a396d260b20c837722e7998be0a6ee`; browser `sha256:91b9af17a0a5667defbb74a411da668054374c6165033e990a935f6a154cc48c`
- ·Release commit: [`7af0cfc9c5488e03c4e2f528bdc7ac9f7778b35e`](https://github.com/openclaw/openclaw/commit/7af0cfc9c5488e03c4e2f528bdc7ac9f7778b35e)
- ·Release workflows: [npm preflight](https://github.com/openclaw/openclaw/actions/runs/29817136995), [Full Release Validation](https://github.com/openclaw/openclaw/actions/runs/29817162968), [plugin npm publish](https://github.com/openclaw/openclaw/actions/runs/29825338302), [OpenClaw npm publish](https://github.com/openclaw/openclaw/actions/runs/29825660318), and [Docker Release](https://github.com/openclaw/openclaw/actions/runs/29817086729)
v2026.7.2-beta.3pre-release2026-07-18
openclaw 2026.7.2-beta.3
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)
- ·**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)
- ·**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)
- ·**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 `OPENCLAW_SUPERVISOR_MODE=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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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.
- ·**Control UI Settings shortcut:** open Settings with ⇧⌘, while leaving the browser-owned ⌘, shortcut unchanged.
- ·**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)
- ·**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.
- ·**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.
- ·**Workboard dispatch cap:** add a request-scoped `--max-starts` override while preserving the default cap, sequential starts, and one-card-per-owner guard. (#100174)
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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
- ·**Tlon SSE connect cleanup:** disarm opening deadlines after failed HTTP responses and rejected stream opens so reconnect attempts cannot leave stale timers behind. (#104585)
- ·**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)
- ·**Mattermost websocket connection deadlines:** bound opening handshakes so stalled TCP peers cannot hang channel startup indefinitely and reconnect control resumes after timeout. (#105553)
- ·**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)
- ·**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)
- ·**LINE control-command mentions:** detect authorized slash commands before mention stripping so inline group and direct-message controls preserve the original ingress metadata. (#107230)
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**Mattermost progress command details:** accept the documented `streaming.preview.commandText` and `streaming.progress.commandText` modes in channel config validation and bundled metadata.
- ·**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.
- ·**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.
- ·**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)
- ·**Nested resource ignores:** honor slash-free patterns and escaped literal exclamation marks in nested ignore files during skill and resource discovery.
- ·**Proxy bypass precedence:** honor blank lower-case `no_proxy` values shadowing upper-case `NO_PROXY` 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.
- ·**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)
- ·**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
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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
- ·**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)
- ·**Transcript read failures:** propagate permission and I/O failures from streaming JSONL session reads instead of treating unreadable transcripts as empty. (#106412)
- ·**Restart sentinel diagnostics:** report SQLite read/write and legacy-file cleanup failures while preserving best-effort restart recovery behavior. (#106385)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**LINE directive templates:** suppress confirms and buttons with blank required fields or unlabeled actions while preserving valid titleless buttons and surrounding reply text. (#105520)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**Gateway chat typecheck:** import chat event types from their owning protocol schema after the retired aggregate type module was removed, restoring full project typechecks.
- ·**Packaged Crabbox commands:** include the lease-freshness helper imported by the published wrapper so `crabbox:*` commands do not fail with `ERR_MODULE_NOT_FOUND` in npm installs.
- ·**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.
- ·**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)
- ·**Outbound channel bootstrap:** suppress repeated failed plugin activation for the same channel, config, and registry generation while retrying after config or registry reloads. (#100377)
- ·**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)
- ·**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)
- ·**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)
- ·**Telegram reasoning previews:** reposition split reasoning previews through deferred deletion so prior preview messages do not remain stale while preserving client scroll position. (#97828)
- ·**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)
- ·**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)
- ·**Canvas A2UI validation:** reject malformed or unsupported JSONL at CLI, agent-tool, and final node-invoke boundaries while preserving native v0.8 dispatch. (#103713)
- ·**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)
- ·**ClickClack output sanitization:** strip internal tool and XML scaffolding at the sender boundary, suppress scaffold-only sends, and preserve optional modern delivery IDs. (#103142)
- ·**Agent-core truncation:** avoid empty-output crashes when head truncation receives negative line or byte ceilings. (#103425)
- ·**Windows Node resolution:** preserve the current executable when resolving bare case-insensitive `node.exe` entries under hostile `PATH` values. (#103907)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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 `OPENCLAW_STATE_DIR` points elsewhere, keep implicit CLI preflight notice-only, and reserve cross-state imports for direct operator doctor runs. (#103247, #103317)
- ·**Doctor clean-state guidance:** stop suggesting `openclaw doctor --fix` after a clean run with no config changes while preserving targeted repair hints. (#103233)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Authorization boundaries:** require operator-admin authority for paired-node directory browsing and block prototype pollution in migration config merges. (#106004, #106116)
- ·**Conversation identity:** retain speaker attribution across group turns and reduce malformed Discord guild reply tool calls. (#107025, #107474)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Channel delivery:** warn when scalar streaming falls back and make ClickClack media delivery durable while using the selected model's runtime budget. (#106796, #105775)
- ·**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)
- ·**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)
- ·**Network and resource matching:** share canonical NO_PROXY behavior and honor nested ignore patterns plus escaped literal exclamation marks. (#107711, #106258)
- ·**Markdown frontmatter:** preserve coerced fallback values when YAML nodes cannot be represented directly.
Complete contribution record
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.2pre-release2026-07-17
openclaw 2026.7.2-beta.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)
- ·**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)
- ·**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)
- ·**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 `OPENCLAW_SUPERVISOR_MODE=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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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.
- ·**Control UI Settings shortcut:** open Settings with ⇧⌘, while leaving the browser-owned ⌘, shortcut unchanged.
- ·**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)
- ·**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.
- ·**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.
- ·**Workboard dispatch cap:** add a request-scoped `--max-starts` override while preserving the default cap, sequential starts, and one-card-per-owner guard. (#100174)
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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
- ·**Tlon SSE connect cleanup:** disarm opening deadlines after failed HTTP responses and rejected stream opens so reconnect attempts cannot leave stale timers behind. (#104585)
- ·**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)
- ·**Mattermost websocket connection deadlines:** bound opening handshakes so stalled TCP peers cannot hang channel startup indefinitely and reconnect control resumes after timeout. (#105553)
- ·**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)
- ·**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)
- ·**LINE control-command mentions:** detect authorized slash commands before mention stripping so inline group and direct-message controls preserve the original ingress metadata. (#107230)
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**Mattermost progress command details:** accept the documented `streaming.preview.commandText` and `streaming.progress.commandText` modes in channel config validation and bundled metadata.
- ·**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.
- ·**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.
- ·**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)
- ·**Nested resource ignores:** honor slash-free patterns and escaped literal exclamation marks in nested ignore files during skill and resource discovery.
- ·**Proxy bypass precedence:** honor blank lower-case `no_proxy` values shadowing upper-case `NO_PROXY` 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.
- ·**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)
- ·**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
- ·**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.
- ·**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.
- ·**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.
- ·**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.
- ·**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)
- ·**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
- ·**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)
- ·**Transcript read failures:** propagate permission and I/O failures from streaming JSONL session reads instead of treating unreadable transcripts as empty. (#106412)
- ·**Restart sentinel diagnostics:** report SQLite read/write and legacy-file cleanup failures while preserving best-effort restart recovery behavior. (#106385)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**LINE directive templates:** suppress confirms and buttons with blank required fields or unlabeled actions while preserving valid titleless buttons and surrounding reply text. (#105520)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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.
- ·**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.
- ·**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.
- ·**Gateway chat typecheck:** import chat event types from their owning protocol schema after the retired aggregate type module was removed, restoring full project typechecks.
- ·**Packaged Crabbox commands:** include the lease-freshness helper imported by the published wrapper so `crabbox:*` commands do not fail with `ERR_MODULE_NOT_FOUND` in npm installs.
- ·**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.
- ·**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)
- ·**Outbound channel bootstrap:** suppress repeated failed plugin activation for the same channel, config, and registry generation while retrying after config or registry reloads. (#100377)
- ·**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)
- ·**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)
- ·**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)
- ·**Telegram reasoning previews:** reposition split reasoning previews through deferred deletion so prior preview messages do not remain stale while preserving client scroll position. (#97828)
- ·**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)
- ·**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)
- ·**Canvas A2UI validation:** reject malformed or unsupported JSONL at CLI, agent-tool, and final node-invoke boundaries while preserving native v0.8 dispatch. (#103713)
- ·**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)
- ·**ClickClack output sanitization:** strip internal tool and XML scaffolding at the sender boundary, suppress scaffold-only sends, and preserve optional modern delivery IDs. (#103142)
- ·**Agent-core truncation:** avoid empty-output crashes when head truncation receives negative line or byte ceilings. (#103425)
- ·**Windows Node resolution:** preserve the current executable when resolving bare case-insensitive `node.exe` entries under hostile `PATH` values. (#103907)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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 `OPENCLAW_STATE_DIR` points elsewhere, keep implicit CLI preflight notice-only, and reserve cross-state imports for direct operator doctor runs. (#103247, #103317)
- ·**Doctor clean-state guidance:** stop suggesting `openclaw doctor --fix` after a clean run with no config changes while preserving targeted repair hints. (#103233)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Authorization boundaries:** require operator-admin authority for paired-node directory browsing and block prototype pollution in migration config merges. (#106004, #106116)
- ·**Conversation identity:** retain speaker attribution across group turns and reduce malformed Discord guild reply tool calls. (#107025, #107474)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Channel delivery:** warn when scalar streaming falls back and make ClickClack media delivery durable while using the selected model's runtime budget. (#106796, #105775)
- ·**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)
- ·**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)
- ·**Network and resource matching:** share canonical NO_PROXY behavior and honor nested ignore patterns plus escaped literal exclamation marks. (#107711, #106258)
- ·**Markdown frontmatter:** preserve coerced fallback values when YAML nodes cannot be represented directly.
Complete contribution record
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.1pre-release2026-07-15
openclaw 2026.7.2-beta.1
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Authorization boundaries:** require operator-admin authority for paired-node directory browsing and block prototype pollution in migration config merges. (#106004, #106116)
- ·**Conversation identity:** retain speaker attribution across group turns and reduce malformed Discord guild reply tool calls. (#107025, #107474)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Channel delivery:** warn when scalar streaming falls back and make ClickClack media delivery durable while using the selected model's runtime budget. (#106796, #105775)
- ·**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)
- ·**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)
- ·**Network and resource matching:** share canonical NO_PROXY behavior and honor nested ignore patterns plus escaped literal exclamation marks. (#107711, #106258)
- ·**Markdown frontmatter:** preserve coerced fallback values when YAML nodes cannot be represented directly.
Complete contribution record
- ·**PR #100361**
- ·**PR #102316** Related #102312.
- ·**PR #102331**
- ·**PR #99221** Related #102219.
- ·**PR #99065** Related #77922.
- ·**PR #98299**
- ·**PR #101754**
- ·**PR #101630**
- ·**PR #101736**
- ·**PR #102377**
- ·**PR #101617**
- ·**PR #102246**
- ·**PR #98316**
- ·**PR #101375** Related #101286.
- ·**PR #102332**
- ·**PR #102066**
- ·**PR #101815**
- ·**PR #102225**
- ·**PR #102090**
- ·**PR #101976**
- ·**PR #102378**
- ·**PR #102410**
- ·**PR #92517**
- ·**PR #101946**
- ·**PR #102420** Related #102388.
- ·**PR #102085**
- ·**PR #102105**
- ·**PR #102157**
- ·**PR #102395**
- ·**PR #102422** Related #102421.
- ·**PR #102266**
- ·**PR #101781**
- ·**PR #101934**
- ·**PR #88082**
- ·**PR #102455**
- ·**PR #102448**
- ·**PR #102414**
- ·**PR #102407**
- ·**PR #102438** Related #102430.
- ·**PR #102461**
- ·**PR #102463**
- ·**PR #102450**
- ·**PR #102372** Related #102371.
- ·**PR #102476**
- ·**PR #102466**
- ·**PR #102464**
- ·**PR #102467**
- ·**PR #102470**
- ·**PR #102465**
- ·**PR #102442**
- ·**PR #102489** Related #102460.
- ·**PR #102492** Related #102446.
- ·**PR #102491** Related #102453.
- ·**PR #102483**
- ·**PR #102497**
- ·**PR #102478**
- ·**PR #101501**
- ·**PR #101649**
- ·**PR #102493** Related #102472.
- ·**PR #101506**
- ·**PR #101838** Related #101835.
- ·**PR #102484**
- ·**PR #102477**
- ·**PR #101611**
- ·**PR #102496**
- ·**PR #102526**
- ·**PR #102518**
- ·**PR #102511**
- ·**PR #102523** Related #102517.
- ·**PR #101853** Related #101810.
- ·**PR #102125**
- ·**PR #102431**
- ·**PR #102500**
- ·**PR #102531**
- ·**PR #102451**
- ·**PR #102509**
- ·**PR #102512**
- ·**PR #102513**
- ·**PR #102515**
- ·**PR #102525**
- ·**PR #102527**
- ·**PR #102536** Related #102528.
- ·**PR #102522**
- ·**PR #102516**
- ·**PR #102149**
- ·**PR #102558**
- ·**PR #102436**
- ·**PR #102309** Related #102308.
- ·**PR #102276** Related #102252.
- ·**PR #102524**
- ·**PR #102195**
- ·**PR #102389** Related #101837.
- ·**PR #102549** Related #102548.
- ·**PR #101832** Related #101785.
- ·**PR #102559** Related #102498.
- ·**PR #102160** Related #85826, #96168.
- ·**PR #102479** Related #102471.
- ·**PR #101921**
- ·**PR #102539**
- ·**PR #102573** Related #102556.
- ·**PR #101411**
- ·**PR #102542**
- ·**PR #102560**
- ·**PR #102564** Related #102540.
- ·**PR #80656**
- ·**PR #102565**
- ·**PR #102104**
- ·**PR #102601** Related #102556, #102535.
- ·**PR #102547**
- ·**PR #102544**
- ·**PR #102583**
- ·**PR #102570**
- ·**PR #102561**
- ·**PR #102543**
- ·**PR #102576**
- ·**PR #102590**
- ·**PR #102591**
- ·**PR #102347**
- ·**PR #102639**
- ·**PR #102563** Related #102545.
- ·**PR #102551**
- ·**PR #102567**
- ·**PR #101744**
- ·**PR #101739**
- ·**PR #102089**
- ·**PR #102641**
- ·**PR #49436**
- ·**PR #102572**
- ·**PR #102592**
- ·**PR #102161**
- ·**PR #89255**
- ·**PR #97105**
- ·**PR #102661** Related #98038.
- ·**PR #102660**
- ·**PR #101423**
- ·**PR #102593**
- ·**PR #102443**
- ·**PR #102663**
- ·**PR #102586** Related #102503.
- ·**PR #102603**
- ·**PR #102604**
- ·**PR #102025**
- ·**PR #102605**
- ·**PR #102675**
- ·**PR #102550**
- ·**PR #102051**
- ·**PR #102481**
- ·**PR #50483**
- ·**PR #102413**
- ·**PR #102070** Related #102057.
- ·**PR #102328**
- ·**PR #101911**
- ·**PR #102606**
- ·**PR #102403**
- ·**PR #102398**
- ·**PR #102348** Related #102251.
- ·**PR #102480**
- ·**PR #102608**
- ·**PR #102027**
- ·**PR #102664** Related #102654.
- ·**PR #102704**
- ·**PR #102677** Related #102642.
- ·**PR #96994** Related #96639.
- ·**PR #102607**
- ·**PR #101856**
- ·**PR #102611**
- ·**PR #102714**
- ·**PR #102633**
- ·**PR #102643** Related #102598.
- ·**PR #102494**
- ·**PR #101840** Related #101790.
- ·**PR #102688** Related #102673.
- ·**PR #102582** Related #102566.
- ·**PR #102733** Related #99201.
- ·**PR #102599**
- ·**PR #102612**
- ·**PR #102616**
- ·**PR #102617**
- ·**PR #79438**
- ·**PR #101880** Related #101851.
- ·**PR #102618**
- ·**PR #102621**
- ·**PR #38290** Related #46520.
- ·**PR #102750**
- ·**PR #101510**
- ·**PR #102622**
- ·**PR #102748** Related #102706.
- ·**PR #100118**
- ·**PR #102760**
- ·**PR #102743** Related #102579.
- ·**PR #102778**
- ·**PR #102764**
- ·**PR #102634**
- ·**PR #102753**
- ·**PR #102631**
- ·**PR #102624**
- ·**PR #102793**
- ·**PR #102759** Related #102757.
- ·**PR #102028**
- ·**PR #102758**
- ·**PR #102783**
- ·**PR #102745** Related #102423.
- ·**PR #102766** Related #102754.
- ·**PR #102789**
- ·**PR #102791** Related #102751.
- ·**PR #102050**
- ·**PR #102786** Related #102756.
- ·**PR #102777**
- ·**PR #102809**
- ·**PR #102814**
- ·**PR #102656**
- ·**PR #102795**
- ·**PR #102227**
- ·**PR #102817**
- ·**PR #102418**
- ·**PR #102625**
- ·**PR #102627**
- ·**PR #102842** Related #102841.
- ·**PR #102626**
- ·**PR #98582** Related #98283.
- ·**PR #102382** Related #102320.
- ·**PR #102835** Related #102577.
- ·**PR #102829**
- ·**PR #102833**
- ·**PR #102848** Related #102821.
- ·**PR #102823**
- ·**PR #102871**
- ·**PR #102013**
- ·**PR #102867**
- ·**PR #102816**
- ·**PR #97858** Related #97048.
- ·**PR #102876**
- ·**PR #102776**
- ·**PR #102819**
- ·**PR #102147**
- ·**PR #87393** Related #87384.
- ·**PR #102784** Related #102806.
- ·**PR #102902**
- ·**PR #102830** Related #102055.
- ·**PR #102810**
- ·**PR #102825** Related #102393.
- ·**PR #102855**
- ·**PR #102856**
- ·**PR #102808** Related #102806.
- ·**PR #102893** Related #102716.
- ·**PR #102869**
- ·**PR #102872**
- ·**PR #102905** Related #102457.
- ·**PR #102416**
- ·**PR #102942**
- ·**PR #61396**
- ·**PR #102944**
- ·**PR #102658**
- ·**PR #102426**
- ·**PR #102952** Related #55365.
- ·**PR #102946** Related #97027.
- ·**PR #102901** Related #102895.
- ·**PR #95473**
- ·**PR #102899** Related #102691.
- ·**PR #102968**
- ·**PR #96537** Related #96490.
- ·**PR #96686** Related #96677.
- ·**PR #97264**
- ·**PR #96400**
- ·**PR #102894** Related #102888.
- ·**PR #102986**
- ·**PR #96684**
- ·**PR #102996**
- ·**PR #103006**
- ·**PR #102998**
- ·**PR #102877**
- ·**PR #103016**
- ·**PR #102685**
- ·**PR #103010** Related #103001.
- ·**PR #102949**
- ·**PR #102963**
- ·**PR #102969**
- ·**PR #102803**
- ·**PR #98338**
- ·**PR #103002**
- ·**PR #98350**
- ·**PR #103064**
- ·**PR #103030**
- ·**PR #88426**
- ·**PR #103082**
- ·**PR #102119** Related #101979.
- ·**PR #103073** Related #103063.
- ·**PR #103085**
- ·**PR #102988**
- ·**PR #55596** Related #55512.
- ·**PR #99242**
- ·**PR #102880** Related #102878.
- ·**PR #103090** Related #103086.
- ·**PR #103091**
- ·**PR #103094**
- ·**PR #103034**
- ·**PR #103102**
- ·**PR #103105**
- ·**PR #103098**
- ·**PR #103107**
- ·**PR #94419** Related #94418.
- ·**PR #101488**
- ·**PR #103104**
- ·**PR #102186**
- ·**PR #102863**
- ·**PR #103099**
- ·**PR #101643**
- ·**PR #102659**
- ·**PR #101652**
- ·**PR #103114**
- ·**PR #103109**
- ·**PR #103097** Related #103092.
- ·**PR #103123**
- ·**PR #103110**
- ·**PR #103093** Related #103079, #103080.
- ·**PR #103120**
- ·**PR #103100**
- ·**PR #102978**
- ·**PR #102307** Related #99912.
- ·**PR #103101**
- ·**PR #103106**
- ·**PR #101661**
- ·**PR #103129** Related #103128.
- ·**PR #103122**
- ·**PR #103111**
- ·**PR #102813**
- ·**PR #103134**
- ·**PR #103136**
- ·**PR #103127**
- ·**PR #103140**
- ·**PR #103130**
- ·**PR #103138**
- ·**PR #102947** Related #102934.
- ·**PR #102840**
- ·**PR #103115**
- ·**PR #103033** Related #103021.
- ·**PR #103066**
- ·**PR #103151**
- ·**PR #102889** Related #102875.
- ·**PR #102951**
- ·**PR #99266**
- ·**PR #103119**
- ·**PR #103156**
- ·**PR #102981** Related #102960.
- ·**PR #103152**
- ·**PR #102866**
- ·**PR #102424**
- ·**PR #102999** Related #102910.
- ·**PR #103139**
- ·**PR #103149**
- ·**PR #103126** Related #103125.
- ·**PR #103154**
- ·**PR #103160**
- ·**PR #103068**
- ·**PR #103158**
- ·**PR #102939**
- ·**PR #103182** Related #103180.
- ·**PR #103177**
- ·**PR #103167**
- ·**PR #103195** Related #103187.
- ·**PR #103194** Related #102914.
- ·**PR #103225** Related #103221.
- ·**PR #90738** Related #89594.
- ·**PR #103224** Related #103203.
- ·**PR #103223** Related #103208.
- ·**PR #103217**
- ·**PR #103172**
- ·**PR #103197** Related #103184.
- ·**PR #103175**
- ·**PR #103237**
- ·**PR #101078** Related #99919.
- ·**PR #102202** Related #101716.
- ·**PR #102445** Related #102235.
- ·**PR #101023**
- ·**PR #103253**
- ·**PR #102953**
- ·**PR #102409**
- ·**PR #102805** Related #102632.
- ·**PR #102971** Related #102915.
- ·**PR #103264**
- ·**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.
- ·**PR #103233** Related #80435.
- ·**PR #103247**
- ·**PR #102987**
- ·**PR #103278**
- ·**PR #102635**
- ·**PR #103293** Related #103270.
- ·**PR #102993** Related #102908.
- ·**PR #103268**
- ·**PR #102997**
- ·**PR #103310**
- ·**PR #103299** Related #103298.
- ·**PR #103321** Related #103319.
- ·**PR #103316** Related #103283.
- ·**PR #98124** Related #97994.
- ·**PR #102637** Related #102614.
- ·**PR #103289** Related #99031.
- ·**PR #103328**
- ·**PR #103252**
- ·**PR #103349** Related #63829, #81205, #103088.
- ·**PR #103351**
- ·**PR #103338** Related #103333.
- ·**PR #97629** Related #97621.
- ·**PR #103343**
- ·**PR #103357**
- ·**PR #103096** Related #103013.
- ·**PR #103353** Related #103317.
- ·**PR #103345** Related #103320.
- ·**PR #103327**
- ·**PR #103384** Related #103360.
- ·**PR #103372** Related #103347.
- ·**PR #103071**
- ·**PR #103326** Related #103318.
- ·**PR #98111** Related #93203.
- ·**PR #103255**
- ·**PR #103399** Related #103392.
- ·**PR #103258**
- ·**PR #103266**
- ·**PR #103274**
- ·**PR #103404** Related #98290.
- ·**PR #103275**
- ·**PR #103411**
- ·**PR #103406** Related #103403.
- ·**PR #76364** Related #76352.
- ·**PR #103419** Related #103388.
- ·**PR #103416** Related #103368.
- ·**PR #103214** Related #102800.
- ·**PR #102169**
- ·**PR #103005** Related #102936.
- ·**PR #103272**
- ·**PR #101696**
- ·**PR #103430** Related #103427.
- ·**PR #103340** Related #103315.
- ·**PR #103075**
- ·**PR #103422** Related #103335.
- ·**PR #103329** Related #103311.
- ·**PR #103410**
- ·**PR #103438** Related #103334.
- ·**PR #103284** Related #103246.
- ·**PR #103344**
- ·**PR #102925**
- ·**PR #103396** Related #103053.
- ·**PR #103337**
- ·**PR #102884**
- ·**PR #103446** Related #103389.
- ·**PR #103441** Related #68691.
- ·**PR #103450**
- ·**PR #101740**
- ·**PR #103352**
- ·**PR #103218** Related #100944.
- ·**PR #103426** Related #103420.
- ·**PR #103469**
- ·**PR #103220** Related #102933.
- ·**PR #103470** Related #103250.
- ·**PR #103484**
- ·**PR #103074**
- ·**PR #103488** Related #103454.
- ·**PR #103393** Related #103378.
- ·**PR #103478**
- ·**PR #103493**
- ·**PR #103117**
- ·**PR #102305** Related #102269.
- ·**PR #103457** Related #103427.
- ·**PR #103502** Related #103053.
- ·**PR #103359**
- ·**PR #103486** Related #103480.
- ·**PR #103504** Related #103451.
- ·**PR #97926** Related #97925.
- ·**PR #103501** Related #103489.
- ·**PR #103471**
- ·**PR #103510** Related #103324.
- ·**PR #103508** Related #103500.
- ·**PR #103528** Related #103335.
- ·**PR #103476** Related #103462.
- ·**PR #103412**
- ·**PR #103463** Related #103461.
- ·**PR #99536** Related #85714.
- ·**PR #103561** Related #103544.
- ·**PR #99578** Related #99465.
- ·**PR #101765**
- ·**PR #103069**
- ·**PR #103563**
- ·**PR #101854**
- ·**PR #103576** Related #103575.
- ·**PR #103536** Related #103533.
- ·**PR #103178**
- ·**PR #103585**
- ·**PR #102507** Related #102267.
- ·**PR #103330**
- ·**PR #103593** Related #103574.
- ·**PR #102811** Related #102676.
- ·**PR #103573**
- ·**PR #87590** Related #87588.
- ·**PR #102026**
- ·**PR #94517** Related #13870.
- ·**PR #103595** Related #103517.
- ·**PR #103609** Related #103588.
- ·**PR #88953**
- ·**PR #103601**
- ·**PR #103617** Related #103610.
- ·**PR #102892** Related #97602.
- ·**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.
- ·**PR #103644**
- ·**PR #103439** Related #103435.
- ·**PR #103656** Related #103655.
- ·**PR #103483** Related #103475.
- ·**PR #99097** Related #99096.
- ·**PR #103665** Related #78362.
- ·**PR #103670** Related #103662.
- ·**PR #103671**
- ·**PR #103629** Related #103626.
- ·**PR #103672** Related #103661.
- ·**PR #102486**
- ·**PR #103682**
- ·**PR #103657**
- ·**PR #103669** Related #103666.
- ·**PR #103689**
- ·**PR #103341**
- ·**PR #103020** Related #28506.
- ·**PR #87449** Related #87322.
- ·**PR #103210**
- ·**PR #103072**
- ·**PR #103487**
- ·**PR #103722** Related #103643.
- ·**PR #103415** Related #103366.
- ·**PR #103432**
- ·**PR #103743**
- ·**PR #103543**
- ·**PR #103737**
- ·**PR #103600**
- ·**PR #103490** Related #103473.
- ·**PR #103580**
- ·**PR #103767** Related #103766.
- ·**PR #103777** Related #103753.
- ·**PR #103790** Related #103749, #103754.
- ·**PR #103796**
- ·**PR #103772**
- ·**PR #102530** Related #102508.
- ·**PR #103267**
- ·**PR #103433**
- ·**PR #103339**
- ·**PR #103638** Related #103637.
- ·**PR #97966** Related #97877.
- ·**PR #103748** Related #103554.
- ·**PR #103798**
- ·**PR #103814** Related #103741.
- ·**PR #103759**
- ·**PR #103647** Related #103205.
- ·**PR #103769** Related #103768.
- ·**PR #103816** Related #103782.
- ·**PR #103810**
- ·**PR #103646**
- ·**PR #103108**
- ·**PR #103813**
- ·**PR #103822**
- ·**PR #103805**
- ·**PR #102262**
- ·**PR #91797**
- ·**PR #103815** Related #103245.
- ·**PR #101107**
- ·**PR #90821** Related #66535.
- ·**PR #103594**
- ·**PR #103709**
- ·**PR #103833**
- ·**PR #97259**
- ·**PR #103837**
- ·**PR #103836** Related #92452.
- ·**PR #103839** Related #103831.
- ·**PR #103832**
- ·**PR #103645**
- ·**PR #101712**
- ·**PR #103843**
- ·**PR #103821** Related #103554.
- ·**PR #102781** Related #102700.
- ·**PR #103569**
- ·**PR #103834** Related #103774.
- ·**PR #103848**
- ·**PR #103498**
- ·**PR #103616**
- ·**PR #103863** Related #103854.
- ·**PR #103878** Related #103875.
- ·**PR #103870**
- ·**PR #103526**
- ·**PR #103649**
- ·**PR #103886** Related #103869.
- ·**PR #103207** Related #103188.
- ·**PR #103889** Related #103896.
- ·**PR #103899**
- ·**PR #103892** Related #103876.
- ·**PR #103707**
- ·**PR #103891**
- ·**PR #103894** Related #103885.
- ·**PR #103618**
- ·**PR #103909**
- ·**PR #103628** Related #102244.
- ·**PR #103925**
- ·**PR #103922** Related #103919.
- ·**PR #103809** Related #103800.
- ·**PR #103515** Related #44749, #78225.
- ·**PR #103936** Related #103897.
- ·**PR #90817** Related #90766.
- ·**PR #103943** Related #103942.
- ·**PR #103941**
- ·**PR #103908**
- ·**PR #103915**
- ·**PR #103944** Related #103939.
- ·**PR #103945** Related #103902.
- ·**PR #103960** Related #103888.
- ·**PR #103951** Related #103851.
- ·**PR #103757**
- ·**PR #103964** Related #103887.
- ·**PR #103789**
- ·**PR #98105** Related #97996.
- ·**PR #103967**
- ·**PR #103966**
- ·**PR #103913**
- ·**PR #103219**
- ·**PR #103907**
- ·**PR #103548**
- ·**PR #103971**
- ·**PR #103962**
- ·**PR #103972** Related #103969.
- ·**PR #103442**
- ·**PR #103738**
- ·**PR #103976** Related #103168.
- ·**PR #103853**
- ·**PR #103985**
- ·**PR #103740**
- ·**PR #103994**
- ·**PR #103999**
- ·**PR #103996**
- ·**PR #104008**
- ·**PR #104009**
- ·**PR #103950**
- ·**PR #103997**
- ·**PR #104004**
- ·**PR #103981**
- ·**PR #103425**
- ·**PR #104002**
- ·**PR #104016**
- ·**PR #104015**
- ·**PR #104011** Related #104005.
- ·**PR #104013**
- ·**PR #102897**
- ·**PR #103713**
- ·**PR #96120**
- ·**PR #102373**
- ·**PR #103142**
- ·**PR #104010** Related #104003.
- ·**PR #104007**
- ·**PR #104025**
- ·**PR #104024**
- ·**PR #104028** Related #104019.
- ·**PR #104001**
- ·**PR #103727**
- ·**PR #104030**
- ·**PR #103408** Related #103400.
- ·**PR #102469**
- ·**PR #103496**
- ·**PR #104035**
- ·**PR #104036**
- ·**PR #104037**
- ·**PR #104047**
- ·**PR #104043** Related #103830.
- ·**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.
- ·**PR #104066**
- ·**PR #91828** Related #91154.
- ·**PR #103653**
- ·**PR #101783**
- ·**PR #103893**
- ·**PR #104073**
- ·**PR #104061** Related #104040.
- ·**PR #104074**
- ·**PR #102804**
- ·**PR #103273**
- ·**PR #97828** Related #80862.
- ·**PR #104097**
- ·**PR #104012** Related #103986.
- ·**PR #104100**
- ·**PR #104092**
- ·**PR #103453** Related #103364.
- ·**PR #104099**
- ·**PR #104090**
- ·**PR #99905**
- ·**PR #100908**
- ·**PR #90942** Related #90941.
- ·**PR #91280** Related #53250.
- ·**PR #51926** Related #51903.
- ·**PR #104124**
- ·**PR #103642**
- ·**PR #104144** Related #104142.
- ·**PR #90759** Related #76888.
- ·**PR #102972**
- ·**PR #102859**
- ·**PR #102062**
- ·**PR #102862**
- ·**PR #97007** Related #89551.
- ·**PR #104089** Related #104087.
- ·**PR #104174** Related #104163.
- ·**PR #104177** Related #104169.
- ·**PR #104137** Related #102064.
- ·**PR #104154** Related #104153.
- ·**PR #104183** Related #14861.
- ·**PR #104166**
- ·**PR #104175**
- ·**PR #104187** Related #104167.
- ·**PR #104180** Related #104145.
- ·**PR #104147** Related #104135.
- ·**PR #104178**
- ·**PR #104130** Related #104078.
- ·**PR #103583** Related #12602.
- ·**PR #104143** Related #104080.
- ·**PR #104112** Related #104077.
- ·**PR #104181**
- ·**PR #104125**
- ·**PR #104193**
- ·**PR #104155**
- ·**PR #104119**
- ·**PR #104200** Related #104197.
- ·**PR #104198**
- ·**PR #104202** Related #104170.
- ·**PR #104203** Related #104081.
- ·**PR #104172** Related #104079.
- ·**PR #103547**
- ·**PR #104210** Related #104199.
- ·**PR #87799** Related #73814, #90008.
- ·**PR #104191** Related #104082.
- ·**PR #103555**
- ·**PR #104227** Related #104083.
- ·**PR #104184** Related #104182.
- ·**PR #104242**
- ·**PR #104233**
- ·**PR #104229**
- ·**PR #104252**
- ·**PR #104238** Related #104206.
- ·**PR #103719** Related #103385.
- ·**PR #104045** Related #103235.
- ·**PR #104228**
- ·**PR #99086** Related #98620.
- ·**PR #104215**
- ·**PR #104213** Related #104208.
- ·**PR #104247**
- ·**PR #104237**
- ·**PR #95263**
- ·**PR #104262**
- ·**PR #104235**
- ·**PR #103407**
- ·**PR #104266**
- ·**PR #104171** Related #104041.
- ·**PR #104291**
- ·**PR #104281**
- ·**PR #104207**
- ·**PR #102860**
- ·**PR #104280**
- ·**PR #103867**
- ·**PR #104268**
- ·**PR #102865**
- ·**PR #104297**
- ·**PR #104287** Related #104231.
- ·**PR #104255** Related #104253.
- ·**PR #104300**
- ·**PR #104239**
- ·**PR #104303**
- ·**PR #104305** Related #104304.
- ·**PR #103619**
- ·**PR #104299**
- ·**PR #104306** Related #104214.
- ·**PR #104311**
- ·**PR #104302** Related #104282.
- ·**PR #100377**
- ·**PR #104307**
- ·**PR #102965**
- ·**PR #104310** Related #104309.
- ·**PR #104314**
- ·**PR #104205** Related #104204.
- ·**PR #104316**
- ·**PR #104296**
- ·**PR #104150**
- ·**PR #99972** Related #99603.
- ·**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.
- ·**PR #104352**
- ·**PR #104350** Related #104338.
- ·**PR #104356**
- ·**PR #104357**
- ·**PR #104368** Related #104363.
- ·**PR #104387**
- ·**PR #81778** Related #81751.
- ·**PR #104374** Related #104365.
- ·**PR #97740** Related #97069.
- ·**PR #104376**
- ·**PR #104361** Related #104321.
- ·**PR #104370**
- ·**PR #102341**
- ·**PR #94999**
- ·**PR #104342**
- ·**PR #95536** Related #94124.
- ·**PR #104355**
- ·**PR #104380**
- ·**PR #104378** Related #104375.
- ·**PR #104384**
- ·**PR #104139**
- ·**PR #104397** Related #104371.
- ·**PR #104392**
- ·**PR #104391**
- ·**PR #104400**
- ·**PR #104398**
- ·**PR #104407** Related #104372.
- ·**PR #104408**
- ·**PR #104411**
- ·**PR #104293**
- ·**PR #104402** Related #42510.
- ·**PR #103752**
- ·**PR #104418**
- ·**PR #104421**
- ·**PR #104417**
- ·**PR #104419** Related #104382.
- ·**PR #103728**
- ·**PR #104426** Related #104425.
- ·**PR #104431**
- ·**PR #104254** Related #103783.
- ·**PR #104434**
- ·**PR #104416** Related #104409.
- ·**PR #104439**
- ·**PR #104225**
- ·**PR #104226**
- ·**PR #104249**
- ·**PR #103731**
- ·**PR #104401**
- ·**PR #104448**
- ·**PR #104447**
- ·**PR #104443** Related #104435.
- ·**PR #89442**
- ·**PR #104445** Related #104444.
- ·**PR #104319**
- ·**PR #104450** Related #91212.
- ·**PR #104451**
- ·**PR #104244**
- ·**PR #104455**
- ·**PR #104263**
- ·**PR #92411**
- ·**PR #104459**
- ·**PR #98561** Related #98560.
- ·**PR #104437** Related #104399.
- ·**PR #104156**
- ·**PR #103975** Related #103973.
- ·**PR #104438**
- ·**PR #104173**
- ·**PR #104465**
- ·**PR #104475** Related #104388.
- ·**PR #104472** Related #104471.
- ·**PR #104452** Related #104446.
- ·**PR #104482**
- ·**PR #97157**
- ·**PR #104478**
- ·**PR #104110**
- ·**PR #104404**
- ·**PR #104422** Related #104386.
- ·**PR #95725** Related #94224.
- ·**PR #103331**
- ·**PR #104343**
- ·**PR #104508**
- ·**PR #104532**
- ·**PR #104528** Related #104493.
- ·**PR #104476**
- ·**PR #104542**
- ·**PR #104188** Related #104176.
- ·**PR #104539**
- ·**PR #104553**
- ·**PR #101000**
- ·**PR #104557**
- ·**PR #104563**
- ·**PR #104440**
- ·**PR #104260**
- ·**PR #104151**
- ·**PR #104148**
- ·**PR #104414**
- ·**PR #104572**
- ·**PR #104201**
- ·**PR #104410**
- ·**PR #104556**
- ·**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**
- ·**PR #102974**
- ·**PR #104536**
- ·**PR #89702** Related #92768.
- ·**PR #104582**
- ·**PR #104586**
- ·**PR #104449** Related #94102.
- ·**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.
- ·**PR #104603**
- ·**PR #104634**
- ·**PR #104636** Related #104565.
- ·**PR #104301**
- ·**PR #104649**
- ·**PR #104647**
- ·**PR #104651**
- ·**PR #104646** Related #104474.
- ·**PR #100965**
- ·**PR #104661** Related #104645.
- ·**PR #104655**
- ·**PR #104658**
- ·**PR #104612**
- ·**PR #104659** Related #104457.
- ·**PR #104547**
- ·**PR #104592**
- ·**PR #104669** Related #104644.
- ·**PR #104578**
- ·**PR #104670**
- ·**PR #104502** Related #104424.
- ·**PR #104665**
- ·**PR #104674**
- ·**PR #103903**
- ·**PR #104673**
- ·**PR #103445**
- ·**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**
- ·**PR #104385**
- ·**PR #104677**
- ·**PR #104699**
- ·**PR #104423**
- ·**PR #104697**
- ·**PR #104638**
- ·**PR #104705**
- ·**PR #104396**
- ·**PR #104604** Related #104590.
- ·**PR #104560**
- ·**PR #104710** Related #104709.
- ·**PR #104095**
- ·**PR #104620**
- ·**PR #104276** Related #104245.
- ·**PR #104621**
- ·**PR #104576**
- ·**PR #104454**
- ·**PR #104496**
- ·**PR #104075**
- ·**PR #104715**
- ·**PR #104622**
- ·**PR #104460**
- ·**PR #98236**
- ·**PR #104470** Related #104469.
- ·**PR #104723**
- ·**PR #104724**
- ·**PR #104726**
- ·**PR #104728**
- ·**PR #104653**
- ·**PR #103860** Related #103362.
- ·**PR #103181** Related #103137.
- ·**PR #104737** Related #104731.
- ·**PR #104685** Related #103150.
- ·**PR #104735**
- ·**PR #104498**
- ·**PR #104739** Related #100622.
- ·**PR #104652**
- ·**PR #104741**
- ·**PR #104619**
- ·**PR #104740**
- ·**PR #103011**
- ·**PR #104531**
- ·**PR #104744**
- ·**PR #104745** Related #104743.
- ·**PR #104748** Related #104738.
- ·**PR #104754**
- ·**PR #104751**
- ·**PR #104487**
- ·**PR #104256** Related #103684.
- ·**PR #104635** Related #104614.
- ·**PR #104540**
- ·**PR #104633**
- ·**PR #104758**
- ·**PR #97888**
- ·**PR #89816**
- ·**PR #104752**
- ·**PR #104575**
- ·**PR #104678**
- ·**PR #104761** Related #104746.
- ·**PR #104094**
- ·**PR #104760**
- ·**PR #104749** Related #104747.
- ·**PR #103263**
- ·**PR #104777**
- ·**PR #104550** Related #104518.
- ·**PR #104526** Related #104524.
- ·**PR #104771**
- ·**PR #104567** Related #104566.
- ·**PR #104617**
- ·**PR #104784**
- ·**PR #104774**
- ·**PR #104772**
- ·**PR #104766**
- ·**PR #103472**
- ·**PR #104059** Related #104058.
- ·**PR #104571** Related #104568.
- ·**PR #104789**
- ·**PR #104065** Related #104050.
- ·**PR #104790**
- ·**PR #104787** Related #104780.
- ·**PR #104776** Related #104775.
- ·**PR #104554**
- ·**PR #103579**
- ·**PR #104797**
- ·**PR #104129**
- ·**PR #97722**
- ·**PR #104109**
- ·**PR #104534**
- ·**PR #104802**
- ·**PR #104759** Related #104720.
- ·**PR #104026** Related #104014.
- ·**PR #103998** Related #103882.
- ·**PR #103248**
- ·**PR #104770** Related #104764.
- ·**PR #104767**
- ·**PR #104289**
- ·**PR #104736**
- ·**PR #104805**
- ·**PR #104801**
- ·**PR #104795**
- ·**PR #101912**
- ·**PR #103704**
- ·**PR #104717** Related #104598.
- ·**PR #104813**
- ·**PR #104809**
- ·**PR #103763**
- ·**PR #104788**
- ·**PR #104823**
- ·**PR #104757** Related #104698.
- ·**PR #104523**
- ·**PR #104826**
- ·**PR #104121**
- ·**PR #102340**
- ·**PR #104831**
- ·**PR #104832** Related #104781.
- ·**PR #104546**
- ·**PR #104839**
- ·**PR #104827** Related #104822.
- ·**PR #104768** Related #104765.
- ·**PR #104819** Related #104818.
- ·**PR #104693**
- ·**PR #104828**
- ·**PR #103679**
- ·**PR #104882**
- ·**PR #104891**
- ·**PR #104884** Related #104881.
- ·**PR #103698**
- ·**PR #104864**
- ·**PR #104894**
- ·**PR #104885**
- ·**PR #104897**
- ·**PR #104858**
- ·**PR #104308**
- ·**PR #104900**
- ·**PR #104902**
- ·**PR #104887**
- ·**PR #104908**
- ·**PR #99880**
- ·**PR #104808**
- ·**PR #104913**
- ·**PR #103912**
- ·**PR #101694**
- ·**PR #104925**
- ·**PR #104926**
- ·**PR #104883**
- ·**PR #104859** Related #104856.
- ·**PR #104909**
- ·**PR #104838**
- ·**PR #104773**
- ·**PR #104936**
- ·**PR #104934**
- ·**PR #104914**
- ·**PR #104938**
- ·**PR #104943**
- ·**PR #104873**
- ·**PR #104944**
- ·**PR #104948**
- ·**PR #104952**
- ·**PR #104946** Related #104945.
- ·**PR #104954**
- ·**PR #104958**
- ·**PR #104961**
- ·**PR #104880**
- ·**PR #104886**
- ·**PR #104960**
- ·**PR #104974**
- ·**PR #104964** Related #104945.
- ·**PR #104834** Related #104833.
- ·**PR #69039**
- ·**PR #104988**
- ·**PR #104990**
- ·**PR #104963**
- ·**PR #104994**
- ·**PR #104978**
- ·**PR #104998**
- ·**PR #104730** Related #104700.
- ·**PR #104734** Related #104713.
- ·**PR #104995**
- ·**PR #105005**
- ·**PR #104792**
- ·**PR #104906**
- ·**PR #105007**
- ·**PR #104807**
- ·**PR #105006**
- ·**PR #104846**
- ·**PR #104981**
- ·**PR #104997** Related #104993.
- ·**PR #104921**
- ·**PR #104116**
- ·**PR #104866** Related #104844.
- ·**PR #105015** Related #95685.
- ·**PR #105008**
- ·**PR #105026** Related #103691.
- ·**PR #105023**
- ·**PR #103522** Related #103386.
- ·**PR #105031**
- ·**PR #105020** Related #105019.
- ·**PR #104687**
- ·**PR #103155**
- ·**PR #104814** Related #104791.
- ·**PR #105024**
- ·**PR #104251** Related #104217.
- ·**PR #104942** Related #104941.
- ·**PR #105037**
- ·**PR #105047** Related #105045.
- ·**PR #104190** Related #93928.
- ·**PR #105052**
- ·**PR #102366** Related #102365.
- ·**PR #104800**
- ·**PR #105094**
- ·**PR #105091** Related #105087.
- ·**PR #104796**
- ·**PR #102060** Related #97593.
- ·**PR #104811**
- ·**PR #105072** Related #59090.
- ·**PR #103491**
- ·**PR #105048**
- ·**PR #104816**
- ·**PR #105100**
- ·**PR #105092**
- ·**PR #105082**
- ·**PR #105071**
- ·**PR #105117**
- ·**PR #105099** Related #105043.
- ·**PR #105126**
- ·**PR #105107**
- ·**PR #105115**
- ·**PR #105114** Related #105051.
- ·**PR #105134**
- ·**PR #105136**
- ·**PR #105088**
- ·**PR #105046**
- ·**PR #105065** Related #105053.
- ·**PR #105140** Related #105130.
- ·**PR #104863**
- ·**PR #105076**
- ·**PR #105118**
- ·**PR #105057** Related #100978.
- ·**PR #103811** Related #103387.
- ·**PR #105132**
- ·**PR #103303**
- ·**PR #105069** Related #105068.
- ·**PR #105144**
- ·**PR #105150**
- ·**PR #105159**
- ·**PR #105143** Related #105122.
- ·**PR #105022** Related #104945.
- ·**PR #105142**
- ·**PR #105075**
- ·**PR #105038** Related #104999.
- ·**PR #101274**
- ·**PR #105169**
- ·**PR #105095** Related #104996.
- ·**PR #105172**
- ·**PR #105153** Related #105109.
- ·**PR #105174** Related #105141.
- ·**PR #105061**
- ·**PR #105179**
- ·**PR #105160** Related #96653.
- ·**PR #105205**
- ·**PR #105206** Related #105181.
- ·**PR #105177** Related #105176.
- ·**PR #102881** Related #102834.
- ·**PR #105083** Related #105004.
- ·**PR #105208**
- ·**PR #105210**
- ·**PR #82505** Related #82504.
- ·**PR #105175** Related #105129.
- ·**PR #105050**
- ·**PR #105213**
- ·**PR #105180**
- ·**PR #105224**
- ·**PR #105219**
- ·**PR #105151** Related #38844.
- ·**PR #105221**
- ·**PR #105215** Related #94058.
- ·**PR #105220** Related #105207.
- ·**PR #105214**
- ·**PR #105236**
- ·**PR #105222**
- ·**PR #105241**
- ·**PR #105182** Related #105178.
- ·**PR #105250**
- ·**PR #105245**
- ·**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**
- ·**PR #105260**
- ·**PR #105261** Related #105218.
- ·**PR #105259**
- ·**PR #105272**
- ·**PR #105030**
- ·**PR #105276**
- ·**PR #105255**
- ·**PR #105283**
- ·**PR #105285** Related #105278.
- ·**PR #105280**
- ·**PR #105282** Related #105281.
- ·**PR #105291**
- ·**PR #105293**
- ·**PR #105299**
- ·**PR #100929**
- ·**PR #105123**
- ·**PR #105292**
- ·**PR #105303**
- ·**PR #105304** Related #105294.
- ·**PR #105309**
- ·**PR #105265** Related #105264.
- ·**PR #105313** Related #105308.
- ·**PR #105312**
- ·**PR #105311**
- ·**PR #105317**
- ·**PR #105324**
- ·**PR #105049**
- ·**PR #105332**
- ·**PR #105333**
- ·**PR #105314**
- ·**PR #105330**
- ·**PR #105331** Related #105326.
- ·**PR #105287** Related #105154, #105155.
- ·**PR #105337**
- ·**PR #105345**
- ·**PR #105343**
- ·**PR #105340**
- ·**PR #105349**
- ·**PR #105351** Related #105344.
- ·**PR #105336** Related #91083.
- ·**PR #105341**
- ·**PR #105352**
- ·**PR #101864**
- ·**PR #105355**
- ·**PR #105348**
- ·**PR #105358**
- ·**PR #105361**
- ·**PR #105363**
- ·**PR #105359** Related #105354.
- ·**PR #101852**
- ·**PR #105362**
- ·**PR #105360**
- ·**PR #105366** Related #105364.
- ·**PR #105369**
- ·**PR #105275**
- ·**PR #105377**
- ·**PR #105367**
- ·**PR #105370**
- ·**PR #105382**
- ·**PR #105385**
- ·**PR #105388** Related #105383.
- ·**PR #105394**
- ·**PR #105375**
- ·**PR #105384** Related #105373.
- ·**PR #105400**
- ·**PR #105406**
- ·**PR #105412**
- ·**PR #105416**
- ·**PR #105390**
- ·**PR #105411**
- ·**PR #105443**
- ·**PR #105398**
- ·**PR #105446**
- ·**PR #105399**
- ·**PR #105421** Related #105404.
- ·**PR #105395**
- ·**PR #105407**
- ·**PR #105408**
- ·**PR #104488**
- ·**PR #105409**
- ·**PR #105459**
- ·**PR #105468**
- ·**PR #105469** Related #105463.
- ·**PR #105103**
- ·**PR #105474**
- ·**PR #105476** Related #105461.
- ·**PR #102357** Related #102356.
- ·**PR #105482**
- ·**PR #105472**
- ·**PR #102094**
- ·**PR #105486**
- ·**PR #102072**
- ·**PR #105497**
- ·**PR #105347**
- ·**PR #105499**
- ·**PR #105495**
- ·**PR #105502**
- ·**PR #103018**
- ·**PR #104290**
- ·**PR #105505**
- ·**PR #105506**
- ·**PR #105510**
- ·**PR #105508**
- ·**PR #105509**
- ·**PR #105522**
- ·**PR #105524**
- ·**PR #105372**
- ·**PR #105516**
- ·**PR #105525**
- ·**PR #105521**
- ·**PR #103634**
- ·**PR #105526**
- ·**PR #105119**
- ·**PR #105531**
- ·**PR #103995**
- ·**PR #105534**
- ·**PR #105538**
- ·**PR #104815** Related #104803.
- ·**PR #105542**
- ·**PR #101469**
- ·**PR #104919** Related #104903.
- ·**PR #104962**
- ·**PR #105546**
- ·**PR #105535**
- ·**PR #104949**
- ·**PR #105116**
- ·**PR #105545**
- ·**PR #105554**
- ·**PR #105541**
- ·**PR #105552** Related #105543.
- ·**PR #105563**
- ·**PR #105570**
- ·**PR #105566**
- ·**PR #104896**
- ·**PR #105555** Related #105532.
- ·**PR #105572**
- ·**PR #105569**
- ·**PR #105577**
- ·**PR #105012** Related #105010.
- ·**PR #105583**
- ·**PR #105587**
- ·**PR #105589**
- ·**PR #105585** Related #105581.
- ·**PR #105596**
- ·**PR #105591**
- ·**PR #105599**
- ·**PR #104662**
- ·**PR #105600** Related #105582.
- ·**PR #105595** Related #105575.
- ·**PR #105597**
- ·**PR #105606**
- ·**PR #105540**
- ·**PR #105598**
- ·**PR #105603**
- ·**PR #105612**
- ·**PR #105592**
- ·**PR #105615**
- ·**PR #105627**
- ·**PR #105611**
- ·**PR #105607**
- ·**PR #105613**
- ·**PR #105626** Related #105608.
- ·**PR #105631**
- ·**PR #103717**
- ·**PR #105258** Related #102250.
- ·**PR #105475**
- ·**PR #103468**
- ·**PR #105471**
- ·**PR #105628**
- ·**PR #104274**
- ·**PR #105520** Related #105511.
- ·**PR #105636**
- ·**PR #105605**
- ·**PR #105539** Related #105035.
- ·**PR #105479**
- ·**PR #105639**
- ·**PR #105635** Related #81583.
- ·**PR #105616** Related #105590.
- ·**PR #104196** Related #104194.
- ·**PR #105646** Related #105602.
- ·**PR #101474**
- ·**PR #105645**
- ·**PR #104152**
- ·**PR #105663**
- ·**PR #105671** Related #105618.
- ·**PR #105642** Related #105568.
- ·**PR #105687**
- ·**PR #104675**
- ·**PR #105691**
- ·**PR #105688** Related #105127.
- ·**PR #104122**
- ·**PR #105704**
- ·**PR #105711**
- ·**PR #105718**
- ·**PR #105709**
- ·**PR #105702** Related #105632.
- ·**PR #105719**
- ·**PR #105721**
- ·**PR #105722**
- ·**PR #105594**
- ·**PR #105604**
- ·**PR #105580**
- ·**PR #105740**
- ·**PR #105739**
- ·**PR #105717** Related #88307.
- ·**PR #105728**
- ·**PR #102231**
- ·**PR #101496**
- ·**PR #105737**
- ·**PR #105742**
- ·**PR #105743** Related #105730.
- ·**PR #105755**
- ·**PR #105492** Related #105436.
- ·**PR #105746**
- ·**PR #105720**
- ·**PR #105760**
- ·**PR #105762**
- ·**PR #104168**
- ·**PR #105747**
- ·**PR #105767**
- ·**PR #105756**
- ·**PR #105771**
- ·**PR #105772**
- ·**PR #105773**
- ·**PR #105778**
- ·**PR #105774** Related #105748.
- ·**PR #105776** Related #105733.
- ·**PR #105777**
- ·**PR #105397**
- ·**PR #104132**
- ·**PR #105782**
- ·**PR #105519** Related #105422.
- ·**PR #105614** Related #105439.
- ·**PR #105770** Related #105749.
- ·**PR #105386** Related #105188.
- ·**PR #105788**
- ·**PR #105768**
- ·**PR #105783** Related #105758.
- ·**PR #105792**
- ·**PR #105790** Related #58570.
- ·**PR #105800**
- ·**PR #105799**
- ·**PR #105786** Related #105785.
- ·**PR #105804** Related #105764.
- ·**PR #105811**
- ·**PR #105809**
- ·**PR #102976**
- ·**PR #105289** Related #103736.
- ·**PR #105801** Related #105745, #105779.
- ·**PR #105812**
- ·**PR #105816**
- ·**PR #105387**
- ·**PR #105794**
- ·**PR #105815**
- ·**PR #105834**
- ·**PR #105813** Related #88643.
- ·**PR #105832**
- ·**PR #105802** Related #105761.
- ·**PR #105839**
- ·**PR #105856**
- ·**PR #105866**
- ·**PR #105878**
- ·**PR #105859**
- ·**PR #105315**
- ·**PR #105891**
- ·**PR #105864**
- ·**PR #105861**
- ·**PR #94130** Related #78145.
- ·**PR #105894** Related #105825.
- ·**PR #105826**
- ·**PR #105789** Related #105757.
- ·**PR #105795**
- ·**PR #105908**
- ·**PR #105818**
- ·**PR #105858**
- ·**PR #105769**
- ·**PR #99007** Related #98879, #98865.
- ·**PR #105876**
- ·**PR #105902** Related #105898.
- ·**PR #105808**
- ·**PR #105906** Related #105905.
- ·**PR #104632**
- ·**PR #105925** Related #105900.
- ·**PR #105918**
- ·**PR #97078**
- ·**PR #105955**
- ·**PR #104218** Related #104136.
- ·**PR #105983**
- ·**PR #105991**
- ·**PR #105365**
- ·**PR #105997** Related #90925.
- ·**PR #106022**
- ·**PR #105941** Related #102367.
- ·**PR #105831** Related #105828, #105829.
- ·**PR #103620**
- ·**PR #106006** Related #105965.
- ·**PR #106042**
- ·**PR #106003** Related #105950.
- ·**PR #105913** Related #105912.
- ·**PR #106052**
- ·**PR #105867**
- ·**PR #106071** Related #106059.
- ·**PR #105975** Related #105949.
- ·**PR #106048** Related #104105.
- ·**PR #106061**
- ·**PR #105961** Related #105956.
- ·**PR #105977** Related #105972.
- ·**PR #105953** Related #105932.
- ·**PR #105989** Related #105969.
- ·**PR #106037**
- ·**PR #105948** Related #105946.
- ·**PR #105947**
- ·**PR #106051** Related #105915.
- ·**PR #106070**
- ·**PR #106064**
- ·**PR #105927**
- ·**PR #105957** Related #105897.
- ·**PR #105995** Related #105964.
- ·**PR #106001**
- ·**PR #102924**
- ·**PR #106017**
- ·**PR #106072**
- ·**PR #105944** Related #105938.
- ·**PR #105945**
- ·**PR #105952**
- ·**PR #106087**
- ·**PR #97086**
- ·**PR #106021**
- ·**PR #106063**
- ·**PR #106031**
- ·**PR #106062** Related #106053.
- ·**PR #104624**
- ·**PR #105890**
- ·**PR #106096**
- ·**PR #106012** Related #105967.
- ·**PR #98189**
- ·**PR #106030** Related #105962.
- ·**PR #106103**
- ·**PR #106108**
- ·**PR #105988** Related #105985.
- ·**PR #105993**
- ·**PR #105156** Related #94688.
- ·**PR #105842**
- ·**PR #106121**
- ·**PR #106109**
- ·**PR #105958**
- ·**PR #106124**
- ·**PR #106126**
- ·**PR #95757** Related #91947.
- ·**PR #105850**
- ·**PR #106117** Related #106076.
- ·**PR #106095**
- ·**PR #106132**
- ·**PR #105814** Related #105741.
- ·**PR #106099**
- ·**PR #105674** Related #105672.
- ·**PR #106097**
- ·**PR #94416** Related #93501.
- ·**PR #106139**
- ·**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.
- ·**PR #106093** Related #106054.
- ·**PR #106176** Related #105862.
- ·**PR #106056**
- ·**PR #106115** Related #106107.
- ·**PR #106098**
- ·**PR #106184**
- ·**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.
- ·**PR #106155**
- ·**PR #106165**
- ·**PR #106034**
- ·**PR #106057**
- ·**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.
- ·**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**
- ·**PR #106228**
- ·**PR #106237**
- ·**PR #106234** Related #106219.
- ·**PR #106221**
- ·**PR #106205** Related #106185.
- ·**PR #105928** Related #105843.
- ·**PR #106195** Related #106194.
- ·**PR #106240**
- ·**PR #106230**
- ·**PR #105865**
- ·**PR #106105** Related #105431.
- ·**PR #106154** Related #106148.
- ·**PR #104878** Related #104490.
- ·**PR #97611**
- ·**PR #106247**
- ·**PR #106256**
- ·**PR #106253**
- ·**PR #106257**
- ·**PR #106242**
- ·**PR #106263**
- ·**PR #106113** Related #105963.
- ·**PR #104123**
- ·**PR #106197**
- ·**PR #106133** Related #105924.
- ·**PR #106252**
- ·**PR #106243** Related #106233.
- ·**PR #106210**
- ·**PR #106265** Related #106245.
- ·**PR #106046**
- ·**PR #105921**
- ·**PR #106055**
- ·**PR #106016** Related #105996.
- ·**PR #106275**
- ·**PR #104893** Related #104865.
- ·**PR #106279**
- ·**PR #106269**
- ·**PR #106200**
- ·**PR #106254**
- ·**PR #106292**
- ·**PR #104668**
- ·**PR #106289**
- ·**PR #106260**
- ·**PR #106301**
- ·**PR #106174** Related #106138.
- ·**PR #103211** Related #101720.
- ·**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**
- ·**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.
- ·**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.
- ·**PR #106316** Related #106274.
- ·**PR #106380**
- ·**PR #106317**
- ·**PR #105448** Related #105447.
- ·**PR #106092**
- ·**PR #106287** Related #106278.
- ·**PR #106294** Related #106259.
- ·**PR #106038**
- ·**PR #106282**
- ·**PR #106224** Related #106213.
- ·**PR #106394**
- ·**PR #106401**
- ·**PR #103993** Related #99660.
- ·**PR #106152** Related #105974.
- ·**PR #106347** Related #106310.
- ·**PR #106409**
- ·**PR #106320**
- ·**PR #106410** Related #106389.
- ·**PR #106419**
- ·**PR #106411**
- ·**PR #106418**
- ·**PR #106426**
- ·**PR #106428** Related #106417.
- ·**PR #106431**
- ·**PR #105754** Related #102400.
- ·**PR #106354** Related #106350.
- ·**PR #106434**
- ·**PR #106435** Related #105973.
- ·**PR #106091** Related #106088.
- ·**PR #106440**
- ·**PR #106387** Related #106207.
- ·**PR #106441** Related #106433.
- ·**PR #106427**
- ·**PR #106447**
- ·**PR #105833** Related #105529.
- ·**PR #106455**
- ·**PR #106457**
- ·**PR #106451** Related #106340.
- ·**PR #106264**
- ·**PR #106459**
- ·**PR #106462** Related #106446.
- ·**PR #106290**
- ·**PR #106168**
- ·**PR #106463**
- ·**PR #106211** Related #106186.
- ·**PR #106332**
- ·**PR #106476**
- ·**PR #106478**
- ·**PR #106481**
- ·**PR #105810**
- ·**PR #106488**
- ·**PR #106492**
- ·**PR #106470** Related #106326.
- ·**PR #105460** Related #105675.
- ·**PR #106507**
- ·**PR #106520**
- ·**PR #106521**
- ·**PR #106531**
- ·**PR #106486**
- ·**PR #100174** Related #100169.
- ·**PR #106535**
- ·**PR #106487**
- ·**PR #106499**
- ·**PR #106501**
- ·**PR #106472** Related #106465.
- ·**PR #106530**
- ·**PR #106514** Related #106510.
- ·**PR #105805**
- ·**PR #106537** Related #106493.
- ·**PR #106533**
- ·**PR #106286**
- ·**PR #106255**
- ·**PR #106324** Related #106268.
- ·**PR #105557**
- ·**PR #106547**
- ·**PR #106518** Related #106388.
- ·**PR #106539**
- ·**PR #106313** Related #106295.
- ·**PR #106548** Related #106546.
- ·**PR #106489** Related #106466.
- ·**PR #106549**
- ·**PR #106591**
- ·**PR #106554**
- ·**PR #103562** Related #102381.
- ·**PR #106590**
- ·**PR #106522**
- ·**PR #106500**
- ·**PR #106550**
- ·**PR #106592** Related #106589.
- ·**PR #106593**
- ·**PR #106544**
- ·**PR #106600**
- ·**PR #106525**
- ·**PR #106552**
- ·**PR #106634**
- ·**PR #106632** Related #106602.
- ·**PR #103413**
- ·**PR #106543**
- ·**PR #106639**
- ·**PR #106285** Related #106280.
- ·**PR #106620**
- ·**PR #106615**
- ·**PR #106508**
- ·**PR #106601** Related #106597.
- ·**PR #106672**
- ·**PR #106689**
- ·**PR #106495**
- ·**PR #106691**
- ·**PR #106642**
- ·**PR #106513** Related #103363.
- ·**PR #105922**
- ·**PR #105885**
- ·**PR #106697**
- ·**PR #106695** Related #106694.
- ·**PR #105916**
- ·**PR #106698**
- ·**PR #106490** Related #81961.
- ·**PR #106702**
- ·**PR #105979** Related #105791.
- ·**PR #106392**
- ·**PR #105334**
- ·**PR #106707** Related #106699.
- ·**PR #106708**
- ·**PR #106640**
- ·**PR #106728**
- ·**PR #106729** Related #106727.
- ·**PR #106731**
- ·**PR #106732**
- ·**PR #106733**
- ·**PR #106469**
- ·**PR #105775**
- ·**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.
- ·**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.
- ·**PR #106754**
- ·**PR #106783**
- ·**PR #106692**
- ·**PR #106736**
- ·**PR #96738**
- ·**PR #106775**
- ·**PR #106792** Related #106112.
- ·**PR #106831** Related #106829.
- ·**PR #106774**
- ·**PR #106762**
- ·**PR #106004** Related #105936.
- ·**PR #106791**
- ·**PR #106837**
- ·**PR #106468**
- ·**PR #106842**
- ·**PR #106836**
- ·**PR #106844** Related #106834.
- ·**PR #106845**
- ·**PR #106848**
- ·**PR #106116** Related #103059.
- ·**PR #106173**
- ·**PR #106853**
- ·**PR #106835**
- ·**PR #106857**
- ·**PR #106856**
- ·**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**
- ·**PR #106871**
- ·**PR #106874** Related #106860.
- ·**PR #106879**
- ·**PR #106328**
- ·**PR #106878**
- ·**PR #106198** Related #106170.
- ·**PR #105576**
- ·**PR #106883**
- ·**PR #106887**
- ·**PR #106766** Related #106182.
- ·**PR #106889** Related #106877.
- ·**PR #105574**
- ·**PR #106892**
- ·**PR #106884**
- ·**PR #106891**
- ·**PR #106872**
- ·**PR #106896**
- ·**PR #106900**
- ·**PR #106895**
- ·**PR #106898**
- ·**PR #106904**
- ·**PR #106424**
- ·**PR #106906**
- ·**PR #106917**
- ·**PR #106915**
- ·**PR #106596** Related #106430.
- ·**PR #106919**
- ·**PR #106643**
- ·**PR #106236**
- ·**PR #106924**
- ·**PR #106880**
- ·**PR #106901**
- ·**PR #106925**
- ·**PR #106886**
- ·**PR #106909**
- ·**PR #105579**
- ·**PR #106929**
- ·**PR #106931**
- ·**PR #106934**
- ·**PR #106936**
- ·**PR #106865** Related #106266.
- ·**PR #106881**
- ·**PR #106938**
- ·**PR #106918**
- ·**PR #106873**
- ·**PR #106944**
- ·**PR #106947**
- ·**PR #106439**
- ·**PR #106928**
- ·**PR #106950**
- ·**PR #106949**
- ·**PR #106921** Related #106876.
- ·**PR #106956**
- ·**PR #106954**
- ·**PR #106955**
- ·**PR #103290** Related #103262.
- ·**PR #106939**
- ·**PR #106964**
- ·**PR #106603**
- ·**PR #106846**
- ·**PR #106965**
- ·**PR #106973**
- ·**PR #106974**
- ·**PR #106978**
- ·**PR #106979** Related #106966.
- ·**PR #106425**
- ·**PR #106991**
- ·**PR #106990**
- ·**PR #106972**
- ·**PR #106993**
- ·**PR #106553**
- ·**PR #106992**
- ·**PR #106953**
- ·**PR #106970**
- ·**PR #106968**
- ·**PR #106975**
- ·**PR #107007**
- ·**PR #107003**
- ·**PR #107016**
- ·**PR #107014**
- ·**PR #107013**
- ·**PR #107018**
- ·**PR #107008**
- ·**PR #107027**
- ·**PR #107020**
- ·**PR #106927**
- ·**PR #107039**
- ·**PR #107022**
- ·**PR #106962**
- ·**PR #107011**
- ·**PR #104070**
- ·**PR #107015**
- ·**PR #107004** Related #106882.
- ·**PR #107042**
- ·**PR #107002** Related #97563, #103076.
- ·**PR #107044**
- ·**PR #107051**
- ·**PR #107048**
- ·**PR #107055**
- ·**PR #107056**
- ·**PR #107062**
- ·**PR #107064**
- ·**PR #107057**
- ·**PR #107071**
- ·**PR #107075**
- ·**PR #107078**
- ·**PR #107083**
- ·**PR #107077**
- ·**PR #107084**
- ·**PR #106026** Related #105872.
- ·**PR #107088**
- ·**PR #107095**
- ·**PR #107097**
- ·**PR #107096**
- ·**PR #107098**
- ·**PR #107100**
- ·**PR #107079**
- ·**PR #107038**
- ·**PR #107041**
- ·**PR #107110**
- ·**PR #107047**
- ·**PR #106981**
- ·**PR #107054**
- ·**PR #107059**
- ·**PR #107113**
- ·**PR #107120**
- ·**PR #107126**
- ·**PR #107109**
- ·**PR #107124**
- ·**PR #107087** Related #103057.
- ·**PR #106926**
- ·**PR #107102**
- ·**PR #106986**
- ·**PR #107130**
- ·**PR #107135**
- ·**PR #107111** Related #107085.
- ·**PR #107128**
- ·**PR #106941** Related #106913.
- ·**PR #106951** Related #106948.
- ·**PR #107107**
- ·**PR #106952**
- ·**PR #107081** Related #107080.
- ·**PR #107134**
- ·**PR #107131**
- ·**PR #107115**
- ·**PR #107140**
- ·**PR #107040**
- ·**PR #107116** Related #107106.
- ·**PR #107147**
- ·**PR #107148**
- ·**PR #107123**
- ·**PR #107146**
- ·**PR #107142**
- ·**PR #107156**
- ·**PR #107150**
- ·**PR #104259**
- ·**PR #107151**
- ·**PR #107157**
- ·**PR #106899** Related #106838.
- ·**PR #106995**
- ·**PR #107086**
- ·**PR #107072**
- ·**PR #107103**
- ·**PR #107165**
- ·**PR #106384**
- ·**PR #107169**
- ·**PR #107168**
- ·**PR #107101**
- ·**PR #107174**
- ·**PR #107178**
- ·**PR #107189**
- ·**PR #107190**
- ·**PR #96554**
- ·**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.
- ·**PR #107181**
- ·**PR #107212**
- ·**PR #107208**
- ·**PR #107233**
- ·**PR #107235**
- ·**PR #107050** Related #105512.
- ·**PR #107198**
- ·**PR #107241**
- ·**PR #107232**
- ·**PR #103918**
- ·**PR #107245**
- ·**PR #107167**
- ·**PR #106479** Related #105530.
- ·**PR #107162** Related #107112.
- ·**PR #107247**
- ·**PR #103914**
- ·**PR #107249**
- ·**PR #107254**
- ·**PR #107259**
- ·**PR #107258**
- ·**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**
- ·**PR #107291**
- ·**PR #107214**
- ·**PR #107293**
- ·**PR #107296**
- ·**PR #107298**
- ·**PR #107307**
- ·**PR #107301**
- ·**PR #107272**
- ·**PR #101253**
- ·**PR #106178**
- ·**PR #107312**
- ·**PR #107310**
- ·**PR #107297**
- ·**PR #107025**
- ·**PR #107319**
- ·**PR #107236**
- ·**PR #107321**
- ·**PR #107326**
- ·**PR #107328**
- ·**PR #107331**
- ·**PR #107238** Related #106875.
- ·**PR #107316**
- ·**PR #106498**
- ·**PR #107332**
- ·**PR #99404**
- ·**PR #107193**
- ·**PR #102271**
- ·**PR #107340**
- ·**PR #107342**
- ·**PR #105001**
- ·**PR #107345**
- ·**PR #107338**
- ·**PR #107311**
- ·**PR #105883**
- ·**PR #107353**
- ·**PR #107351**
- ·**PR #107337**
- ·**PR #107354**
- ·**PR #107357**
- ·**PR #107349** Related #107313.
- ·**PR #107288** Related #107246.
- ·**PR #107358**
- ·**PR #107370**
- ·**PR #107361** Related #107335.
- ·**PR #107188**
- ·**PR #107379**
- ·**PR #107380**
- ·**PR #107383**
- ·**PR #106997**
- ·**PR #107385**
- ·**PR #107387**
- ·**PR #107336** Related #107318.
- ·**PR #107390**
- ·**PR #107339** Related #107322.
- ·**PR #107392**
- ·**PR #107382**
- ·**PR #107396**
- ·**PR #107356**
- ·**PR #107371**
- ·**PR #107398**
- ·**PR #107395**
- ·**PR #107400**
- ·**PR #107377**
- ·**PR #107381**
- ·**PR #107373**
- ·**PR #107365**
- ·**PR #107407**
- ·**PR #107386**
- ·**PR #107405**
- ·**PR #107410** Related #107406.
- ·**PR #107409** Related #22676.
- ·**PR #107360**
- ·**PR #107412**
- ·**PR #107414**
- ·**PR #107348**
- ·**PR #107417**
- ·**PR #107420**
- ·**PR #107421**
- ·**PR #106359** Related #106229.
- ·**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.
- ·**PR #107455**
- ·**PR #107456**
- ·**PR #107457**
- ·**PR #107424**
- ·**PR #107460**
- ·**PR #107458**
- ·**PR #107459**
- ·**PR #105886**
- ·**PR #107462**
- ·**PR #107470**
- ·**PR #107472**
- ·**PR #107475**
- ·**PR #107476**
- ·**PR #107483**
- ·**PR #107474**
- ·**PR #107485**
- ·**PR #107402**
- ·**PR #107540**
- ·**PR #107542**
- ·**PR #107477**
- ·**PR #107545**
- ·**PR #107548**
- ·**PR #104216**
- ·**PR #107553**
- ·**PR #107554**
- ·**PR #107560**
- ·**PR #107567**
- ·**PR #107569**
- ·**PR #107563**
- ·**PR #107570**
- ·**PR #107369**
- ·**PR #107572**
- ·**PR #107576**
- ·**PR #107578**
- ·**PR #106066**
- ·**PR #107451**
- ·**PR #107043**
- ·**PR #102068** Related #101789.
- ·**PR #107583**
- ·**PR #107584**
- ·**PR #107585**
- ·**PR #107561**
- ·**PR #107422** Related #103309.
- ·**PR #102114**
- ·**PR #107594**
- ·**PR #89821**
- ·**PR #107602**
- ·**PR #107481**
- ·**PR #107573**
- ·**PR #107599**
- ·**PR #107612**
- ·**PR #107419**
- ·**PR #106035**
- ·**PR #107618**
- ·**PR #107621**
- ·**PR #78022**
- ·**PR #107613**
- ·**PR #107577** Related #107216.
- ·**PR #107229**
- ·**PR #107606**
- ·**PR #107637**
- ·**PR #107640**
- ·**PR #107144**
- ·**PR #107636**
- ·**PR #107234**
- ·**PR #104708** Related #102391.
- ·**PR #107652**
- ·**PR #107315**
- ·**PR #107654**
- ·**PR #107263**
- ·**PR #107646**
- ·**PR #107364** Related #107289.
- ·**PR #107243** Related #107133.
- ·**PR #107191**
- ·**PR #107653**
- ·**PR #107625** Related #107624.
- ·**PR #107616**
- ·**PR #107143**
- ·**PR #107665**
- ·**PR #107675**
- ·**PR #107678**
- ·**PR #107598**
- ·**PR #107674** Related #107669.
- ·**PR #104120**
- ·**PR #107689**
- ·**PR #102197**
- ·**PR #107690**
- ·**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**
- ·**PR #107714**
- ·**PR #107715**
- ·**PR #107716**
- ·**PR #107724**
- ·**PR #107726**
- ·**PR #107697** Related #107685.
- ·**PR #106258** Related #106249.
- ·**PR #107730**
- ·**PR #107723**
- ·**PR #107728**
- ·**PR #94494** Related #94482.
- ·**PR #107733**
- ·**PR #107670** Related #104294.
- ·**PR #99394** Related #97074.
- ·**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.12026-07-13
openclaw 2026.7.1
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
Contributors
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](https://github.com/openclaw/releases/actions/runs/29309287697)
- ·macOS validation: [https://github.com/openclaw/releases/actions/runs/29308489277](https://github.com/openclaw/releases/actions/runs/29308489277)
- ·macOS publish: [https://github.com/openclaw/releases/actions/runs/29311628904](https://github.com/openclaw/releases/actions/runs/29311628904)
- ·macOS appcast: [https://github.com/openclaw/openclaw/commit/b3239a5f0febefcc26bb9d51e9b0ef764ad185fb](https://github.com/openclaw/openclaw/commit/b3239a5f0febefcc26bb9d51e9b0ef764ad185fb)
- ·Android release: [https://github.com/openclaw/openclaw/actions/runs/29293423573](https://github.com/openclaw/openclaw/actions/runs/29293423573)
- ·stable main closeout: [https://github.com/openclaw/openclaw/actions/runs/29302553990](https://github.com/openclaw/openclaw/actions/runs/29302553990)
- ·immutable closeout manifest: [manifest](https://github.com/openclaw/openclaw/releases/download/v2026.7.1/openclaw-2026.7.1-stable-main-closeout.json) · [checksum](https://github.com/openclaw/openclaw/releases/download/v2026.7.1/openclaw-2026.7.1-stable-main-closeout.json.sha256)
- ·Linux package and Gateway smoke: [https://crabbox.openclaw.ai/portal/runs/run_c3257c19e269](https://crabbox.openclaw.ai/portal/runs/run_c3257c19e269)
v2026.7.1-beta.6pre-release2026-07-13
openclaw 2026.7.1-beta.6
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Conversation and review controls:** prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348)
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.
- ·**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)
- ·**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)
- ·**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
- ·**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
- ·**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)
- ·**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)
- ·**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)
- ·**Direct poll delivery:** route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950)
- ·**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)
- ·**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)
- ·**Microsoft Teams Graph response bounds:** cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784)
- ·**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)
- ·**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
- ·**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)
- ·**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 `spawn_agent` through `tool_search` 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.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
- ·**LM Studio embedding preload:** honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750)
- ·**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)
- ·**Microsoft Teams attachment metadata:** bound Bot Framework `attachmentInfo` JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125)
- ·**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)
- ·**Memory session repair:** keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so `memory status --fix` preserves healthy daily state. (#93389)
- ·**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)
- ·**Config unset diagnostics:** explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557)
- ·**Crestodian command probes:** contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741)
- ·**Feishu mention forwarding:** fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891)
- ·**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)
- ·**Control UI session creation:** keep newly created sessions at the front of the stable sidebar order after selecting another session.
- ·**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)
- ·**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)
- ·**Control UI inbound image previews:** render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI coalesced updates:** show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082)
- ·**Control UI connection errors:** preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758)
- ·**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)
- ·**Control UI restart recovery:** recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111)
- ·**TUI active Gateway ports:** follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461)
- ·**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)
- ·**Phone identity normalization:** canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467)
- ·**Tlon scry response bounds:** cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376)
- ·**Source build portability:** keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory.
- ·**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)
- ·**Gateway event dispatch:** catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401)
- ·**Ollama fallback routing:** classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI approval prompts:** keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394)
- ·**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)
- ·**Anthropic OAuth callbacks:** keep the provider-required `localhost` redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917)
- ·**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)
- ·**Control UI Skills filters:** align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526)
- ·**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)
- ·**Control UI context usage:** keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772)
- ·**Control UI file previews:** remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528)
- ·**Control UI autonomous tool failures:** preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514)
- ·**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)
- ·**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)
- ·**Docker sandbox command output:** fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523)
- ·**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)
- ·**Lean local-model tools:** trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI tool-result images:** render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295)
- ·**Control UI live tool ordering:** keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184)
- ·**IRC Unicode messages:** split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572)
- ·**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)
- ·**Realtime voice tools:** filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175)
- ·**Discord voice status:** treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969)
- ·**Discord voice accounts:** isolate `@discordjs/voice` connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530)
- ·**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)
- ·**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)
- ·**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)
- ·**WhatsApp credential recovery:** restore malformed primary auth state from a valid backup during startup. (#99070)
- ·**WhatsApp quoted replies:** preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879)
- ·**WhatsApp reconnect catch-up:** admit recently missed Baileys `append` messages during a bounded reconnect window while preserving startup stale-history guards. (#80642)
- ·**WhatsApp restart recovery:** stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511)
- ·**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)
- ·**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)
- ·**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)
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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)
- ·**Model aliases:** resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Discord thread-title prompts:** truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Complete contribution record
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.5pre-release2026-07-11
OpenClaw 2026.7.1-beta.5
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Conversation and review controls:** prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348)
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.
- ·**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)
- ·**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)
- ·**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
- ·**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
- ·**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)
- ·**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)
- ·**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)
- ·**Direct poll delivery:** route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950)
- ·**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)
- ·**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)
- ·**Microsoft Teams Graph response bounds:** cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784)
- ·**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)
- ·**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
- ·**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)
- ·**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 `spawn_agent` through `tool_search` 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.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
- ·**LM Studio embedding preload:** honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750)
- ·**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)
- ·**Microsoft Teams attachment metadata:** bound Bot Framework `attachmentInfo` JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125)
- ·**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)
- ·**Memory session repair:** keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so `memory status --fix` preserves healthy daily state. (#93389)
- ·**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)
- ·**Config unset diagnostics:** explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557)
- ·**Crestodian command probes:** contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741)
- ·**Feishu mention forwarding:** fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891)
- ·**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)
- ·**Control UI session creation:** keep newly created sessions at the front of the stable sidebar order after selecting another session.
- ·**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)
- ·**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)
- ·**Control UI inbound image previews:** render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI coalesced updates:** show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082)
- ·**Control UI connection errors:** preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758)
- ·**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)
- ·**Control UI restart recovery:** recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111)
- ·**TUI active Gateway ports:** follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461)
- ·**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)
- ·**Phone identity normalization:** canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467)
- ·**Tlon scry response bounds:** cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376)
- ·**Source build portability:** keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory.
- ·**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)
- ·**Gateway event dispatch:** catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401)
- ·**Ollama fallback routing:** classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI approval prompts:** keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394)
- ·**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)
- ·**Anthropic OAuth callbacks:** keep the provider-required `localhost` redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917)
- ·**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)
- ·**Control UI Skills filters:** align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526)
- ·**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)
- ·**Control UI context usage:** keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772)
- ·**Control UI file previews:** remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528)
- ·**Control UI autonomous tool failures:** preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514)
- ·**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)
- ·**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)
- ·**Docker sandbox command output:** fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523)
- ·**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)
- ·**Lean local-model tools:** trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI tool-result images:** render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295)
- ·**Control UI live tool ordering:** keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184)
- ·**IRC Unicode messages:** split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572)
- ·**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)
- ·**Realtime voice tools:** filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175)
- ·**Discord voice status:** treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969)
- ·**Discord voice accounts:** isolate `@discordjs/voice` connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530)
- ·**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)
- ·**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)
- ·**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)
- ·**WhatsApp credential recovery:** restore malformed primary auth state from a valid backup during startup. (#99070)
- ·**WhatsApp quoted replies:** preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879)
- ·**WhatsApp reconnect catch-up:** admit recently missed Baileys `append` messages during a bounded reconnect window while preserving startup stale-history guards. (#80642)
- ·**WhatsApp restart recovery:** stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511)
- ·**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)
- ·**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)
- ·**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)
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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)
- ·**Model aliases:** resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Discord thread-title prompts:** truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Complete contribution record
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`](https://github.com/openclaw/openclaw/releases/download/v2026.7.1-beta.5/openclaw-2026.7.1-beta.5-dependency-evidence.zip), SHA-256 `624d90e32e755eed7261ef59d546cb3d5800f76640b1514bb548e22a3c01ec77`
- ·closeout evidence: [`openclaw-2026.7.1-beta.5-closeout-evidence.json`](https://github.com/openclaw/openclaw/releases/download/v2026.7.1-beta.5/openclaw-2026.7.1-beta.5-closeout-evidence.json), SHA-256 `cd4fb69d8a6f62abefb4dc0d0a58a63819cf3804880cfce06ada62809b64cb54`
- ·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.2pre-release2026-07-05
openclaw 2026.7.1-beta.2
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Conversation and review controls:** prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348)
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.
- ·**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)
- ·**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)
- ·**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
- ·**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
- ·**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)
- ·**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)
- ·**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)
- ·**Direct poll delivery:** route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950)
- ·**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)
- ·**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)
- ·**Microsoft Teams Graph response bounds:** cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784)
- ·**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)
- ·**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
- ·**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)
- ·**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 `spawn_agent` through `tool_search` 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.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
- ·**LM Studio embedding preload:** honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750)
- ·**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)
- ·**Microsoft Teams attachment metadata:** bound Bot Framework `attachmentInfo` JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125)
- ·**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)
- ·**Memory session repair:** keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so `memory status --fix` preserves healthy daily state. (#93389)
- ·**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)
- ·**Config unset diagnostics:** explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557)
- ·**Crestodian command probes:** contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741)
- ·**Feishu mention forwarding:** fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891)
- ·**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)
- ·**Control UI session creation:** keep newly created sessions at the front of the stable sidebar order after selecting another session.
- ·**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)
- ·**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)
- ·**Control UI inbound image previews:** render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI coalesced updates:** show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082)
- ·**Control UI connection errors:** preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758)
- ·**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)
- ·**Control UI restart recovery:** recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111)
- ·**TUI active Gateway ports:** follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461)
- ·**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)
- ·**Phone identity normalization:** canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467)
- ·**Tlon scry response bounds:** cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376)
- ·**Source build portability:** keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory.
- ·**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)
- ·**Gateway event dispatch:** catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401)
- ·**Ollama fallback routing:** classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI approval prompts:** keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394)
- ·**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)
- ·**Anthropic OAuth callbacks:** keep the provider-required `localhost` redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917)
- ·**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)
- ·**Control UI Skills filters:** align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526)
- ·**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)
- ·**Control UI context usage:** keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772)
- ·**Control UI file previews:** remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528)
- ·**Control UI autonomous tool failures:** preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514)
- ·**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)
- ·**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)
- ·**Docker sandbox command output:** fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523)
- ·**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)
- ·**Lean local-model tools:** trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI tool-result images:** render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295)
- ·**Control UI live tool ordering:** keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184)
- ·**IRC Unicode messages:** split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572)
- ·**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)
- ·**Realtime voice tools:** filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175)
- ·**Discord voice status:** treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969)
- ·**Discord voice accounts:** isolate `@discordjs/voice` connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530)
- ·**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)
- ·**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)
- ·**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)
- ·**WhatsApp credential recovery:** restore malformed primary auth state from a valid backup during startup. (#99070)
- ·**WhatsApp quoted replies:** preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879)
- ·**WhatsApp reconnect catch-up:** admit recently missed Baileys `append` messages during a bounded reconnect window while preserving startup stale-history guards. (#80642)
- ·**WhatsApp restart recovery:** stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511)
- ·**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)
- ·**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)
- ·**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)
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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)
- ·**Model aliases:** resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Discord thread-title prompts:** truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Complete contribution record
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.1pre-release2026-07-02
openclaw 2026.7.1-beta.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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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.
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Conversation and review controls:** prepare scoped conversation capability profiles and add Cursor Agent as an autoreview engine. (#98536, #97348)
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.
- ·**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)
- ·**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)
- ·**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
- ·**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
- ·**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)
- ·**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)
- ·**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)
- ·**Direct poll delivery:** route direct and hybrid channel polls through the owning outbound adapter while preserving gateway-mode routing and channel option checks. (#99950)
- ·**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)
- ·**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)
- ·**Microsoft Teams Graph response bounds:** cap successful file-upload and chat JSON reads so oversized Microsoft Graph responses cannot be buffered without limit. (#97784)
- ·**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)
- ·**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
- ·**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)
- ·**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 `spawn_agent` through `tool_search` 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.
- ·**Android hardware keyboard chat:** send with unmodified Enter on physical keyboards while preserving Shift+Enter and other modified Enter combinations for multiline input. (#101239)
- ·**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)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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
- ·**LM Studio embedding preload:** honor model- and provider-level context-window limits when preloading embedding models, preventing avoidable GPU out-of-memory failures. (#100750)
- ·**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)
- ·**Microsoft Teams attachment metadata:** bound Bot Framework `attachmentInfo` JSON reads and cancel oversized streams before they can exhaust Gateway memory. (#99125)
- ·**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)
- ·**Memory session repair:** keep daily dreaming ingestion bookkeeping outside session-corpus audit and repair so `memory status --fix` preserves healthy daily state. (#93389)
- ·**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)
- ·**Config unset diagnostics:** explain when an inherited or default configuration value cannot be unset instead of reporting a misleading successful deletion. (#96557)
- ·**Crestodian command probes:** contain stdout and stderr stream failures while keeping child-process close and spawn errors authoritative, preventing unhandled probe crashes. (#100741)
- ·**Feishu mention forwarding:** fail closed when the bot Open ID is unavailable so group messages cannot be misclassified as explicit bot mentions. (#100891)
- ·**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)
- ·**Control UI session creation:** keep newly created sessions at the front of the stable sidebar order after selecting another session.
- ·**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)
- ·**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)
- ·**Control UI inbound image previews:** render canonical inbound media references through the authenticated ticket route after chat-history reloads. (#100725, #89591)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI coalesced updates:** show a clear queued-restart completion banner when an update joins an already-running Gateway restart. (#93082)
- ·**Control UI connection errors:** preserve structured pairing and authentication failures for pending RPC callers while keeping generic disconnect behavior unchanged. (#54758)
- ·**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)
- ·**Control UI restart recovery:** recover stale bundle pages through a bounded whole-document refresh after Gateway updates or restarts. (#99111)
- ·**TUI active Gateway ports:** follow the verified active local Gateway port when no explicit URL, port, or remote target is configured. (#73338, #42461)
- ·**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)
- ·**Phone identity normalization:** canonicalize stray plus signs, preserve non-phone iMessage handles, and reject digit-free Signal identities across shared channel routing. (#100467)
- ·**Tlon scry response bounds:** cap successful Urbit scry JSON reads and cancel oversized streams instead of buffering unbounded peer responses. (#100376)
- ·**Source build portability:** keep tsdown configuration self-contained so builds do not depend on resolving the tsdown package from unrun's temporary module directory.
- ·**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)
- ·**Gateway event dispatch:** catch and log lazy subscriber setup and handler failures instead of leaking unhandled promise rejections. (#100401)
- ·**Ollama fallback routing:** classify incomplete native streams through the Ollama provider hook so configured model fallbacks can advance. (#100482)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI approval prompts:** keep stale resolve failures and busy-state cleanup from leaking across newer approvals or Gateway reconnects. (#98394)
- ·**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)
- ·**Anthropic OAuth callbacks:** keep the provider-required `localhost` redirect URI stable while allowing the local callback listener to bind an explicit loopback host. (#96917)
- ·**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)
- ·**Control UI Skills filters:** align agent and search controls, use translated labels, and preserve native checkbox and radio sizing. (#100526)
- ·**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)
- ·**Control UI context usage:** keep stale cached totals visible as approximate without triggering warning styling or Compact actions. (#89772)
- ·**Control UI file previews:** remove the duplicate Escape header hint while retaining the Close-button shortcut hint and Escape behavior. (#100528)
- ·**Control UI autonomous tool failures:** preserve an earlier Tool error outcome across later autonomous recovery turns. (#100514)
- ·**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)
- ·**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)
- ·**Docker sandbox command output:** fail and terminate Docker sandbox operations when stdout/stderr capture breaks instead of returning success with incomplete output. (#100523)
- ·**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)
- ·**Lean local-model tools:** trim media generation, TTS, and PDF tools from lean agent surfaces while preserving explicit config and runtime opt-ins. (#88881)
- ·**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)
- ·**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)
- ·**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)
- ·**Control UI tool-result images:** render direct image content blocks from Gateway history and make the delayed-send scroll E2E setup deterministic. (#100295)
- ·**Control UI live tool ordering:** keep assistant stream text before its matching tool card when browser and Gateway timestamps disagree. (#93184)
- ·**IRC Unicode messages:** split outbound PRIVMSG payloads on UTF-16 code-point boundaries so emoji cannot be cut into lone surrogates. (#96572)
- ·**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)
- ·**Realtime voice tools:** filter malformed tool names at each OpenAI, Azure, and Google realtime payload boundary while preserving provider-specific valid names. (#89175)
- ·**Discord voice status:** treat Discord error 10065 as a normal disconnected state while preserving unrelated REST failures. (#90969)
- ·**Discord voice accounts:** isolate `@discordjs/voice` connections by Discord account and recover auto-join when gateway readiness predates listener registration. (#87530)
- ·**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)
- ·**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)
- ·**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)
- ·**WhatsApp credential recovery:** restore malformed primary auth state from a valid backup during startup. (#99070)
- ·**WhatsApp quoted replies:** preserve bot-authored outbound quote metadata so replies to those messages keep their reply bubble in WhatsApp Desktop. (#94879)
- ·**WhatsApp reconnect catch-up:** admit recently missed Baileys `append` messages during a bounded reconnect window while preserving startup stale-history guards. (#80642)
- ·**WhatsApp restart recovery:** stop automatic restart loops after logged-out or connection-replaced disconnects until the account reconnects. (#78511)
- ·**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)
- ·**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)
- ·**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)
- ·**MCP schema diagnostics:** attribute draft-2020-12 compiler failures to the external MCP schema so malformed patterns produce actionable setup errors.
- ·**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)
- ·**Model aliases:** resolve provider-qualified aliases during session and chat-command model switches without collisions when providers share a display alias. (#100209)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Discord thread-title prompts:** truncate generated-title message and channel context on UTF-16 boundaries so emoji cannot leave malformed model prompt text. (#101551)
- ·**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)
- ·**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.
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Complete contribution record
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.112026-06-30
openclaw 2026.6.11
Highlights
- ·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](https://github.com/openclaw/openclaw/pull/58993)
- ·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](https://github.com/openclaw/openclaw/pull/89172) Related [#53798](https://github.com/openclaw/openclaw/issues/53798).
- ·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](https://github.com/openclaw/openclaw/pull/89911)
- ·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](https://github.com/openclaw/openclaw/pull/89949) Related [#86034](https://github.com/openclaw/openclaw/issues/86034).
- ·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](https://github.com/openclaw/openclaw/pull/90475)
- ·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](https://github.com/openclaw/openclaw/pull/92154)
- ·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](https://github.com/openclaw/openclaw/pull/92356) Related [#92260](https://github.com/openclaw/openclaw/issues/92260).
- ·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](https://github.com/openclaw/openclaw/pull/93002) Related [#90753](https://github.com/openclaw/openclaw/issues/90753).
- ·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](https://github.com/openclaw/openclaw/pull/93143)
- ·Successful Discord replies sent through the message tool no longer trigger a misleading failure warning in affected `message_tool_only` source-channel turns. [#94072](https://github.com/openclaw/openclaw/pull/94072) Related [#93875](https://github.com/openclaw/openclaw/issues/93875).
- ·WhatsApp group conversations now preserve the right message and group context more reliably during retries, reconnects, and group changes. [#94338](https://github.com/openclaw/openclaw/pull/94338) Related [#7433](https://github.com/openclaw/openclaw/issues/7433).
- ·Fixes OpenClaw sometimes replying to its own delayed iMessage echoes when stray leading characters keep the sent message from being recognized. [#94442](https://github.com/openclaw/openclaw/pull/94442)
- ·Telegram webhook users can keep receiving DMs and group messages through brief channel restarts, configuration reloads, and recovery cycles without temporary message blackouts. [#94506](https://github.com/openclaw/openclaw/pull/94506) Related [#90254](https://github.com/openclaw/openclaw/issues/90254).
- ·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](https://github.com/openclaw/openclaw/pull/94942) Related [#90455](https://github.com/openclaw/openclaw/issues/90455).
- ·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](https://github.com/openclaw/openclaw/pull/94977) Related [#71140](https://github.com/openclaw/openclaw/issues/71140).
- ·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](https://github.com/openclaw/openclaw/pull/95007) Related [#95002](https://github.com/openclaw/openclaw/issues/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](https://github.com/openclaw/openclaw/pull/95069) Related [#94930](https://github.com/openclaw/openclaw/issues/94930).
- ·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](https://github.com/openclaw/openclaw/pull/95084) Related [#90684](https://github.com/openclaw/openclaw/issues/90684).
- ·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](https://github.com/openclaw/openclaw/pull/95118) Related [#92903](https://github.com/openclaw/openclaw/issues/92903).
- ·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](https://github.com/openclaw/openclaw/pull/95120) Related [#53638](https://github.com/openclaw/openclaw/issues/53638).
- ·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](https://github.com/openclaw/openclaw/pull/95183) Related [#95004](https://github.com/openclaw/openclaw/issues/95004).
- ·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](https://github.com/openclaw/openclaw/pull/95240)
- ·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](https://github.com/openclaw/openclaw/pull/95278) Related [#94571](https://github.com/openclaw/openclaw/issues/94571).
- ·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](https://github.com/openclaw/openclaw/pull/95299) Related [#95248](https://github.com/openclaw/openclaw/issues/95248).
- ·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](https://github.com/openclaw/openclaw/pull/95390) Related [#95378](https://github.com/openclaw/openclaw/issues/95378).
- ·Fixes completed assistant messages appearing twice in Telegram, Discord, Slack, and other streamed chats after a multi-message reply. [#95432](https://github.com/openclaw/openclaw/pull/95432)
- ·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](https://github.com/openclaw/openclaw/pull/95483)
- ·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](https://github.com/openclaw/openclaw/pull/95532) Related [#95409](https://github.com/openclaw/openclaw/issues/95409).
- ·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](https://github.com/openclaw/openclaw/pull/95546)
- ·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](https://github.com/openclaw/openclaw/pull/95550)
- ·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](https://github.com/openclaw/openclaw/pull/95552)
- ·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](https://github.com/openclaw/openclaw/pull/95577) Related [#86957](https://github.com/openclaw/openclaw/issues/86957).
- ·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](https://github.com/openclaw/openclaw/pull/95637)
- ·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](https://github.com/openclaw/openclaw/pull/95707)
- ·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](https://github.com/openclaw/openclaw/pull/95794)
- ·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](https://github.com/openclaw/openclaw/pull/95914)
- ·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](https://github.com/openclaw/openclaw/pull/95935)
- ·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](https://github.com/openclaw/openclaw/pull/96087)
- ·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](https://github.com/openclaw/openclaw/pull/96140) Related [#96103](https://github.com/openclaw/openclaw/issues/96103).
- ·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](https://github.com/openclaw/openclaw/pull/96220)
- ·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](https://github.com/openclaw/openclaw/pull/96243) Related [#81566](https://github.com/openclaw/openclaw/issues/81566).
- ·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](https://github.com/openclaw/openclaw/pull/96244) Related [#95645](https://github.com/openclaw/openclaw/issues/95645).
- ·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](https://github.com/openclaw/openclaw/commit/a39e548ede228aa1978bf9d509613cbed6db0c99)
- ·Long-running streamed auto-replies are less likely to stop early or abort inconsistently when an unusually large timeout is configured. [6c85b90](https://github.com/openclaw/openclaw/commit/6c85b90469f94955ef00c1609e1f1d6fd2cf4ca8)
- ·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](https://github.com/openclaw/openclaw/commit/8a75c4dd5f3e625a22a7a08c6e1f368798c48111)
- ·Completed channel replies no longer gain late progress notices, preventing stale status text from appearing after the answer is finished. [a594d2c](https://github.com/openclaw/openclaw/commit/a594d2ce73257326b7ab78adb3c4643245ec9431)
- ·During streaming channel replies, progress messages now keep showing the latest state instead of getting stuck on an older update. [e114001](https://github.com/openclaw/openclaw/commit/e114001ccafa83b8b366e095a9d7748dfc50c082)
- ·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](https://github.com/openclaw/openclaw/commit/5c5a8a49d76954b53fefc2463bc7b1d6b960e8fc)
- ·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](https://github.com/openclaw/openclaw/commit/a641c0d560fd15373e462829facf15fd6a466aeb)
- ·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](https://github.com/openclaw/openclaw/commit/88b64e4b869e696d99de7417fb52425e9ed67cbf)
- ·Discord progress previews are less likely to stop before the final edits when an agent response has already started arriving. [86ea382](https://github.com/openclaw/openclaw/commit/86ea382121b00e73af4b4c329d0a2447592e4071)
- ·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](https://github.com/openclaw/openclaw/commit/96c6f8022c2420826830b11f4353ce855ab2ac5c)
- ·Telegram streaming replies now show each progress heading once, keeping tool and search updates easier to scan. [013e33c](https://github.com/openclaw/openclaw/commit/013e33c6d3672a980550912442bb1ac5505918aa)
- ·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](https://github.com/openclaw/openclaw/pull/97543)
- ·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](https://github.com/openclaw/openclaw/pull/73079)
- ·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](https://github.com/openclaw/openclaw/pull/89648) Related [#89300](https://github.com/openclaw/openclaw/issues/89300).
- ·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](https://github.com/openclaw/openclaw/pull/89716)
- ·Cron tool calls using Gemini models through OpenAI-compatible providers now run without nullable fields triggering provider schema rejections. [#91559](https://github.com/openclaw/openclaw/pull/91559) Related [#91542](https://github.com/openclaw/openclaw/issues/91542).
- ·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](https://github.com/openclaw/openclaw/pull/91724)
- ·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](https://github.com/openclaw/openclaw/pull/93356)
- ·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](https://github.com/openclaw/openclaw/pull/93956)
- ·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](https://github.com/openclaw/openclaw/pull/94062) Related [#93931](https://github.com/openclaw/openclaw/issues/93931).
- ·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](https://github.com/openclaw/openclaw/pull/94233) Related [#56979](https://github.com/openclaw/openclaw/issues/56979).
- ·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](https://github.com/openclaw/openclaw/pull/94726) Related [#94723](https://github.com/openclaw/openclaw/issues/94723).
- ·Dashboard child sessions now handle allowed provider-qualified model choices consistently and give accurate recovery guidance when saved model state is stale. [#94752](https://github.com/openclaw/openclaw/pull/94752) Related [#94713](https://github.com/openclaw/openclaw/issues/94713).
- ·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](https://github.com/openclaw/openclaw/pull/95008)
- ·OpenClaw now rejects oversized provider catalog or JSON responses with a clear error before buffering the entire response in memory. [#95218](https://github.com/openclaw/openclaw/pull/95218)
- ·OpenRouter users can now select and run the advertised short DeepSeek V4 model IDs without requests failing with `model_not_found` because OpenClaw sent a duplicated provider prefix. [#95268](https://github.com/openclaw/openclaw/pull/95268) Related [#95198](https://github.com/openclaw/openclaw/issues/95198).
- ·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](https://github.com/openclaw/openclaw/pull/95283) Related [#95280](https://github.com/openclaw/openclaw/issues/95280).
- ·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](https://github.com/openclaw/openclaw/pull/95400)
- ·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](https://github.com/openclaw/openclaw/pull/95401)
- ·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](https://github.com/openclaw/openclaw/pull/95417)
- ·OpenRouter model scans fail safely on oversized or malformed catalogs instead of risking excessive memory use that can destabilize OpenClaw. [#95418](https://github.com/openclaw/openclaw/pull/95418)
- ·OpenRouter setups now reject oversized model catalogs before they can exhaust OpenClaw's memory, without caching or immediately refetching the failed response. [#95420](https://github.com/openclaw/openclaw/pull/95420)
- ·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](https://github.com/openclaw/openclaw/pull/95508) Related [#95489](https://github.com/openclaw/openclaw/issues/95489).
- ·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](https://github.com/openclaw/openclaw/pull/95682)
- ·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](https://github.com/openclaw/openclaw/pull/95686)
- ·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](https://github.com/openclaw/openclaw/pull/95710)
- ·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](https://github.com/openclaw/openclaw/pull/95744) Related [#95743](https://github.com/openclaw/openclaw/issues/95743).
- ·First-run setup now opens the credential prompt for a newly installed external provider instead of appearing to loop and leaving OpenAI selected. [#95792](https://github.com/openclaw/openclaw/pull/95792) Related [#95765](https://github.com/openclaw/openclaw/issues/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](https://github.com/openclaw/openclaw/pull/95827)
- ·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](https://github.com/openclaw/openclaw/pull/95934)
- ·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](https://github.com/openclaw/openclaw/pull/95957)
- ·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](https://github.com/openclaw/openclaw/pull/96124)
- ·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](https://github.com/openclaw/openclaw/commit/11484f8a1483b7c42aa2971de2d88289fcef7046)
- ·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](https://github.com/openclaw/openclaw/commit/4b6182ee2a250005e0c25edfeae4db6ec59b7cb8)
- ·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](https://github.com/openclaw/openclaw/commit/77012f9807851c662e064d05097497a25ab13505)
- ·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](https://github.com/openclaw/openclaw/commit/8afc1f770bbef30a4d2d9957ef26a685c508448c)
- ·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](https://github.com/openclaw/openclaw/commit/efd3172662ce023eb8d6568b689361536edf06dd)
- ·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](https://github.com/openclaw/openclaw/commit/d990115d1972fdf4361884a29bbf8396f33e5cba)
- ·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](https://github.com/openclaw/openclaw/commit/cf1b6fef4403bee7c206299efc4385a7fcb74375)
- ·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](https://github.com/openclaw/openclaw/commit/aa3797c8d0d74b4502d24852ce6baa70286f2f06)
- ·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](https://github.com/openclaw/openclaw/commit/14e448e0e13db9f194ea16bb98e0f846a67769fd)
- ·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](https://github.com/openclaw/openclaw/commit/6eb72a830ece3e2b4c6c85e5a9c2b72b59e0dae9)
- ·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](https://github.com/openclaw/openclaw/commit/2405d029d437ee58ab94da800a5b213bc6bf4628)
- ·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](https://github.com/openclaw/openclaw/commit/2ba9d6eabef9427a950bacc47f077200446cb865)
- ·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](https://github.com/openclaw/openclaw/commit/35bafea757fab0386292951a3dc2a2d3514f370e)
- ·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](https://github.com/openclaw/openclaw/commit/8c8eb86fff6e843bd391808ceee249ac8c7f5fa5)
- ·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](https://github.com/openclaw/openclaw/commit/ad3b2f4b8827cd73b4c1a6c8288569c0966276fe)
- ·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](https://github.com/openclaw/openclaw/pull/92399) Related [#91959](https://github.com/openclaw/openclaw/issues/91959).
- ·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](https://github.com/openclaw/openclaw/pull/93965) Related [#93610](https://github.com/openclaw/openclaw/issues/93610).
- ·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](https://github.com/openclaw/openclaw/pull/84708)
- ·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](https://github.com/openclaw/openclaw/pull/87912)
- ·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](https://github.com/openclaw/openclaw/pull/89017) Related [#87700](https://github.com/openclaw/openclaw/issues/87700).
- ·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](https://github.com/openclaw/openclaw/pull/89518)
- ·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](https://github.com/openclaw/openclaw/pull/89800) Related [#89773](https://github.com/openclaw/openclaw/issues/89773).
- ·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](https://github.com/openclaw/openclaw/pull/89886) Related [#89868](https://github.com/openclaw/openclaw/issues/89868).
- ·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](https://github.com/openclaw/openclaw/pull/90489) Related [#90443](https://github.com/openclaw/openclaw/issues/90443).
- ·`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](https://github.com/openclaw/openclaw/pull/93113) Related [#67868](https://github.com/openclaw/openclaw/issues/67868).
- ·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](https://github.com/openclaw/openclaw/pull/93394)
- ·Repeated instructions sent after compaction now remain in the conversation, preventing lost turns, orphaned replies, and malformed history that some providers reject. [#94328](https://github.com/openclaw/openclaw/pull/94328)
- ·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](https://github.com/openclaw/openclaw/pull/94369)
- ·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](https://github.com/openclaw/openclaw/pull/94701)
- ·Ollama memory search now respects a configured smaller embedding dimension and keeps indexes for different dimensions separate, avoiding incompatible vectors being mixed together. [#94811](https://github.com/openclaw/openclaw/pull/94811)
- ·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](https://github.com/openclaw/openclaw/pull/95087)
- ·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](https://github.com/openclaw/openclaw/pull/95128)
- ·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](https://github.com/openclaw/openclaw/pull/95274) Related [#92302](https://github.com/openclaw/openclaw/issues/92302).
- ·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](https://github.com/openclaw/openclaw/pull/95322)
- ·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](https://github.com/openclaw/openclaw/pull/95467)
- ·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](https://github.com/openclaw/openclaw/pull/95472)
- ·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](https://github.com/openclaw/openclaw/pull/95699)
- ·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](https://github.com/openclaw/openclaw/pull/95782) Related [#95781](https://github.com/openclaw/openclaw/issues/95781).
- ·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](https://github.com/openclaw/openclaw/pull/95791)
- ·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](https://github.com/openclaw/openclaw/pull/95831) Related [#95693](https://github.com/openclaw/openclaw/issues/95693).
- ·Long, tool-heavy sessions now compact oversized conversations instead of getting stuck when a large tool result appears at the end. [#95860](https://github.com/openclaw/openclaw/pull/95860) Related [#78478](https://github.com/openclaw/openclaw/issues/78478).
- ·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](https://github.com/openclaw/openclaw/pull/95916)
- ·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](https://github.com/openclaw/openclaw/pull/96049)
- ·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](https://github.com/openclaw/openclaw/pull/96201)
- ·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](https://github.com/openclaw/openclaw/commit/bdf81a825fa3ef66ad2c535c1eeb0bb4e31b6d1b)
- ·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](https://github.com/openclaw/openclaw/commit/eb00d499d16feea600fceef92d575fa30f005649)
- ·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](https://github.com/openclaw/openclaw/commit/9f888d95e082d50380a66db18ee2e32683e688e0)
- ·Windows memory-backed session syncing now keeps using the intended transcript file even when path formatting differs. [b3b5b08](https://github.com/openclaw/openclaw/commit/b3b5b08e67a26efd648c7c7d879e5487223cd796)
- ·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](https://github.com/openclaw/openclaw/commit/911f853b7fc4d819e2175b001662a01eba30453d)
- ·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](https://github.com/openclaw/openclaw/pull/93374) Related [#92273](https://github.com/openclaw/openclaw/issues/92273).
- ·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](https://github.com/openclaw/openclaw/pull/95484) Related [#76729](https://github.com/openclaw/openclaw/issues/76729).
- ·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](https://github.com/openclaw/openclaw/pull/96162)
- ·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](https://github.com/openclaw/openclaw/pull/94054)
- ·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](https://github.com/openclaw/openclaw/pull/94545)
- ·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](https://github.com/openclaw/openclaw/pull/95175)
- ·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](https://github.com/openclaw/openclaw/pull/95691)
- ·"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](https://github.com/openclaw/openclaw/commit/ae41b009224b0a8e3a990912503258d4478fb4d0)
- ·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](https://github.com/openclaw/openclaw/pull/95720) Related [#78396](https://github.com/openclaw/openclaw/issues/78396).
- ·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](https://github.com/openclaw/openclaw/pull/94707)
- ·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](https://github.com/openclaw/openclaw/pull/95497)
- ·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](https://github.com/openclaw/openclaw/pull/68389) Related [#68352](https://github.com/openclaw/openclaw/issues/68352).
- ·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](https://github.com/openclaw/openclaw/pull/78105) Related [#68780](https://github.com/openclaw/openclaw/issues/68780).
- ·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](https://github.com/openclaw/openclaw/pull/89612) Related [#89609](https://github.com/openclaw/openclaw/issues/89609).
- ·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](https://github.com/openclaw/openclaw/pull/91786) Related [#91772](https://github.com/openclaw/openclaw/issues/91772).
- ·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](https://github.com/openclaw/openclaw/pull/91903)
- ·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](https://github.com/openclaw/openclaw/pull/93919) Related [#76209](https://github.com/openclaw/openclaw/issues/76209).
- ·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](https://github.com/openclaw/openclaw/pull/94154) Related [#94127](https://github.com/openclaw/openclaw/issues/94127).
- ·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](https://github.com/openclaw/openclaw/pull/95226)
- ·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](https://github.com/openclaw/openclaw/pull/95541)
- ·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](https://github.com/openclaw/openclaw/pull/95589)
- ·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](https://github.com/openclaw/openclaw/pull/95845)
- ·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](https://github.com/openclaw/openclaw/pull/95987)
- ·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](https://github.com/openclaw/openclaw/pull/97122)
- ·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](https://github.com/openclaw/openclaw/commit/bd74a62118aa4774706359d9494116ded8c1f6e3)
- ·ClawHub skill-card and update requests now complete or time out predictably even when they receive an unusually large timeout value. [8cd0c11](https://github.com/openclaw/openclaw/commit/8cd0c11227f6f4096d089cd6108d6f2ae31252b7)
- ·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](https://github.com/openclaw/openclaw/commit/ea9065bc68dd4ff94495b85a7dcb4491cf41b67a)
- ·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](https://github.com/openclaw/openclaw/pull/95683)
Channels and Messaging
- ·Telegram reply chains keep cached replies attached after context changes instead of failing when those cached replies are reused. [#82909](https://github.com/openclaw/openclaw/pull/82909)
- ·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](https://github.com/openclaw/openclaw/pull/95661)
- ·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](https://github.com/openclaw/openclaw/commit/7da955fae4ca2083599aa33a1f93dbfff53cb187)
- ·Channel capability checks now return a clear timeout when an integration stops responding, keeping troubleshooting from hanging in a terminal or automation run. [8ecdb97](https://github.com/openclaw/openclaw/commit/8ecdb97b636e4c3fcc6d142d217327404ae06581)
Providers and Models
- ·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](https://github.com/openclaw/openclaw/pull/77339) Related [#77322](https://github.com/openclaw/openclaw/issues/77322).
- ·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](https://github.com/openclaw/openclaw/pull/93943) Related [#78714](https://github.com/openclaw/openclaw/issues/78714).
- ·`/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](https://github.com/openclaw/openclaw/pull/95797)
- ·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](https://github.com/openclaw/openclaw/pull/96013)
Memory, Sessions, and State
- ·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](https://github.com/openclaw/openclaw/pull/94443) Related [#92134](https://github.com/openclaw/openclaw/issues/92134).
- ·Fixes recent-session resume opening a fresh conversation for users with long workspace paths instead of returning to their existing transcript. [#94578](https://github.com/openclaw/openclaw/pull/94578) Related [#94577](https://github.com/openclaw/openclaw/issues/94577).
- ·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](https://github.com/openclaw/openclaw/pull/95614)
- ·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](https://github.com/openclaw/openclaw/pull/95666) Related [#95657](https://github.com/openclaw/openclaw/issues/95657).
- ·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](https://github.com/openclaw/openclaw/pull/95721) Related [#78500](https://github.com/openclaw/openclaw/issues/78500).
- ·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](https://github.com/openclaw/openclaw/pull/96014)
- ·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](https://github.com/openclaw/openclaw/commit/830691b2010bd0406399adb8a2e97e0b043e2ca8)
Gateway, Security, and Trust
- ·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](https://github.com/openclaw/openclaw/pull/89859) Related [#65355](https://github.com/openclaw/openclaw/issues/65355).
- ·Long or parallel internal subagent runs now avoid unnecessary live-preview processing, while visible subagent sessions still show live updates and final responses. [#91906](https://github.com/openclaw/openclaw/pull/91906)
- ·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](https://github.com/openclaw/openclaw/pull/93547) Related [#87830](https://github.com/openclaw/openclaw/issues/87830).
- ·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](https://github.com/openclaw/openclaw/pull/93585)
- ·Canceling an OpenClaw run during tool work now ends it promptly instead of starting another model turn or leaving the session locked. [#94412](https://github.com/openclaw/openclaw/pull/94412)
- ·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](https://github.com/openclaw/openclaw/pull/94445)
- ·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](https://github.com/openclaw/openclaw/pull/94915) Related [#78136](https://github.com/openclaw/openclaw/issues/78136).
- ·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](https://github.com/openclaw/openclaw/pull/95081) Related [#95057](https://github.com/openclaw/openclaw/issues/95057).
- ·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](https://github.com/openclaw/openclaw/pull/95404) Related [#95422](https://github.com/openclaw/openclaw/issues/95422).
- ·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](https://github.com/openclaw/openclaw/pull/95431)
- ·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](https://github.com/openclaw/openclaw/pull/95624)
- ·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](https://github.com/openclaw/openclaw/pull/95652)
- ·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](https://github.com/openclaw/openclaw/pull/95697)
- ·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](https://github.com/openclaw/openclaw/pull/95754)
- ·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](https://github.com/openclaw/openclaw/pull/95886)
- ·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](https://github.com/openclaw/openclaw/pull/96005)
- ·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](https://github.com/openclaw/openclaw/pull/96032)
- ·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](https://github.com/openclaw/openclaw/pull/96062)
- ·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](https://github.com/openclaw/openclaw/pull/96068) Related [#95869](https://github.com/openclaw/openclaw/issues/95869).
- ·Plugins using `heartbeat_prompt_contribution` 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](https://github.com/openclaw/openclaw/pull/96233)
- ·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](https://github.com/openclaw/openclaw/commit/15c880aeff1f4e55964ad7204d14733a2d1362f7)
- ·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](https://github.com/openclaw/openclaw/commit/a60947fb3e92f45ea7eb2581da8877b10a8bebb2)
- ·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](https://github.com/openclaw/openclaw/commit/2f3399989893e6af18be49fb810e58941d7a4a45)
- ·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](https://github.com/openclaw/openclaw/commit/0ad48dad2c4747f255d5a156b94578f7d87386a1)
- ·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](https://github.com/openclaw/openclaw/commit/a39a3b74de05f06227ede904a73c1b4687679d3e)
- ·Gateway restarts and managed-service updates now keep the correct continuation message, avoid reusing stale handoff state, and mark failed update handoffs consistently. [514b336](https://github.com/openclaw/openclaw/commit/514b3365b54c8b3493eaf8a94198b7c04ea34aec)
- ·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](https://github.com/openclaw/openclaw/commit/c2ee9b0be8aeeadedffc8c6aaa9f5f291283fea5)
- ·Malformed gateway restart requests now fail clearly without scheduling a restart, preventing bad or accidental integration calls from unexpectedly restarting the gateway. [108d6d7](https://github.com/openclaw/openclaw/commit/108d6d7eca0000a736e28d198e77100f4d7774e5)
- ·Stale node requests queued by the gateway now expire automatically, so old work is less likely to linger and affect later activity. [f6d432e](https://github.com/openclaw/openclaw/commit/f6d432e545e2e2be91d17badc48354a0135e5294)
- ·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](https://github.com/openclaw/openclaw/commit/b66b4504f87205dd8ba0393e763e23a4a6158a79)
- ·Image descriptions now handle extremely large timeout settings consistently by capping them to a safe runtime limit instead of risking timer overflow. [88b21fc](https://github.com/openclaw/openclaw/commit/88b21fc30b4ac615b3d3870e483190bc832f9846)
- ·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](https://github.com/openclaw/openclaw/commit/4c736df975fed8e39f18db43bfaea9654b9ac0c7)
- ·Queued commands with extremely large task timeout settings now time out reliably because OpenClaw caps the wait at the runtime's safe maximum. [1f6ae32](https://github.com/openclaw/openclaw/commit/1f6ae32cabb9d5ed308bb30715c287936ef483f1)
- ·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](https://github.com/openclaw/openclaw/commit/93ad39772590a34be3821d83709a5050c186fdf9)
- ·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](https://github.com/openclaw/openclaw/commit/9e8ab083dd6b9df4dadf40ee523ff18ac1472bd3)
- ·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](https://github.com/openclaw/openclaw/commit/b4bc1f20c9fca6d316561d42cbabdd793c67a6e7)
- ·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](https://github.com/openclaw/openclaw/commit/d1b268f7f7f7309dd5db99728019218b4d453e18)
- ·Fixes completed subagent tasks sometimes ending without an update, so users receive the result or the parent agent's next step. [68a1e00](https://github.com/openclaw/openclaw/commit/68a1e00b73bd746f6fb577f4127fecb0ade9e228)
- ·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](https://github.com/openclaw/openclaw/pull/96212)
- ·When a subagent finishes, its result now reaches the active parent run more reliably instead of appearing silent. [7fc4bbc](https://github.com/openclaw/openclaw/commit/7fc4bbc0bcbabc2aa99b1fd51e77099f2b26f4e1)
- ·Trusted OpenClaw package sources now reject lookalike sibling paths, so trusting `/artifactory/openclaw` no longer also admits paths such as `/artifactory/openclaw-malicious`. [12c34fc](https://github.com/openclaw/openclaw/commit/12c34fc3a95121f5a15f01c3f971a1bc5b0fe6f9)
Clients and Interfaces
- ·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](https://github.com/openclaw/openclaw/pull/84352)
- ·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](https://github.com/openclaw/openclaw/pull/89323) Related [#89249](https://github.com/openclaw/openclaw/issues/89249).
- ·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](https://github.com/openclaw/openclaw/pull/93841) Related [#90241](https://github.com/openclaw/openclaw/issues/90241).
- ·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](https://github.com/openclaw/openclaw/pull/94204) Related [#94157](https://github.com/openclaw/openclaw/issues/94157).
- ·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](https://github.com/openclaw/openclaw/pull/95148)
- ·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](https://github.com/openclaw/openclaw/pull/95503) Related [#89466](https://github.com/openclaw/openclaw/issues/89466).
- ·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](https://github.com/openclaw/openclaw/pull/95557)
- ·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](https://github.com/openclaw/openclaw/pull/95593)
- ·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](https://github.com/openclaw/openclaw/pull/95640)
- ·Local TUI shutdowns now stay within safe timer limits even when `OPENCLAW_TUI_LOCAL_RUN_SHUTDOWN_GRACE_MS` is set extremely high. [c21dcfc](https://github.com/openclaw/openclaw/commit/c21dcfc7c272201484514bbc096bd51ab112bd47)
- ·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](https://github.com/openclaw/openclaw/commit/a89e65c167f3280b047baff931f52e393875c892)
- ·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](https://github.com/openclaw/openclaw/commit/f2b8668a549b50339a96e47020a12615734640a9)
- ·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](https://github.com/openclaw/openclaw/commit/8efed50c4ed33105cfed9f2f96532fc9fe2d7e6d)
- ·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](https://github.com/openclaw/openclaw/pull/91049) Related [#91048](https://github.com/openclaw/openclaw/issues/91048).
- ·Restores the OpenAI/Codex usage quota in the expanded Control UI chat sidebar, so users can check their limits without leaving the conversation. [#94219](https://github.com/openclaw/openclaw/pull/94219) Related [#93041](https://github.com/openclaw/openclaw/issues/93041).
- ·iOS screens now use consistent OpenClaw accent and status colors across onboarding, settings, chat, approval prompts, voice permissions, widgets, and shared chat views. [#94627](https://github.com/openclaw/openclaw/pull/94627)
- ·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](https://github.com/openclaw/openclaw/pull/95459) Related [#95073](https://github.com/openclaw/openclaw/issues/95073).
- ·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](https://github.com/openclaw/openclaw/pull/95485)
- ·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](https://github.com/openclaw/openclaw/pull/95723) Related [#95716](https://github.com/openclaw/openclaw/issues/95716).
- ·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](https://github.com/openclaw/openclaw/pull/95837)
- ·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](https://github.com/openclaw/openclaw/pull/96145) Related [#94202](https://github.com/openclaw/openclaw/issues/94202).
- ·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](https://github.com/openclaw/openclaw/pull/96181)
Plugins and Packaging
- ·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](https://github.com/openclaw/openclaw/pull/94470)
- ·First-run onboarding can now install the bundled `gog` skill through Homebrew without failing on the removed third-party tap formula. [#95019](https://github.com/openclaw/openclaw/pull/95019) Related [#95017](https://github.com/openclaw/openclaw/issues/95017).
- ·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](https://github.com/openclaw/openclaw/pull/95664)
- ·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](https://github.com/openclaw/openclaw/pull/95992)
- ·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](https://github.com/openclaw/openclaw/commit/11a2e03bd4deda748336553710cb6426d448d952)
- ·Package URL installs now handle oversized download timeouts without failing before available package data can be resolved. [c310f8c](https://github.com/openclaw/openclaw/commit/c310f8cfa4524453c7082bb5aab642c9decc6e99)
- ·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](https://github.com/openclaw/openclaw/commit/23b4f33195933ff4def4609d970f073293760683)
- ·Windows ARM64 users now get matching ARM64 Node and MinGit downloads when running the PowerShell installer through an x64-emulated shell. [fac091b](https://github.com/openclaw/openclaw/commit/fac091b39de230d9ed90e8412123126cf676004f)
- ·Default OpenClaw installs no longer spend time building optional llama.cpp support, avoiding native-build failures for users who did not enable it. [cc1b3a8](https://github.com/openclaw/openclaw/commit/cc1b3a8550dd9c29f581799934d140aaf5a84f1c)
Docs and Admin Tools
- ·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](https://github.com/openclaw/openclaw/pull/64490)
- ·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](https://github.com/openclaw/openclaw/pull/84326)
- ·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](https://github.com/openclaw/openclaw/pull/84340)
- ·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](https://github.com/openclaw/openclaw/pull/90537) Related [#90518](https://github.com/openclaw/openclaw/issues/90518).
- ·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](https://github.com/openclaw/openclaw/pull/93351)
- ·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](https://github.com/openclaw/openclaw/pull/94148) Related [#78217](https://github.com/openclaw/openclaw/issues/78217).
- ·`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](https://github.com/openclaw/openclaw/pull/94238) Related [#93953](https://github.com/openclaw/openclaw/issues/93953).
- ·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](https://github.com/openclaw/openclaw/pull/94483)
- ·Archived Workboard cards no longer clutter the default `openclaw workboard list` output, while `--include-archived` and JSON output still provide access when needed. [#94562](https://github.com/openclaw/openclaw/pull/94562) Related [#94555](https://github.com/openclaw/openclaw/issues/94555).
- ·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](https://github.com/openclaw/openclaw/pull/94784) Related [#94655](https://github.com/openclaw/openclaw/issues/94655).
- ·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](https://github.com/openclaw/openclaw/pull/95393) Related [#92582](https://github.com/openclaw/openclaw/issues/92582).
- ·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](https://github.com/openclaw/openclaw/pull/95480) Related [#89231](https://github.com/openclaw/openclaw/issues/89231).
- ·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](https://github.com/openclaw/openclaw/pull/95572)
- ·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](https://github.com/openclaw/openclaw/pull/95684)
- ·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](https://github.com/openclaw/openclaw/commit/7dd01d15c56da2ee50f55746ba725d708682fca9)
- ·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](https://github.com/openclaw/openclaw/commit/e9b694ef9cd8b7528a76d85b8be2a830b296a5e1)
- ·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](https://github.com/openclaw/openclaw/commit/72b9bc730370e3b1155fb231621c2bc7b2c87b56)
- ·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](https://github.com/openclaw/openclaw/commit/c4facb2bb372e99037f497e2640ca7bdc5cbc5f6)
- ·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](https://github.com/openclaw/openclaw/commit/2a140e6e6ae8c48edb5bd52d8d177915f0555d70)
- ·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](https://github.com/openclaw/openclaw/commit/6daabd23f821c66154739de4b0f103e33343333c)
- ·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](https://github.com/openclaw/openclaw/commit/54d24cd956ff91f4fa8c4924f17c06798c1e0359)
- ·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](https://github.com/openclaw/openclaw/commit/d48dcc664bc6e1106a61942a951745886f22d582)
- ·Windows users can run `crabbox`, `git`, and other Node-backed tools through npm-installed command shims without Crabbox stopping before the tool opens. [77f4e45](https://github.com/openclaw/openclaw/commit/77f4e45c3518751b5f586eac193c4aee904f02d9)
- ·`openclaw doctor` now checks profiles that omit tool policy settings without treating the valid omission as an error. [03ba09b](https://github.com/openclaw/openclaw/commit/03ba09bfa8676832d55bdc7724e79d9980fdd2d7)
- ·`openclaw doctor` no longer shows misleading tool-section warnings when it cannot evaluate a custom preview profile. [420a0e6](https://github.com/openclaw/openclaw/commit/420a0e6fce4b2c5339e535e6b307f50df1c00bb2)
- ·`openclaw doctor` now limits preview warnings to tool profiles it can evaluate, avoiding misleading configured-grant warnings for unknown profiles. [541f7ff](https://github.com/openclaw/openclaw/commit/541f7ffc6558c0e59a8afca066a9f00884d39b65)
- ·Windows users can install OpenClaw from source without dependency setup being blocked by the installer forcing npm or pnpm scripts through `cmd.exe`. [1252378](https://github.com/openclaw/openclaw/commit/1252378018f899bfc110914bac7cba94b65b8930)
- ·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](https://github.com/openclaw/openclaw/pull/84794) Related [#84707](https://github.com/openclaw/openclaw/issues/84707).
- ·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](https://github.com/openclaw/openclaw/pull/93369) Related [#90302](https://github.com/openclaw/openclaw/issues/90302).
- ·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](https://github.com/openclaw/openclaw/pull/93567)
- ·Adding or removing a cron job no longer causes another recurring job that is already due to lose its pending run. [#94323](https://github.com/openclaw/openclaw/pull/94323)
- ·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](https://github.com/openclaw/openclaw/pull/95805) Related [#93326](https://github.com/openclaw/openclaw/issues/93326).
- ·Browser automation users keep the same reference-rich snapshots, including useful branches in compact results, with less avoidable processing during snapshot generation. [#96072](https://github.com/openclaw/openclaw/pull/96072)
- ·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](https://github.com/openclaw/openclaw/commit/a192b2ea52b3166a7d190bf5f60f3feb030306bb)
- ·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](https://github.com/openclaw/openclaw/commit/a5fde9119c9c50685a392bff078a2f76a03d749d)
- ·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](https://github.com/openclaw/openclaw/commit/d3b44442f6c8bedd765dc20a06316d3420b5d854)
- ·SDK runs created with `timeoutMs: 0` now keep the requested zero timeout without an unwanted client-side watchdog. [2bdcc83](https://github.com/openclaw/openclaw/commit/2bdcc8314d3fce9ee2d0300759cd6a1d9bb45a7d)
- ·Stalled OpenClaw commands now stop reliably even when callers supply extremely large execution or idle-output timeouts. [1425bb3](https://github.com/openclaw/openclaw/commit/1425bb3a03189813787194c23b8a38518166005a)
- ·Commands given extremely large timeout settings now use a safe maximum instead of failing because the runtime cannot schedule the requested wait. [66b94ba](https://github.com/openclaw/openclaw/commit/66b94ba577b8836a4afa7cb59cd1a749bf2a8d68)
- ·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](https://github.com/openclaw/openclaw/commit/8f2882f94affbe5e89994ae175fdaf7304d7b392)
- ·Larger OpenClaw configurations can initialize and generate UI hints more efficiently, while sensitive fields continue to be marked the same way. [#55018](https://github.com/openclaw/openclaw/pull/55018)
- ·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](https://github.com/openclaw/openclaw/pull/83041) Related [#46797](https://github.com/openclaw/openclaw/issues/46797).
- ·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](https://github.com/openclaw/openclaw/pull/89628)
- ·OpenTelemetry trace backends such as Langfuse now show the actual provider/model name instead of "unknown" for slash-qualified model IDs. [#89981](https://github.com/openclaw/openclaw/pull/89981)
- ·Malformed or older device-pairing records no longer stop `openclaw devices list` from showing pending approval requests, while valid roles still appear normally. [#93504](https://github.com/openclaw/openclaw/pull/93504)
- ·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](https://github.com/openclaw/openclaw/pull/93887)
- ·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](https://github.com/openclaw/openclaw/pull/93994) Related [#93947](https://github.com/openclaw/openclaw/issues/93947).
- ·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](https://github.com/openclaw/openclaw/pull/94687) Related [#79100](https://github.com/openclaw/openclaw/issues/79100).
- ·`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](https://github.com/openclaw/openclaw/pull/94949) Related [#94426](https://github.com/openclaw/openclaw/issues/94426).
- ·`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](https://github.com/openclaw/openclaw/pull/95102) Related [#95082](https://github.com/openclaw/openclaw/issues/95082).
- ·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](https://github.com/openclaw/openclaw/pull/95300)
- ·`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](https://github.com/openclaw/openclaw/pull/95570) Related [#95568](https://github.com/openclaw/openclaw/issues/95568).
- ·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](https://github.com/openclaw/openclaw/pull/95719)
- ·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](https://github.com/openclaw/openclaw/pull/96019)
- ·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](https://github.com/openclaw/openclaw/commit/af3e509ab823dac5f91b16915ee7067b369656a3)
- ·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](https://github.com/openclaw/openclaw/commit/d5d9a8256d6bc2ff8d699152923357bd61c606c1)
- ·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](https://github.com/openclaw/openclaw/pull/78884) Related [#65312](https://github.com/openclaw/openclaw/issues/65312).
- ·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](https://github.com/openclaw/openclaw/pull/86608)
- ·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](https://github.com/openclaw/openclaw/pull/95191) Related [#95186](https://github.com/openclaw/openclaw/issues/95186).
- ·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](https://github.com/openclaw/openclaw/pull/95972)
- ·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](https://github.com/openclaw/openclaw/pull/95383)
- ·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](https://github.com/openclaw/openclaw/pull/95674) Related [#95407](https://github.com/openclaw/openclaw/issues/95407).
- ·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](https://github.com/openclaw/openclaw/pull/96085)
- ·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](https://github.com/openclaw/openclaw/commit/f354889efa1c8bafca9304767afba2c270add549)
Additional contributions
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.2pre-release2026-06-28
openclaw 2026.6.11-beta.2
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)
- ·**Richer operator workflows:** `openclaw agent --message-file` and the RAFT CLI wake bridge add practical file-driven and remote wake-up paths. (#93351, #95497)
- ·**Safer plugin distribution:** additional official plugins are externalized cleanly, with bundled plugin icon metadata available to installed clients. (#95683, #95845)
- ·**Stronger mobile operations:** Android settings detail panels improve configuration visibility and control on mobile. (#95148)
- ·**More reliable agent turns:** Codex partial deltas, harness activation, and long-context prompt-cache stability reduce lost progress and inconsistent runs. (#95404, #95652, #95624)
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)
- ·**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)
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)
- ·**WhatsApp and message identity:** native quotes, Baileys group reliability, and approval reactions across JID drift now preserve the intended conversation context. (#95483, #94338, #95935)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Cron and delivery validation:** no-config delivery checks, thread-aware dedupe, and pending recurring runs retain their intended destinations. (#95754, #95794, #94323)
Complete contribution record
- ·**PR #95406** test(qa): make release scorecard categories explicit.
- ·**PR #94700** test: fold HTTP API script proof into QA Lab.
- ·**PR #95499** fix(test): unit-fast flow mocks.
- ·**PR #95308** fix(ci): filter ClawSweeper comment dispatches before token minting.
- ·**PR #95532** fix(telegram): materialize rich message line breaks as <br>. Related #95409.
- ·**PR #91786** fix(plugins): reconcile managed npm root overrides with managed peer pins. Related #91772.
- ·**PR #93002** Fix Telegram progress draft cleanup before tool output. Related #90753.
- ·**PR #95175** fix: route mobile exec approvals to reviewer device.
- ·**PR #94506** fix(telegram): stop clearing registered webhook on channel restart. Related #90254.
- ·**PR #95183** fix(telegram): materialize streaming progress placeholders. Related #95004.
- ·**PR #95483** fix(whatsapp): preserve native quote replies.
- ·**PR #94338** fix(whatsapp): wire missing Baileys retry/cache hooks for group message reliability. Related #7433.
- ·**PR #94707** feat(slack): add relay mode for incoming messages.
- ·**PR #94977** fix(telegram): honor outbound reaction directives. Related #71140.
- ·**PR #95069** fix(telegram): skip mirror write when primary reply already exists (#94930).
- ·**PR #95550** Preserve inherited channel account policies during migration.
- ·**PR #95390** fix #95378: https://github.com/openclaw/openclaw/issues/95378.
- ·**PR #93143** fix(imessage): keep split-send coalescing opt-in.
- ·**PR #95008** fix(claude-cli): also disable native background Bash and Monitor in --print runs.
- ·**PR #94545** fix: keep trusted policies with hook registry.
- ·**PR #95007** fix(telegram): render progress draft rows as plain readable text. Related #95002.
- ·**PR #95624** fix(agents): keep long-context tool-result prompts cache-stable.
- ·**PR #95625** fix(ci): smooth PR runner-registration bursts.
- ·**PR #95572** fix(agents): reject bind specs with extra colon segments.
- ·**PR #95653** test(agents): add large prompt cache coverage.
- ·**PR #95640** Consolidate iOS notification permission UX.
- ·**PR #95546** feat(mattermost): register /oc_queue as a native slash command.
- ·**PR #95019** fix(skills): point gog brew install at homebrew-core gogcli (#95017).
- ·**PR #93378** test(telegram): keep live polling leases protected. Related #93375.
- ·**PR #95084** fix(googlechat): sanitize internal tool-trace lines from outbound text (#90684).
- ·**PR #95278** Avoid copying process.env in ingress queue state DB opens. Related #94571.
- ·**PR #95577** fix #86957: drain worker-spooled Telegram updates immediately.
- ·**PR #95128** fix(compaction): count user-message image blocks in cut-point estimator.
- ·**PR #93887** fix(ssh): reject hostnames with stray leading or trailing colons in parseSshTarget.
- ·**PR #95191** docs(plugins): document subagent_ended hook fields. Related #95186.
- ·**PR #95102** fix(config): add stdio to McpServerSchema transport union. Related #95082.
- ·**PR #95465** fix(sdk): type-narrow manifest.files in pack staging root helper.
- ·**PR #95664** refactor(plugins): move owner skills into plugins.
- ·**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.
- ·**PR #94687** fix(gateway): accept port for health and probe. Related #79100.
- ·**PR #95649** fix(ci): bundle test shards and right-size runners.
- ·**PR #95243** fix(docs): show inline read_when hints in docs:list.
- ·**PR #95283** fix(openai-completions): seal native reasoning before the answer under /reasoning on. Related #95280.
- ·**PR #95497** feat(raft): add CLI wake bridge channel.
- ·**PR #95459** fix(cron): use main-session systemEvent for silent quick-create preset. Related #95073.
- ·**PR #95503** fix #89466: [Bug]: Control UI chat input text not cleared after sending.
- ·**PR #95684** fix(skills): harden ClawHub update policy.
- ·**PR #95683** feat(plugins): externalize additional official plugins.
- ·**PR #95681** fix(ci): debounce canonical main runner admission.
- ·**PR #95652** fix(agents): activate selected harness plugins.
- ·**PR #95404** fix(codex): stream non-final-answer assistant deltas as partials. Related #95422.
- ·**PR #58993** fix(googlechat): support spaceType field for DM vs Space detection.
- ·**PR #94148** fix(doctor): prevent non-interactive --fix from auto-restarting gateway. Related #78217.
- ·**PR #89859** fix(gateway): honor remote status probe timeout. Related #65355.
- ·**PR #95466** fix(ci): increase timeouts in flaky process-group signal test.
- ·**PR #95720** fix(matrix): prevent double bootstrapCrossSigning reset in forced reset. Related #78396.
- ·**PR #95707** fix(synology-chat): remove duplicate local deliver timeout.
- ·**PR #95706** fix(whatsapp): remove dead watchdog timeout clamp.
- ·**PR #95719** fix(cli): sync capability inspect metadata flags with registered options.
- ·**PR #95721** fix(active-memory): exclude dreaming-narrative session keys from eligibility gate. Related #78500.
- ·**PR #95602** test: save ~79 CI hours/mo in gateway session utils.
- ·**PR #94412** fix(agent-core): stop loop after aborted tool run.
- ·**PR #94915** fix(gateway): report draining state in readiness. Related #78136.
- ·**PR #95691** fix(ui): bump dompurify to patched release.
- ·**PR #95710** fix(vercel-ai-gateway): resolve dynamic model selections.
- ·**PR #94072** fix(agents): count message-tool source reply as user-facing reply for tool error warnings. Related #93875.
- ·**PR #94784** fix(doctor): stop promising --fix for working isolated shell-prompt cron jobs (#94655).
- ·**PR #93504** fix(device-pairing): guard role normalization against non-string entries.
- ·**PR #92178** fix(gateway): normalize malformed paired access lists. Related #90654.
- ·**PR #83041** Fix config patch restart-required notices. Related #46797.
- ·**PR #95754** fix(cron): preserve no-config delivery validation.
- ·**PR #93351** feat(cli): add --message-file to openclaw agent.
- ·**PR #95485** fix(ui): roll values near 1M over from k to M in compact token format.
- ·**PR #94622** fix(build): allow tsdown heap override.
- ·**PR #76668** meta(issue-template): add dedicated docs bug report form. Related #76664.
- ·**PR #91193** fix(cli): document Commander rawArgs internal API dependency in action-reparse.ts. Related #83893.
- ·**PR #77339** fix(auto-reply): clear runtime model cache on reset. Related #77322.
- ·**PR #89628** Speed up precomputed command help startup.
- ·**PR #95087** refactor: add memory and QMD session identity mapping.
- ·**PR #89323** fix(web-ui): skip hidden subagent picker pages. Related #89249.
- ·**PR #84794** Clean up isolated cron sessions after runs. Related #84707.
- ·**PR #95794** fix(cron): compare thread IDs when deduping failure destinations.
- ·**PR #95791** fix(session-memory): sanitize model artifacts before saving memory.
- ·**PR #95805** fix(agents): normalize hallucinated Office file extensions. Related #93326.
- ·**PR #89612** fix: include persisted plugin contracts for migrations. Related #89609.
- ·**PR #89981** fix(diagnostics-otel): keep full model id on spans instead of collapsing to "unknown".
- ·**PR #90489** fix(sessions): clarify cross-agent visibility guidance. Related #90443.
- ·**PR #95383** fix(sdk): classify failed/blocked tool events as tool.call.failed.
- ·**PR #95827** fix(plugin-sdk): bound live model catalog success body.
- ·**PR #95792** fix(onboard): refresh provider plugin registry after setup installs. Related #95765.
- ·**PR #93943** fix(provider-usage): honor proxy env for usage fetch. Related #78714.
- ·**PR #89648** fix(agents): restore model-fetch info logs. Related #89300.
- ·**PR #93841** fix(ui): render persisted history text blocks. Related #90241.
- ·**PR #93502** docs: fix docs metadata spellcheck.
- ·**PR #86608** docs: add existing-solutions preflight guardrail.
- ·**PR #95322** fix(reply): preserve usage footer across rollover.
- ·**PR #91559** fix(agents): clean Gemini tool schemas by model id. Related #91542.
- ·**PR #94701** Fix embedded-run recovery after refreshed session activity.
- ·**PR #95472** [AI] fix(main-session): skip current-gen abort controllers for completed sessions.
- ·**PR #95401** fix(lmstudio): canonicalize variant model keys.
- ·**PR #94323** fix(cron): stop add/remove from dropping a due recurring job's pending run.
- ·**PR #94443** fix(memory-wiki): retry transient source-page rewrite race instead of aborting wiki_status. Related #92134.
- ·**PR #95120** feat(channels): add directUserId support for per-DM model override. Related #53638.
- ·**PR #91049** fix: handle terminal chat send acknowledgements. Related #91048.
- ·**PR #95081** fix: keep text transform runtime imports hashed. Related #95057.
- ·**PR #93356** fix(plugins): cache plugin setup registry to kill the /models CPU storm.
- ·**PR #85341** refactor: internalize OpenClaw agent runtime.
- ·**PR #94233** fix(model-fallback): coalesce auth decision logs. Related #56979.
- ·**PR #92399** fix(llm): collapse cumulative openai-responses message snapshots instead of concatenating [AI-assisted]. Related #91959.
- ·**PR #94811** fix(ollama): honor memory embedding output dimensionality.
- ·**PR #84708** fix(agents): recover message-tool mirror replay poison.
- ·**PR #95274** fix(memory): preserve Windows QMD command paths. Related #92302.
- ·**PR #95686** fix(xai): request encrypted reasoning include for all reasoning models.
- ·**PR #82909** fix(telegram): repair message cache reply types.
- ·**PR #94942** fix(matrix): prune finished fake-indexeddb transactions to prevent OOM. Related #90455.
- ·**PR #93994** fix(setup): point non-interactive health hints at onboard flags. Related #93947.
- ·**PR #93956** fix(ollama): skip auto-discovery for remote/cloud base URLs.
- ·**PR #93547** fix(acp): recover stale persistent sessions by structured resume-required code [AI-assisted]. Related #87830.
- ·**PR #94204** fix(control-ui): rewrite manifest hrefs for configured base path. Related #94157.
- ·**PR #95637** fix(qqbot): recognize GFM table separators with one or two dashes.
- ·**PR #95467** fix(sessions): keep bound channel identity across non-delivery turns.
- ·**PR #93919** perf(plugins): cache existence probes within bundle manifest scan [AI-assisted]. Related #76209.
- ·**PR #94726** fix(google): add gemini-3.5-flash model catalog entry. Related #94723.
- ·**PR #94238** fix(config): fail closed when configure runs without an interactive TTY (#93953).
- ·**PR #89949** fix(media): pin requester delivery route when task starts. Related #86034.
- ·**PR #94470** chore: sync yuanbao plugin catalog to 2.15.0.
- ·**PR #93585** fix(daemon): keep systemd gateway running after child OOM.
- ·**PR #94442** fix(imessage): strip leading echo corruption markers in the persisted echo cache.
- ·**PR #93511** fix(imessage): normalize leading NUL echo-cache prefixes.
- ·**PR #87121** test(cli): add banner emission reset helper. Related #83903.
- ·**PR #89172** fix(feishu): show voice message duration via upload duration. Related #53798.
- ·**PR #95118** fix: bound agents load their own inbound workspace context. Related #92903.
- ·**PR #94752** fix(reply): clarify stale model override resets. Related #94713.
- ·**PR #89716** fix(providers): strip cache-boundary marker from non-Anthropic prompts.
- ·**PR #95268** fix(openrouter): expand short canonical model IDs to upstream API slugs (fixes #95198).
- ·**PR #90475** fix(telegram): keep bot reply answers anchored to current message.
- ·**PR #94219** fix(control-ui): restore provider usage quota pill in sidebar session switcher (fixes #93041).
- ·**PR #93369** fix(cron): expose per-job fallbacks in CLI. Related #90302.
- ·**PR #87912** Handle Codex toolResult blocks in tool-result truncation.
- ·**PR #95744** fix(model-catalog): strip manifest model-id prefixes by the matched length. Related #95743.
- ·**PR #95300** fix(cli): expose --count on infer image edit, matching image generate.
- ·**PR #94156** fix: expose OpenAI image quality and moderation CLI options.
- ·**PR #94062** fix(agents): classify generic "LLM request failed." as transient time…. Related #93931.
- ·**PR #93965** fix(opencode-go): streaming completes when provider ends responses. Related #93610.
- ·**PR #89017** fix(webchat): sessions persist after reconnects. Related #87700.
- ·**PR #94627** fix(ios): centralize app accent colors.
- ·**PR #94054** fix(gateway.tls): reject empty/whitespace certPath and keyPath.
- ·**PR #95674** fix(cron): trim trailing whitespace from recognized job object keys. Related #95407.
- ·**PR #95857** Fix SQLite user version guardrail allowlist.
- ·**PR #95858** feat(qa): expose active memory toggles to scenarios.
- ·**PR #84326** Doctor: expose sandbox registry findings.
- ·**PR #73079** fix(minimax): request hex TTS output explicitly.
- ·**PR #94483** feat(gateway-cli): scope usage-cost by agent.
- ·**PR #91502** feat(qa): crabline channel driver.
- ·**PR #95872** Move TUI PTY tests into CI node shard.
- ·**PR #89800** fix(agents): resolve webchat current session status. Related #89773.
- ·**PR #95870** fix(ci): restore macOS and Windows QA gates.
- ·**PR #94445** fix(agents): keep cron cloud idle watchdog enabled.
- ·**PR #91506** fix(qa): reserve shared QA suite flags across runners.
- ·**PR #95876** ci: add manual release QA profile evidence workflow.
- ·**PR #95879** fix(ci): use workflow revision for proof checks.
- ·**PR #93113** fix(memory-core): report active dreaming phases in status. Related #67868.
- ·**PR #95837** Simplify color mode button labels.
- ·**PR #95797** fix: /status is too verbose for pinned model sessions.
- ·**PR #90223** test: make qqbot symlinked media helper test robust on Windows.
- ·**PR #95557** improve: refresh Android overview control surface.
- ·**PR #95593** fix: route Android exec approvals to in-app inbox.
- ·**PR #95570** fix(cli): resolve trajectory export stores consistently. Related #95568.
- ·**PR #95880** ci: generalize QA profile evidence workflow.
- ·**PR #95218** fix(agents): bound provider JSON response reads.
- ·**PR #95614** fix(memory-wiki): preserve human notes block on source re-ingest.
- ·**PR #95148** feat(android): add settings detail panels.
- ·**PR #95893** Add iOS push sandbox profiles and relay tooling.
- ·**PR #95723** fix(control-ui): exclude disabled cron jobs from Overview failed count. Related #95716.
- ·**PR #78715** Fix minor grammar issue in plugin documentation (capabilities plural).
- ·**PR #95890** fix(ci): restore QA workflow gates.
- ·**PR #95661** fix(discord): reserve closing-fence space on fence-closing lines.
- ·**PR #94272** ci: add maturity scorecard renderer.
- ·**PR #95901** ci: add maturity scorecard renderer.
- ·**PR #95914** fix(whatsapp): preserve durable reply target.
- ·**PR #95697** improve: reduce hot-path linear scans and redundant I/O.
- ·**PR #95916** fix(memory): improve node:sqlite unavailable guidance.
- ·**PR #78884** docs: document local avatar file size limit. Related #65312.
- ·**PR #95909** fix(ci): use available Android SDK platform.
- ·**PR #68389** plugins: clarify allowlist warning when entries don't match discovered ids. Related #68352.
- ·**PR #95898** ci: simplify maturity scorecard QA evidence inputs.
- ·**PR #95928** fix(ci): honor reusable QA evidence failure policy.
- ·**PR #95508** fix #95489: [Bug]: claude-cli out-of-credits error bypasses model fallback chain — error text delivered as final response.
- ·**PR #95420** fix(agents): bound OpenRouter model catalog response reads.
- ·**PR #95103** fix(gateway): bound pricing catalog streams.
- ·**PR #95108** fix(agents): bound Anthropic error streams.
- ·**PR #95418** fix(agents): bound OpenRouter model-scan catalog success body.
- ·**PR #95922** fix(ci): finalize testbox sessions after setup failures.
- ·**PR #95417** fix(agents): bound Google prompt cache response reads.
- ·**PR #95935** fix(whatsapp): resolve approval reactions across JID drift.
- ·**PR #84340** Doctor: expose extra gateway service findings.
- ·**PR #95946** fix(ci): finalize Windows Testbox after setup failures.
- ·**PR #95947** feat(qa): add "all" taxonomy profile.
- ·**PR #91903** feat(plugin-sdk): add extensible channel identity hook context.
- ·**PR #95930** docs(copilot): refresh harness parity notes.
- ·**PR #95952** fix(ci): require QA live evidence artifacts.
- ·**PR #95666** Fix memory-wiki bridge self-import loop. Related #95657.
- ·**PR #91724** fix(agents): infer runtime provider from qualified model ids.
- ·**PR #95957** improve: speed up provider tool-call streaming.
- ·**PR #95541** fix(cli): show working commands for pinned plugin drift.
- ·**PR #95933** docs: update maturity scorecard.
- ·**PR #78105** fix(plugins): make empty-allowlist actionable for new users. Related #68780.
- ·**PR #95961** fix(ci): require live proof evidence artifacts.
- ·**PR #95400** fix(model-fallback): classify Codex usage-limit payloads.
- ·**PR #95944** perf(qa-lab): speed up unified QA suites.
- ·**PR #95971** ci: fail QA profile evidence on QA failures.
- ·**PR #95845** feat: add bundled plugin icon manifest URLs.
- ·**PR #95975** fix(ci): require iOS Periphery evidence artifact.
- ·**PR #95972** docs: update ClawHub skill route references.
- ·**PR #90537** Warn on generated wrapper overwrites and status diagnostics. Related #90518.
- ·**PR #93567** fix(cron): normalize run-log jobId on write to match read-side validation.
- ·**PR #95967** perf(ci): widen main test fanout and move codeql off blacksmith.
- ·**PR #95983** fix(ci): require OpenGrep SARIF artifacts.
- ·**PR #64490** CLI: escape zsh completion descriptions.
- ·**PR #95682** Fix Gemini day freshness time range handling.
- ·**PR #93374** fix(agents): suggest recovery for unknown tool ids. Related #92273.
- ·**PR #95991** fix(ci): require release QA evidence artifacts.
- ·**PR #89886** fix(context-engine): forward abortSignal through delegation bridge to runtime compaction. Related #89868.
- ·**PR #95999** fix(release): require postpublish evidence artifact.
- ·**PR #96003** test(qa): harden all-profile QA evidence scenarios.
- ·**PR #95860** fix(compaction): trim prefix when transcript ends in an oversized tool result. Related #78478.
- ·**PR #95934** fix(xiaomi): correct mimo-v2.5 and mimo-v2.5-pro max output tokens to 128K.
- ·**PR #95782** fix(sessions): honor configured store for outbound transcript mirrors. Related #95781.
- ·**PR #96005** feat(copilot): wire harness parity helpers.
- ·**PR #95886** fix: avoid false macOS update failures during gateway shutdown.
- ·**PR #91906** perf: skip subagent live stream parsing.
- ·**PR #87861** fix(model-usage): coerce numeric-string costs and ignore non-finite values. Related #37878.
- ·**PR #96030** fix(qa-lab): avoid duplicate child evidence files.
- ·**PR #94369** fix(memory-wiki): exclude durable reference pages from stale report.
- ·**PR #94578** Fix recent session resume with long headers. Related #94577.
- ·**PR #95919** ci: add Codex maturity scorecard agent.
- ·**PR #92356** fix(heartbeat): skip reasoning payloads when selecting heartbeat reply. Related #92260.
- ·**PR #94328** fix(agents): keep post-compaction user re-issue of a kept-tail prompt during compaction rotation.
- ·**PR #95432** fix(reply): suppress per-message finals across multi-message block streaming.
- ·**PR #95431** fix(auto-reply): keep drain/restart-abort reply paths silent.
- ·**PR #96017** test(qa): gate maturity docs on passing evidence.
- ·**PR #95552** feat(mattermost): persist participated threads for mention-free follow-ups.
- ·**PR #95480** fix #89231: [Bug]: Windows installer-created scheduled task launches gateway.cmd with visible console — should use windowless launcher.
- ·**PR #96049** fix(copilot): preserve compaction metadata.
- ·**PR #96044** docs: rename top maturity tier to Clawesome.
- ·**PR #92154** Gate private QQBot group commands.
- ·**PR #95484** fix: assistant reply lost between compaction summary and first kept user in successor transcript. Related #76729.
- ·**PR #95094** ci: add release QA profile evidence.
- ·**PR #96057** docs: redesign maturity scorecard pages.
- ·**PR #96014** perf(agents): index displaced tool results.
- ·**PR #96019** perf(usage): bound session log retention.
- ·**PR #96013** perf(anthropic): index active stream blocks.
- ·**PR #96061** docs: place maturity pages under release reference.
- ·**PR #95589** fix: npm plugin updates break running gateway imports.
- ·**PR #96068** fix(acpx): consume acpx 0.11.1 model capability errors. Related #95869.
- ·**PR #89912** refactor: add transcript update identity contract.
- ·**PR #96055** fix(maint): use rebase PR landing.
- ·**PR #96062** feat(copilot): mirror native plan and subagent events.
- ·**PR #96032** fix(acpx): detect wrapper orphan on any PPID change, not just init reparenting.
- ·**PR #96124** chore(acpx): bump bundled client to 0.11.2.
- ·**PR #84352** Fix WebChat dispatch failure session status.
- ·**PR #89518** refactor: migrate plugin transcript mirrors.
- ·**PR #90439** refactor: add embedded run session target seam.
- ·**PR #95699** perf(gateway): drop redundant per-access session-key case scan.
- ·**PR #95992** fix(skills): accept owner-qualified verify refs.
- ·**PR #95987** fix(plugins): remove Simple Icons color paths.
- ·**PR #96162** refactor: use accessor-backed transcript corpus for memory.
- ·**PR #96181** Defer iOS local network permission until onboarding.
- ·**PR #95475** test(cli): isolate service env in run and update suites.
- ·**PR #95226** fix(infra): bound ClawHub fetchJson and error response bodies.
- ·**PR #95240** fix(matrix): bound non-raw JSON response body in transport.
- ·**PR #91742** fix(memory): abort orphaned embedding work when memory_search times out. Related #91718.
- ·**PR #93394** fix(memory): abort orphaned qmd search subprocess when memory_search times out.
- ·**PR #89911** refactor: migrate bundled transcript target lookups.
- ·**PR #96191** refactor: route plugin host hook state through accessor.
- ·**PR #96179** fix: route gateway history through session accessor target.
- ·**PR #96201** refactor: add abort target session accessor.
- ·**PR #96193** fix(memory-core): migrate dreaming cleanup lifecycle.
- ·**PR #96195** fix: bridge ACP metadata to session accessors.
- ·**PR #96182** refactor: migrate agent session accessors.
- ·**PR #96218** refactor: guard reply session initialization.
- ·**PR #96213** refactor(gateway): add alias mutation accessor.
- ·**PR #96204** refactor: migrate command session persistence to accessor.
- ·**PR #96206** refactor: route live model fresh reads through session accessor.
- ·**PR #96220** fix(whatsapp): quote current follow-up in durable replies.
- ·**PR #96226** fix(macos): drop Textual from chat packaging.
- ·**PR #96212** fix(codex): deliver generated images from remote app-server.
- ·**PR #96235** fix(crabbox): require Xcode for macOS proof.
- ·**PR #96145** fix: UI glitch: config is not visible. Related #94202.
- ·**PR #96072** perf(browser): index role snapshot references.
- ·**PR #96085** perf(codex): index rollout transcript ids.
- ·**PR #96087** perf(reply): hoist direct-send fragment index.
- ·**PR #94154** fix(gateway): resolve plugin-registered gateway methods through live registry. Related #94127.
- ·**PR #95393** fix #92582: Bug: doctor falsely warns local memory embeddings are not ready.
- ·**PR #96246** fix(qa): accept pnpm separator for lab up.
- ·**PR #94949** fix(ports): route isPortBusy through checkPortInUse to catch IPv4-only occupants. Related #94426.
- ·**PR #94562** fix(workboard): hide archived cards in CLI list by default. Related #94555.
- ·**PR #96243** fix(nextcloud-talk): ignore signed non-message webhook events. Related #81566.
- ·**PR #96140** fix(exec): preserve turn-source routing target in approval followups for plugin channels. Related #96103.
- ·**PR #96258** ci: move CodeQL quality scans to hosted runners.
- ·**PR #96271** chore(release): close out 2026.6.10 on main.
- ·**PR #96233** fix(agents): run heartbeat_prompt_contribution on harness prompt builds.
- ·**PR #55018** fix: avoid O(N²) shallow-copy in mapSensitivePaths schema traversal.
- ·**PR #95831** fix: compact Codex OAuth OpenAI sessions without API keys. Related #95693.
- ·**PR #96244** fix(auto-reply): align channel intro wording with chat_type. Related #95645.
- ·**PR #97118** fix(telegram): recover stalled ingress spool claims.
- ·**PR #97543** fix(telegram): recover stalled ingress spool claims.
- ·**PR #97122** ci(docker): publish releases to Docker Hub.
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.1pre-release2026-06-24
openclaw 2026.6.11-beta.1
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)
- ·**Richer operator workflows:** `openclaw agent --message-file` and the RAFT CLI wake bridge add practical file-driven and remote wake-up paths. (#93351, #95497)
- ·**Safer plugin distribution:** additional official plugins are externalized cleanly, with bundled plugin icon metadata available to installed clients. (#95683, #95845)
- ·**Stronger mobile operations:** Android settings detail panels improve configuration visibility and control on mobile. (#95148)
- ·**More reliable agent turns:** Codex partial deltas, harness activation, and long-context prompt-cache stability reduce lost progress and inconsistent runs. (#95404, #95652, #95624)
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)
- ·**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)
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)
- ·**WhatsApp and message identity:** native quotes, Baileys group reliability, and approval reactions across JID drift now preserve the intended conversation context. (#95483, #94338, #95935)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**Cron and delivery validation:** no-config delivery checks, thread-aware dedupe, and pending recurring runs retain their intended destinations. (#95754, #95794, #94323)
Complete contribution record
- ·**PR #95406** test(qa): make release scorecard categories explicit.
- ·**PR #94700** test: fold HTTP API script proof into QA Lab.
- ·**PR #95499** fix(test): unit-fast flow mocks.
- ·**PR #95308** fix(ci): filter ClawSweeper comment dispatches before token minting.
- ·**PR #95532** fix(telegram): materialize rich message line breaks as <br>. Related #95409.
- ·**PR #91786** fix(plugins): reconcile managed npm root overrides with managed peer pins. Related #91772.
- ·**PR #93002** Fix Telegram progress draft cleanup before tool output. Related #90753.
- ·**PR #95175** fix: route mobile exec approvals to reviewer device.
- ·**PR #94506** fix(telegram): stop clearing registered webhook on channel restart. Related #90254.
- ·**PR #95183** fix(telegram): materialize streaming progress placeholders. Related #95004.
- ·**PR #95483** fix(whatsapp): preserve native quote replies.
- ·**PR #94338** fix(whatsapp): wire missing Baileys retry/cache hooks for group message reliability. Related #7433.
- ·**PR #94707** feat(slack): add relay mode for incoming messages.
- ·**PR #94977** fix(telegram): honor outbound reaction directives. Related #71140.
- ·**PR #95069** fix(telegram): skip mirror write when primary reply already exists (#94930).
- ·**PR #95550** Preserve inherited channel account policies during migration.
- ·**PR #95390** fix #95378: https://github.com/openclaw/openclaw/issues/95378.
- ·**PR #93143** fix(imessage): keep split-send coalescing opt-in.
- ·**PR #95008** fix(claude-cli): also disable native background Bash and Monitor in --print runs.
- ·**PR #94545** fix: keep trusted policies with hook registry.
- ·**PR #95007** fix(telegram): render progress draft rows as plain readable text. Related #95002.
- ·**PR #95624** fix(agents): keep long-context tool-result prompts cache-stable.
- ·**PR #95625** fix(ci): smooth PR runner-registration bursts.
- ·**PR #95572** fix(agents): reject bind specs with extra colon segments.
- ·**PR #95653** test(agents): add large prompt cache coverage.
- ·**PR #95640** Consolidate iOS notification permission UX.
- ·**PR #95546** feat(mattermost): register /oc_queue as a native slash command.
- ·**PR #95019** fix(skills): point gog brew install at homebrew-core gogcli (#95017).
- ·**PR #93378** test(telegram): keep live polling leases protected. Related #93375.
- ·**PR #95084** fix(googlechat): sanitize internal tool-trace lines from outbound text (#90684).
- ·**PR #95278** Avoid copying process.env in ingress queue state DB opens. Related #94571.
- ·**PR #95577** fix #86957: drain worker-spooled Telegram updates immediately.
- ·**PR #95128** fix(compaction): count user-message image blocks in cut-point estimator.
- ·**PR #93887** fix(ssh): reject hostnames with stray leading or trailing colons in parseSshTarget.
- ·**PR #95191** docs(plugins): document subagent_ended hook fields. Related #95186.
- ·**PR #95102** fix(config): add stdio to McpServerSchema transport union. Related #95082.
- ·**PR #95465** fix(sdk): type-narrow manifest.files in pack staging root helper.
- ·**PR #95664** refactor(plugins): move owner skills into plugins.
- ·**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.
- ·**PR #94687** fix(gateway): accept port for health and probe. Related #79100.
- ·**PR #95649** fix(ci): bundle test shards and right-size runners.
- ·**PR #95243** fix(docs): show inline read_when hints in docs:list.
- ·**PR #95283** fix(openai-completions): seal native reasoning before the answer under /reasoning on. Related #95280.
- ·**PR #95497** feat(raft): add CLI wake bridge channel.
- ·**PR #95459** fix(cron): use main-session systemEvent for silent quick-create preset. Related #95073.
- ·**PR #95503** fix #89466: [Bug]: Control UI chat input text not cleared after sending.
- ·**PR #95684** fix(skills): harden ClawHub update policy.
- ·**PR #95683** feat(plugins): externalize additional official plugins.
- ·**PR #95681** fix(ci): debounce canonical main runner admission.
- ·**PR #95652** fix(agents): activate selected harness plugins.
- ·**PR #95404** fix(codex): stream non-final-answer assistant deltas as partials. Related #95422.
- ·**PR #58993** fix(googlechat): support spaceType field for DM vs Space detection.
- ·**PR #94148** fix(doctor): prevent non-interactive --fix from auto-restarting gateway. Related #78217.
- ·**PR #89859** fix(gateway): honor remote status probe timeout. Related #65355.
- ·**PR #95466** fix(ci): increase timeouts in flaky process-group signal test.
- ·**PR #95720** fix(matrix): prevent double bootstrapCrossSigning reset in forced reset. Related #78396.
- ·**PR #95707** fix(synology-chat): remove duplicate local deliver timeout.
- ·**PR #95706** fix(whatsapp): remove dead watchdog timeout clamp.
- ·**PR #95719** fix(cli): sync capability inspect metadata flags with registered options.
- ·**PR #95721** fix(active-memory): exclude dreaming-narrative session keys from eligibility gate. Related #78500.
- ·**PR #95602** test: save ~79 CI hours/mo in gateway session utils.
- ·**PR #94412** fix(agent-core): stop loop after aborted tool run.
- ·**PR #94915** fix(gateway): report draining state in readiness. Related #78136.
- ·**PR #95691** fix(ui): bump dompurify to patched release.
- ·**PR #95710** fix(vercel-ai-gateway): resolve dynamic model selections.
- ·**PR #94072** fix(agents): count message-tool source reply as user-facing reply for tool error warnings. Related #93875.
- ·**PR #94784** fix(doctor): stop promising --fix for working isolated shell-prompt cron jobs (#94655).
- ·**PR #93504** fix(device-pairing): guard role normalization against non-string entries.
- ·**PR #92178** fix(gateway): normalize malformed paired access lists. Related #90654.
- ·**PR #83041** Fix config patch restart-required notices. Related #46797.
- ·**PR #95754** fix(cron): preserve no-config delivery validation.
- ·**PR #93351** feat(cli): add --message-file to openclaw agent.
- ·**PR #95485** fix(ui): roll values near 1M over from k to M in compact token format.
- ·**PR #94622** fix(build): allow tsdown heap override.
- ·**PR #76668** meta(issue-template): add dedicated docs bug report form. Related #76664.
- ·**PR #91193** fix(cli): document Commander rawArgs internal API dependency in action-reparse.ts. Related #83893.
- ·**PR #77339** fix(auto-reply): clear runtime model cache on reset. Related #77322.
- ·**PR #89628** Speed up precomputed command help startup.
- ·**PR #95087** refactor: add memory and QMD session identity mapping.
- ·**PR #89323** fix(web-ui): skip hidden subagent picker pages. Related #89249.
- ·**PR #84794** Clean up isolated cron sessions after runs. Related #84707.
- ·**PR #95794** fix(cron): compare thread IDs when deduping failure destinations.
- ·**PR #95791** fix(session-memory): sanitize model artifacts before saving memory.
- ·**PR #95805** fix(agents): normalize hallucinated Office file extensions. Related #93326.
- ·**PR #89612** fix: include persisted plugin contracts for migrations. Related #89609.
- ·**PR #89981** fix(diagnostics-otel): keep full model id on spans instead of collapsing to "unknown".
- ·**PR #90489** fix(sessions): clarify cross-agent visibility guidance. Related #90443.
- ·**PR #95383** fix(sdk): classify failed/blocked tool events as tool.call.failed.
- ·**PR #95827** fix(plugin-sdk): bound live model catalog success body.
- ·**PR #95792** fix(onboard): refresh provider plugin registry after setup installs. Related #95765.
- ·**PR #93943** fix(provider-usage): honor proxy env for usage fetch. Related #78714.
- ·**PR #89648** fix(agents): restore model-fetch info logs. Related #89300.
- ·**PR #93841** fix(ui): render persisted history text blocks. Related #90241.
- ·**PR #93502** docs: fix docs metadata spellcheck.
- ·**PR #86608** docs: add existing-solutions preflight guardrail.
- ·**PR #95322** fix(reply): preserve usage footer across rollover.
- ·**PR #91559** fix(agents): clean Gemini tool schemas by model id. Related #91542.
- ·**PR #94701** Fix embedded-run recovery after refreshed session activity.
- ·**PR #95472** [AI] fix(main-session): skip current-gen abort controllers for completed sessions.
- ·**PR #95401** fix(lmstudio): canonicalize variant model keys.
- ·**PR #94323** fix(cron): stop add/remove from dropping a due recurring job's pending run.
- ·**PR #94443** fix(memory-wiki): retry transient source-page rewrite race instead of aborting wiki_status. Related #92134.
- ·**PR #95120** feat(channels): add directUserId support for per-DM model override. Related #53638.
- ·**PR #91049** fix: handle terminal chat send acknowledgements. Related #91048.
- ·**PR #95081** fix: keep text transform runtime imports hashed. Related #95057.
- ·**PR #93356** fix(plugins): cache plugin setup registry to kill the /models CPU storm.
- ·**PR #85341** refactor: internalize OpenClaw agent runtime.
- ·**PR #94233** fix(model-fallback): coalesce auth decision logs. Related #56979.
- ·**PR #92399** fix(llm): collapse cumulative openai-responses message snapshots instead of concatenating [AI-assisted]. Related #91959.
- ·**PR #94811** fix(ollama): honor memory embedding output dimensionality.
- ·**PR #84708** fix(agents): recover message-tool mirror replay poison.
- ·**PR #95274** fix(memory): preserve Windows QMD command paths. Related #92302.
- ·**PR #95686** fix(xai): request encrypted reasoning include for all reasoning models.
- ·**PR #82909** fix(telegram): repair message cache reply types.
- ·**PR #94942** fix(matrix): prune finished fake-indexeddb transactions to prevent OOM. Related #90455.
- ·**PR #93994** fix(setup): point non-interactive health hints at onboard flags. Related #93947.
- ·**PR #93956** fix(ollama): skip auto-discovery for remote/cloud base URLs.
- ·**PR #93547** fix(acp): recover stale persistent sessions by structured resume-required code [AI-assisted]. Related #87830.
- ·**PR #94204** fix(control-ui): rewrite manifest hrefs for configured base path. Related #94157.
- ·**PR #95637** fix(qqbot): recognize GFM table separators with one or two dashes.
- ·**PR #95467** fix(sessions): keep bound channel identity across non-delivery turns.
- ·**PR #93919** perf(plugins): cache existence probes within bundle manifest scan [AI-assisted]. Related #76209.
- ·**PR #94726** fix(google): add gemini-3.5-flash model catalog entry. Related #94723.
- ·**PR #94238** fix(config): fail closed when configure runs without an interactive TTY (#93953).
- ·**PR #89949** fix(media): pin requester delivery route when task starts. Related #86034.
- ·**PR #94470** chore: sync yuanbao plugin catalog to 2.15.0.
- ·**PR #93585** fix(daemon): keep systemd gateway running after child OOM.
- ·**PR #94442** fix(imessage): strip leading echo corruption markers in the persisted echo cache.
- ·**PR #93511** fix(imessage): normalize leading NUL echo-cache prefixes.
- ·**PR #87121** test(cli): add banner emission reset helper. Related #83903.
- ·**PR #89172** fix(feishu): show voice message duration via upload duration. Related #53798.
- ·**PR #95118** fix: bound agents load their own inbound workspace context. Related #92903.
- ·**PR #94752** fix(reply): clarify stale model override resets. Related #94713.
- ·**PR #89716** fix(providers): strip cache-boundary marker from non-Anthropic prompts.
- ·**PR #95268** fix(openrouter): expand short canonical model IDs to upstream API slugs (fixes #95198).
- ·**PR #90475** fix(telegram): keep bot reply answers anchored to current message.
- ·**PR #94219** fix(control-ui): restore provider usage quota pill in sidebar session switcher (fixes #93041).
- ·**PR #93369** fix(cron): expose per-job fallbacks in CLI. Related #90302.
- ·**PR #87912** Handle Codex toolResult blocks in tool-result truncation.
- ·**PR #95744** fix(model-catalog): strip manifest model-id prefixes by the matched length. Related #95743.
- ·**PR #95300** fix(cli): expose --count on infer image edit, matching image generate.
- ·**PR #94156** fix: expose OpenAI image quality and moderation CLI options.
- ·**PR #94062** fix(agents): classify generic "LLM request failed." as transient time…. Related #93931.
- ·**PR #93965** fix(opencode-go): streaming completes when provider ends responses. Related #93610.
- ·**PR #89017** fix(webchat): sessions persist after reconnects. Related #87700.
- ·**PR #94627** fix(ios): centralize app accent colors.
- ·**PR #94054** fix(gateway.tls): reject empty/whitespace certPath and keyPath.
- ·**PR #95674** fix(cron): trim trailing whitespace from recognized job object keys. Related #95407.
- ·**PR #95857** Fix SQLite user version guardrail allowlist.
- ·**PR #95858** feat(qa): expose active memory toggles to scenarios.
- ·**PR #84326** Doctor: expose sandbox registry findings.
- ·**PR #73079** fix(minimax): request hex TTS output explicitly.
- ·**PR #94483** feat(gateway-cli): scope usage-cost by agent.
- ·**PR #91502** feat(qa): crabline channel driver.
- ·**PR #95872** Move TUI PTY tests into CI node shard.
- ·**PR #89800** fix(agents): resolve webchat current session status. Related #89773.
- ·**PR #95870** fix(ci): restore macOS and Windows QA gates.
- ·**PR #94445** fix(agents): keep cron cloud idle watchdog enabled.
- ·**PR #91506** fix(qa): reserve shared QA suite flags across runners.
- ·**PR #95876** ci: add manual release QA profile evidence workflow.
- ·**PR #95879** fix(ci): use workflow revision for proof checks.
- ·**PR #93113** fix(memory-core): report active dreaming phases in status. Related #67868.
- ·**PR #95837** Simplify color mode button labels.
- ·**PR #95797** fix: /status is too verbose for pinned model sessions.
- ·**PR #90223** test: make qqbot symlinked media helper test robust on Windows.
- ·**PR #95557** improve: refresh Android overview control surface.
- ·**PR #95593** fix: route Android exec approvals to in-app inbox.
- ·**PR #95570** fix(cli): resolve trajectory export stores consistently. Related #95568.
- ·**PR #95880** ci: generalize QA profile evidence workflow.
- ·**PR #95218** fix(agents): bound provider JSON response reads.
- ·**PR #95614** fix(memory-wiki): preserve human notes block on source re-ingest.
- ·**PR #95148** feat(android): add settings detail panels.
- ·**PR #95893** Add iOS push sandbox profiles and relay tooling.
- ·**PR #95723** fix(control-ui): exclude disabled cron jobs from Overview failed count. Related #95716.
- ·**PR #78715** Fix minor grammar issue in plugin documentation (capabilities plural).
- ·**PR #95890** fix(ci): restore QA workflow gates.
- ·**PR #95661** fix(discord): reserve closing-fence space on fence-closing lines.
- ·**PR #94272** ci: add maturity scorecard renderer.
- ·**PR #95901** ci: add maturity scorecard renderer.
- ·**PR #95914** fix(whatsapp): preserve durable reply target.
- ·**PR #95697** improve: reduce hot-path linear scans and redundant I/O.
- ·**PR #95916** fix(memory): improve node:sqlite unavailable guidance.
- ·**PR #78884** docs: document local avatar file size limit. Related #65312.
- ·**PR #95909** fix(ci): use available Android SDK platform.
- ·**PR #68389** plugins: clarify allowlist warning when entries don't match discovered ids. Related #68352.
- ·**PR #95898** ci: simplify maturity scorecard QA evidence inputs.
- ·**PR #95928** fix(ci): honor reusable QA evidence failure policy.
- ·**PR #95508** fix #95489: [Bug]: claude-cli out-of-credits error bypasses model fallback chain — error text delivered as final response.
- ·**PR #95420** fix(agents): bound OpenRouter model catalog response reads.
- ·**PR #95103** fix(gateway): bound pricing catalog streams.
- ·**PR #95108** fix(agents): bound Anthropic error streams.
- ·**PR #95418** fix(agents): bound OpenRouter model-scan catalog success body.
- ·**PR #95922** fix(ci): finalize testbox sessions after setup failures.
- ·**PR #95417** fix(agents): bound Google prompt cache response reads.
- ·**PR #95935** fix(whatsapp): resolve approval reactions across JID drift.
- ·**PR #84340** Doctor: expose extra gateway service findings.
- ·**PR #95946** fix(ci): finalize Windows Testbox after setup failures.
- ·**PR #95947** feat(qa): add "all" taxonomy profile.
- ·**PR #91903** feat(plugin-sdk): add extensible channel identity hook context.
- ·**PR #95930** docs(copilot): refresh harness parity notes.
- ·**PR #95952** fix(ci): require QA live evidence artifacts.
- ·**PR #95666** Fix memory-wiki bridge self-import loop. Related #95657.
- ·**PR #91724** fix(agents): infer runtime provider from qualified model ids.
- ·**PR #95957** improve: speed up provider tool-call streaming.
- ·**PR #95541** fix(cli): show working commands for pinned plugin drift.
- ·**PR #95933** docs: update maturity scorecard.
- ·**PR #78105** fix(plugins): make empty-allowlist actionable for new users. Related #68780.
- ·**PR #95961** fix(ci): require live proof evidence artifacts.
- ·**PR #95400** fix(model-fallback): classify Codex usage-limit payloads.
- ·**PR #95944** perf(qa-lab): speed up unified QA suites.
- ·**PR #95971** ci: fail QA profile evidence on QA failures.
- ·**PR #95845** feat: add bundled plugin icon manifest URLs.
- ·**PR #95975** fix(ci): require iOS Periphery evidence artifact.
- ·**PR #95972** docs: update ClawHub skill route references.
- ·**PR #90537** Warn on generated wrapper overwrites and status diagnostics. Related #90518.
- ·**PR #93567** fix(cron): normalize run-log jobId on write to match read-side validation.
- ·**PR #95967** perf(ci): widen main test fanout and move codeql off blacksmith.
- ·**PR #95983** fix(ci): require OpenGrep SARIF artifacts.
- ·**PR #64490** CLI: escape zsh completion descriptions.
- ·**PR #95682** Fix Gemini day freshness time range handling.
- ·**PR #93374** fix(agents): suggest recovery for unknown tool ids. Related #92273.
- ·**PR #95991** fix(ci): require release QA evidence artifacts.
- ·**PR #89886** fix(context-engine): forward abortSignal through delegation bridge to runtime compaction. Related #89868.
- ·**PR #95999** fix(release): require postpublish evidence artifact.
- ·**PR #96003** test(qa): harden all-profile QA evidence scenarios.
- ·**PR #95860** fix(compaction): trim prefix when transcript ends in an oversized tool result. Related #78478.
- ·**PR #95934** fix(xiaomi): correct mimo-v2.5 and mimo-v2.5-pro max output tokens to 128K.
- ·**PR #95782** fix(sessions): honor configured store for outbound transcript mirrors. Related #95781.
- ·**PR #96005** feat(copilot): wire harness parity helpers.
- ·**PR #95886** fix: avoid false macOS update failures during gateway shutdown.
- ·**PR #91906** perf: skip subagent live stream parsing.
- ·**PR #87861** fix(model-usage): coerce numeric-string costs and ignore non-finite values. Related #37878.
- ·**PR #96030** fix(qa-lab): avoid duplicate child evidence files.
- ·**PR #94369** fix(memory-wiki): exclude durable reference pages from stale report.
- ·**PR #94578** Fix recent session resume with long headers. Related #94577.
- ·**PR #95919** ci: add Codex maturity scorecard agent.
- ·**PR #92356** fix(heartbeat): skip reasoning payloads when selecting heartbeat reply. Related #92260.
- ·**PR #94328** fix(agents): keep post-compaction user re-issue of a kept-tail prompt during compaction rotation.
- ·**PR #95432** fix(reply): suppress per-message finals across multi-message block streaming.
- ·**PR #95431** fix(auto-reply): keep drain/restart-abort reply paths silent.
- ·**PR #96017** test(qa): gate maturity docs on passing evidence.
- ·**PR #95552** feat(mattermost): persist participated threads for mention-free follow-ups.
- ·**PR #95480** fix #89231: [Bug]: Windows installer-created scheduled task launches gateway.cmd with visible console — should use windowless launcher.
- ·**PR #96049** fix(copilot): preserve compaction metadata.
- ·**PR #96044** docs: rename top maturity tier to Clawesome.
- ·**PR #92154** Gate private QQBot group commands.
- ·**PR #95484** fix: assistant reply lost between compaction summary and first kept user in successor transcript. Related #76729.
- ·**PR #95094** ci: add release QA profile evidence.
- ·**PR #96057** docs: redesign maturity scorecard pages.
- ·**PR #96014** perf(agents): index displaced tool results.
- ·**PR #96019** perf(usage): bound session log retention.
- ·**PR #96013** perf(anthropic): index active stream blocks.
- ·**PR #96061** docs: place maturity pages under release reference.
- ·**PR #95589** fix: npm plugin updates break running gateway imports.
- ·**PR #96068** fix(acpx): consume acpx 0.11.1 model capability errors. Related #95869.
- ·**PR #89912** refactor: add transcript update identity contract.
- ·**PR #96055** fix(maint): use rebase PR landing.
- ·**PR #96062** feat(copilot): mirror native plan and subagent events.
- ·**PR #96032** fix(acpx): detect wrapper orphan on any PPID change, not just init reparenting.
- ·**PR #96124** chore(acpx): bump bundled client to 0.11.2.
- ·**PR #84352** Fix WebChat dispatch failure session status.
- ·**PR #89518** refactor: migrate plugin transcript mirrors.
- ·**PR #90439** refactor: add embedded run session target seam.
- ·**PR #95699** perf(gateway): drop redundant per-access session-key case scan.
- ·**PR #95992** fix(skills): accept owner-qualified verify refs.
- ·**PR #95987** fix(plugins): remove Simple Icons color paths.
- ·**PR #96162** refactor: use accessor-backed transcript corpus for memory.
- ·**PR #96181** Defer iOS local network permission until onboarding.
- ·**PR #95475** test(cli): isolate service env in run and update suites.
- ·**PR #95226** fix(infra): bound ClawHub fetchJson and error response bodies.
- ·**PR #95240** fix(matrix): bound non-raw JSON response body in transport.
- ·**PR #91742** fix(memory): abort orphaned embedding work when memory_search times out. Related #91718.
- ·**PR #93394** fix(memory): abort orphaned qmd search subprocess when memory_search times out.
- ·**PR #89911** refactor: migrate bundled transcript target lookups.
- ·**PR #96191** refactor: route plugin host hook state through accessor.
- ·**PR #96179** fix: route gateway history through session accessor target.
- ·**PR #96201** refactor: add abort target session accessor.
- ·**PR #96193** fix(memory-core): migrate dreaming cleanup lifecycle.
- ·**PR #96195** fix: bridge ACP metadata to session accessors.
- ·**PR #96182** refactor: migrate agent session accessors.
- ·**PR #96218** refactor: guard reply session initialization.
- ·**PR #96213** refactor(gateway): add alias mutation accessor.
- ·**PR #96204** refactor: migrate command session persistence to accessor.
- ·**PR #96206** refactor: route live model fresh reads through session accessor.
- ·**PR #96220** fix(whatsapp): quote current follow-up in durable replies.
- ·**PR #96226** fix(macos): drop Textual from chat packaging.
- ·**PR #96212** fix(codex): deliver generated images from remote app-server.
- ·**PR #96235** fix(crabbox): require Xcode for macOS proof.
- ·**PR #96145** fix: UI glitch: config is not visible. Related #94202.
- ·**PR #96072** perf(browser): index role snapshot references.
- ·**PR #96085** perf(codex): index rollout transcript ids.
- ·**PR #96087** perf(reply): hoist direct-send fragment index.
- ·**PR #94154** fix(gateway): resolve plugin-registered gateway methods through live registry. Related #94127.
- ·**PR #95393** fix #92582: Bug: doctor falsely warns local memory embeddings are not ready.
- ·**PR #96246** fix(qa): accept pnpm separator for lab up.
- ·**PR #94949** fix(ports): route isPortBusy through checkPortInUse to catch IPv4-only occupants. Related #94426.
- ·**PR #94562** fix(workboard): hide archived cards in CLI list by default. Related #94555.
- ·**PR #96243** fix(nextcloud-talk): ignore signed non-message webhook events. Related #81566.
- ·**PR #96140** fix(exec): preserve turn-source routing target in approval followups for plugin channels. Related #96103.
- ·**PR #96258** ci: move CodeQL quality scans to hosted runners.
- ·**PR #96271** chore(release): close out 2026.6.10 on main.
- ·**PR #96233** fix(agents): run heartbeat_prompt_contribution on harness prompt builds.
- ·**PR #55018** fix: avoid O(N²) shallow-copy in mapSensitivePaths schema traversal.
- ·**PR #95831** fix: compact Codex OAuth OpenAI sessions without API keys. Related #95693.
- ·**PR #96244** fix(auto-reply): align channel intro wording with chat_type. Related #95645.
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.102026-06-24
openclaw 2026.6.10
Highlights
- ·Adds [`/fast auto`](https://docs.openclaw.ai/tools/thinking) so short conversational calls can start quickly, while longer or fallback work returns to normal mode with the effective state still visible. [PR #85104](https://github.com/openclaw/openclaw/pull/85104), [Issue #85087](https://github.com/openclaw/openclaw/issues/85087).
- ·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](https://github.com/openclaw/openclaw/commit/8845f2fd6143becc37110ab5021dd5e1517f0cdc).
- ·Keeps automatic fast-mode timing consistent when a turn switches to a fallback model. [075091d](https://github.com/openclaw/openclaw/commit/075091d0cab94053ff094268efc0acb225d514f4).
- ·Keeps the original fast-mode timing and progress behavior when a live model switch retries a turn. [d1e190f](https://github.com/openclaw/openclaw/commit/d1e190fbe822ad6ae4e660ce376b60ec9fdb0fba).
- ·Keeps automatic fast-mode progress and reset behavior distinct from explicit fast mode after a run switches modes. [20aec98](https://github.com/openclaw/openclaw/commit/20aec985545db7a24ea066e5bff1c47b789cbded).
- ·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](https://github.com/openclaw/openclaw/commit/9509aa063c0ef3e32be1516fcb0c23606b6d5c7b).
- ·Keeps the effective automatic fast-mode setting visible through fallback transitions in connected-agent sessions. [7f5423c](https://github.com/openclaw/openclaw/commit/7f5423ca97174a3f16c211db54a6c96e5b3a6089).
- ·Keeps automatic fast-mode timing and progress consistent when reply and [scheduled-agent runs](https://docs.openclaw.ai/automation/cron-jobs) retry or switch models. [6c29f88](https://github.com/openclaw/openclaw/commit/6c29f88913796bfe05696556cd82246670b126f0).
- ·Keeps fast-mode cleanup and status consistent when a run switches between fallback models. [c4694f8](https://github.com/openclaw/openclaw/commit/c4694f84ffd52064f89609098cc4f8570fb72e1b).
- ·Shows the automatic fast-mode reset only when fallback work is finished, so status messages match the end of the transition. [f4d93c8](https://github.com/openclaw/openclaw/commit/f4d93c855bff6930f5e5d739b95e0c2612ec4899).
- ·Shows reset and delivery progress at the right time when auto-reply or other follow-up runs retry or leave automatic fast mode. [684e440](https://github.com/openclaw/openclaw/commit/684e44013778bd47d159e64b2595e4d09a92ebea).
Channels and Messaging
- ·Prevents the next turn after a [scheduled message](https://docs.openclaw.ai/automation/cron-jobs) from losing what was delivered or whether delivery failed, so replies can use that context without exposing cron details in the channel. [PR #93580](https://github.com/openclaw/openclaw/pull/93580).
- ·Prevents streamed channel progress from dropping a repeated status that represents a separate step, so each meaningful step remains visible in the draft. [2d42e52](https://github.com/openclaw/openclaw/commit/2d42e52ac5513e0bd824b8a0e069db83e04bc056).
- ·Prevents keyed streamed progress from staying on an older status, so viewers see the latest state instead of stale text. [8bb6472](https://github.com/openclaw/openclaw/commit/8bb6472c4de2eea06f1ba31d6ed679e2ac4581b0).
Providers and Models
- ·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](https://github.com/openclaw/openclaw/pull/93241), [Issue #93211](https://github.com/openclaw/openclaw/issues/93211).
- ·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](https://github.com/openclaw/openclaw/pull/94067), [Issue #93835](https://github.com/openclaw/openclaw/issues/93835).
- ·Expands [`zai/glm-5.2` thinking choices](https://docs.openclaw.ai/tools/thinking) beyond binary on/off and sends high or max requests as the intended Z.AI reasoning effort. [PR #94136](https://github.com/openclaw/openclaw/pull/94136).
- ·Prevents bundled [Z.ai GLM-5 models](https://docs.openclaw.ai/providers/zai) from falling through to OpenAI and producing misleading API-key errors, so they use Z.AI by default. [PR #94461](https://github.com/openclaw/openclaw/pull/94461), [Issue #94269](https://github.com/openclaw/openclaw/issues/94269).
- ·Adds GLM-5.2 and Kimi K2.7 Code to the [OpenCode Go catalog](https://docs.openclaw.ai/providers/opencode-go) with current limits, so users can select the models from OpenClaw. [66f84a9](https://github.com/openclaw/openclaw/commit/66f84a9bf1082de26f92b2b3741cc2f34aba34fa).
- ·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](https://github.com/openclaw/openclaw/commit/715dc718fc5a2a5d6f7e9ec16e0269382b726e83).
- ·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](https://github.com/openclaw/openclaw/pull/95792), [Issue #95765](https://github.com/openclaw/openclaw/issues/95765).
Memory, Sessions, and State
- ·Adds a durable [session-transcript SDK contract](https://docs.openclaw.ai/plugins/sdk-runtime) so plugins can read, append, publish, and lock the intended transcript without treating [legacy file paths](https://docs.openclaw.ai/plugins/sdk-subpaths) as identity. [PR #95030](https://github.com/openclaw/openclaw/pull/95030).
- ·Prevents a shared direct-message [session](https://docs.openclaw.ai/concepts/session) from carrying the previous [channel's identity](https://docs.openclaw.ai/channels/channel-routing) after a switch, so status, reactions, threads, and message references target the current channel. [PR #95328](https://github.com/openclaw/openclaw/pull/95328), [Issue #95325](https://github.com/openclaw/openclaw/issues/95325).
Gateway, Security, and Trust
- ·Keeps empty prompts separate from hook-added context during compaction or session reuse in [Copilot and Codex sessions](https://docs.openclaw.ai/plugins/copilot), so prompt boundaries remain consistent. [PR #94838](https://github.com/openclaw/openclaw/pull/94838).
- ·Keeps [approval-sensitive Gateway and plugin tools](https://docs.openclaw.ai/plugins/hooks) protected when connected extensions change, so configured safeguards continue to apply. [PR #94545](https://github.com/openclaw/openclaw/pull/94545).
- ·Prevents authenticated package-source tokens from being sent to an allowed redirect on another origin, while the valid redirected download still completes. [b0df6dc](https://github.com/openclaw/openclaw/commit/b0df6dc10eb5b9e9fdca93063a16316f8589954e).
Clients and Interfaces
- ·Prevents [Docker](https://docs.openclaw.ai/install/docker) and [Podman](https://docs.openclaw.ai/install/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](https://github.com/openclaw/openclaw/commit/62b2e9ef14b4be6fd396621c8e5e248331f08695).
Plugins and Packaging
- ·Prevents cleared [Codex service tiers](https://docs.openclaw.ai/tools/thinking) from being persisted as explicit stale state, so resumed or switched conversations use the normal default instead. [cd32d9f](https://github.com/openclaw/openclaw/commit/cd32d9ff91caf84c0ead38796ef096cdc5bea06e).
- ·Restores [ClawHub discovery](https://docs.openclaw.ai/plugins/reference/stepfun) for the [StepFun provider](https://docs.openclaw.ai/providers/stepfun) plugin, so operators can install it through either ClawHub or npm. [ecb82f1](https://github.com/openclaw/openclaw/commit/ecb82f1be93024be23c1b191ebea92c63230b6c0).
Docs and Operator Workflows
- ·Keeps core [`openclaw doctor`](https://docs.openclaw.ai/gateway/doctor) diagnostics in their normal order before extension checks, making lint and repair output easier to follow. [PR #86627](https://github.com/openclaw/openclaw/pull/86627).
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.2pre-release2026-06-22
openclaw 2026.6.10-beta.2
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)
- ·**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)
- ·**Safer session and channel state:** channel switches reset stale origin fields, and cron delivery awareness stays attached to the target session. (#95328, #93580)
- ·**Trusted policies survive hook composition:** composed hook registries keep the trusted tool policies required by approval-sensitive flows. (#94545)
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)
- ·**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)
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)
- ·**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)
Complete contribution record
- ·**PR #86627** Keep core doctor health in contribution order.
- ·**PR #93580** fix: preserve cron delivery awareness for target sessions.
- ·**PR #95030** refactor: add SDK transcript identity target API.
- ·**PR #94838** refactor(copilot): complete harness lifecycle parity.
- ·**PR #95328** fix(sessions): reset stale per-channel origin fields on channel switch. Related #95325.
- ·**PR #94461** fix(zai): fall back to manifest baseUrl for synthesized GLM-5 models. Related #94269.
- ·**PR #93241** fix(agents): classify Zhipu GLM overload as overloaded for failover. Related #93211.
- ·**PR #94067** fix(channels): resolve native /think menu levels via runtime catalog for live-discovered models. Related #93835.
- ·**PR #94136** fix(zai): expose GLM-5.2 reasoning levels [AI-assisted].
- ·**PR #85104** feat: fast talks auto mode. Related #85087.
- ·**PR #94545** fix: keep trusted policies with hook registry.
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.1pre-release2026-06-21
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Complete contribution record
- ·**PR #93685** refactor(auto-reply): add lifecycle storage seams.
- ·**PR #94349** fix(agents): preserve pending subagent completion announces. Related #93323.
- ·**PR #93174** test: fold channel message flows into qa e2e.
- ·**PR #94093** Prevent Codex thread rotation from losing next-step context.
- ·**PR #53920** fix(scripts): avoid mutating tracked auth-monitor template during setup.
- ·**PR #94702** Standardize QA coverage IDs on dotted names.
- ·**PR #81825** fix(skills/1password): stop forcing tmux for desktop app auth (#52540).
- ·**PR #94725** fix(doctor): warn on volatile SQLite state.
- ·**PR #88551** fix(agents): skip auth gate for CLI-owned transport.
- ·**PR #88581** feat(commands): add /name to rename the current session from chat.
- ·**PR #94324** feat(codex): support app-server SecretRefs.
- ·**PR #90882** fix: add self-knowledge docs rule to system prompt. Related #90713.
- ·**PR #94684** fix: #80507 show dry-run output for message send/poll.
- ·**PR #93823** fix(whatsapp): keep opening text chunk when first media fails on multi-chunk reply.
- ·**PR #89203** refactor: route SDK session compatibility through seam.
- ·**PR #94453** fix: default cron runMode to "due" instead of "force" (#94270).
- ·**PR #94746** fix(note): prevent clack from re-breaking copy-sensitive tokens. Related #94730.
- ·**PR #89904** refactor: route sdk session compatibility through accessor.
- ·**PR #86719** fix(skills): retarget stale plugin skill symlinks. Related #85925.
- ·**PR #94337** fix(tui): show 0 not ? for fresh-session context tokens in footer.
- ·**PR #94539** fix(android): group settings by intent.
- ·**PR #92383** fix(gateway): never return an empty chat.history transcript.
- ·**PR #92574** test(browser): cover action-input CLI request bodies. Related #83877.
- ·**PR #92873** test(diffs): add viewerState, toolbar toggle, shadow root, and hydrateProps tests (fixes #83915).
- ·**PR #94257** fix(sessions): preserve Media\* index alignment when reading user-turn fields.
- ·**PR #94756** fix(codex): bound turn/start text when context budget is non-positive. Related #94748.
- ·**PR #94729** fix(skills/trello): add curl to requires.bins to match body examples (fixes #94727).
- ·**PR #94790** feat(slack): log INFO receipt for inbound app_mention events. Related #94691.
- ·**PR #81696** fix: guard tool event callbacks (AI-assisted).
- ·**PR #94809** chore: forward-port alpha release fixes.
- ·**PR #94612** fix(macos): open NSOpenPanel for embedded Control UI file inputs (#94468).
- ·**PR #89806** fix(feishu): avoid axios interceptor internals. Related #83913.
- ·**PR #91923** fix(ios): clean up notification settings state.
- ·**PR #91345** fix: suggest close CLI commands. Related #83999.
- ·**PR #94561** Add stdout diagnostics OTEL log exporter.
- ·**PR #91013** fix(gateway): ignore stale abort markers for fresh chat events. Related #91012.
- ·**PR #89279** fix(tasks): deliver ACP completions to bound Discord threads. Related #84022.
- ·**PR #91656** test(cron): expand parseAbsoluteTimeMs test coverage to 39 cases. Related #91654.
- ·**PR #94810** fix(telegram): classify sendChatAction 401 by structured error_code, not bare substring match. Related #94787.
- ·**PR #94737** fix(reply): clarify provider internal error copy.
- ·**PR #94868** fix(channels): preserve command progress detail.
- ·**PR #94891** fix(telegram): send progress previews as html text.
- ·**PR #94683** fix(outbound): keep direct-only targets out of group sessions. Related #92384.
- ·**PR #92477** fix: migrate watch app to single-target app (Xcode 27+ compat).
- ·**PR #94812** test(perf): compare saved CLI startup benchmarks.
- ·**PR #94856** fix(telegram): normalize all HTML tables before entity-escaping in rich messages. Related #94317.
- ·**PR #91685** fix(cron): refuse keyless implicit isolated cron delivery inherited from shared agent-main bucket.
- ·**PR #88988** feat(status): show session duration in footer. Related #68226.
- ·**PR #94020** docs(browser): resolve networkidle contradiction across browser docs. Related #80587.
- ·**PR #93948** fix(gateway): distinguish reachable-but-errored from unreachable in probe diagnostics. Related #79099.
- ·**PR #93276** fix(plugins): stop tool-discovery loads from clearing active providers.
- ·**PR #94343** fix(gateway): authorize plugin methods from attached registry. Related #92044.
- ·**PR #94589** fix(channels): stop duplicating inbound previews in system events. Related #94549.
- ·**PR #93873** fix(whatsapp): restart listener on selfChatMode config change. Related #86888.
- ·**PR #93969** fix(xai): reject unsupported multi-agent model refs before runtime fallback. Related #85106.
- ·**PR #89586** feat(channels): add Zalo ClawBot external channel entry and documenta….
- ·**PR #78536** fix(slack): preserve buffered thread stream replies. Related #78061.
- ·**PR #89236** fix(slack): default member-info userId to inbound sender.
- ·**PR #94881** feat(slack): handle global and message shortcuts. Related #63920.
- ·**PR #90885** fix(agent): resolve compaction model alias to canonical model ref.
- ·**PR #90918** fix(agents): forward turn-source routing fields to plugin.approval.request. Related #74003.
- ·**PR #95029** fix(discord): deliver reasoning replies. Related #94936.
- ·**PR #89581** refactor: use canonical transcript reader identity.
- ·**PR #94607** fix(ssh): scope tunnel port preflight to loopback (#94603).
- ·**PR #95060** fix(test): harden script probe bounds.
- ·**PR #95066** fix(e2e): reject unsafe chat tools body lengths.
- ·**PR #93941** docs: fix two broken cross-reference anchors.
- ·**PR #92996** fix(cli): reject present-but-invalid --timeout on status/health fast path.
- ·**PR #94314** refactor(policy): split doctor modules.
- ·**PR #93051** fix(cron): honor configured retry.backoffMs for recurring error backoff floor.
- ·**PR #95078** fix(scripts): reject unsafe package download lengths.
- ·**PR #91378** feat(cli): add `openclaw sessions compact` and fail loudly on CLI `/compact` (fixes #90640).
- ·**PR #94676** improve: simplify PR context and evidence.
- ·**PR #95085** fix(scripts): reject unsafe bounded response lengths.
- ·**PR #95090** fix(e2e): reject unsafe bounded response text lengths.
- ·**PR #95076** [codex] docs: clarify PR body evidence updates.
- ·**PR #84292** fix(agents): preserve delivered message send results. Related #84271.
- ·**PR #95039** fix(queue): restart dormant followup drains. Related #91909.
- ·**PR #90373** fix(gateway): remove device-backed node pairings. Related #88488.
- ·**PR #95093** fix(dev): bound realtime SDP answer reads.
- ·**PR #95103** fix(gateway): bound pricing catalog streams.
- ·**PR #95108** fix(agents): bound Anthropic error streams.
- ·**PR #95111** fix(memory): abort batch upload response reads.
- ·**PR #95105** fix(ci): cancel stale Testbox PR runs.
- ·**PR #95114** fix(test): stabilize tooling guard probes.
- ·**PR #94478** fix(doctor): repair legacy Codex route persistence. Related #94184.
- ·**PR #95119** fix(test): stream QA Lab stdout artifacts.
- ·**PR #95116** fix(ci): cancel stale CodeQL runs.
- ·**PR #95126** fix(package): ignore stale packed tarballs.
- ·**PR #95133** fix(macos): create DMG output directories.
- ·**PR #95137** test(docker): stabilize build signal probe.
- ·**PR #95144** fix(sdk): send exec approval resolve id.
- ·**PR #95152** fix(sdk): list helpers work without filters.
- ·**PR #95207** fix(scripts): preserve kitchen sink RPC request errors.
- ·**PR #95203** fix(scripts): guard reused testbox keys.
- ·**PR #95188** fix(sdk): type agent mutation RPC params.
- ·**PR #95196** fix(sdk): tighten approval response params.
- ·**PR #95169** fix(sdk): require session key for effective tools.
- ·**PR #95250** fix(slack): record canonical sent thread. Related #95235.
- ·**PR #86627** Keep core doctor health in contribution order.
- ·**PR #93580** fix: preserve cron delivery awareness for target sessions.
- ·**PR #95030** refactor: add SDK transcript identity target API.
- ·**PR #94838** refactor(copilot): complete harness lifecycle parity.
- ·**PR #95328** fix(sessions): reset stale per-channel origin fields on channel switch. Related #95325.
- ·**PR #94461** fix(zai): fall back to manifest baseUrl for synthesized GLM-5 models. Related #94269.
- ·**PR #93241** fix(agents): classify Zhipu GLM overload as overloaded for failover. Related #93211.
- ·**PR #94067** fix(channels): resolve native /think menu levels via runtime catalog for live-discovered models. Related #93835.
- ·**PR #94136** fix(zai): expose GLM-5.2 reasoning levels [AI-assisted].
- ·**PR #92318** fix(cron): require explicit message target proof.
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.92026-06-21
openclaw 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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·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)
- ·Dashboard and mobile: add a session workspace rail, plugin health in status, compact cron lists, and iOS Watch controls. (#92856, #91952, #93395, #93387)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
Complete contribution record
- ·**PR #90463** refactor: add session accessor seam with gateway consumer.
- ·**PR #88656** Drop reasoning-only length turns from replay.
- ·**PR #92856** feat(webui): add session workspace rail.
- ·**PR #92845** docs(browser-control): document OPENCLAW_EAGER_BROWSER_CONTROL_SERVER requirement. Related #92841.
- ·**PR #82366** fix: use passive periodic sqlite wal checkpoints. Related #81715.
- ·**PR #92815** fix(google): route Gemini CLI OAuth through the env proxy (#46184).
- ·**PR #91331** fix(mattermost): merge progress preview lines by identity. Related #89761.
- ·**PR #92909** fix(tui): keep spinner active when toggling tools. Related #49763.
- ·**PR #92904** fix(elevenlabs): use current TTS model ids.
- ·**PR #92642** fix #86872: Subagent run reports success but fails to write output file.
- ·**PR #89122** refactor: route command session reads through seam.
- ·**PR #90943** fix(reply): deliver final reply when queued follow-up claims session; scope dedupe to routed thread.
- ·**PR #92894** fix(skills): keep managed prompt paths readable. Related #92875.
- ·**PR #39617** fix: reload config in slash command routing so dmScope is respected. Related #39605.
- ·**PR #92191** fix(agents): retry thinking-only errored turns. Related #91953.
- ·**PR #92891** fix(memory): clean stale reindex temp files. Related #92874.
- ·**PR #93005** Add OpenRouter Fusion guidance and prompt context. Related #92984.
- ·**PR #88792** fix(state): harden sqlite path caching.
- ·**PR #93022** fix(gateway): repair usage cost aggregation across agents.
- ·**PR #93020** fix(telegram): cool down transient sendChatAction failures. Related #56096.
- ·**PR #89160** fix(agents): detect truncated API responses to prevent silent session hang. Related #89051.
- ·**PR #93009** fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973).
- ·**PR #92991** fix(agents): tolerate missing attribution baseUrl. Related #92974.
- ·**PR #92913** fix(opencode-go): register model catalog to fix context window detection. Related #92912.
- ·**PR #89129** refactor: route bundled plugin session callers through seam.
- ·**PR #93084** fix(agents): preserve fresh usage after compaction. Related #50795.
- ·**PR #92869** fix #90333: [Bug]: Discord image build aborts at step 66 — openclaw-build-messaging-plugins.py exits 1.
- ·**PR #93011** fix(gateway): accept file-only input on /v1/responses (parity with image-only).
- ·**PR #92915** Convert QA scenarios to YAML files.
- ·**PR #91767** Fix one-shot Codex app-server teardown.
- ·**PR #92625** feat(codex): add auto plugin approvals.
- ·**PR #91587** test(qa): add qa run --qa-profile and unified output summary/evidence.
- ·**PR #93104** test(reply): seed channel fixtures for dedupe tests.
- ·**PR #93107** test(reply): preserve telegram dedupe fallback.
- ·**PR #92954** fix(memory): accept local default model path migration.
- ·**PR #90936** fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764.
- ·**PR #90812** fix(voice-call): preserve live Twilio streams in stale reaper. Related #79121.
- ·**PR #93094** fix(whatsapp): bound socket operations.
- ·**PR #91629** fix(scripts): add database-first legacy store guard. Related #91628.
- ·**PR #93124** fix(telegram): render progress drafts as rich previews.
- ·**PR #93109** test(qa): embed profile scorecard evidence.
- ·**PR #87298** test: add temp directory helper guidance.
- ·**PR #92318** fix(cron): require explicit message target proof.
- ·**PR #93137** fix(imessage): honor disabled reply actions. Related #92142.
- ·**PR #93134** fix(feishu): pass card_msg_content_type to get full card content (fixes #78289).
- ·**PR #93138** fix(agents): preserve literal current session resolution.
- ·**PR #91225** fix #83830: [Bug]: Dreaming diary repeats "first day" narrative every sweep — same early memories dominate snippets.
- ·**PR #93153** simplify QA evidence profile and mappings/coverage shape.
- ·**PR #93164** fix(telegram): preserve rich markdown line breaks.
- ·**PR #93119** fix: accept mixed source/dist bundled roots. Related #87730.
- ·**PR #93130** fix(telegram): preserve sticker media paths. Related #83748.
- ·**PR #93073** fix(agents): retry empty post-tool final turns.
- ·**PR #91784** fix(voice-call): require realtime websocket path boundary.
- ·**PR #89133** Restore GPT-5.3 Codex Spark OAuth routing.
- ·**PR #91996** refactor: prune unused iOS code.
- ·**PR #90231** fix #69443: [Bug] Subagent RPC callback to WeChat session key routed to main session instead.
- ·**PR #89920** fix(matrix): replace recovered command progress lines.
- ·**PR #93159** fix(tui): keep parent stdin paused after exit.
- ·**PR #93201** fix(auto-reply): clear pending-final state before honoring post-send abort (#89115).
- ·**PR #93228** fix(agents): replace prose terminal classifiers.
- ·**PR #93231** fix(status): correct pinned model clear hint.
- ·**PR #92428** fix(qqbot): keep markdown table chunks valid.
- ·**PR #93220** fix(status): avoid stale session context windows.
- ·**PR #91957** perf(sessions): share one enumeration across archive retention sweeps.
- ·**PR #93281** fix(telegram): recover pid-reused ingress claims.
- ·**PR #93287** fix(codex): preserve terminal outcome ordering.
- ·**PR #93182** fix(memory): clean rollback-journal reindex temp sidecar on NFS stores.
- ·**PR #93283** Persist ClawHub skill install provenance. Related #92077.
- ·**PR #88872** fix: attribute spawned task runs to child agent. Related #66670.
- ·**PR #92837** fix(android): show live chat context usage.
- ·**PR #93325** fix(cli): harden official plugin recovery.
- ·**PR #93286** feat(telegram): send rich messages as rich html.
- ·**PR #92910** fix(memory-core): safely refresh qmd index during collection repair.
- ·**PR #93329** fix(cli): allow zero Discord timeout duration. Related #93327.
- ·**PR #91625** fix(cron): add cron edit --clear-model to clear a job's model override.
- ·**PR #91691** [AI] fix(memory): prevent empty-string expectedModel in resolveMemory….
- ·**PR #93006** fix(tui): keep stderr visible when local shell stdout fills the output cap.
- ·**PR #93001** fix(daemon): prefer stderr over stale stdout in gateway restart diagnostics.
- ·**PR #91117** refactor: remove dead code and improve string concatenation.
- ·**PR #90893** fix(models): mask paste-token input in CLI auth prompt.
- ·**PR #90571** fix(configure): mask gateway password input in CLI wizard prompt.
- ·**PR #91768** fix(ios): respect chat header safe area.
- ·**PR #93245** fix(cron): resolve lastRunStatus in cron list/show human output.
- ·**PR #78765** fix(tui): avoid inserting spaces into long CJK text.
- ·**PR #91776** fix(ios): refresh permission rows after grants.
- ·**PR #92817** fix(cron): trust agent output when channel is unresolved without explicit delivery. Related #90664.
- ·**PR #93297** fix(control-ui): respect agents.defaults.timeFormat for timestamps. Related #58147.
- ·**PR #93364** Fix Telegram rich progress command output.
- ·**PR #91952** feat(status): surface plugin health.
- ·**PR #75025** fix(heartbeat): refresh stale Current time line on every helper call (#44993).
- ·**PR #90992** docs(windows): fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0 idle-termination.
- ·**PR #86544** fix(cli): show Gemini CLI runtime auth status. Related #79585.
- ·**PR #88945** fix(plugins): serialize binding approval saves. Related #64065.
- ·**PR #90115** fix(gateway): pass managed inbound PDFs through chat.send. Related #90097.
- ·**PR #74613** docs(cli): add agent selector to CLI backend quick start. Related #68940.
- ·**PR #89121** refactor: add transcript reader seam.
- ·**PR #84434** fix(cli): disable ScheduleWakeup/CronCreate in --print claude runs.
- ·**PR #66985** fix(agents): resolve requestedNode to canonical ID before boundNode comparison. Related #87213.
- ·**PR #91488** fix(reply): project preflight compaction gate by next-input size on fresh tokens.
- ·**PR #93353** fix(plugins): require owner for plugin writes.
- ·**PR #91499** fix(cron): preserve scheduled turn tool policy [AI].
- ·**PR #90412** fix(sessions): cache warm transcript reads to avoid per-turn re-parse. Related #83943.
- ·**PR #93118** fix(gateway): guard fast-path startup migrations. Related #93032.
- ·**PR #93355** fix(ci): verify performance workflow downloads.
- ·**PR #93358** fix(outbound): guard cross-context message mutations.
- ·**PR #93362** fix(flock): bind allow-always to wrapped command.
- ·**PR #92578** refactor(whatsapp): add inbound admission foundation.
- ·**PR #89547** Control Telegram group history context.
- ·**PR #89201** refactor: add transcript runtime identity contract.
- ·**PR #93357** fix(plugins): enforce install policy in wrappers.
- ·**PR #93156** fix(doctor): import default-agent auth profiles into sqlite. Related #93145.
- ·**PR #93179** Add slim evidence mode for QA profile evidence.
- ·**PR #93349** fix(control-ui): keep workboard card titles visible in overflowing columns (fixes #91717).
- ·**PR #93324** fix(cli): accept --no-color after subcommands.
- ·**PR #89621** Return Google Chat thread metadata from message sends.
- ·**PR #82458** fix(infra): drop duplicated "restart" word in restart-sentinel summary.
- ·**PR #85471** Suppress cron announce control replies. Related #85421.
- ·**PR #85316** fix(auth): keep alias-compatible auth-profile overrides instead of clearing them.
- ·**PR #89260** fix(doctor): separate platform-incompatible skills from missing requirements. Related #89232.
- ·**PR #90846** fix(media): stop pruning media on write; let the configured timer do it.
- ·**PR #88062** fix(logging): avoid stalled warnings for active model calls.
- ·**PR #93308** fix(discord): reject malformed realtime consult calls.
- ·**PR #93334** fix(whatsapp): notify user when trailing media send fails instead of silent drop.
- ·**PR #92575** fix(sessions): preserve user behavior overrides across daily/idle rollover (#92562) [AI-assisted].
- ·**PR #89124** refactor: route auto-reply sessions through session seam.
- ·**PR #93431** fix: stabilize transcript cache and CLI env isolation.
- ·**PR #93412** fix(discord): suppress tool progress for message-tool replies.
- ·**PR #93409** fix(whatsapp): stop markdownToWhatsApp dropping code spans followed by a digit.
- ·**PR #93295** fix(memory): swap rollback-journal sidecar during atomic reindex.
- ·**PR #93076** fix(whatsapp): preserve auth on terminal disconnects.
- ·**PR #93435** fix(agents): bound autoreview scope.
- ·**PR #93279** fix(telegram): restore readable default text sends. Related #93263.
- ·**PR #93429** fix(line): cap carousel column text at 60 chars when a title or image is set.
- ·**PR #93428** fix(agents): resolve configured default model in runEmbeddedAgent (fixes #93419).
- ·**PR #93427** fix(tui): show activity indicator for system-injected runs. Related #51825.
- ·**PR #90003** feat(policy): cover exec approvals artifact.
- ·**PR #93448** fix(guards): allow auth profile sqlite reader.
- ·**PR #93424** fix(mattermost): keep message tool replies in threads.
- ·**PR #93418** fix(telegram): forward Bot API 10.1 rich_message content to agent. Related #93410.
- ·**PR #93175** test(qa): taxonomy profiles: includeAllCategories for release profile, update some coverage.
- ·**PR #93456** fix(agents): handle string assistant message content.
- ·**PR #93441** fix(outbound): ignore schema-padded poll metadata on send. Related #43015.
- ·**PR #93443** fix(gateway): block internal HTTP session overrides.
- ·**PR #93454** fix(sqlite): disable WAL on network filesystems.
- ·**PR #90275** test: make install-safe-path symlink tests compatible with Windows.
- ·**PR #93464** fix(qa): suppress empty WhatsApp debug artifacts.
- ·**PR #90861** fix(cli): preserve sessions_yield over MCP. Related #77426.
- ·**PR #90946** fix(infra): preserve inherited gateway PID across reparent during cleanup.
- ·**PR #92220** fix(media): extract large managed inbound PDFs via media-understanding. Related #90096, #90097.
- ·**PR #91208** fix #91047: Plugin session-extension registry not pinned; sessions.pluginPatch fails after agent/subagent plugin-load churn.
- ·**PR #92111** fix(update): restart managed gateway when update handoff fails after stop. Related #92088.
- ·**PR #93238** fix(agents): honor disabled envelope timestamps at model boundary.
- ·**PR #93343** fix(codex): de-duplicate commentary notes across the raw response lane. Related #93296.
- ·**PR #93361** fix(openshell): pin mirror remote mutations.
- ·**PR #93354** fix(discord): block cross-provider guild admin actions.
- ·**PR #92178** fix(gateway): normalize malformed paired access lists. Related #90654.
- ·**PR #85254** perf(plugins): thread prepared manifestPlugins through runtime model-id normalize chain.
- ·**PR #93489** Add ClawHub content rights docs to sidebar.
- ·**PR #93466** [AI] fix(feishu): guard against missing inbound in channelRuntime fallback.
- ·**PR #93460** fix(cli): honor --log-level in route-first commands. Related #93457.
- ·**PR #93495** fix(cron): clear delivery routing fields from cron edit.
- ·**PR #93494** docs: point PR landing at maintainer workflow.
- ·**PR #93487** fix(ui): add agent selector to skills page. Related #78553.
- ·**PR #93488** fix(discord): apply tool status emojis immediately to avoid override by thinking reactions. Related #92715.
- ·**PR #93055** fix(ui): restore provider usage pill in desktop chat composer [AI].
- ·**PR #83156** fix(matrix): accept bracketed display-name mentions. Related #83142.
- ·**PR #93333** fix(auto-reply): redact secrets in /debug show and /debug set output.
- ·**PR #88496** fix(auto-reply): redact secrets in config show output. Related #65623.
- ·**PR #93105** fix(doctor): repair null agents.list[].workspace values. Related #77718.
- ·**PR #73923** fix(ui): preserve gateway token during safe websocket url edits. Related #41545.
- ·**PR #88970** fix #85871: [Bug]: Heartbeat scheduler silently fails to fire on 5.20 and all 5.x versions (regression from 4.23).
- ·**PR #93511** fix(imessage): normalize leading NUL echo-cache prefixes.
- ·**PR #92594** [Bug]: ollama-cloud runtime fails DNS lookup for ai.ollama.com, while ollama/<model>:cloud works. Related #92391.
- ·**PR #93512** build(docs): finish PowerShell-safe docs formatting. Related #44293.
- ·**PR #93513** fix(skills): refresh persisted snapshots after restart.
- ·**PR #93517** fix(skills): quote skill-creator template description.
- ·**PR #73976** fix(memory): use per-keyword FTS search in hybrid mode #39484.
- ·**PR #93520** fix(workspace): store setup state outside workspace dot-dir.
- ·**PR #93521** fix(onboard): skip Homebrew prompt on unsupported platforms. Related #68893.
- ·**PR #93522** fix(feishu): send post mentions as native at elements.
- ·**PR #93496** fix(gateway): rotate already-stale generated transcript filename on /reset.
- ·**PR #93471** fix(cron): preserve aborted isolated-run failure.
- ·**PR #93473** fix(memory): report skipped QMD embedding probe. Related #77645.
- ·**PR #93498** fix(ui): preserve CJK IME composition. Related #86035.
- ·**PR #93088** fix(telegram): bind bot mentions to assistant identity.
- ·**PR #93499** fix(nodes): return screen snapshots as media. Related #90126.
- ·**PR #93506** fix(skills): trust verified ClawHub source provenance.
- ·**PR #93525** agents: notify chat exec empty-success completions.
- ·**PR #93446** feat: add Codex hosted web search.
- ·**PR #92883** fix(security): audit open dm tool exposure. Related #55612.
- ·**PR #93476** fix(mattermost): preserve Codex progress preview. Related #88766.
- ·**PR #93395** feat(cron): add compact list responses. Related #93366.
- ·**PR #93527** fix(cron): preserve model overrides for text payloads.
- ·**PR #90487** fix: harden ChatGPT Responses missing content-type streams.
- ·**PR #93528** fix(gateway): tolerate transient pre-hello clean closes.
- ·**PR #93529** fix(auto-reply): allow message tool for group attachments. Related #43146.
- ·**PR #93291** fix(reply): preserve pending thread evidence when reconciling partial send results.
- ·**PR #90572** fix(feishu): drop self-authored receive echoes.
- ·**PR #93455** fix(cli): accept --log-level after subcommands.
- ·**PR #93452** fix(bedrock): strip inference profile prefix from model ID in embedding adapter. Related #79212.
- ·**PR #89799** fix(cli): skip compile cache on early Node 24.x to avoid startup deadlock. Related #86550.
- ·**PR #93469** fix(agents): drop partialJson streaming artifacts from session history repair.
- ·**PR #93463** fix(codex): log app-server compaction completion. Related #83932.
- ·**PR #93562** fix(tui): refresh after external session reset. Related #38966.
- ·**PR #93470** fix(plugins): load externally-installed channel plugins at gateway startup. Related #93219.
- ·**PR #88796** fix(discord): resolve guildId from session channel for search actions. Related #88790.
- ·**PR #93194** fix(agents): preserve prompt-released session metadata. Related #93193.
- ·**PR #89483** fix(gateway): project failed agent turns in chat history. Related #89197.
- ·**PR #93434** fix: avoid parent group allowlist false positive. Related #92684.
- ·**PR #93449** fix(feishu): dedupe redelivered text by stable retry identity. Related #46778.
- ·**PR #93407** AGT-80 AGT-81 Fix Discord ingress ack ordering.
- ·**PR #93439** fix(agents): honor embedded run default model. Related #93419.
- ·**PR #93565** fix(cli): summarize cleanup dry-run by label. Related #76826.
- ·**PR #93509** fix(skills): clear orphaned idempotency pointer on corrupt-metadata re-begin.
- ·**PR #93274** Clarify plugin channel config additional-property errors.
- ·**PR #93555** fix(read): route text decoding through shared Windows codepage fallba….
- ·**PR #93314** fix(skills): preserve ClawHub origin provenance on readback.
- ·**PR #93573** fix(acp): keep bridge sessions out of stale ACP classification [AI-assisted]. Related #38907.
- ·**PR #93398** fix(cron): emit isolated model usage diagnostics. Related #92338.
- ·**PR #93367** Fix SSH sandbox remote directory args. Related #93344.
- ·**PR #93574** fix(feishu): suppress log noise for bot_p2p_chat_entered_v1 event [AI-assisted]. Related #42351.
- ·**PR #93269** Fix tokenjuice bash results without details.
- ·**PR #93575** fix(telegram): hydrate group reply-chain media into model context [AI-assisted].
- ·**PR #93261** fix(plugins): resolve provider policy surface for plugin-owned CLI backends. Related #93259.
- ·**PR #93303** fix(whatsapp): bound stalled read-receipt socket operations.
- ·**PR #93242** fix(mattermost): keep bare @mention with empty body instead of dropping it. Related #93205.
- ·**PR #93606** fix(ui): clear stale Talk error when session transitions to non-error state (fixes #88176).
- ·**PR #93607** perf(tasks): memoize reconcileInspectableTasks for same-tick calls (fixes #73531).
- ·**PR #93612** fix(gateway): compute sessions.usage aggregate totals from all sessions, not just the limited page (fixes #76496).
- ·**PR #93615** fix(telegram): recover lone active spooled handler on timeout (#84158).
- ·**PR #93616** Keep key-free web search providers opt-in.
- ·**PR #93298** fix #93044: control-ui webchat double-renders agent replies when dmScope=main.
- ·**PR #93618** fix(feishu): filter temporary card-action-c-\* IDs from reply target to prevent Invalid open_message_id errors (fixes #56818).
- ·**PR #93387** feat(ios): add watch action surface.
- ·**PR #93648** fix(doctor): archive superseded plugin install index conflicts. Related #90418.
- ·**PR #93649** fix(qwen): place DashScope image prompts in user content. Related #92688.
- ·**PR #93650** fix(update): avoid per-Node npm prefixes during self-update. Related #80387.
- ·**PR #93653** fix(skill-workshop): skip helper sessions during auto-capture.
- ·**PR #93654** fix(codex): expose remote node exec as a Codex dynamic tool. Related #92141.
- ·**PR #93662** fix(discord): protect mention aliases in code fences.
- ·**PR #93663** fix(clawdock): open dashboard on published port without starting deps. Related #77344.
- ·**PR #93670** fix(browser): recover stale managed Chrome CDP listener. Related #41750.
- ·**PR #93672** fix(commands): preserve multiline slash skill args. Related #79155.
- ·**PR #93674** fix(browser): accept top-level act fields with nested requests. Related #38762.
- ·**PR #93678** fix(plugins): allow Dreaming sidecar through restrictive memory allowlists. Related #92536.
- ·**PR #93306** fix(status): ignore stale context after model switch.
- ·**PR #93666** fix(control-ui): copy code blocks over plain HTTP via clipboard fallback. Related #93628.
- ·**PR #93629** fix(reply): preserve unsent text-only finals after block pipeline streamed partial content (fixes #81078).
- ·**PR #93690** fix(telegram): dispatch MEDIA directives as attachments. Related #77702.
- ·**PR #93693** fix(gateway): ignore stale sudo scope for root user services. Related #81410.
- ·**PR #93646** fix(agents): return string assistant content in getLastAssistantText.
- ·**PR #93687** fix(i18n): retain Codex error tails in logs.
- ·**PR #93630** fix(heartbeat): bootstrap plugin session targets.
- ·**PR #93658** fix(wizard): preserve existing default model during setup auth choice [AI-assisted]. Related #64129.
- ·**PR #93671** fix(respawn): rewrite pnpm versioned entry paths to stable wrapper (fixes #52313).
- ·**PR #93698** Fix Telegram rich progress detail updates.
- ·**PR #93656** fix(gateway): send approval route notices with write scope. Related #93563.
- ·**PR #93665** fix(gateway): surface codex app-server returned failures.
- ·**PR #93727** fix(context-engine): avoid turn-maintenance lane livelock. Related #77340.
- ·**PR #93681** fix(llm): handle string assistant content on the OpenAI-compatible completion path.
- ·**PR #93722** chore(release): update appcast for 2026.6.8.
- ·**PR #93677** fix(google-meet): declare realtime provider secret inputs. Related #81891.
- ·**PR #92947** fix(qqbot): deliver cron auto-TTS voice by trusting OpenClaw temp root. Related #92816.
- ·**PR #93679** fix(whatsapp): extract GIF metadata and distinguish gifPlayback in media placeholders (fixes #49099).
- ·**PR #93688** fix(minimax): check base_resp envelope errors in TTS provider. Related #76904.
- ·**PR #93714** fix: isolate async model resolution mock from sync mock in flaky test. Related #92117.
- ·**PR #93705** test(macos): cover root command dispatch. Related #83879.
- ·**PR #93711** Keep command text in progress drafts.
- ·**PR #93712** fix: scope assistant avatar override to agent ID. Related #90890.
- ·**PR #93725** fix(usage): prune stale usage cache temp files. Related #78939.
- ·**PR #93726** fix(typing): start typing on reasoning deltas in thinking mode before visible text. Related #79681.
- ·**PR #93716** fix(discord): propagate timeout through channel capabilities diagnostics. Related #77040.
- ·**PR #93729** fix(ollama): preserve configured API during discovery. Related #93710.
- ·**PR #93719** fix: pin plugin workspace dir for sessions.list to avoid O(rows) memo busting. Related #90814.
- ·**PR #93732** fix(agents): preserve re-sent user prompt during compaction transcript rotation.
- ·**PR #93738** fix: break plugin registry type import cycle.
- ·**PR #93740** fix(sessions): release retained locks after takeover.
- ·**PR #93745** fix(usage): reject invalid explicit dates in usage RPC date parsing.
- ·**PR #93746** fix(ui): populate realtime talk provider and transport options from talk.catalog.
- ·**PR #93751** fix(ios): fix quick setup sheet layout design.
- ·**PR #93749** fix(compaction): ignore stale persisted totalTokens in preflight gate.
- ·**PR #93753** fix: correct tautological uppercase check in tool description summarizer.
- ·**PR #89123** refactor: route transcript writers through session seam.
- ·**PR #93758** feat(memory): apply outputDimensionality truncation to local GGUF embeddings (fixes #58765).
- ·**PR #93754** feat(inbound-meta): expose per-turn source modality. Related #50482.
- ·**PR #93767** fix(reasoning-tags): strip MiniMax `mm:` namespaced reasoning tags.
- ·**PR #93772** fix(feishu): recover CJK filenames from JSON file_name field (fixes #81103).
- ·**PR #93773** fix(ui): scope Skill Workshop proposals to selected agent. Related #93760.
- ·**PR #88750** feat(context-engine): pass runtime settings into lifecycle.
- ·**PR #93763** fix(agents): use neutral billing copy for subscription auth. Related #80877.
- ·**PR #93818** List all ClawHub docs in sidebar.
- ·**PR #93779** fix(webchat): skip textarea resize during IME composition to eliminate typing lag. Related #90800.
- ·**PR #93786** fix(plugins): treat refreshable catalogs as requiring runtime discovery (fixes #93775).
- ·**PR #93791** fix(memory): await search-sync before returning results to prevent stale index (fixes #52115).
- ·**PR #93780** fix(google): keep parallel Gemini tool responses in the turn after the model.
- ·**PR #93789** fix(agents): make lane suspension consistent across cooldown-precheck and embedded-runner paths. Related #93036.
- ·**PR #93798** fix(status): show 0 (not ?) for fresh-session context tokens. Related #93771.
- ·**PR #93810** fix(cron): preserve startup overflow catch-up deferrals in start() maintenance pass.
- ·**PR #93811** Strip UTF-8 BOM when reading SKILL.md in quick_validate.
- ·**PR #93803** fix(ui): preserve WebChat visible messages across session switches. Related #80855.
- ·**PR #93792** fix(android): wait for node capability approval before onboarding.
- ·**PR #93796** fix(feishu): paginate wiki node and space listing (#37626).
- ·**PR #93797** fix(browser): use openTab return value to prevent wsUrl race in ensureTabAvailable (fixes #63343).
- ·**PR #93806** fix(reasoning-tags): strip MiniMax mm: tags on silent-reply and streaming paths missed by #93767.
- ·**PR #93691** refactor: add gateway sessions.create lifecycle seam.
- ·**PR #88748** fix(gemini): bridge OAuth profiles into CLI runtime. Related #88742.
- ·**PR #93857** fix(deps): remediate Dependabot alerts.
- ·**PR #93874** fix(slack): recognize MiniMax mm: namespaced reasoning tags in monitor preview.
- ·**PR #93832** feat(providers): add ClawRouter managed proxy.
- ·**PR #93880** fix(macos): preserve approvals migration data.
- ·**PR #93903** fix(cron): reject invalid absolute timestamps.
- ·**PR #93879** fix(update): use configured npm registry for update metadata. Related #79140.
- ·**PR #93924** revert(providers): remove ClawRouter provider.
- ·**PR #93955** fix(telegram): surface rich-message disabled state.
- ·**PR #93881** fix(agents): route BTW through canonical Codex runtime. Related #88902.
- ·**PR #90192** fix(feishu): fetch quoted content before empty-message guard. Related #90177.
- ·**PR #93237** Fix Mattermost open DM validation.
- ·**PR #93945** feat(diagnostics): add SIEM security events.
- ·**PR #87487** fix(cli): clarify mcp list registry scope. Related #65209.
- ·**PR #24661** feat(cohere): add provider plugin.
- ·**PR #93532** Expose verified ClawHub source in skill verify output.
- ·**PR #93538** feat(codex): support app-server network proxy profiles.
- ·**PR #93938** fix(telegram): guard UTF-16 surrogate pairs in outbound chunkers. Related #93921.
- ·**PR #94104** feat(agents): trace compaction summarization model calls.
- ·**PR #94108** Fix package Telegram temp root.
- ·**PR #94113** Fix Telegram package output mount.
- ·**PR #89062** feat(docker): support offline setup reruns. Related #70443.
- ·**PR #93929** fix(secrets): explicitly pass BWS_SERVER_URL to resolver for self-hosted instances. Related #93851.
- ·**PR #90057** Polish Workboard operations view.
- ·**PR #89396** fix(doctor): drop inert legacy cron notify when cron.webhook is unset. Related #44460.
- ·**PR #94138** fix(session): prevent stale finalizer from recreating deleted session rows. Related #40840.
- ·**PR #93739** refactor: add session patch projection seam.
- ·**PR #94178** fix(workspace): skip optional bootstrap files when workspace setup is already completed. Related #83593.
- ·**PR #93363** fix(feishu): enforce account tool family gates.
- ·**PR #93813** fix(codex): keep message registered for internal turns. Related #93750.
- ·**PR #93659** refactor: add session reset delete lifecycle seam.
- ·**PR #93852** ci(release): harden release controls.
- ·**PR #94203** feat(codex): support remote app-server plugins.
- ·**PR #94263** chore: migrate claw-score skill.
- ·**PR #93695** refactor: add compact trim lifecycle seam.
- ·**PR #93114** test: fold lifecycle and package proof into QA Lab.
- ·**PR #93181** test: fold otel smoke into qa e2e.
- ·**PR #93178** test: fold gateway smoke into qa e2e.
- ·**PR #94276** qa-lab: support script-backed evidence scenarios.
- ·**PR #94282** Support owner-qualified ClawHub skill installs.
- ·**PR #93704** refactor: add session cleanup lifecycle seam.
- ·**PR #94296** fix: require all taxonomy coverage ids for a feature - AND not OR.
- ·**PR #92016** fix(plugins): compose live hook registry view for tool-call hooks. Related #91918.
- ·**PR #89596** fix(policy): recognize declared tool allowlists.
- ·**PR #93713** fix: route deleted-agent session purge through lifecycle seam.
- ·**PR #84172** fix(exec): rebuild command authorization on the Tree-sitter command planner.
- ·**PR #94332** docs: add ClawHub namespace claims to sidebar.
- ·**PR #86360** fix(codex): honor bound agent exec host policy.
- ·**PR #73162** fix(slack): remove socket reconnect attempt cap so gateway stays connected indefinitely. Related #72808.
- ·**PR #94156** fix: expose OpenAI image quality and moderation CLI options.
- ·**PR #94350** feat: externalize GMI provider plugin.
- ·**PR #94543** fix(gateway): bound config.get middleware results. Related #94265.
- ·**PR #91409** fix(update): run plugin convergence after RPC git updates.
- ·**PR #94556** chore(extensions): bump tokenjuice to 0.8.1.
- ·**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.
- ·**PR #94421** fix(agents): preserve active compaction retries. Related #94391.
- ·**PR #94428** fix(feishu): preserve replies before error finals. Related #94360.
- ·**PR #93735** refactor: add restart recovery lifecycle seam.
- ·**PR #94591** docs(release): backfill complete contribution records.
- ·**PR #94588** fix(cron): retry isolated setup timeouts.
- ·**PR #94082** fix(cron): prevent lane timeout during long tool execution. Related #94033.
- ·**PR #94551** feat(firecrawl): add keyless scrape support.
- ·**PR #94619** test(ci): stabilize timeout-sensitive shards.
- ·**PR #94048** fix(telegram): set richMessages default to false explicitly in schema. Related #93770, #93794.
- ·**PR #94118** [codex] Fix Telegram rich local Markdown link hrefs. Related #94117.
- ·**PR #94646** refactor(sqlite): land database-first memory and proxy alignment.
- ·**PR #94658** test(sqlite): use shared temp directory helper.
- ·**PR #92135** fix(openai-embedding): preserve openai/ prefix for non-native base URLs. Related #92124.
- ·**PR #93737** refactor: add session maintenance transaction seam.
- ·**PR #93685** refactor(auto-reply): add lifecycle storage seams.
- ·**PR #94349** fix(agents): preserve pending subagent completion announces. Related #93323.
- ·**PR #93174** test: fold channel message flows into qa e2e.
- ·**PR #94093** Prevent Codex thread rotation from losing next-step context.
- ·**PR #53920** fix(scripts): avoid mutating tracked auth-monitor template during setup.
- ·**PR #94702** Standardize QA coverage IDs on dotted names.
- ·**PR #81825** fix(skills/1password): stop forcing tmux for desktop app auth (#52540).
- ·**PR #94725** fix(doctor): warn on volatile SQLite state.
- ·**PR #88551** fix(agents): skip auth gate for CLI-owned transport.
- ·**PR #88581** feat(commands): add /name to rename the current session from chat.
- ·**PR #94324** feat(codex): support app-server SecretRefs.
- ·**PR #90882** fix: add self-knowledge docs rule to system prompt. Related #90713.
- ·**PR #94684** fix: #80507 show dry-run output for message send/poll.
- ·**PR #93823** fix(whatsapp): keep opening text chunk when first media fails on multi-chunk reply.
- ·**PR #89203** refactor: route SDK session compatibility through seam.
- ·**PR #94453** fix: default cron runMode to "due" instead of "force" (#94270).
- ·**PR #94746** fix(note): prevent clack from re-breaking copy-sensitive tokens. Related #94730.
- ·**PR #89904** refactor: route sdk session compatibility through accessor.
- ·**PR #86719** fix(skills): retarget stale plugin skill symlinks. Related #85925.
- ·**PR #94337** fix(tui): show 0 not ? for fresh-session context tokens in footer.
- ·**PR #94539** fix(android): group settings by intent.
- ·**PR #92383** fix(gateway): never return an empty chat.history transcript.
- ·**PR #92574** test(browser): cover action-input CLI request bodies. Related #83877.
- ·**PR #92873** test(diffs): add viewerState, toolbar toggle, shadow root, and hydrateProps tests (fixes #83915).
- ·**PR #94257** fix(sessions): preserve Media\* index alignment when reading user-turn fields.
- ·**PR #94756** fix(codex): bound turn/start text when context budget is non-positive. Related #94748.
- ·**PR #94729** fix(skills/trello): add curl to requires.bins to match body examples (fixes #94727).
- ·**PR #94790** feat(slack): log INFO receipt for inbound app_mention events. Related #94691.
- ·**PR #81696** fix: guard tool event callbacks (AI-assisted).
- ·**PR #94809** chore: forward-port alpha release fixes.
- ·**PR #94612** fix(macos): open NSOpenPanel for embedded Control UI file inputs (#94468).
- ·**PR #89806** fix(feishu): avoid axios interceptor internals. Related #83913.
- ·**PR #91923** fix(ios): clean up notification settings state.
- ·**PR #91345** fix: suggest close CLI commands. Related #83999.
- ·**PR #94561** Add stdout diagnostics OTEL log exporter.
- ·**PR #91013** fix(gateway): ignore stale abort markers for fresh chat events. Related #91012.
- ·**PR #89279** fix(tasks): deliver ACP completions to bound Discord threads. Related #84022.
- ·**PR #91656** test(cron): expand parseAbsoluteTimeMs test coverage to 39 cases. Related #91654.
- ·**PR #94810** fix(telegram): classify sendChatAction 401 by structured error_code, not bare substring match. Related #94787.
- ·**PR #94737** fix(reply): clarify provider internal error copy.
- ·**PR #94868** fix(channels): preserve command progress detail.
- ·**PR #94891** fix(telegram): send progress previews as html text.
- ·**PR #94683** fix(outbound): keep direct-only targets out of group sessions. Related #92384.
- ·**PR #92477** fix: migrate watch app to single-target app (Xcode 27+ compat).
- ·**PR #94812** test(perf): compare saved CLI startup benchmarks.
- ·**PR #94856** fix(telegram): normalize all HTML tables before entity-escaping in rich messages. Related #94317.
- ·**PR #91685** fix(cron): refuse keyless implicit isolated cron delivery inherited from shared agent-main bucket.
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.1pre-release2026-06-19
openclaw 2026.6.9-beta.1
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·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)
- ·Dashboard and mobile: add a session workspace rail, plugin health in status, compact cron lists, and iOS Watch controls. (#92856, #91952, #93395, #93387)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
Complete contribution record
- ·**PR #90463** refactor: add session accessor seam with gateway consumer.
- ·**PR #88656** Drop reasoning-only length turns from replay.
- ·**PR #92856** feat(webui): add session workspace rail.
- ·**PR #92845** docs(browser-control): document OPENCLAW_EAGER_BROWSER_CONTROL_SERVER requirement. Related #92841.
- ·**PR #82366** fix: use passive periodic sqlite wal checkpoints. Related #81715.
- ·**PR #92815** fix(google): route Gemini CLI OAuth through the env proxy (#46184).
- ·**PR #91331** fix(mattermost): merge progress preview lines by identity. Related #89761.
- ·**PR #92909** fix(tui): keep spinner active when toggling tools. Related #49763.
- ·**PR #92904** fix(elevenlabs): use current TTS model ids.
- ·**PR #92642** fix #86872: Subagent run reports success but fails to write output file.
- ·**PR #89122** refactor: route command session reads through seam.
- ·**PR #90943** fix(reply): deliver final reply when queued follow-up claims session; scope dedupe to routed thread.
- ·**PR #92894** fix(skills): keep managed prompt paths readable. Related #92875.
- ·**PR #39617** fix: reload config in slash command routing so dmScope is respected. Related #39605.
- ·**PR #92191** fix(agents): retry thinking-only errored turns. Related #91953.
- ·**PR #92891** fix(memory): clean stale reindex temp files. Related #92874.
- ·**PR #93005** Add OpenRouter Fusion guidance and prompt context. Related #92984.
- ·**PR #88792** fix(state): harden sqlite path caching.
- ·**PR #93022** fix(gateway): repair usage cost aggregation across agents.
- ·**PR #93020** fix(telegram): cool down transient sendChatAction failures. Related #56096.
- ·**PR #89160** fix(agents): detect truncated API responses to prevent silent session hang. Related #89051.
- ·**PR #93009** fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973).
- ·**PR #92991** fix(agents): tolerate missing attribution baseUrl. Related #92974.
- ·**PR #92913** fix(opencode-go): register model catalog to fix context window detection. Related #92912.
- ·**PR #89129** refactor: route bundled plugin session callers through seam.
- ·**PR #93084** fix(agents): preserve fresh usage after compaction. Related #50795.
- ·**PR #92869** fix #90333: [Bug]: Discord image build aborts at step 66 — openclaw-build-messaging-plugins.py exits 1.
- ·**PR #93011** fix(gateway): accept file-only input on /v1/responses (parity with image-only).
- ·**PR #92915** Convert QA scenarios to YAML files.
- ·**PR #91767** Fix one-shot Codex app-server teardown.
- ·**PR #92625** feat(codex): add auto plugin approvals.
- ·**PR #91587** test(qa): add qa run --qa-profile and unified output summary/evidence.
- ·**PR #93104** test(reply): seed channel fixtures for dedupe tests.
- ·**PR #93107** test(reply): preserve telegram dedupe fallback.
- ·**PR #92954** fix(memory): accept local default model path migration.
- ·**PR #90936** fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764.
- ·**PR #90812** fix(voice-call): preserve live Twilio streams in stale reaper. Related #79121.
- ·**PR #93094** fix(whatsapp): bound socket operations.
- ·**PR #91629** fix(scripts): add database-first legacy store guard. Related #91628.
- ·**PR #93124** fix(telegram): render progress drafts as rich previews.
- ·**PR #93109** test(qa): embed profile scorecard evidence.
- ·**PR #87298** test: add temp directory helper guidance.
- ·**PR #92318** fix(cron): require explicit message target proof.
- ·**PR #93137** fix(imessage): honor disabled reply actions. Related #92142.
- ·**PR #93134** fix(feishu): pass card_msg_content_type to get full card content (fixes #78289).
- ·**PR #93138** fix(agents): preserve literal current session resolution.
- ·**PR #91225** fix #83830: [Bug]: Dreaming diary repeats "first day" narrative every sweep — same early memories dominate snippets.
- ·**PR #93153** simplify QA evidence profile and mappings/coverage shape.
- ·**PR #93164** fix(telegram): preserve rich markdown line breaks.
- ·**PR #93119** fix: accept mixed source/dist bundled roots. Related #87730.
- ·**PR #93130** fix(telegram): preserve sticker media paths. Related #83748.
- ·**PR #93073** fix(agents): retry empty post-tool final turns.
- ·**PR #91784** fix(voice-call): require realtime websocket path boundary.
- ·**PR #89133** Restore GPT-5.3 Codex Spark OAuth routing.
- ·**PR #91996** refactor: prune unused iOS code.
- ·**PR #90231** fix #69443: [Bug] Subagent RPC callback to WeChat session key routed to main session instead.
- ·**PR #89920** fix(matrix): replace recovered command progress lines.
- ·**PR #93159** fix(tui): keep parent stdin paused after exit.
- ·**PR #93201** fix(auto-reply): clear pending-final state before honoring post-send abort (#89115).
- ·**PR #93228** fix(agents): replace prose terminal classifiers.
- ·**PR #93231** fix(status): correct pinned model clear hint.
- ·**PR #92428** fix(qqbot): keep markdown table chunks valid.
- ·**PR #93220** fix(status): avoid stale session context windows.
- ·**PR #91957** perf(sessions): share one enumeration across archive retention sweeps.
- ·**PR #93281** fix(telegram): recover pid-reused ingress claims.
- ·**PR #93287** fix(codex): preserve terminal outcome ordering.
- ·**PR #93182** fix(memory): clean rollback-journal reindex temp sidecar on NFS stores.
- ·**PR #93283** Persist ClawHub skill install provenance. Related #92077.
- ·**PR #88872** fix: attribute spawned task runs to child agent. Related #66670.
- ·**PR #92837** fix(android): show live chat context usage.
- ·**PR #93325** fix(cli): harden official plugin recovery.
- ·**PR #93286** feat(telegram): send rich messages as rich html.
- ·**PR #92910** fix(memory-core): safely refresh qmd index during collection repair.
- ·**PR #93329** fix(cli): allow zero Discord timeout duration. Related #93327.
- ·**PR #91625** fix(cron): add cron edit --clear-model to clear a job's model override.
- ·**PR #91691** [AI] fix(memory): prevent empty-string expectedModel in resolveMemory….
- ·**PR #93006** fix(tui): keep stderr visible when local shell stdout fills the output cap.
- ·**PR #93001** fix(daemon): prefer stderr over stale stdout in gateway restart diagnostics.
- ·**PR #91117** refactor: remove dead code and improve string concatenation.
- ·**PR #90893** fix(models): mask paste-token input in CLI auth prompt.
- ·**PR #90571** fix(configure): mask gateway password input in CLI wizard prompt.
- ·**PR #91768** fix(ios): respect chat header safe area.
- ·**PR #93245** fix(cron): resolve lastRunStatus in cron list/show human output.
- ·**PR #78765** fix(tui): avoid inserting spaces into long CJK text.
- ·**PR #91776** fix(ios): refresh permission rows after grants.
- ·**PR #92817** fix(cron): trust agent output when channel is unresolved without explicit delivery. Related #90664.
- ·**PR #93297** fix(control-ui): respect agents.defaults.timeFormat for timestamps. Related #58147.
- ·**PR #93364** Fix Telegram rich progress command output.
- ·**PR #91952** feat(status): surface plugin health.
- ·**PR #75025** fix(heartbeat): refresh stale Current time line on every helper call (#44993).
- ·**PR #90992** docs(windows): fix WSL gateway-autostart recipe for WSL ≥ 2.6.1.0 idle-termination.
- ·**PR #86544** fix(cli): show Gemini CLI runtime auth status. Related #79585.
- ·**PR #88945** fix(plugins): serialize binding approval saves. Related #64065.
- ·**PR #90115** fix(gateway): pass managed inbound PDFs through chat.send. Related #90097.
- ·**PR #74613** docs(cli): add agent selector to CLI backend quick start. Related #68940.
- ·**PR #89121** refactor: add transcript reader seam.
- ·**PR #84434** fix(cli): disable ScheduleWakeup/CronCreate in --print claude runs.
- ·**PR #66985** fix(agents): resolve requestedNode to canonical ID before boundNode comparison. Related #87213.
- ·**PR #91488** fix(reply): project preflight compaction gate by next-input size on fresh tokens.
- ·**PR #93353** fix(plugins): require owner for plugin writes.
- ·**PR #91499** fix(cron): preserve scheduled turn tool policy [AI].
- ·**PR #90412** fix(sessions): cache warm transcript reads to avoid per-turn re-parse. Related #83943.
- ·**PR #93118** fix(gateway): guard fast-path startup migrations. Related #93032.
- ·**PR #93355** fix(ci): verify performance workflow downloads.
- ·**PR #93358** fix(outbound): guard cross-context message mutations.
- ·**PR #93362** fix(flock): bind allow-always to wrapped command.
- ·**PR #92578** refactor(whatsapp): add inbound admission foundation.
- ·**PR #89547** Control Telegram group history context.
- ·**PR #89201** refactor: add transcript runtime identity contract.
- ·**PR #93357** fix(plugins): enforce install policy in wrappers.
- ·**PR #93156** fix(doctor): import default-agent auth profiles into sqlite. Related #93145.
- ·**PR #93179** Add slim evidence mode for QA profile evidence.
- ·**PR #93349** fix(control-ui): keep workboard card titles visible in overflowing columns (fixes #91717).
- ·**PR #93324** fix(cli): accept --no-color after subcommands.
- ·**PR #89621** Return Google Chat thread metadata from message sends.
- ·**PR #82458** fix(infra): drop duplicated "restart" word in restart-sentinel summary.
- ·**PR #85471** Suppress cron announce control replies. Related #85421.
- ·**PR #85316** fix(auth): keep alias-compatible auth-profile overrides instead of clearing them.
- ·**PR #89260** fix(doctor): separate platform-incompatible skills from missing requirements. Related #89232.
- ·**PR #90846** fix(media): stop pruning media on write; let the configured timer do it.
- ·**PR #88062** fix(logging): avoid stalled warnings for active model calls.
- ·**PR #93308** fix(discord): reject malformed realtime consult calls.
- ·**PR #93334** fix(whatsapp): notify user when trailing media send fails instead of silent drop.
- ·**PR #92575** fix(sessions): preserve user behavior overrides across daily/idle rollover (#92562) [AI-assisted].
- ·**PR #89124** refactor: route auto-reply sessions through session seam.
- ·**PR #93431** fix: stabilize transcript cache and CLI env isolation.
- ·**PR #93412** fix(discord): suppress tool progress for message-tool replies.
- ·**PR #93409** fix(whatsapp): stop markdownToWhatsApp dropping code spans followed by a digit.
- ·**PR #93295** fix(memory): swap rollback-journal sidecar during atomic reindex.
- ·**PR #93076** fix(whatsapp): preserve auth on terminal disconnects.
- ·**PR #93435** fix(agents): bound autoreview scope.
- ·**PR #93279** fix(telegram): restore readable default text sends. Related #93263.
- ·**PR #93429** fix(line): cap carousel column text at 60 chars when a title or image is set.
- ·**PR #93428** fix(agents): resolve configured default model in runEmbeddedAgent (fixes #93419).
- ·**PR #93427** fix(tui): show activity indicator for system-injected runs. Related #51825.
- ·**PR #90003** feat(policy): cover exec approvals artifact.
- ·**PR #93448** fix(guards): allow auth profile sqlite reader.
- ·**PR #93424** fix(mattermost): keep message tool replies in threads.
- ·**PR #93418** fix(telegram): forward Bot API 10.1 rich_message content to agent. Related #93410.
- ·**PR #93175** test(qa): taxonomy profiles: includeAllCategories for release profile, update some coverage.
- ·**PR #93456** fix(agents): handle string assistant message content.
- ·**PR #93441** fix(outbound): ignore schema-padded poll metadata on send. Related #43015.
- ·**PR #93443** fix(gateway): block internal HTTP session overrides.
- ·**PR #93454** fix(sqlite): disable WAL on network filesystems.
- ·**PR #90275** test: make install-safe-path symlink tests compatible with Windows.
- ·**PR #93464** fix(qa): suppress empty WhatsApp debug artifacts.
- ·**PR #90861** fix(cli): preserve sessions_yield over MCP. Related #77426.
- ·**PR #90946** fix(infra): preserve inherited gateway PID across reparent during cleanup.
- ·**PR #92220** fix(media): extract large managed inbound PDFs via media-understanding. Related #90096, #90097.
- ·**PR #91208** fix #91047: Plugin session-extension registry not pinned; sessions.pluginPatch fails after agent/subagent plugin-load churn.
- ·**PR #92111** fix(update): restart managed gateway when update handoff fails after stop. Related #92088.
- ·**PR #93238** fix(agents): honor disabled envelope timestamps at model boundary.
- ·**PR #93343** fix(codex): de-duplicate commentary notes across the raw response lane. Related #93296.
- ·**PR #93361** fix(openshell): pin mirror remote mutations.
- ·**PR #93354** fix(discord): block cross-provider guild admin actions.
- ·**PR #92178** fix(gateway): normalize malformed paired access lists. Related #90654.
- ·**PR #85254** perf(plugins): thread prepared manifestPlugins through runtime model-id normalize chain.
- ·**PR #93489** Add ClawHub content rights docs to sidebar.
- ·**PR #93466** [AI] fix(feishu): guard against missing inbound in channelRuntime fallback.
- ·**PR #93460** fix(cli): honor --log-level in route-first commands. Related #93457.
- ·**PR #93495** fix(cron): clear delivery routing fields from cron edit.
- ·**PR #93494** docs: point PR landing at maintainer workflow.
- ·**PR #93487** fix(ui): add agent selector to skills page. Related #78553.
- ·**PR #93488** fix(discord): apply tool status emojis immediately to avoid override by thinking reactions. Related #92715.
- ·**PR #93055** fix(ui): restore provider usage pill in desktop chat composer [AI].
- ·**PR #83156** fix(matrix): accept bracketed display-name mentions. Related #83142.
- ·**PR #93333** fix(auto-reply): redact secrets in /debug show and /debug set output.
- ·**PR #88496** fix(auto-reply): redact secrets in config show output. Related #65623.
- ·**PR #93105** fix(doctor): repair null agents.list[].workspace values. Related #77718.
- ·**PR #73923** fix(ui): preserve gateway token during safe websocket url edits. Related #41545.
- ·**PR #88970** fix #85871: [Bug]: Heartbeat scheduler silently fails to fire on 5.20 and all 5.x versions (regression from 4.23).
- ·**PR #93511** fix(imessage): normalize leading NUL echo-cache prefixes.
- ·**PR #92594** [Bug]: ollama-cloud runtime fails DNS lookup for ai.ollama.com, while ollama/<model>:cloud works. Related #92391.
- ·**PR #93512** build(docs): finish PowerShell-safe docs formatting. Related #44293.
- ·**PR #93513** fix(skills): refresh persisted snapshots after restart.
- ·**PR #93517** fix(skills): quote skill-creator template description.
- ·**PR #73976** fix(memory): use per-keyword FTS search in hybrid mode #39484.
- ·**PR #93520** fix(workspace): store setup state outside workspace dot-dir.
- ·**PR #93521** fix(onboard): skip Homebrew prompt on unsupported platforms. Related #68893.
- ·**PR #93522** fix(feishu): send post mentions as native at elements.
- ·**PR #93496** fix(gateway): rotate already-stale generated transcript filename on /reset.
- ·**PR #93471** fix(cron): preserve aborted isolated-run failure.
- ·**PR #93473** fix(memory): report skipped QMD embedding probe. Related #77645.
- ·**PR #93498** fix(ui): preserve CJK IME composition. Related #86035.
- ·**PR #93088** fix(telegram): bind bot mentions to assistant identity.
- ·**PR #93499** fix(nodes): return screen snapshots as media. Related #90126.
- ·**PR #93506** fix(skills): trust verified ClawHub source provenance.
- ·**PR #93525** agents: notify chat exec empty-success completions.
- ·**PR #93446** feat: add Codex hosted web search.
- ·**PR #92883** fix(security): audit open dm tool exposure. Related #55612.
- ·**PR #93476** fix(mattermost): preserve Codex progress preview. Related #88766.
- ·**PR #93395** feat(cron): add compact list responses. Related #93366.
- ·**PR #93527** fix(cron): preserve model overrides for text payloads.
- ·**PR #90487** fix: harden ChatGPT Responses missing content-type streams.
- ·**PR #93528** fix(gateway): tolerate transient pre-hello clean closes.
- ·**PR #93529** fix(auto-reply): allow message tool for group attachments. Related #43146.
- ·**PR #93291** fix(reply): preserve pending thread evidence when reconciling partial send results.
- ·**PR #90572** fix(feishu): drop self-authored receive echoes.
- ·**PR #93455** fix(cli): accept --log-level after subcommands.
- ·**PR #93452** fix(bedrock): strip inference profile prefix from model ID in embedding adapter. Related #79212.
- ·**PR #89799** fix(cli): skip compile cache on early Node 24.x to avoid startup deadlock. Related #86550.
- ·**PR #93469** fix(agents): drop partialJson streaming artifacts from session history repair.
- ·**PR #93463** fix(codex): log app-server compaction completion. Related #83932.
- ·**PR #93562** fix(tui): refresh after external session reset. Related #38966.
- ·**PR #93470** fix(plugins): load externally-installed channel plugins at gateway startup. Related #93219.
- ·**PR #88796** fix(discord): resolve guildId from session channel for search actions. Related #88790.
- ·**PR #93194** fix(agents): preserve prompt-released session metadata. Related #93193.
- ·**PR #89483** fix(gateway): project failed agent turns in chat history. Related #89197.
- ·**PR #93434** fix: avoid parent group allowlist false positive. Related #92684.
- ·**PR #93449** fix(feishu): dedupe redelivered text by stable retry identity. Related #46778.
- ·**PR #93407** AGT-80 AGT-81 Fix Discord ingress ack ordering.
- ·**PR #93439** fix(agents): honor embedded run default model. Related #93419.
- ·**PR #93565** fix(cli): summarize cleanup dry-run by label. Related #76826.
- ·**PR #93509** fix(skills): clear orphaned idempotency pointer on corrupt-metadata re-begin.
- ·**PR #93274** Clarify plugin channel config additional-property errors.
- ·**PR #93555** fix(read): route text decoding through shared Windows codepage fallba….
- ·**PR #93314** fix(skills): preserve ClawHub origin provenance on readback.
- ·**PR #93573** fix(acp): keep bridge sessions out of stale ACP classification [AI-assisted]. Related #38907.
- ·**PR #93398** fix(cron): emit isolated model usage diagnostics. Related #92338.
- ·**PR #93367** Fix SSH sandbox remote directory args. Related #93344.
- ·**PR #93574** fix(feishu): suppress log noise for bot_p2p_chat_entered_v1 event [AI-assisted]. Related #42351.
- ·**PR #93269** Fix tokenjuice bash results without details.
- ·**PR #93575** fix(telegram): hydrate group reply-chain media into model context [AI-assisted].
- ·**PR #93261** fix(plugins): resolve provider policy surface for plugin-owned CLI backends. Related #93259.
- ·**PR #93303** fix(whatsapp): bound stalled read-receipt socket operations.
- ·**PR #93242** fix(mattermost): keep bare @mention with empty body instead of dropping it. Related #93205.
- ·**PR #93606** fix(ui): clear stale Talk error when session transitions to non-error state (fixes #88176).
- ·**PR #93607** perf(tasks): memoize reconcileInspectableTasks for same-tick calls (fixes #73531).
- ·**PR #93612** fix(gateway): compute sessions.usage aggregate totals from all sessions, not just the limited page (fixes #76496).
- ·**PR #93615** fix(telegram): recover lone active spooled handler on timeout (#84158).
- ·**PR #93616** Keep key-free web search providers opt-in.
- ·**PR #93298** fix #93044: control-ui webchat double-renders agent replies when dmScope=main.
- ·**PR #93618** fix(feishu): filter temporary card-action-c-\* IDs from reply target to prevent Invalid open_message_id errors (fixes #56818).
- ·**PR #93387** feat(ios): add watch action surface.
- ·**PR #93648** fix(doctor): archive superseded plugin install index conflicts. Related #90418.
- ·**PR #93649** fix(qwen): place DashScope image prompts in user content. Related #92688.
- ·**PR #93650** fix(update): avoid per-Node npm prefixes during self-update. Related #80387.
- ·**PR #93653** fix(skill-workshop): skip helper sessions during auto-capture.
- ·**PR #93654** fix(codex): expose remote node exec as a Codex dynamic tool. Related #92141.
- ·**PR #93662** fix(discord): protect mention aliases in code fences.
- ·**PR #93663** fix(clawdock): open dashboard on published port without starting deps. Related #77344.
- ·**PR #93670** fix(browser): recover stale managed Chrome CDP listener. Related #41750.
- ·**PR #93672** fix(commands): preserve multiline slash skill args. Related #79155.
- ·**PR #93674** fix(browser): accept top-level act fields with nested requests. Related #38762.
- ·**PR #93678** fix(plugins): allow Dreaming sidecar through restrictive memory allowlists. Related #92536.
- ·**PR #93306** fix(status): ignore stale context after model switch.
- ·**PR #93666** fix(control-ui): copy code blocks over plain HTTP via clipboard fallback. Related #93628.
- ·**PR #93629** fix(reply): preserve unsent text-only finals after block pipeline streamed partial content (fixes #81078).
- ·**PR #93690** fix(telegram): dispatch MEDIA directives as attachments. Related #77702.
- ·**PR #93693** fix(gateway): ignore stale sudo scope for root user services. Related #81410.
- ·**PR #93646** fix(agents): return string assistant content in getLastAssistantText.
- ·**PR #93687** fix(i18n): retain Codex error tails in logs.
- ·**PR #93630** fix(heartbeat): bootstrap plugin session targets.
- ·**PR #93658** fix(wizard): preserve existing default model during setup auth choice [AI-assisted]. Related #64129.
- ·**PR #93671** fix(respawn): rewrite pnpm versioned entry paths to stable wrapper (fixes #52313).
- ·**PR #93698** Fix Telegram rich progress detail updates.
- ·**PR #93656** fix(gateway): send approval route notices with write scope. Related #93563.
- ·**PR #93665** fix(gateway): surface codex app-server returned failures.
- ·**PR #93727** fix(context-engine): avoid turn-maintenance lane livelock. Related #77340.
- ·**PR #93681** fix(llm): handle string assistant content on the OpenAI-compatible completion path.
- ·**PR #93722** chore(release): update appcast for 2026.6.8.
- ·**PR #93677** fix(google-meet): declare realtime provider secret inputs. Related #81891.
- ·**PR #92947** fix(qqbot): deliver cron auto-TTS voice by trusting OpenClaw temp root. Related #92816.
- ·**PR #93679** fix(whatsapp): extract GIF metadata and distinguish gifPlayback in media placeholders (fixes #49099).
- ·**PR #93688** fix(minimax): check base_resp envelope errors in TTS provider. Related #76904.
- ·**PR #93714** fix: isolate async model resolution mock from sync mock in flaky test. Related #92117.
- ·**PR #93705** test(macos): cover root command dispatch. Related #83879.
- ·**PR #93711** Keep command text in progress drafts.
- ·**PR #93712** fix: scope assistant avatar override to agent ID. Related #90890.
- ·**PR #93725** fix(usage): prune stale usage cache temp files. Related #78939.
- ·**PR #93726** fix(typing): start typing on reasoning deltas in thinking mode before visible text. Related #79681.
- ·**PR #93716** fix(discord): propagate timeout through channel capabilities diagnostics. Related #77040.
- ·**PR #93729** fix(ollama): preserve configured API during discovery. Related #93710.
- ·**PR #93719** fix: pin plugin workspace dir for sessions.list to avoid O(rows) memo busting. Related #90814.
- ·**PR #93732** fix(agents): preserve re-sent user prompt during compaction transcript rotation.
- ·**PR #93738** fix: break plugin registry type import cycle.
- ·**PR #93740** fix(sessions): release retained locks after takeover.
- ·**PR #93745** fix(usage): reject invalid explicit dates in usage RPC date parsing.
- ·**PR #93746** fix(ui): populate realtime talk provider and transport options from talk.catalog.
- ·**PR #93751** fix(ios): fix quick setup sheet layout design.
- ·**PR #93749** fix(compaction): ignore stale persisted totalTokens in preflight gate.
- ·**PR #93753** fix: correct tautological uppercase check in tool description summarizer.
- ·**PR #89123** refactor: route transcript writers through session seam.
- ·**PR #93758** feat(memory): apply outputDimensionality truncation to local GGUF embeddings (fixes #58765).
- ·**PR #93754** feat(inbound-meta): expose per-turn source modality. Related #50482.
- ·**PR #93767** fix(reasoning-tags): strip MiniMax `mm:` namespaced reasoning tags.
- ·**PR #93772** fix(feishu): recover CJK filenames from JSON file_name field (fixes #81103).
- ·**PR #93773** fix(ui): scope Skill Workshop proposals to selected agent. Related #93760.
- ·**PR #88750** feat(context-engine): pass runtime settings into lifecycle.
- ·**PR #93763** fix(agents): use neutral billing copy for subscription auth. Related #80877.
- ·**PR #93818** List all ClawHub docs in sidebar.
- ·**PR #93779** fix(webchat): skip textarea resize during IME composition to eliminate typing lag. Related #90800.
- ·**PR #93786** fix(plugins): treat refreshable catalogs as requiring runtime discovery (fixes #93775).
- ·**PR #93791** fix(memory): await search-sync before returning results to prevent stale index (fixes #52115).
- ·**PR #93780** fix(google): keep parallel Gemini tool responses in the turn after the model.
- ·**PR #93789** fix(agents): make lane suspension consistent across cooldown-precheck and embedded-runner paths. Related #93036.
- ·**PR #93798** fix(status): show 0 (not ?) for fresh-session context tokens. Related #93771.
- ·**PR #93810** fix(cron): preserve startup overflow catch-up deferrals in start() maintenance pass.
- ·**PR #93811** Strip UTF-8 BOM when reading SKILL.md in quick_validate.
- ·**PR #93803** fix(ui): preserve WebChat visible messages across session switches. Related #80855.
- ·**PR #93792** fix(android): wait for node capability approval before onboarding.
- ·**PR #93796** fix(feishu): paginate wiki node and space listing (#37626).
- ·**PR #93797** fix(browser): use openTab return value to prevent wsUrl race in ensureTabAvailable (fixes #63343).
- ·**PR #93806** fix(reasoning-tags): strip MiniMax mm: tags on silent-reply and streaming paths missed by #93767.
- ·**PR #93691** refactor: add gateway sessions.create lifecycle seam.
- ·**PR #88748** fix(gemini): bridge OAuth profiles into CLI runtime. Related #88742.
- ·**PR #93857** fix(deps): remediate Dependabot alerts.
- ·**PR #93874** fix(slack): recognize MiniMax mm: namespaced reasoning tags in monitor preview.
- ·**PR #93832** feat(providers): add ClawRouter managed proxy.
- ·**PR #93880** fix(macos): preserve approvals migration data.
- ·**PR #93903** fix(cron): reject invalid absolute timestamps.
- ·**PR #93879** fix(update): use configured npm registry for update metadata. Related #79140.
- ·**PR #93924** revert(providers): remove ClawRouter provider.
- ·**PR #93955** fix(telegram): surface rich-message disabled state.
- ·**PR #93881** fix(agents): route BTW through canonical Codex runtime. Related #88902.
- ·**PR #90192** fix(feishu): fetch quoted content before empty-message guard. Related #90177.
- ·**PR #93237** Fix Mattermost open DM validation.
- ·**PR #93945** feat(diagnostics): add SIEM security events.
- ·**PR #87487** fix(cli): clarify mcp list registry scope. Related #65209.
- ·**PR #24661** feat(cohere): add provider plugin.
- ·**PR #93532** Expose verified ClawHub source in skill verify output.
- ·**PR #93538** feat(codex): support app-server network proxy profiles.
- ·**PR #93938** fix(telegram): guard UTF-16 surrogate pairs in outbound chunkers. Related #93921.
- ·**PR #94104** feat(agents): trace compaction summarization model calls.
- ·**PR #94108** Fix package Telegram temp root.
- ·**PR #94113** Fix Telegram package output mount.
- ·**PR #89062** feat(docker): support offline setup reruns. Related #70443.
- ·**PR #93929** fix(secrets): explicitly pass BWS_SERVER_URL to resolver for self-hosted instances. Related #93851.
- ·**PR #90057** Polish Workboard operations view.
- ·**PR #89396** fix(doctor): drop inert legacy cron notify when cron.webhook is unset. Related #44460.
- ·**PR #94138** fix(session): prevent stale finalizer from recreating deleted session rows. Related #40840.
- ·**PR #93739** refactor: add session patch projection seam.
- ·**PR #94178** fix(workspace): skip optional bootstrap files when workspace setup is already completed. Related #83593.
- ·**PR #93363** fix(feishu): enforce account tool family gates.
- ·**PR #93813** fix(codex): keep message registered for internal turns. Related #93750.
- ·**PR #93659** refactor: add session reset delete lifecycle seam.
- ·**PR #93852** ci(release): harden release controls.
- ·**PR #94203** feat(codex): support remote app-server plugins.
- ·**PR #94263** chore: migrate claw-score skill.
- ·**PR #93695** refactor: add compact trim lifecycle seam.
- ·**PR #93114** test: fold lifecycle and package proof into QA Lab.
- ·**PR #93181** test: fold otel smoke into qa e2e.
- ·**PR #93178** test: fold gateway smoke into qa e2e.
- ·**PR #94276** qa-lab: support script-backed evidence scenarios.
- ·**PR #94282** Support owner-qualified ClawHub skill installs.
- ·**PR #93704** refactor: add session cleanup lifecycle seam.
- ·**PR #94296** fix: require all taxonomy coverage ids for a feature - AND not OR.
- ·**PR #92016** fix(plugins): compose live hook registry view for tool-call hooks. Related #91918.
- ·**PR #89596** fix(policy): recognize declared tool allowlists.
- ·**PR #93713** fix: route deleted-agent session purge through lifecycle seam.
- ·**PR #84172** fix(exec): rebuild command authorization on the Tree-sitter command planner.
- ·**PR #94332** docs: add ClawHub namespace claims to sidebar.
- ·**PR #86360** fix(codex): honor bound agent exec host policy.
- ·**PR #73162** fix(slack): remove socket reconnect attempt cap so gateway stays connected indefinitely. Related #72808.
- ·**PR #94156** fix: expose OpenAI image quality and moderation CLI options.
- ·**PR #94350** feat: externalize GMI provider plugin.
- ·**PR #94543** fix(gateway): bound config.get middleware results. Related #94265.
- ·**PR #91409** fix(update): run plugin convergence after RPC git updates.
- ·**PR #94556** chore(extensions): bump tokenjuice to 0.8.1.
- ·**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.
- ·**PR #94421** fix(agents): preserve active compaction retries. Related #94391.
- ·**PR #94428** fix(feishu): preserve replies before error finals. Related #94360.
- ·**PR #93735** refactor: add restart recovery lifecycle seam.
- ·**PR #94591** docs(release): backfill complete contribution records.
- ·**PR #94588** fix(cron): retry isolated setup timeouts.
- ·**PR #94082** fix(cron): prevent lane timeout during long tool execution. Related #94033.
- ·**PR #94551** feat(firecrawl): add keyless scrape support.
- ·**PR #94619** test(ci): stabilize timeout-sensitive shards.
- ·**PR #94048** fix(telegram): set richMessages default to false explicitly in schema. Related #93770, #93794.
- ·**PR #94118** [codex] Fix Telegram rich local Markdown link hrefs. Related #94117.
- ·**PR #94646** refactor(sqlite): land database-first memory and proxy alignment.
- ·**PR #94658** test(sqlite): use shared temp directory helper.
- ·**PR #92135** fix(openai-embedding): preserve openai/ prefix for non-native base URLs. Related #92124.
- ·**PR #93737** refactor: add session maintenance transaction seam.
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.82026-06-16
openclaw 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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·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)
- ·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)
- ·Agent commands: support `/btw` in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162)
- ·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)
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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·Plugins and updates: repair missing required platform packages during managed plugin installs and updates, including omitted Codex platform binaries.
- ·Dependencies: update Hono to 4.12.25 so published OpenClaw and ACPX packages use the patched runtime.
- ·Updates: avoid a false downgrade prompt when the latest tag cannot resolve. (#92911)
Complete contribution record
- ·**PR #92144** fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766.
- ·**PR #92175** fix(channel): harden local setup trust.
- ·**PR #91528** fix #73837: stop after failed Node package installs.
- ·**PR #91561** fix(wizard): report keyless web_search providers as ready, not missing a key.
- ·**PR #92073** fix: handle explicit silent assistant replies. Related #92038.
- ·**PR #91311** Allow Skill Workshop apply through trusted skill symlinks.
- ·**PR #88245** refactor(whatsapp): introduce inbound message contexts.
- ·**PR #92212** refactor: move workspace skill writes to lifecycle.
- ·**PR #92248** Remove ClawHub owner preflight.
- ·**PR #91617** test(sqlite): add state perf query plan harness. Related #91616.
- ·**PR #91626** fix(daemon): keep status readable on unsupported services. Related #25621.
- ·**PR #92295** fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291.
- ·**PR #92087** fix(docker): bundle QA Lab runtime in the image.
- ·**PR #92004** fix(telegram): classify streaming preview edit failures instead of killing the draft.
- ·**PR #91997** fix(telegram): survive getUpdates conflicts in isolated polling ingress.
- ·**PR #92387** fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982.
- ·**PR #92229** Fix doctor preview channel SecretRef resolution. Related #91939.
- ·**PR #92225** Fix disabled heartbeat one-shot cron retries. Related #91775.
- ·**PR #92265** Fix configured DeepSeek model transport inheritance. Related #92148.
- ·**PR #92226** Fail closed for CLI-backed /btw fallback. Related #92168.
- ·**PR #92231** Fix suppressed heartbeat commitment delivery. Related #91948.
- ·**PR #92280** fix(agents): classify structured unsupported model errors. Related #92118.
- ·**PR #92276** Fix OTLP log trace correlation. Related #91865.
- ·**PR #92282** fix(update): hand off Linux service auto-updates. Related #91823.
- ·**PR #92235** fix: resolve managed SecretRef provider auth. Related #92097.
- ·**PR #92293** Fix provider static model fallback resolution. Related #92009.
- ·**PR #92343** fix(agent): continue after source message tool replies. Related #92169.
- ·**PR #92350** fix(codex): preserve memory prompt registration.
- ·**PR #92290** fix: clarify gateway SecretRef auth diagnostics. Related #91815.
- ·**PR #92286** fix: repair rejected Anthropic thinking replay. Related #91983.
- ·**PR #92281** Fix Telegram spooled buffered replay. Related #92129.
- ·**PR #47493** fix(doctor): show per-step progress spinners during update.
- ·**PR #92416** fix(outbound): honor top-level image param as send media source (#92407).
- ·**PR #92508** fix(sandbox): render CLI skill prompts from materialized paths.
- ·**PR #92540** chore: fix esbuild production audit failure.
- ·**PR #91484** Add QA evidence artifact output.
- ·**PR #91500** Add QA scorecard taxonomy validation.
- ·**PR #84082** fix(telegram): allow expandable blockquotes.
- ·**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.
- ·**PR #92566** Fix lifecycle timeout cleanup after leader exit.
- ·**PR #92311** ci: split plugin ClawHub publishing paths.
- ·**PR #92216** fix(gateway): mirror hidden commentary-phase assistant events.
- ·**PR #87596** fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593.
- ·**PR #88993** Expose paged channel action results.
- ·**PR #90326** fix(fireworks): resolve catalog model params from plugin.json via core.
- ·**PR #86629** fix(doctor): warn for untrusted external Discord plugin. Related #83212.
- ·**PR #90242** fix(providers): skip unreadable Mistral tool schemas.
- ·**PR #92498** fix(reply): mirror same-channel Slack final replies. Related #92489.
- ·**PR #92083** fix(channels): default boundary logger for swallowed progress-draft start errors.
- ·**PR #92564** fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553.
- ·**PR #89827** docs: UX-013 — design system documentation.
- ·**PR #89615** feat(ui): hide empty workboard columns.
- ·**PR #89822** fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes.
- ·**PR #92618** fix #92218: memory_search tool disabled with QMD backend.
- ·**PR #92608** docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768).
- ·**PR #92605** fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470.
- ·**PR #92593** #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters.
- ·**PR #92606** Run Vitest and Playwright scenarios from qa suite.
- ·**PR #89629** feat(hooks): per-turn usageState on reply_payload_sending.
- ·**PR #89835** feat(usage): native templated /usage full footer renderer.
- ·**PR #92247** fix(models): bound /models and models list catalog loading. Related #91809.
- ·**PR #92646** fix: require admin for HTTP model overrides.
- ·**PR #90686** fix(gateway): honor profile auth for SecretRef model entries. Related #90685.
- ·**PR #92651** fix: require admin for HTTP session kills.
- ·**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.
- ·**PR #92631** fix(agents): pause yielded subagent runs whose terminal also signals abort. Related #92448.
- ·**PR #92622** fix(ui): preserve WebChat backscroll during streaming. Related #92386.
- ·**PR #92627** fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611).
- ·**PR #92146** fix(cron): preserve yielded media completions. Related #92120.
- ·**PR #90116** fix: add Claude Haiku 4.5 static catalog entries. Related #90088.
- ·**PR #91137** fix(channels): keep contributed message-tool schema properties optional. Related #67852.
- ·**PR #75393** fix(copilot): disable eager tool streaming for Claude 4.5. Related #75348.
- ·**PR #92628** fix #73713: surface nested embedding fetch failures.
- ·**PR #92510** fix(gateway): reject unknown OpenAI agent selectors. Related #92504.
- ·**PR #91453** fix #91420: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none.
- ·**PR #92468** fix #92453: add session identity to runtime prompt.
- ·**PR #89943** fix(slack): emit message_sent hook on outbound delivery (mirror Telegram). Related #89942.
- ·**PR #92668** fix(docs): finalize i18n postprocess before skip.
- ·**PR #92673** fix: split image setup and request timeout semantics.
- ·**PR #92162** #92069: fix(cli): usage errors exit 0.
- ·**PR #91185** fix(browser): remove dead requireRef import and void expression in register.navigation.ts. Related #83878.
- ·**PR #90706** fix(OpenAI Responses): disable item id replay for storeless providers. Related #89728.
- ·**PR #90247** fix(disk-space): promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245.
- ·**PR #92657** feat(usage): ship built-in /usage full footer.
- ·**PR #90464** perf(terminal): reuse ANSI scanner during truncation.
- ·**PR #91281** fix(feishu): clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911.
- ·**PR #92639** fix(memory): keep memory_search in transient qmd mode. Related #92464.
- ·**PR #91287** fix(cron): de-duplicate main-session systemEvent in heartbeat model input. Related #44922.
- ·**PR #91246** Fix webchat media completion handoff. Related #91003.
- ·**PR #91353** fix(ui): preserve /reset soft args in Control UI dispatch. Related #91316.
- ·**PR #92679** feat(telegram): send rich message text.
- ·**PR #92705** fix(ui): restore sidebar session picker interactivity above desktop workbench. Related #92707.
- ·**PR #91218** fix(google): strip provider prefix from Vertex model path.
- ·**PR #92669** feat: support /btw in CLI-backed sessions.
- ·**PR #91357** fix(gateway): mark active main sessions before restart shutdown aborts. Related #91355.
- ·**PR #91066** fix(parallel): send openclaw-parallel User-Agent on free Search MCP requests.
- ·**PR #90658** fix(ui): preserve dashboard session parent lineage when session list is stale. Related #90623.
- ·**PR #92552** fix(ios): force stale foreground gateway reconnects.
- ·**PR #89421** fix(telegram): expose thread create CLI remap. Related #81581.
- ·**PR #92779** fix: start workspace files collapsed. Related #90359.
- ·**PR #91247** fix(state): avoid sqlite wal on nfs state volumes. Related #90491.
- ·**PR #92773** fix(tui): show resolved canonical model ref in /model confirmation.
- ·**PR #92752** fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff. Related #92742.
- ·**PR #92735** fix(markdown-core): treat Infinity chunk limit as unbounded, not 1. Related #92734.
- ·**PR #92695** docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted).
- ·**PR #92766** clarify before_install hook scope. Related #91593.
- ·**PR #92677** docs(nodes): add openclaw.json config example to Nodes overview. Related #92662.
- ·**PR #92513** Honor WhatsApp configured ACP bindings. Related #92449.
- ·**PR #92650** fix #92465: split OpenAI 431 embedding batches.
- ·**PR #92796** feat(providers): add GLM-5.2 support.
- ·**PR #92788** fix(sessions): derive channel from account-scoped DM session keys in send-policy.
- ·**PR #92590** Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551.
- ·**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.
- ·**PR #92483** fix(matrix): validate CLI numeric option ranges. Related #92482.
- ·**PR #92490** fix(canvas): validate CLI numeric options. Related #92487.
- ·**PR #92802** fix(ui): reflow composer beside workspace rail.
- ·**PR #91059** fix(configure): mask gateway token input in CLI wizard prompt.
- ·**PR #91143** fix(ports): only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142.
- ·**PR #91110** fix(tavily): keep web_search contract executable. Related #91096.
- ·**PR #91181** fix(daemon): strip schtasks backslash prefix when matching gateway task name. Related #90494.
- ·**PR #91187** fix(cron): isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991.
- ·**PR #92807** fix(heartbeat): route outbound mirror to isolated session key.
- ·**PR #92745** fix(memory): explain skipped short-term recall hits. Related #92706.
- ·**PR #92488** fix(gateway): forward image-only input on /v1/responses (parity with chat completions).
- ·**PR #92604** fix(status): avoid cumulative usage for context percent. Related #83526.
- ·**PR #92810** fix: reject unvalidated voice media streams.
- ·**PR #92800** fix(telegram): answer callback queries before sequentialize delays them. Related #42156.
- ·**PR #92547** fix(nodes): surface pending reapproval diagnostics.
- ·**PR #92690** fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes #92683).
- ·**PR #92806** fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671).
- ·**PR #92778** fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480).
- ·**PR #92795** fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009).
- ·**PR #92746** fix(gateway): preserve active runs during plugin finalization.
- ·**PR #92820** UI: localize Logs tab labels.
- ·**PR #92825** fix(telegram): preserve command callbacks while prefixing generic callback data. Related #54909.
- ·**PR #90889** fix: cap session context overrides by model window. Related #39857.
- ·**PR #92830** fix(copilot): strip replayed thinking blocks. Related #81520.
- ·**PR #92834** feat(browser): extend --labels overlay to full-page and element captures.
- ·**PR #92836** fix(discord): raise thread title timeout and tokens to fit reasoning models.
- ·**PR #92095** fix #92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink.
- ·**PR #92801** fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564).
- ·**PR #89736** fix(status): render sub-1000 token counts as plain integers. Related #89735.
- ·**PR #92792** fix(agents): catch malformed image blocks in sanitizeContentBlocksImages.
- ·**PR #92555** ci: gate stable releases on Windows companion assets.
- ·**PR #91824** fix(agents): add usage guidance to sessions_spawn tool description (fixes #91814).
- ·**PR #92840** fix(feishu): await HTTP server shutdown during monitor cleanup. Related #48183.
- ·**PR #91632** feat: add tool search directory mode.
- ·**PR #92823** fix(qqbot): surface failed media sends.
- ·**PR #92849** fix(tailscale): preserve parse errors for malformed JSON.
- ·**PR #92045** Fix diagnostics OTEL runtime install trust.
- ·**PR #92853** fix(acp): accept MCP date protocolVersion in ACP server. Related #56102.
- ·**PR #92854** fix(hooks): reject slug-generator error payloads.
- ·**PR #92855** fix(ui): repair iOS Safari chat viewport handling.
- ·**PR #91586** fix(update): continue after package doctor warnings.
- ·**PR #92862** fix(feishu): target typing reaction on inbound message.
- ·**PR #92861** fix(lobster): surface workflow path errors. Related #68101.
- ·**PR #69975** fix(cli): clarify --tz help text for offset-less --at values. Related #59456.
- ·**PR #90682** fix(openai): preserve opaque reasoning transcript fields. Related #90093.
- ·**PR #92373** fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes #92360).
- ·**PR #87346** fix(anthropic): merge consecutive assistant turns in turn validation. Related #87329.
- ·**PR #92896** fix(anthropic): quarantine invalid direct tool schemas.
- ·**PR #90739** fix(active-memory): preserve verbose recall summaries. Related #90454.
- ·**PR #92558** Simplify QA scorecard mapping shape.
- ·**PR #92876** fix(memory-wiki): stop flagging raw source pages as malformed.
- ·**PR #92908** fix(providers): quarantine unreadable Anthropic payload tools.
- ·**PR #92881** fix(memory): preserve reindex rollback recovery.
- ·**PR #92921** fix(openai): quarantine unreadable tool schemas.
- ·**PR #92550** Fold Telegram RTT sampling into live QA evidence.
- ·**PR #92824** fix(media): route OAuth image defaults through Codex. Related #87168.
- ·**PR #92928** fix(openai): guard post-hook tool payloads.
- ·**PR #92814** fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837).
- ·**PR #89055** fix: restart gateway after isolated cron setup timeout.
- ·**PR #90574** fix(openai): omit gpt-5.5 tool reasoning effort.
- ·**PR #92941** fix(openai): recover invalid reasoning signatures.
- ·**PR #92914** fix(agents): clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412.
- ·**PR #92573** fix: preserve config-selected subagent model overrides. Related #92486.
- ·**PR #92852** fix(gateway): fall back to polling when config watcher exhausts inotify retries. Related #92851.
- ·**PR #92362** fix(gateway): build row metadata context for single session lists.
- ·**PR #92897** fix(memory-wiki): tolerate public artifacts without agent ids. Related #92207.
- ·**PR #92002** fix(lmstudio): deliver thinking "off" to binary-thinking models. Related #91913.
- ·**PR #92738** Forward suppressed-source progress for message-tool channel replies.
- ·**PR #92916** #92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized.
- ·**PR #90936** fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764.
- ·**PR #93009** fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973).
- ·**PR #92318** fix(cron): require explicit message target proof.
- ·**PR #93022** fix(gateway): repair usage cost aggregation across agents.
- ·**PR #93159** fix(tui): keep parent stdin paused after exit.
- ·**PR #93616** Keep key-free web search providers opt-in.
- ·**PR #93164** fix(telegram): preserve rich markdown line breaks.
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.2pre-release2026-06-16
openclaw 2026.6.8-beta.2
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·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)
- ·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)
- ·Agent commands: support `/btw` in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162)
- ·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)
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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·Plugins and updates: repair missing required platform packages during managed plugin installs and updates, including omitted Codex platform binaries.
- ·Dependencies: update Hono to 4.12.25 so published OpenClaw and ACPX packages use the patched runtime.
- ·Updates: avoid a false downgrade prompt when the latest tag cannot resolve. (#92911)
Complete contribution record
- ·**PR #92144** fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766.
- ·**PR #92175** fix(channel): harden local setup trust.
- ·**PR #91528** fix #73837: stop after failed Node package installs.
- ·**PR #91561** fix(wizard): report keyless web_search providers as ready, not missing a key.
- ·**PR #92073** fix: handle explicit silent assistant replies. Related #92038.
- ·**PR #91311** Allow Skill Workshop apply through trusted skill symlinks.
- ·**PR #88245** refactor(whatsapp): introduce inbound message contexts.
- ·**PR #92212** refactor: move workspace skill writes to lifecycle.
- ·**PR #92248** Remove ClawHub owner preflight.
- ·**PR #91617** test(sqlite): add state perf query plan harness. Related #91616.
- ·**PR #91626** fix(daemon): keep status readable on unsupported services. Related #25621.
- ·**PR #92295** fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291.
- ·**PR #92087** fix(docker): bundle QA Lab runtime in the image.
- ·**PR #92004** fix(telegram): classify streaming preview edit failures instead of killing the draft.
- ·**PR #91997** fix(telegram): survive getUpdates conflicts in isolated polling ingress.
- ·**PR #92387** fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982.
- ·**PR #92229** Fix doctor preview channel SecretRef resolution. Related #91939.
- ·**PR #92225** Fix disabled heartbeat one-shot cron retries. Related #91775.
- ·**PR #92265** Fix configured DeepSeek model transport inheritance. Related #92148.
- ·**PR #92226** Fail closed for CLI-backed /btw fallback. Related #92168.
- ·**PR #92231** Fix suppressed heartbeat commitment delivery. Related #91948.
- ·**PR #92280** fix(agents): classify structured unsupported model errors. Related #92118.
- ·**PR #92276** Fix OTLP log trace correlation. Related #91865.
- ·**PR #92282** fix(update): hand off Linux service auto-updates. Related #91823.
- ·**PR #92235** fix: resolve managed SecretRef provider auth. Related #92097.
- ·**PR #92293** Fix provider static model fallback resolution. Related #92009.
- ·**PR #92343** fix(agent): continue after source message tool replies. Related #92169.
- ·**PR #92350** fix(codex): preserve memory prompt registration.
- ·**PR #92290** fix: clarify gateway SecretRef auth diagnostics. Related #91815.
- ·**PR #92286** fix: repair rejected Anthropic thinking replay. Related #91983.
- ·**PR #92281** Fix Telegram spooled buffered replay. Related #92129.
- ·**PR #47493** fix(doctor): show per-step progress spinners during update.
- ·**PR #92416** fix(outbound): honor top-level image param as send media source (#92407).
- ·**PR #92508** fix(sandbox): render CLI skill prompts from materialized paths.
- ·**PR #92540** chore: fix esbuild production audit failure.
- ·**PR #91484** Add QA evidence artifact output.
- ·**PR #91500** Add QA scorecard taxonomy validation.
- ·**PR #84082** fix(telegram): allow expandable blockquotes.
- ·**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.
- ·**PR #92566** Fix lifecycle timeout cleanup after leader exit.
- ·**PR #92311** ci: split plugin ClawHub publishing paths.
- ·**PR #92216** fix(gateway): mirror hidden commentary-phase assistant events.
- ·**PR #87596** fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593.
- ·**PR #88993** Expose paged channel action results.
- ·**PR #90326** fix(fireworks): resolve catalog model params from plugin.json via core.
- ·**PR #86629** fix(doctor): warn for untrusted external Discord plugin. Related #83212.
- ·**PR #90242** fix(providers): skip unreadable Mistral tool schemas.
- ·**PR #92498** fix(reply): mirror same-channel Slack final replies. Related #92489.
- ·**PR #92083** fix(channels): default boundary logger for swallowed progress-draft start errors.
- ·**PR #92564** fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553.
- ·**PR #89827** docs: UX-013 — design system documentation.
- ·**PR #89615** feat(ui): hide empty workboard columns.
- ·**PR #89822** fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes.
- ·**PR #92618** fix #92218: memory_search tool disabled with QMD backend.
- ·**PR #92608** docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768).
- ·**PR #92605** fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470.
- ·**PR #92593** #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters.
- ·**PR #92606** Run Vitest and Playwright scenarios from qa suite.
- ·**PR #89629** feat(hooks): per-turn usageState on reply_payload_sending.
- ·**PR #89835** feat(usage): native templated /usage full footer renderer.
- ·**PR #92247** fix(models): bound /models and models list catalog loading. Related #91809.
- ·**PR #92646** fix: require admin for HTTP model overrides.
- ·**PR #90686** fix(gateway): honor profile auth for SecretRef model entries. Related #90685.
- ·**PR #92651** fix: require admin for HTTP session kills.
- ·**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.
- ·**PR #92631** fix(agents): pause yielded subagent runs whose terminal also signals abort. Related #92448.
- ·**PR #92622** fix(ui): preserve WebChat backscroll during streaming. Related #92386.
- ·**PR #92627** fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611).
- ·**PR #92146** fix(cron): preserve yielded media completions. Related #92120.
- ·**PR #90116** fix: add Claude Haiku 4.5 static catalog entries. Related #90088.
- ·**PR #91137** fix(channels): keep contributed message-tool schema properties optional. Related #67852.
- ·**PR #75393** fix(copilot): disable eager tool streaming for Claude 4.5. Related #75348.
- ·**PR #92628** fix #73713: surface nested embedding fetch failures.
- ·**PR #92510** fix(gateway): reject unknown OpenAI agent selectors. Related #92504.
- ·**PR #91453** fix #91420: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none.
- ·**PR #92468** fix #92453: add session identity to runtime prompt.
- ·**PR #89943** fix(slack): emit message_sent hook on outbound delivery (mirror Telegram). Related #89942.
- ·**PR #92668** fix(docs): finalize i18n postprocess before skip.
- ·**PR #92673** fix: split image setup and request timeout semantics.
- ·**PR #92162** #92069: fix(cli): usage errors exit 0.
- ·**PR #91185** fix(browser): remove dead requireRef import and void expression in register.navigation.ts. Related #83878.
- ·**PR #90706** fix(OpenAI Responses): disable item id replay for storeless providers. Related #89728.
- ·**PR #90247** fix(disk-space): promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245.
- ·**PR #92657** feat(usage): ship built-in /usage full footer.
- ·**PR #90464** perf(terminal): reuse ANSI scanner during truncation.
- ·**PR #91281** fix(feishu): clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911.
- ·**PR #92639** fix(memory): keep memory_search in transient qmd mode. Related #92464.
- ·**PR #91287** fix(cron): de-duplicate main-session systemEvent in heartbeat model input. Related #44922.
- ·**PR #91246** Fix webchat media completion handoff. Related #91003.
- ·**PR #91353** fix(ui): preserve /reset soft args in Control UI dispatch. Related #91316.
- ·**PR #92679** feat(telegram): send rich message text.
- ·**PR #92705** fix(ui): restore sidebar session picker interactivity above desktop workbench. Related #92707.
- ·**PR #91218** fix(google): strip provider prefix from Vertex model path.
- ·**PR #92669** feat: support /btw in CLI-backed sessions.
- ·**PR #91357** fix(gateway): mark active main sessions before restart shutdown aborts. Related #91355.
- ·**PR #91066** fix(parallel): send openclaw-parallel User-Agent on free Search MCP requests.
- ·**PR #90658** fix(ui): preserve dashboard session parent lineage when session list is stale. Related #90623.
- ·**PR #92552** fix(ios): force stale foreground gateway reconnects.
- ·**PR #89421** fix(telegram): expose thread create CLI remap. Related #81581.
- ·**PR #92779** fix: start workspace files collapsed. Related #90359.
- ·**PR #91247** fix(state): avoid sqlite wal on nfs state volumes. Related #90491.
- ·**PR #92773** fix(tui): show resolved canonical model ref in /model confirmation.
- ·**PR #92752** fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff. Related #92742.
- ·**PR #92735** fix(markdown-core): treat Infinity chunk limit as unbounded, not 1. Related #92734.
- ·**PR #92695** docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted).
- ·**PR #92766** clarify before_install hook scope. Related #91593.
- ·**PR #92677** docs(nodes): add openclaw.json config example to Nodes overview. Related #92662.
- ·**PR #92513** Honor WhatsApp configured ACP bindings. Related #92449.
- ·**PR #92650** fix #92465: split OpenAI 431 embedding batches.
- ·**PR #92796** feat(providers): add GLM-5.2 support.
- ·**PR #92788** fix(sessions): derive channel from account-scoped DM session keys in send-policy.
- ·**PR #92590** Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551.
- ·**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.
- ·**PR #92483** fix(matrix): validate CLI numeric option ranges. Related #92482.
- ·**PR #92490** fix(canvas): validate CLI numeric options. Related #92487.
- ·**PR #92802** fix(ui): reflow composer beside workspace rail.
- ·**PR #91059** fix(configure): mask gateway token input in CLI wizard prompt.
- ·**PR #91143** fix(ports): only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142.
- ·**PR #91110** fix(tavily): keep web_search contract executable. Related #91096.
- ·**PR #91181** fix(daemon): strip schtasks backslash prefix when matching gateway task name. Related #90494.
- ·**PR #91187** fix(cron): isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991.
- ·**PR #92807** fix(heartbeat): route outbound mirror to isolated session key.
- ·**PR #92745** fix(memory): explain skipped short-term recall hits. Related #92706.
- ·**PR #92488** fix(gateway): forward image-only input on /v1/responses (parity with chat completions).
- ·**PR #92604** fix(status): avoid cumulative usage for context percent. Related #83526.
- ·**PR #92810** fix: reject unvalidated voice media streams.
- ·**PR #92800** fix(telegram): answer callback queries before sequentialize delays them. Related #42156.
- ·**PR #92547** fix(nodes): surface pending reapproval diagnostics.
- ·**PR #92690** fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes #92683).
- ·**PR #92806** fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671).
- ·**PR #92778** fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480).
- ·**PR #92795** fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009).
- ·**PR #92746** fix(gateway): preserve active runs during plugin finalization.
- ·**PR #92820** UI: localize Logs tab labels.
- ·**PR #92825** fix(telegram): preserve command callbacks while prefixing generic callback data. Related #54909.
- ·**PR #90889** fix: cap session context overrides by model window. Related #39857.
- ·**PR #92830** fix(copilot): strip replayed thinking blocks. Related #81520.
- ·**PR #92834** feat(browser): extend --labels overlay to full-page and element captures.
- ·**PR #92836** fix(discord): raise thread title timeout and tokens to fit reasoning models.
- ·**PR #92095** fix #92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink.
- ·**PR #92801** fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564).
- ·**PR #89736** fix(status): render sub-1000 token counts as plain integers. Related #89735.
- ·**PR #92792** fix(agents): catch malformed image blocks in sanitizeContentBlocksImages.
- ·**PR #92555** ci: gate stable releases on Windows companion assets.
- ·**PR #91824** fix(agents): add usage guidance to sessions_spawn tool description (fixes #91814).
- ·**PR #92840** fix(feishu): await HTTP server shutdown during monitor cleanup. Related #48183.
- ·**PR #91632** feat: add tool search directory mode.
- ·**PR #92823** fix(qqbot): surface failed media sends.
- ·**PR #92849** fix(tailscale): preserve parse errors for malformed JSON.
- ·**PR #92045** Fix diagnostics OTEL runtime install trust.
- ·**PR #92853** fix(acp): accept MCP date protocolVersion in ACP server. Related #56102.
- ·**PR #92854** fix(hooks): reject slug-generator error payloads.
- ·**PR #92855** fix(ui): repair iOS Safari chat viewport handling.
- ·**PR #91586** fix(update): continue after package doctor warnings.
- ·**PR #92862** fix(feishu): target typing reaction on inbound message.
- ·**PR #92861** fix(lobster): surface workflow path errors. Related #68101.
- ·**PR #69975** fix(cli): clarify --tz help text for offset-less --at values. Related #59456.
- ·**PR #90682** fix(openai): preserve opaque reasoning transcript fields. Related #90093.
- ·**PR #92373** fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes #92360).
- ·**PR #87346** fix(anthropic): merge consecutive assistant turns in turn validation. Related #87329.
- ·**PR #92896** fix(anthropic): quarantine invalid direct tool schemas.
- ·**PR #90739** fix(active-memory): preserve verbose recall summaries. Related #90454.
- ·**PR #92558** Simplify QA scorecard mapping shape.
- ·**PR #92876** fix(memory-wiki): stop flagging raw source pages as malformed.
- ·**PR #92908** fix(providers): quarantine unreadable Anthropic payload tools.
- ·**PR #92881** fix(memory): preserve reindex rollback recovery.
- ·**PR #92921** fix(openai): quarantine unreadable tool schemas.
- ·**PR #92550** Fold Telegram RTT sampling into live QA evidence.
- ·**PR #92824** fix(media): route OAuth image defaults through Codex. Related #87168.
- ·**PR #92928** fix(openai): guard post-hook tool payloads.
- ·**PR #92814** fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837).
- ·**PR #89055** fix: restart gateway after isolated cron setup timeout.
- ·**PR #90574** fix(openai): omit gpt-5.5 tool reasoning effort.
- ·**PR #92941** fix(openai): recover invalid reasoning signatures.
- ·**PR #92914** fix(agents): clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412.
- ·**PR #92573** fix: preserve config-selected subagent model overrides. Related #92486.
- ·**PR #92852** fix(gateway): fall back to polling when config watcher exhausts inotify retries. Related #92851.
- ·**PR #92362** fix(gateway): build row metadata context for single session lists.
- ·**PR #92897** fix(memory-wiki): tolerate public artifacts without agent ids. Related #92207.
- ·**PR #92002** fix(lmstudio): deliver thinking "off" to binary-thinking models. Related #91913.
- ·**PR #92738** Forward suppressed-source progress for message-tool channel replies.
- ·**PR #92916** #92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized.
- ·**PR #90936** fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764.
- ·**PR #93009** fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973).
- ·**PR #92318** fix(cron): require explicit message target proof.
- ·**PR #93022** fix(gateway): repair usage cost aggregation across agents.
- ·**PR #93159** fix(tui): keep parent stdin paused after exit.
- ·**PR #93616** Keep key-free web search providers opt-in.
- ·**PR #93164** fix(telegram): preserve rich markdown line breaks.
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.1pre-release2026-06-14
openclaw 2026.6.8-beta.1
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·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)
- ·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)
- ·Agent commands: support `/btw` in CLI-backed sessions and keep CLI usage-error exits classified as usage failures instead of successful runs. (#92669, #92162)
- ·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)
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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·Plugins and updates: repair missing required platform packages during managed plugin installs and updates, including omitted Codex platform binaries.
- ·Dependencies: update Hono to 4.12.25 so published OpenClaw and ACPX packages use the patched runtime.
- ·Updates: avoid a false downgrade prompt when the latest tag cannot resolve. (#92911)
Complete contribution record
- ·**PR #92144** fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766.
- ·**PR #92175** fix(channel): harden local setup trust.
- ·**PR #91528** fix #73837: stop after failed Node package installs.
- ·**PR #91561** fix(wizard): report keyless web_search providers as ready, not missing a key.
- ·**PR #92073** fix: handle explicit silent assistant replies. Related #92038.
- ·**PR #91311** Allow Skill Workshop apply through trusted skill symlinks.
- ·**PR #88245** refactor(whatsapp): introduce inbound message contexts.
- ·**PR #92212** refactor: move workspace skill writes to lifecycle.
- ·**PR #92248** Remove ClawHub owner preflight.
- ·**PR #91617** test(sqlite): add state perf query plan harness. Related #91616.
- ·**PR #91626** fix(daemon): keep status readable on unsupported services. Related #25621.
- ·**PR #92295** fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291.
- ·**PR #92087** fix(docker): bundle QA Lab runtime in the image.
- ·**PR #92004** fix(telegram): classify streaming preview edit failures instead of killing the draft.
- ·**PR #91997** fix(telegram): survive getUpdates conflicts in isolated polling ingress.
- ·**PR #92387** fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982.
- ·**PR #92229** Fix doctor preview channel SecretRef resolution. Related #91939.
- ·**PR #92225** Fix disabled heartbeat one-shot cron retries. Related #91775.
- ·**PR #92265** Fix configured DeepSeek model transport inheritance. Related #92148.
- ·**PR #92226** Fail closed for CLI-backed /btw fallback. Related #92168.
- ·**PR #92231** Fix suppressed heartbeat commitment delivery. Related #91948.
- ·**PR #92280** fix(agents): classify structured unsupported model errors. Related #92118.
- ·**PR #92276** Fix OTLP log trace correlation. Related #91865.
- ·**PR #92282** fix(update): hand off Linux service auto-updates. Related #91823.
- ·**PR #92235** fix: resolve managed SecretRef provider auth. Related #92097.
- ·**PR #92293** Fix provider static model fallback resolution. Related #92009.
- ·**PR #92343** fix(agent): continue after source message tool replies. Related #92169.
- ·**PR #92350** fix(codex): preserve memory prompt registration.
- ·**PR #92290** fix: clarify gateway SecretRef auth diagnostics. Related #91815.
- ·**PR #92286** fix: repair rejected Anthropic thinking replay. Related #91983.
- ·**PR #92281** Fix Telegram spooled buffered replay. Related #92129.
- ·**PR #47493** fix(doctor): show per-step progress spinners during update.
- ·**PR #92416** fix(outbound): honor top-level image param as send media source (#92407).
- ·**PR #92508** fix(sandbox): render CLI skill prompts from materialized paths.
- ·**PR #92540** chore: fix esbuild production audit failure.
- ·**PR #91484** Add QA evidence artifact output.
- ·**PR #91500** Add QA scorecard taxonomy validation.
- ·**PR #84082** fix(telegram): allow expandable blockquotes.
- ·**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.
- ·**PR #92566** Fix lifecycle timeout cleanup after leader exit.
- ·**PR #92311** ci: split plugin ClawHub publishing paths.
- ·**PR #92216** fix(gateway): mirror hidden commentary-phase assistant events.
- ·**PR #87596** fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593.
- ·**PR #88993** Expose paged channel action results.
- ·**PR #90326** fix(fireworks): resolve catalog model params from plugin.json via core.
- ·**PR #86629** fix(doctor): warn for untrusted external Discord plugin. Related #83212.
- ·**PR #90242** fix(providers): skip unreadable Mistral tool schemas.
- ·**PR #92498** fix(reply): mirror same-channel Slack final replies. Related #92489.
- ·**PR #92083** fix(channels): default boundary logger for swallowed progress-draft start errors.
- ·**PR #92564** fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553.
- ·**PR #89827** docs: UX-013 — design system documentation.
- ·**PR #89615** feat(ui): hide empty workboard columns.
- ·**PR #89822** fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes.
- ·**PR #92618** fix #92218: memory_search tool disabled with QMD backend.
- ·**PR #92608** docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768).
- ·**PR #92605** fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470.
- ·**PR #92593** #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters.
- ·**PR #92606** Run Vitest and Playwright scenarios from qa suite.
- ·**PR #89629** feat(hooks): per-turn usageState on reply_payload_sending.
- ·**PR #89835** feat(usage): native templated /usage full footer renderer.
- ·**PR #92247** fix(models): bound /models and models list catalog loading. Related #91809.
- ·**PR #92646** fix: require admin for HTTP model overrides.
- ·**PR #90686** fix(gateway): honor profile auth for SecretRef model entries. Related #90685.
- ·**PR #92651** fix: require admin for HTTP session kills.
- ·**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.
- ·**PR #92631** fix(agents): pause yielded subagent runs whose terminal also signals abort. Related #92448.
- ·**PR #92622** fix(ui): preserve WebChat backscroll during streaming. Related #92386.
- ·**PR #92627** fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes #92611).
- ·**PR #92146** fix(cron): preserve yielded media completions. Related #92120.
- ·**PR #90116** fix: add Claude Haiku 4.5 static catalog entries. Related #90088.
- ·**PR #91137** fix(channels): keep contributed message-tool schema properties optional. Related #67852.
- ·**PR #75393** fix(copilot): disable eager tool streaming for Claude 4.5. Related #75348.
- ·**PR #92628** fix #73713: surface nested embedding fetch failures.
- ·**PR #92510** fix(gateway): reject unknown OpenAI agent selectors. Related #92504.
- ·**PR #91453** fix #91420: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none.
- ·**PR #92468** fix #92453: add session identity to runtime prompt.
- ·**PR #89943** fix(slack): emit message_sent hook on outbound delivery (mirror Telegram). Related #89942.
- ·**PR #92668** fix(docs): finalize i18n postprocess before skip.
- ·**PR #92673** fix: split image setup and request timeout semantics.
- ·**PR #92162** #92069: fix(cli): usage errors exit 0.
- ·**PR #91185** fix(browser): remove dead requireRef import and void expression in register.navigation.ts. Related #83878.
- ·**PR #90706** fix(OpenAI Responses): disable item id replay for storeless providers. Related #89728.
- ·**PR #90247** fix(disk-space): promote 1024 MiB to 1.0 GiB in disk warnings. Related #90245.
- ·**PR #92657** feat(usage): ship built-in /usage full footer.
- ·**PR #90464** perf(terminal): reuse ANSI scanner during truncation.
- ·**PR #91281** fix(feishu): clear client cache when SDK is replaced via setFeishuClientRuntimeForTest. Related #83911.
- ·**PR #92639** fix(memory): keep memory_search in transient qmd mode. Related #92464.
- ·**PR #91287** fix(cron): de-duplicate main-session systemEvent in heartbeat model input. Related #44922.
- ·**PR #91246** Fix webchat media completion handoff. Related #91003.
- ·**PR #91353** fix(ui): preserve /reset soft args in Control UI dispatch. Related #91316.
- ·**PR #92679** feat(telegram): send rich message text.
- ·**PR #92705** fix(ui): restore sidebar session picker interactivity above desktop workbench. Related #92707.
- ·**PR #91218** fix(google): strip provider prefix from Vertex model path.
- ·**PR #92669** feat: support /btw in CLI-backed sessions.
- ·**PR #91357** fix(gateway): mark active main sessions before restart shutdown aborts. Related #91355.
- ·**PR #91066** fix(parallel): send openclaw-parallel User-Agent on free Search MCP requests.
- ·**PR #90658** fix(ui): preserve dashboard session parent lineage when session list is stale. Related #90623.
- ·**PR #92552** fix(ios): force stale foreground gateway reconnects.
- ·**PR #89421** fix(telegram): expose thread create CLI remap. Related #81581.
- ·**PR #92779** fix: start workspace files collapsed. Related #90359.
- ·**PR #91247** fix(state): avoid sqlite wal on nfs state volumes. Related #90491.
- ·**PR #92773** fix(tui): show resolved canonical model ref in /model confirmation.
- ·**PR #92752** fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff. Related #92742.
- ·**PR #92735** fix(markdown-core): treat Infinity chunk limit as unbounded, not 1. Related #92734.
- ·**PR #92695** docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted).
- ·**PR #92766** clarify before_install hook scope. Related #91593.
- ·**PR #92677** docs(nodes): add openclaw.json config example to Nodes overview. Related #92662.
- ·**PR #92513** Honor WhatsApp configured ACP bindings. Related #92449.
- ·**PR #92650** fix #92465: split OpenAI 431 embedding batches.
- ·**PR #92796** feat(providers): add GLM-5.2 support.
- ·**PR #92788** fix(sessions): derive channel from account-scoped DM session keys in send-policy.
- ·**PR #92590** Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release). Related #92551.
- ·**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.
- ·**PR #92483** fix(matrix): validate CLI numeric option ranges. Related #92482.
- ·**PR #92490** fix(canvas): validate CLI numeric options. Related #92487.
- ·**PR #92802** fix(ui): reflow composer beside workspace rail.
- ·**PR #91059** fix(configure): mask gateway token input in CLI wizard prompt.
- ·**PR #91143** fix(ports): only classify SSH -L/-R tunnels on the queried port as ssh. Related #91142.
- ·**PR #91110** fix(tavily): keep web_search contract executable. Related #91096.
- ·**PR #91181** fix(daemon): strip schtasks backslash prefix when matching gateway task name. Related #90494.
- ·**PR #91187** fix(cron): isolate auth profile failure policy so cron runs don't pollute shared cooldowns. Related #90991.
- ·**PR #92807** fix(heartbeat): route outbound mirror to isolated session key.
- ·**PR #92745** fix(memory): explain skipped short-term recall hits. Related #92706.
- ·**PR #92488** fix(gateway): forward image-only input on /v1/responses (parity with chat completions).
- ·**PR #92604** fix(status): avoid cumulative usage for context percent. Related #83526.
- ·**PR #92810** fix: reject unvalidated voice media streams.
- ·**PR #92800** fix(telegram): answer callback queries before sequentialize delays them. Related #42156.
- ·**PR #92547** fix(nodes): surface pending reapproval diagnostics.
- ·**PR #92690** fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes #92683).
- ·**PR #92806** fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes #41671).
- ·**PR #92778** fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes #43480).
- ·**PR #92795** fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes #43009).
- ·**PR #92746** fix(gateway): preserve active runs during plugin finalization.
- ·**PR #92820** UI: localize Logs tab labels.
- ·**PR #92825** fix(telegram): preserve command callbacks while prefixing generic callback data. Related #54909.
- ·**PR #90889** fix: cap session context overrides by model window. Related #39857.
- ·**PR #92830** fix(copilot): strip replayed thinking blocks. Related #81520.
- ·**PR #92834** feat(browser): extend --labels overlay to full-page and element captures.
- ·**PR #92836** fix(discord): raise thread title timeout and tokens to fit reasoning models.
- ·**PR #92095** fix #92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink.
- ·**PR #92801** fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes #89564).
- ·**PR #89736** fix(status): render sub-1000 token counts as plain integers. Related #89735.
- ·**PR #92792** fix(agents): catch malformed image blocks in sanitizeContentBlocksImages.
- ·**PR #92555** ci: gate stable releases on Windows companion assets.
- ·**PR #91824** fix(agents): add usage guidance to sessions_spawn tool description (fixes #91814).
- ·**PR #92840** fix(feishu): await HTTP server shutdown during monitor cleanup. Related #48183.
- ·**PR #91632** feat: add tool search directory mode.
- ·**PR #92823** fix(qqbot): surface failed media sends.
- ·**PR #92849** fix(tailscale): preserve parse errors for malformed JSON.
- ·**PR #92045** Fix diagnostics OTEL runtime install trust.
- ·**PR #92853** fix(acp): accept MCP date protocolVersion in ACP server. Related #56102.
- ·**PR #92854** fix(hooks): reject slug-generator error payloads.
- ·**PR #92855** fix(ui): repair iOS Safari chat viewport handling.
- ·**PR #91586** fix(update): continue after package doctor warnings.
- ·**PR #92862** fix(feishu): target typing reaction on inbound message.
- ·**PR #92861** fix(lobster): surface workflow path errors. Related #68101.
- ·**PR #69975** fix(cli): clarify --tz help text for offset-less --at values. Related #59456.
- ·**PR #90682** fix(openai): preserve opaque reasoning transcript fields. Related #90093.
- ·**PR #92373** fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes #92360).
- ·**PR #87346** fix(anthropic): merge consecutive assistant turns in turn validation. Related #87329.
- ·**PR #92896** fix(anthropic): quarantine invalid direct tool schemas.
- ·**PR #90739** fix(active-memory): preserve verbose recall summaries. Related #90454.
- ·**PR #92558** Simplify QA scorecard mapping shape.
- ·**PR #92876** fix(memory-wiki): stop flagging raw source pages as malformed.
- ·**PR #92908** fix(providers): quarantine unreadable Anthropic payload tools.
- ·**PR #92881** fix(memory): preserve reindex rollback recovery.
- ·**PR #92921** fix(openai): quarantine unreadable tool schemas.
- ·**PR #92550** Fold Telegram RTT sampling into live QA evidence.
- ·**PR #92824** fix(media): route OAuth image defaults through Codex. Related #87168.
- ·**PR #92928** fix(openai): guard post-hook tool payloads.
- ·**PR #92814** fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes #42837).
- ·**PR #89055** fix: restart gateway after isolated cron setup timeout.
- ·**PR #90574** fix(openai): omit gpt-5.5 tool reasoning effort.
- ·**PR #92941** fix(openai): recover invalid reasoning signatures.
- ·**PR #92914** fix(agents): clamp unsupported thinking for subagent spawns instead of hard-failing. Related #92412.
- ·**PR #92573** fix: preserve config-selected subagent model overrides. Related #92486.
- ·**PR #92852** fix(gateway): fall back to polling when config watcher exhausts inotify retries. Related #92851.
- ·**PR #92362** fix(gateway): build row metadata context for single session lists.
- ·**PR #92897** fix(memory-wiki): tolerate public artifacts without agent ids. Related #92207.
- ·**PR #92002** fix(lmstudio): deliver thinking "off" to binary-thinking models. Related #91913.
- ·**PR #92738** Forward suppressed-source progress for message-tool channel replies.
- ·**PR #92916** #92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized.
- ·**PR #90936** fix(agents): do not misclassify client-disconnect abort as run timeout. Related #90764.
- ·**PR #93009** fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes #92973).
- ·**PR #92318** fix(cron): require explicit message target proof.
- ·**PR #93022** fix(gateway): repair usage cost aggregation across agents.
- ·**PR #93159** fix(tui): keep parent stdin paused after exit.
- ·**PR #93616** Keep key-free web search providers opt-in.
- ·**PR #93164** fix(telegram): preserve rich markdown line breaks.
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.1pre-release2026-06-13
openclaw 2026.6.7-beta.1
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
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)
- ·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)
- ·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)
- ·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)
Complete contribution record
- ·**PR #92144** fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json. Related #91766.
- ·**PR #92175** fix(channel): harden local setup trust.
- ·**PR #91528** fix #73837: stop after failed Node package installs.
- ·**PR #91561** fix(wizard): report keyless web_search providers as ready, not missing a key.
- ·**PR #92073** fix: handle explicit silent assistant replies. Related #92038.
- ·**PR #91311** Allow Skill Workshop apply through trusted skill symlinks.
- ·**PR #88245** refactor(whatsapp): introduce inbound message contexts.
- ·**PR #92212** refactor: move workspace skill writes to lifecycle.
- ·**PR #92248** Remove ClawHub owner preflight.
- ·**PR #91617** test(sqlite): add state perf query plan harness. Related #91616.
- ·**PR #91626** fix(daemon): keep status readable on unsupported services. Related #25621.
- ·**PR #92295** fix(cron): preserve tz and staggerMs when --cron replaces expression. Related #92291.
- ·**PR #92087** fix(docker): bundle QA Lab runtime in the image.
- ·**PR #92004** fix(telegram): classify streaming preview edit failures instead of killing the draft.
- ·**PR #91997** fix(telegram): survive getUpdates conflicts in isolated polling ingress.
- ·**PR #92387** fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads. Related #91982.
- ·**PR #92229** Fix doctor preview channel SecretRef resolution. Related #91939.
- ·**PR #92225** Fix disabled heartbeat one-shot cron retries. Related #91775.
- ·**PR #92265** Fix configured DeepSeek model transport inheritance. Related #92148.
- ·**PR #92226** Fail closed for CLI-backed /btw fallback. Related #92168.
- ·**PR #92231** Fix suppressed heartbeat commitment delivery. Related #91948.
- ·**PR #92280** fix(agents): classify structured unsupported model errors. Related #92118.
- ·**PR #92276** Fix OTLP log trace correlation. Related #91865.
- ·**PR #92282** fix(update): hand off Linux service auto-updates. Related #91823.
- ·**PR #92235** fix: resolve managed SecretRef provider auth. Related #92097.
- ·**PR #92293** Fix provider static model fallback resolution. Related #92009.
- ·**PR #92343** fix(agent): continue after source message tool replies. Related #92169.
- ·**PR #92350** fix(codex): preserve memory prompt registration.
- ·**PR #92290** fix: clarify gateway SecretRef auth diagnostics. Related #91815.
- ·**PR #92286** fix: repair rejected Anthropic thinking replay. Related #91983.
- ·**PR #92281** Fix Telegram spooled buffered replay. Related #92129.
- ·**PR #47493** fix(doctor): show per-step progress spinners during update.
- ·**PR #92416** fix(outbound): honor top-level image param as send media source (#92407).
- ·**PR #92508** fix(sandbox): render CLI skill prompts from materialized paths.
- ·**PR #92540** chore: fix esbuild production audit failure.
- ·**PR #91484** Add QA evidence artifact output.
- ·**PR #91500** Add QA scorecard taxonomy validation.
- ·**PR #84082** fix(telegram): allow expandable blockquotes.
- ·**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.
- ·**PR #92566** Fix lifecycle timeout cleanup after leader exit.
- ·**PR #92311** ci: split plugin ClawHub publishing paths.
- ·**PR #92216** fix(gateway): mirror hidden commentary-phase assistant events.
- ·**PR #87596** fix(moonshot): rewrite duplicate native Kimi tool_call ids on replay. Related #51593.
- ·**PR #88993** Expose paged channel action results.
- ·**PR #90326** fix(fireworks): resolve catalog model params from plugin.json via core.
- ·**PR #86629** fix(doctor): warn for untrusted external Discord plugin. Related #83212.
- ·**PR #90242** fix(providers): skip unreadable Mistral tool schemas.
- ·**PR #92498** fix(reply): mirror same-channel Slack final replies. Related #92489.
- ·**PR #92083** fix(channels): default boundary logger for swallowed progress-draft start errors.
- ·**PR #92564** fix(agents): isolate invalid plugin model catalogs [AI-assisted]. Related #92553.
- ·**PR #89827** docs: UX-013 — design system documentation.
- ·**PR #89615** feat(ui): hide empty workboard columns.
- ·**PR #89822** fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes.
- ·**PR #92618** fix #92218: memory_search tool disabled with QMD backend.
- ·**PR #92608** docs(gateway): add uptime monitoring guidance to health check docs (fixes #55768).
- ·**PR #92605** fix(docs): pin Windows Hub download links to v2026.6.5. Related #92470.
- ·**PR #92593** #92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters.
- ·**PR #92606** Run Vitest and Playwright scenarios from qa suite.
v2026.6.62026-06-12
openclaw 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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Changes
- ·CLI progress: emit Claude CLI commentary progress events and bridge inter-tool commentary into channel progress without exposing internal protocol scaffolding. (#89834, #90883)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·UI: require explicit user intent before opening chat sessions and drain restored chat queues after session switches. (#91480)
- ·Android: avoid the `dataSync` foreground-service type for persistent nodes. (#80082)
- ·Native hooks: bound relay lifetimes so abandoned native hook connections cannot linger indefinitely. (#91550)
Complete contribution record
- ·**PR #91335** fix(imessage): always-on inbound recovery and dedupe. Related #89237.
- ·**PR #91189** fix(telegram): route account-scoped topic agents.
- ·**PR #88682** Preserve Telegram streamed text blocks between tool calls. Related #87326.
- ·**PR #91390** fix: clarify provider quota errors.
- ·**PR #90883** fix(cli): bridge inter-tool commentary events to channel progress.
- ·**PR #91419** docs: preserve channel brand terms in Chinese i18n.
- ·**PR #87105** fix(gateway): share approval runtime socket token.
- ·**PR #80082** fix(android): avoid dataSync FGS for persistent node.
- ·**PR #91442** docs: preserve LINE across localized docs glossaries.
- ·**PR #88768** fix(codex): normalize dynamic tool progress results.
- ·**PR #91422** fix(browser): neutralize media directives in browser output [AI].
- ·**PR #89834** feat(cli): emit commentary progress events from Claude CLI parser. Related #87326.
- ·**PR #85679** fix(agents): drop stale exec approval followups after session rebind. Related #59349.
- ·**PR #91450** fix(reply-queue): remove the drained item by reference instead of front index.
- ·**PR #89151** fix(delivery): suppress Codex/Harmony internal protocol artifacts from user-facing channels. Related #88128.
- ·**PR #90678** fix(cron): recover no-deliver tool warnings.
- ·**PR #91449** fix(imessage): honor block streaming config.
- ·**PR #91508** Revert "docs: add maturity scorecard mirror".
- ·**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.
- ·**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.
- ·**PR #90666** fix(cron): cancel active cron task runs.
- ·**PR #90927** fix(doctor): report managed plugin version drift. Related #90891.
- ·**PR #91531** perf(control-ui): reuse startup model metadata.
- ·**PR #91538** perf(control-ui): avoid startup catalog wait.
- ·**PR #91507** feat: canonicalize Codex protocol JSON asset ordering.
- ·**PR #91550** fix: bound native hook relay lifetime. Related #90993.
- ·**PR #89588** fix(telegram): restore /compact on generic message ingress. Related #89525.
- ·**PR #91529** Fix transcript image redaction. Related #90760.
- ·**PR #91551** Fix config.patch explicit array replacement.
- ·**PR #91568** perf(control-ui): trace first assistant event.
- ·**PR #85823** fix(whatsapp): route captured replies through successor controller after restart.
- ·**PR #91574** feat: dogfood reusable ClawHub package publish.
- ·**PR #91583** perf(control-ui): warn on slow first replies.
- ·**PR #89659** fix(feishu): retry on send rate-limit errors (230020/230006). Related #70879.
- ·**PR #91547** Fix Docker store seed target packages. Related #91035.
- ·**PR #91578** fix: make docs i18n frontmatter translation resilient.
- ·**PR #91567** fix(openai): require api-key auth for realtime voice. Related #90456.
- ·**PR #91591** fix: let ClawHub dry runs skip publish approval.
- ·**PR #91598** perf(control-ui): lazy load slash commands.
- ·**PR #91580** fix(agents): trim dense text delta snapshots. Related #86599.
- ·**PR #91425** fix(memory-lancedb): guard memory recall output [AI].
- ·**PR #88969** fix(imessage): persist echo markers before send.
- ·**PR #91566** Fix stale main session startup recovery. Related #90525.
- ·**PR #91324** fix(memory): move local llama.cpp runtime to provider plugin. Related #88705.
- ·**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.
- ·**PR #91642** fix(docs): continue partial i18n batches after file errors.
- ·**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.
- ·**PR #91679** fix(plugin-sdk): align Discord component edit facade types.
- ·**PR #91686** fix(discord): restore runtime timeout compatibility exports.
- ·**PR #90212** fix(agents): deliver native /compact replies through source suppression.
- ·**PR #91618** fix: expand unsafe host env denylist.
- ·**PR #91615** fix: block rustup toolchain env overrides [AI].
- ·**PR #89851** fix(gateway): support Streamable HTTP MCP transport on loopback server.
- ·**PR #91619** fix: block git protocol env controls [AI].
- ·**PR #91684** fix(mattermost): keep default replies in existing threads.
- ·**PR #90457** fix(models): persist agent catalog cache.
- ·**PR #91709** fix(status): restore Codex synthetic usage line. Related #91694.
- ·**PR #89909** fix(tui): show connection host in footer. Related #56276.
- ·**PR #89978** perf(config): dedupe plugin auto-enable fanout work.
- ·**PR #91219** fix(gateway): skip deleted-agent guard for ACP harness session keys.
- ·**PR #90782** perf(tui): prewarm runtime plugins before first send.
- ·**PR #90838** fix(config): warn for retired skill-workshop plugin entry instead of failing validation (#90244).
- ·**PR #91753** docs: clarify Matrix plugin upgrade repair.
- ·**PR #91755** docs: align Feishu DM policy defaults.
- ·**PR #91745** fix(discord): require sender for moderation actions [AI].
- ·**PR #85950** docs: clarify trusted-proxy Control UI scope behavior. Related #80063.
- ·**PR #91746** fix(msteams): require admin for group actions.
- ·**PR #91256** feat(diagnostics-otel): capture tool input/output content via trusted channel.
- ·**PR #91749** fix(gateway): restrict non-owner loopback tools.
- ·**PR #91748** fix(elevated): reject group ids as senders.
- ·**PR #91752** fix(codex): guard sandbox http requests.
- ·**PR #91763** fix: require ACP metadata for deleted-agent bypass.
- ·**PR #91751** fix(mcp): harden stdio env filtering.
- ·**PR #91765** Clarify env-var executable behavior reports in SECURITY.md.
- ·**PR #91480** fix(ui): require user intent for chat sessions. Related #89760.
- ·**PR #91777** docs: remove superpowers spec draft.
- ·**PR #91773** fix(mcp): lowercase SSE event-source header keys to prevent duplicate Authorization (401).
- ·**PR #91741** Validate sandbox bind parent paths [AI].
- ·**PR #88530** fix(imessage): skip idle approval discovery scans.
- ·**PR #91780** fix(ui): drain restored chat queue after session switch.
- ·**PR #91750** fix(search): enforce native web search tool policy.
- ·**PR #91757** fix(config): clarify retired skill workshop plugin warning.
- ·**PR #91787** fix(doctor): keep TTS legacy migration on supported paths.
- ·**PR #91783** fix(imessage): harden outbound send transport. Related #84329.
- ·**PR #91785** fix(imessage): surface inbound startup diagnostics.
- ·**PR #91590** Fix context-engine compaction ownership for Codex sessions.
- ·**PR #91557** Improve iPad and iPhone control surfaces.
- ·**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.
- ·**PR #88630** fix(codex): avoid guardian review for local models.
- ·**PR #91830** feat: add OpenRouter OAuth to onboarding.
- ·**PR #91842** fix(plugin-sdk): refresh API baseline hash.
- ·**PR #91614** fix(gateway): surface headless LaunchAgent state.
- ·**PR #91851** fix(memory-core): filter stale recall entries in REM harness preview.
- ·**PR #91859** fix(ci): disable memory slot in release smoke config.
- ·**PR #90004** [plugin sdk] Allow declared installed trusted hooks. Related #87735.
- ·**PR #91837** fix(memory-core): keep QMD JSON search one-shot. Related #91821.
- ·**PR #91871** Remove bundled channel contract fallbacks.
- ·**PR #91879** fix(ci): include ACPX in shared live-test image.
- ·**PR #91840** Fix stale visible reply recovery. Related #90535.
- ·**PR #91876** Fix Telegram callback API handling.
- ·**PR #91874** Share channel draft chunking resolver.
- ·**PR #91599** fix(update): expose plugin convergence repair.
- ·**PR #91581** fix(update): recover package gateway restart after refresh failure.
- ·**PR #91904** fix(telegram): use SDK dispatch dedupe.
- ·**PR #90263** fix(discord): hydrate reply context metadata.
- ·**PR #91478** block unauthorized Telegram DM text from prompt context. Related #91209.
- ·**PR #91915** fix(telegram): audit follow-ups — block-mode chunk config, dedupe bucket cleanup, grammy contract trust.
- ·**PR #91361** fix(compaction): lower default timeout from 900s to 180s, preserve explicit config. Related #91358.
- ·**PR #91791** fix(sandbox): use materialized skill paths in startup prompts. Related #91761.
- ·**PR #91736** Support existing-session browser CDP endpoints. Related #56118.
- ·**PR #91747** fix(browser): validate discovered CDP websocket URLs.
- ·**PR #91882** feat(anthropic): support Claude Fable 5 adaptive thinking. Related #91805.
- ·**PR #91884** fix(memory): keep ignored-name QMD roots watchable.
- ·**PR #91740** fix(auth): verify SQLite auth migration before cleanup.
- ·**PR #91451** fix(mcp): repair OAuth redirect, errors, and unicode schema patterns. Related #91433.
- ·**PR #91978** fix(gateway): arm qmd startup maintenance.
- ·**PR #90426** fix(talk): show OpenAI Realtime WebRTC assistant transcripts.
- ·**PR #91696** fix(agents): preserve reasoning_content replay for Gemma 4 openai-completions models. Related #91645.
- ·**PR #89938** Fail closed on exec approval timeout.
- ·**PR #91895** fix(webchat): finalize provider failure lifecycle. Related #91730.
- ·**PR #80143** fix(browser): honor cdpUrl for user default profile. Related #48042.
- ·**PR #91688** fix(cron): reject cron expressions that have no reachable run time.
- ·**PR #91737** fix(cron): use final-call usage for session token totals. Related #91716.
- ·**PR #89605** fix(process): return timeout code for killed commands.
- ·**PR #80013** perf(usage-cost-cache): throttle full-cache rewrites during refresh.
- ·**PR #76731** Fix mobile Control UI chat layout.
- ·**PR #83738** fix(cron): capture originating session/agent on the cron wake tool call.
- ·**PR #85196** Redact tool output secrets.
- ·**PR #92007** fix(security): block build tool env overrides.
- ·**PR #91891** fix: preserve non-oneOf protocol schema array order.
- ·**PR #91754** fix(macos): hide unsupported Voice Wake controls. Related #89575.
- ·**PR #92049** test(ci): restore upgrade survivor session fixture.
- ·**PR #89670** fix: keep skill toggles keyed by skill identity. Related #89661.
- ·**PR #91934** fix(state): tolerate chmod failures when opening the state database. Related #91919.
- ·**PR #92051** fix(fal): parse raw completed queue results. Related #91989.
- ·**PR #92047** fix(agents): prefer explicit sessions_send keys. Related #64699.
- ·**PR #92020** fix(memory-core): check SQLite plugin state for dreaming ingestion audit after JSON migration (fixes #92017).
- ·**PR #92032** fix(mcp): always log channel-bridge notification failures.
- ·**PR #92033** fix(gateway): log swallowed background-task finalization errors.
- ·**PR #92022** fix(sessions): derive channel from direct-chat session keys in send-policy.
- ·**PR #91163** fix(xai): clarify x_search query guidance.
- ·**PR #90121** fix(memory): write dream fallback without subagent runtime.
- ·**PR #91215** fix(ui): show prompt progress while sending. Related #91199.
- ·**PR #92029** fix(tools): surface unsupported-signal in anyOf availability.
- ·**PR #92034** perf(agents): memoize XML attribute regex in DSML stream parser.
- ·**PR #92026** perf(agents): sanitize compaction messages once for token estimation.
- ·**PR #91351** fix(opencode-go): add qwen plus tiered pricing. Related #91238.
- ·**PR #92027** fix(gateway): recover config hot-reload after watcher errors.
- ·**PR #91471** feat(cron): add readable ISO time fields to `cron runs` JSON output.
- ·**PR #91711** :bug: fix(agents): classify harness provider mismatch as format error (#91710).
- ·**PR #91292** fix(models): keep bundled provider catalog when configured base URL is blank (#91270).
- ·**PR #91720** :bug: fix(openai): remove chatgpt-responses transport override from gpt-5.3-codex catalog entry. Related #91710.
- ·**PR #91305** fix(control-ui): make Control UI bootstrap config endpoint base-path-relative (#66946).
- ·**PR #92056** fix(exec): honor state dir approvals.
- ·**PR #91897** fix(memory): self-heal missing index identity by initializing provider during sync.
- ·**PR #91802** fix(diagnostics): release wedged session lane when stuck-session recovery aborts a run with queued session work. Related #91700.
- ·**PR #92030** fix(cron): structural top-of-hour match in stagger heuristic.
- ·**PR #92055** fix(media): resolve state-relative inbound attachments.
- ·**PR #91962** fix(agent): dampen Discord stale thread replies.
- ·**PR #90912** fix(agents): honor configured CLI resume timeouts.
- ·**PR #91296** fix: hand off supervised git updates.
- ·**PR #91950** fix(web_fetch): sanitize URL whitespace from LLM tool call arguments (fixes #91651).
- ·**PR #77367** fix(discord): scope command-deploy cache by application id. Related #77359.
- ·**PR #91976** feat(auto-reply): durable inter-tool commentary via verbose standalone progress (supersedes #89850/#89890).
- ·**PR #90128** fix(sessions): preserve user /model override across daily/idle session rollover (#90119).
- ·**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.
- ·**PR #92123** #92109: [Bug]: EmbeddedAttemptSessionTakeoverError caused by Btrfs ctimeNs instability.
- ·**PR #92136** fix(feishu): reply inside P2P direct-message threads.
- ·**PR #92121** fix(memory): preserve live SQLite index during swaps. Related #91216.
- ·**PR #90173** fix(agents): stabilize a2a prompt cache context.
- ·**PR #91974** fix(cli-runner): scope claude-cli queue to live-session owner identity (#91946).
- ·**PR #92053** fix(thinking): apply Claude profile to anthropic-messages catalog rows. Related #91975.
- ·**PR #41991** Google: show detailed Gemini CLI OAuth extraction failures.
- ·**PR #92074** fix(qqbot): flush tool output before silent non-streaming final.
- ·**PR #89508** fix(models): clarify provider model registration hint. Related #89192.
- ·**PR #89085** fix(agents): keep migrated session entry ids unique on v1 upgrade.
- ·**PR #89552** fix(discord): clean migrated thread binding state.
- ·**PR #89448** fix(cron): reject durations that overflow to a non-finite value. Related #83906.
- ·**PR #89319** fix(doctor): warn on unsupported hook entry loaders. Related #89309.
- ·**PR #91966** fix(config): stop config.patch replacePaths index suffix from widening array consent.
- ·**PR #92127** fix(plugins): rescan storm in "/models" call (regression shipped since v2026.5.18).
- ·**PR #91657** fix(ollama): use provider thinking default in SDK session factory. Related #91428.
- ·**PR #91742** fix(memory): abort orphaned embedding work when memory_search times out. Related #91718.
- ·**PR #89091** fix(memory-core): retry narrative message reads.
- ·**PR #92150** fix(release): gate beta publish on plugin verification.
- ·**PR #92158** fix(cli): validate gateway RPC timeout inputs.
- ·**PR #91911** fix(agents): retry same model across short rate-limit windows.
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
v2026.6.6-beta.2pre-release2026-06-12
openclaw 2026.6.6-beta.2
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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
- ·**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)
Changes
- ·CLI progress: emit Claude CLI commentary progress events and bridge inter-tool commentary into channel progress without exposing internal protocol scaffolding. (#89834, #90883)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·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)
- ·UI: require explicit user intent before opening chat sessions and drain restored chat queues after session switches. (#91480)
- ·Android: avoid the `dataSync` foreground-service type for persistent nodes. (#80082)
- ·Native hooks: bound relay lifetimes so abandoned native hook connections cannot linger indefinitely. (#91550)
Complete contribution record
- ·**PR #91335** fix(imessage): always-on inbound recovery and dedupe. Related #89237.
- ·**PR #91189** fix(telegram): route account-scoped topic agents.
- ·**PR #88682** Preserve Telegram streamed text blocks between tool calls. Related #87326.
- ·**PR #91390** fix: clarify provider quota errors.
- ·**PR #90883** fix(cli): bridge inter-tool commentary events to channel progress.
- ·**PR #91419** docs: preserve channel brand terms in Chinese i18n.
- ·**PR #87105** fix(gateway): share approval runtime socket token.
- ·**PR #80082** fix(android): avoid dataSync FGS for persistent node.
- ·**PR #91442** docs: preserve LINE across localized docs glossaries.
- ·**PR #88768** fix(codex): normalize dynamic tool progress results.
- ·**PR #91422** fix(browser): neutralize media directives in browser output [AI].
- ·**PR #89834** feat(cli): emit commentary progress events from Claude CLI parser. Related #87326.
- ·**PR #85679** fix(agents): drop stale exec approval followups after session rebind. Related #59349.
- ·**PR #91450** fix(reply-queue): remove the drained item by reference instead of front index.
- ·**PR #89151** fix(delivery): suppress Codex/Harmony internal protocol artifacts from user-facing channels. Related #88128.
- ·**PR #90678** fix(cron): recover no-deliver tool warnings.
- ·**PR #91449** fix(imessage): honor block streaming config.
- ·**PR #91508** Revert "docs: add maturity scorecard mirror".
- ·**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.
- ·**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.
- ·**PR #90666** fix(cron): cancel active cron task runs.
- ·**PR #90927** fix(doctor): report managed plugin version drift. Related #90891.
- ·**PR #91531** perf(control-ui): reuse startup model metadata.
- ·**PR #91538** perf(control-ui): avoid startup catalog wait.
- ·**PR #91507** feat: canonicalize Codex protocol JSON asset ordering.
- ·**PR #91550** fix: bound native hook relay lifetime. Related #90993.
- ·**PR #89588** fix(telegram): restore /compact on generic message ingress. Related #89525.
- ·**PR #91529** Fix transcript image redaction. Related #90760.
- ·**PR #91551** Fix config.patch explicit array replacement.
- ·**PR #91568** perf(control-ui): trace first assistant event.
- ·**PR #85823** fix(whatsapp): route captured replies through successor controller after restart.
- ·**PR #91574** feat: dogfood reusable ClawHub package publish.
- ·**PR #91583** perf(control-ui): warn on slow first replies.
- ·**PR #89659** fix(feishu): retry on send rate-limit errors (230020/230006). Related #70879.
- ·**PR #91547** Fix Docker store seed target packages. Related #91035.
- ·**PR #91578** fix: make docs i18n frontmatter translation resilient.
- ·**PR #91567** fix(openai): require api-key auth for realtime voice. Related #90456.
- ·**PR #91591** fix: let ClawHub dry runs skip publish approval.
- ·**PR #91598** perf(control-ui): lazy load slash commands.
- ·**PR #91580** fix(agents): trim dense text delta snapshots. Related #86599.
- ·**PR #91425** fix(memory-lancedb): guard memory recall output [AI].
- ·**PR #88969** fix(imessage): persist echo markers before send.
- ·**PR #91566** Fix stale main session startup recovery. Related #90525.
- ·**PR #91324** fix(memory): move local llama.cpp runtime to provider plugin. Related #88705.
- ·**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.
- ·**PR #91642** fix(docs): continue partial i18n batches after file errors.
- ·**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.
- ·**PR #91679** fix(plugin-sdk): align Discord component edit facade types.
- ·**PR #91686** fix(discord): restore runtime timeout compatibility exports.
- ·**PR #90212** fix(agents): deliver native /compact replies through source suppression.
- ·**PR #91618** fix: expand unsafe host env denylist.
- ·**PR #91615** fix: block rustup toolchain env overrides [AI].
- ·**PR #89851** fix(gateway): support Streamable HTTP MCP transport on loopback server.
- ·**PR #91619** fix: block git protocol env controls [AI].
- ·**PR #91684** fix(mattermost): keep default replies in existing threads.
- ·**PR #90457** fix(models): persist agent catalog cache.
- ·**PR #91709** fix(status): restore Codex synthetic usage line. Related #91694.
- ·**PR #89909** fix(tui): show connection host in footer. Related #56276.
- ·**PR #89978** perf(config): dedupe plugin auto-enable fanout work.
- ·**PR #91219** fix(gateway): skip deleted-agent guard for ACP harness session keys.
- ·**PR #90782** perf(tui): prewarm runtime plugins before first send.
- ·**PR #90838** fix(config): warn for retired skill-workshop plugin entry instead of failing validation (#90244).
- ·**PR #91753** docs: clarify Matrix plugin upgrade repair.
- ·**PR #91755** docs: align Feishu DM policy defaults.
- ·**PR #91745** fix(discord): require sender for moderation actions [AI].
- ·**PR #85950** docs: clarify trusted-proxy Control UI scope behavior. Related #80063.
- ·**PR #91746** fix(msteams): require admin for group actions.
- ·**PR #91256** feat(diagnostics-otel): capture tool input/output content via trusted channel.
- ·**PR #91749** fix(gateway): restrict non-owner loopback tools.
- ·**PR #91748** fix(elevated): reject group ids as senders.
- ·**PR #91752** fix(codex): guard sandbox http requests.
- ·**PR #91763** fix: require ACP metadata for deleted-agent bypass.
- ·**PR #91751** fix(mcp): harden stdio env filtering.
- ·**PR #91765** Clarify env-var executable behavior reports in SECURITY.md.
- ·**PR #91480** fix(ui): require user intent for chat sessions. Related #89760.
- ·**PR #91777** docs: remove superpowers spec draft.
- ·**PR #91773** fix(mcp): lowercase SSE event-source header keys to prevent duplicate Authorization (401).
- ·**PR #91741** Validate sandbox bind parent paths [AI].
- ·**PR #88530** fix(imessage): skip idle approval discovery scans.
- ·**PR #91780** fix(ui): drain restored chat queue after session switch.
- ·**PR #91750** fix(search): enforce native web search tool policy.
- ·**PR #91757** fix(config): clarify retired skill workshop plugin warning.
- ·**PR #91787** fix(doctor): keep TTS legacy migration on supported paths.
- ·**PR #91783** fix(imessage): harden outbound send transport. Related #84329.
- ·**PR #91785** fix(imessage): surface inbound startup diagnostics.
- ·**PR #91590** Fix context-engine compaction ownership for Codex sessions.
- ·**PR #91557** Improve iPad and iPhone control surfaces.
- ·**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.
- ·**PR #88630** fix(codex): avoid guardian review for local models.
- ·**PR #91830** feat: add OpenRouter OAuth to onboarding.
- ·**PR #91842** fix(plugin-sdk): refresh API baseline hash.
- ·**PR #91614** fix(gateway): surface headless LaunchAgent state.
- ·**PR #91851** fix(memory-core): filter stale recall entries in REM harness preview.
- ·**PR #91859** fix(ci): disable memory slot in release smoke config.
- ·**PR #90004** [plugin sdk] Allow declared installed trusted hooks. Related #87735.
- ·**PR #91837** fix(memory-core): keep QMD JSON search one-shot. Related #91821.
- ·**PR #91871** Remove bundled channel contract fallbacks.
- ·**PR #91879** fix(ci): include ACPX in shared live-test image.
- ·**PR #91840** Fix stale visible reply recovery. Related #90535.
- ·**PR #91876** Fix Telegram callback API handling.
- ·**PR #91874** Share channel draft chunking resolver.
- ·**PR #91599** fix(update): expose plugin convergence repair.
- ·**PR #91581** fix(update): recover package gateway restart after refresh failure.
- ·**PR #91904** fix(telegram): use SDK dispatch dedupe.
- ·**PR #90263** fix(discord): hydrate reply context metadata.
- ·**PR #91478** block unauthorized Telegram DM text from prompt context. Related #91209.
- ·**PR #91915** fix(telegram): audit follow-ups — block-mode chunk config, dedupe bucket cleanup, grammy contract trust.
- ·**PR #91361** fix(compaction): lower default timeout from 900s to 180s, preserve explicit config. Related #91358.
- ·**PR #91791** fix(sandbox): use materialized skill paths in startup prompts. Related #91761.
- ·**PR #91736** Support existing-session browser CDP endpoints. Related #56118.
- ·**PR #91747** fix(browser): validate discovered CDP websocket URLs.
- ·**PR #91882** feat(anthropic): support Claude Fable 5 adaptive thinking. Related #91805.
- ·**PR #91884** fix(memory): keep ignored-name QMD roots watchable.
- ·**PR #91740** fix(auth): verify SQLite auth migration before cleanup.
- ·**PR #91451** fix(mcp): repair OAuth redirect, errors, and unicode schema patterns. Related #91433.
- ·**PR #91978** fix(gateway): arm qmd startup maintenance.
- ·**PR #90426** fix(talk): show OpenAI Realtime WebRTC assistant transcripts.
- ·**PR #91696** fix(agents): preserve reasoning_content replay for Gemma 4 openai-completions models. Related #91645.
- ·**PR #89938** Fail closed on exec approval timeout.
- ·**PR #91895** fix(webchat): finalize provider failure lifecycle. Related #91730.
- ·**PR #80143** fix(browser): honor cdpUrl for user default profile. Related #48042.
- ·**PR #91688** fix(cron): reject cron expressions that have no reachable run time.
- ·**PR #91737** fix(cron): use final-call usage for session token totals. Related #91716.
- ·**PR #89605** fix(process): return timeout code for killed commands.
- ·**PR #80013** perf(usage-cost-cache): throttle full-cache rewrites during refresh.
- ·**PR #76731** Fix mobile Control UI chat layout.
- ·**PR #83738** fix(cron): capture originating session/agent on the cron wake tool call.
- ·**PR #85196** Redact tool output secrets.
- ·**PR #92007** fix(security): block build tool env overrides.
- ·**PR #91891** fix: preserve non-oneOf protocol schema array order.
- ·**PR #91754** fix(macos): hide unsupported Voice Wake controls. Related #89575.
- ·**PR #92049** test(ci): restore upgrade survivor session fixture.
- ·**PR #89670** fix: keep skill toggles keyed by skill identity. Related #89661.
- ·**PR #91934** fix(state): tolerate chmod failures when opening the state database. Related #91919.
- ·**PR #92051** fix(fal): parse raw completed queue results. Related #91989.
- ·**PR #92047** fix(agents): prefer explicit sessions_send keys. Related #64699.
- ·**PR #92020** fix(memory-core): check SQLite plugin state for dreaming ingestion audit after JSON migration (fixes #92017).
- ·**PR #92032** fix(mcp): always log channel-bridge notification failures.
- ·**PR #92033** fix(gateway): log swallowed background-task finalization errors.
- ·**PR #92022** fix(sessions): derive channel from direct-chat session keys in send-policy.
- ·**PR #91163** fix(xai): clarify x_search query guidance.
- ·**PR #90121** fix(memory): write dream fallback without subagent runtime.
- ·**PR #91215** fix(ui): show prompt progress while sending. Related #91199.
- ·**PR #92029** fix(tools): surface unsupported-signal in anyOf availability.
- ·**PR #92034** perf(agents): memoize XML attribute regex in DSML stream parser.
- ·**PR #92026** perf(agents): sanitize compaction messages once for token estimation.
- ·**PR #91351** fix(opencode-go): add qwen plus tiered pricing. Related #91238.
- ·**PR #92027** fix(gateway): recover config hot-reload after watcher errors.
- ·**PR #91471** feat(cron): add readable ISO time fields to `cron runs` JSON output.
- ·**PR #91711** :bug: fix(agents): classify harness provider mismatch as format error (#91710).
- ·**PR #91292** fix(models): keep bundled provider catalog when configured base URL is blank (#91270).
- ·**PR #91720** :bug: fix(openai): remove chatgpt-responses transport override from gpt-5.3-codex catalog entry. Related #91710.
- ·**PR #91305** fix(control-ui): make Control UI bootstrap config endpoint base-path-relative (#66946).
- ·**PR #92056** fix(exec): honor state dir approvals.
- ·**PR #91897** fix(memory): self-heal missing index identity by initializing provider during sync.
- ·**PR #91802** fix(diagnostics): release wedged session lane when stuck-session recovery aborts a run with queued session work. Related #91700.
- ·**PR #92030** fix(cron): structural top-of-hour match in stagger heuristic.
- ·**PR #92055** fix(media): resolve state-relative inbound attachments.
- ·**PR #91962** fix(agent): dampen Discord stale thread replies.
- ·**PR #90912** fix(agents): honor configured CLI resume timeouts.
- ·**PR #91296** fix: hand off supervised git updates.
- ·**PR #91950** fix(web_fetch): sanitize URL whitespace from LLM tool call arguments (fixes #91651).
- ·**PR #77367** fix(discord): scope command-deploy cache by application id. Related #77359.
- ·**PR #91976** feat(auto-reply): durable inter-tool commentary via verbose standalone progress (supersedes #89850/#89890).
- ·**PR #90128** fix(sessions): preserve user /model override across daily/idle session rollover (#90119).
- ·**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.
- ·**PR #92123** #92109: [Bug]: EmbeddedAttemptSessionTakeoverError caused by Btrfs ctimeNs instability.
- ·**PR #92136** fix(feishu): reply inside P2P direct-message threads.
- ·**PR #92121** fix(memory): preserve live SQLite index during swaps. Related #91216.
- ·**PR #90173** fix(agents): stabilize a2a prompt cache context.
- ·**PR #91974** fix(cli-runner): scope claude-cli queue to live-session owner identity (#91946).
- ·**PR #92053** fix(thinking): apply Claude profile to anthropic-messages catalog rows. Related #91975.
- ·**PR #41991** Google: show detailed Gemini CLI OAuth extraction failures.
- ·**PR #92074** fix(qqbot): flush tool output before silent non-streaming final.
- ·**PR #89508** fix(models): clarify provider model registration hint. Related #89192.
- ·**PR #89085** fix(agents): keep migrated session entry ids unique on v1 upgrade.
- ·**PR #89552** fix(discord): clean migrated thread binding state.
- ·**PR #89448** fix(cron): reject durations that overflow to a non-finite value. Related #83906.
- ·**PR #89319** fix(doctor): warn on unsupported hook entry loaders. Related #89309.
- ·**PR #91966** fix(config): stop config.patch replacePaths index suffix from widening array consent.
- ·**PR #92127** fix(plugins): rescan storm in "/models" call (regression shipped since v2026.5.18).
- ·**PR #91657** fix(ollama): use provider thinking default in SDK session factory. Related #91428.
- ·**PR #91742** fix(memory): abort orphaned embedding work when memory_search times out. Related #91718.
- ·**PR #89091** fix(memory-core): retry narrative message reads.
- ·**PR #92150** fix(release): gate beta publish on plugin verification.
- ·**PR #92158** fix(cli): validate gateway RPC timeout inputs.
- ·**PR #91911** fix(agents): retry same model across short rate-limit windows.
Release verification
- ·npm package: https://www.npmjs.com/package/openclaw/v/2026.6.6-beta.2
- ·registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.6.6-beta.2.tgz
- ·integrity: `sha512-617ITjTL0UxtQK4qGOc248nQBJjExX43/RR7CBr+0rEpqnA88i/VWABfTPrUnNT25181uZkOyzgguZjMW0u4Ug==`
- ·release SHA: `3129eed4de92d0ddc0209fbf195c790c3d73ab03`
- ·full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.6.6-beta.2/release-evidence.md
- ·release publish: https://github.com/openclaw/openclaw/actions/runs/27392222148
- ·npm preflight: https://github.com/openclaw/openclaw/actions/runs/27390602410
- ·full release validation: https://github.com/openclaw/openclaw/actions/runs/27390601362
- ·plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/27392305214
- ·plugin ClawHub publish: dispatched separately, not awaited by this proof: https://github.com/openclaw/openclaw/actions/runs/27392308021
- ·OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/27392531757
- ·npm Telegram beta E2E: https://github.com/openclaw/openclaw/actions/runs/27392727108
- ·postpublish package acceptance: https://github.com/openclaw/openclaw/actions/runs/27392843057