github openclaw/openclaw v2026.6.8
openclaw 2026.6.8

7 hours ago

2026.6.8

Highlights

Changes

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

Fixes

  • Channels and delivery: preserve account-scoped DM channel send policy, intentional rich-message line breaks in Telegram and status output, rich Telegram final replies, rich Telegram tables and lists, Telegram thread-create CLI remapping, Feishu dynamic-agent routes after persisted binding reuse, Slack outbound message_sent hooks, contributed message-tool schema optionality, same-channel generated media completions, and channel chunking around surrogate pairs and Infinity limits. (#92788, #93164, #92679, #89421, #89943, #42837, #92814, #91137, #91246, #92735) Thanks @yetval, @obviyus, @spacegeologist, @rishitamrakar, @liuhao1024, @lundog, @TurboTheTurtle, and @yhterrance.
  • Discord: give generated auto-thread titles a 60-second timeout and 4,096-token reasoning-model output budget, clamped to the selected model output cap. (#64734) Thanks @hanamizuki.
  • Agent, cron, and Gateway runtime: mark active main sessions before restart shutdown aborts, pause yielded subagent runs whose terminal also signals abort, clamp trusted subagent thinking overrides through provider/model fallback, preserve yielded media completions, deliver channel message-tool final replies through auto-reply while hiding internal delivery hints, restore reset archive fallback reads when active async transcripts are missing, de-duplicate main-session heartbeat events, expose session identity in runtime prompts, reject unknown OpenAI agent selectors, keep generated media completions, slash-command block replies, and trajectory export commands in WebChat, and require admin privileges for HTTP session/model override surfaces. (#91357, #92631, #92412, #92146, #92879, #91287, #92468, #92510, #91246, #92651, #92646) Thanks @ooiuuii, @openperf, @IWhatsskill, @masatohoshino, @CadanHu, @ZengWen-DT, @zhangguiping-xydt, and @TurboTheTurtle.
  • Providers and model replay: preserve storeless OpenAI Responses replay compatibility, recover invalid OpenAI reasoning signatures and genericized Anthropic thinking-signature replay errors, route OAuth image defaults through Codex for eligible OpenAI profiles, avoid eager tool streaming for Claude 4.5 in Copilot, quarantine unreadable and post-hook OpenAI/Anthropic-family tool schemas without broadening allowed tool choices, deliver explicit thinking-off requests to LM Studio binary-thinking models, honor profile auth for SecretRef model entries, bound model browsing, strip provider prefixes where runtimes need bare IDs, and surface nested embedding fetch failures. (#90706, #92941, #92201, #92916, #92824, #75393, #92908, #92921, #92928, #92002, #90686, #92247, #92627, #91218, #92628) Thanks @snowzlm, @mmyzwl, @CarlCapital, @bek91, @Kailigithub, @vincentkoc, @rohitjavvadi, @samson910022, @nxmxbbd, @liuhao1024, @bymle, and @mushuiyu886.
  • 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, treat raw Memory Wiki source pages as source evidence, and keep shell environment fallbacks contained in config write tests. (#92650, #92618, #92639, #91247, #92752, #92881, #59137, #92876, #69700) Thanks @mushuiyu886, @TurboTheTurtle, @849261680, @gnanam1990, @TSHOGX, and @arlen8411.
  • UI/mobile/TUI: preserve dashboard session parent lineage, WebChat backscroll, reset soft command args, sidebar session picker interactivity, collapsed workspace files, resolved /model confirmation refs, stale foreground iOS Gateway reconnects, and paused setup-parent stdin after inherited-stdio child exit. (#90658, #92622, #91353, #92705, #92779, #92773, #92552, #93159) Thanks @luoyanglang, @TurboTheTurtle, @zhouhe-xydt, @NianJiuZst, @shakkernerd, @NarahariRaghava, @Solvely-Colin, and @fuller-stack-dev.
  • 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.
  • Release and test reliability: extend slow Gateway/full-suite watchdogs, split local full-suite shards when throttled, stabilize plugin auth marker fixtures, avoid brittle provider-ref error text, fold Telegram RTT sampling into live QA evidence, simplify QA scorecard mappings around canonical coverage IDs, keep QA Lab bootstrap selection assertions aligned with flow-only scenarios, skip QA coverage artifact consumers when runtime parity producer status is not green, keep Feishu lifecycle release checks pointed at the active fixture config, isolate trajectory-export live seed turns from Codex-native shell approvals, preserve release-check child refs while pinning expected SHAs, widen live OpenAI TTS budgets for slower provider responses, and avoid false downgrade prompts for unresolved latest-tag updates. (#92652, #92550, #92558, #92911) Thanks @RomneyDa and @Andy312432.

Complete contribution ledger

This audited record covers the complete v2026.6.6..v2026.6.8 history: 167 PRs and 67 linked issues. The grouped notes above prioritize user impact; this ledger preserves every contribution reference and eligible human credit.

Pull requests

  • fix(cron): report SQLite storage path in cron.status instead of legacy jobs.json (#92144). Thanks @liuhao1024.
  • fix(channel): harden local setup trust (#92175). Thanks @hxy91819.
  • fix: handle explicit silent assistant replies (#92073). Thanks @sallyom.
  • fix(docker): bundle QA Lab runtime in the image (#92087). Thanks @jesse-merhi.
  • fix(anthropic-vertex): stop re-marking cache_control on transport-budgeted payloads (#92387). Thanks @openperf and @Takhoffman.
  • Fix doctor preview channel SecretRef resolution (#92229). Thanks @joshavant.
  • Fix disabled heartbeat one-shot cron retries (#92225). Thanks @joshavant.
  • Fix configured DeepSeek model transport inheritance (#92265). Thanks @joshavant.
  • Fail closed for CLI-backed /btw fallback (#92226). Thanks @joshavant.
  • Fix suppressed heartbeat commitment delivery (#92231). Thanks @joshavant.
  • fix(agents): classify structured unsupported model errors (#92280). Thanks @joshavant.
  • Fix OTLP log trace correlation (#92276). Thanks @joshavant.
  • fix(update): hand off Linux service auto-updates (#92282). Thanks @joshavant.
  • fix: resolve managed SecretRef provider auth (#92235). Thanks @joshavant.
  • Fix provider static model fallback resolution (#92293). Thanks @joshavant.
  • fix(agent): continue after source message tool replies (#92343). Thanks @joshavant.
  • fix(codex): preserve memory prompt registration (#92350). Thanks @rubencu.
  • fix: clarify gateway SecretRef auth diagnostics (#92290). Thanks @joshavant.
  • fix: repair rejected Anthropic thinking replay (#92286). Thanks @joshavant.
  • Fix Telegram spooled buffered replay (#92281). Thanks @joshavant.
  • fix(outbound): honor top-level image param as send media source (issue 92407) (#92416). Thanks @xydigit-sj.
  • fix(sandbox): render CLI skill prompts from materialized paths (#92508). Thanks @brokemac79.
  • chore: fix esbuild production audit failure (#92540). Thanks @RomneyDa.
  • Add QA evidence artifact output (#91484). Thanks @RomneyDa.
  • Add QA scorecard taxonomy validation (#91500). Thanks @RomneyDa.
  • feat(moonshot): add Kimi K2.7 Code support (#92554).
  • fix(moonshot): backfill reasoning_content on assistant tool-call replay messages (#92396). Thanks @xialonglee.
  • Fix lifecycle timeout cleanup after leader exit (#92566). Thanks @RomneyDa.
  • Expose paged channel action results (#88993). Thanks @fuller-stack-dev.
  • fix(fireworks): resolve catalog model params from plugin.json via core (#90326). Thanks @obuchowski.
  • fix(doctor): warn for untrusted external Discord plugin (#86629). Thanks @brokemac79.
  • fix(providers): skip unreadable Mistral tool schemas (#90242). Thanks @vincentkoc.
  • fix(reply): mirror same-channel Slack final replies (#92498). Thanks @TurboTheTurtle.
  • fix(channels): default boundary logger for swallowed progress-draft start errors (#92083). Thanks @hansraj316.
  • fix(channels): make timer-fired progress-draft start errors observable (#92031). Thanks @hansraj316.
  • fix(agents): isolate invalid plugin model catalogs [AI-assisted] (#92564). Thanks @tangtaizong666.
  • docs: UX-013 — design system documentation (#89827). Thanks @BunsDev.
  • feat(ui): hide empty workboard columns (#89615). Thanks @BunsDev.
  • fix(a11y): B-1+B-2+B-3 — contrast, focus states, minimum font sizes (#89822). Thanks @BunsDev.
  • fix issue 92218: memory_search tool disabled with QMD backend (#92618). Thanks @mushuiyu886.
  • docs(gateway): add uptime monitoring guidance to health check docs (fixes issue 55768) (#92608). Thanks @liuhao1024.
  • fix(docs): pin Windows Hub download links to v2026.6.5 (#92605). Thanks @lzyyzznl.
  • issue 92589: fix(internal-runtime-context): wrap prompt-preface runtime context body in delimiters (#92593). Thanks @zhangqueping.
  • Run Vitest and Playwright scenarios from qa suite (#92606). Thanks @RomneyDa.
  • feat(hooks): per-turn usageState on reply_payload_sending (#89629). Thanks @Marvinthebored.
  • feat(usage): native templated /usage full footer renderer (#89835). Thanks @Marvinthebored.
  • fix(models): bound /models and models list catalog loading (#92247). Thanks @samson910022.
  • fix(gateway): honor profile auth for SecretRef model entries (#90686). Thanks @rohitjavvadi.
  • fix: require admin for HTTP session kills (#92651). Thanks @steipete-oai.
  • test(models): stabilize plugin auth marker fixtures (#92652).
  • fix(slack): warn when channels map is keyed by name instead of channel ID (#89438). Thanks @Alix-007.
  • fix(agents): pause yielded subagent runs whose terminal also signals abort (#92631). Thanks @openperf.
  • fix(ui): preserve WebChat backscroll during streaming (#92622). Thanks @TurboTheTurtle.
  • fix(openrouter): strip openrouter/ prefix from model ID in normalizeResolvedModel hook (fixes issue 92611) (#92627). Thanks @liuhao1024.
  • fix(cron): preserve yielded media completions (#92146). Thanks @IWhatsskill.
  • fix: add Claude Haiku 4.5 static catalog entries (#90116). Thanks @arkyu2077.
  • fix(channels): keep contributed message-tool schema properties optional (#91137). Thanks @lundog.
  • fix(copilot): disable eager tool streaming for Claude 4.5 (#75393). Thanks @Kailigithub.
  • fix issue 73713: surface nested embedding fetch failures (#92628). Thanks @mushuiyu886.
  • fix(slack): emit message_sent hook on outbound delivery (mirror Telegram) (#89943). Thanks @rishitamrakar.
  • fix(docs): finalize i18n postprocess before skip (#92668). Thanks @hxy91819.
  • fix: split image setup and request timeout semantics (#92673). Thanks @hxy91819.
  • fix(memory): keep memory_search in transient qmd mode (#92639). Thanks @TurboTheTurtle and @Takhoffman.
  • fix(ui): restore sidebar session picker interactivity above desktop workbench (#92705). Thanks @NianJiuZst.
  • feat: support /btw in CLI-backed sessions (#92669). Thanks @joshavant.
  • fix(gateway): mark active main sessions before restart shutdown aborts (#91357). Thanks @ooiuuii.
  • fix(ios): force stale foreground gateway reconnects (#92552). Thanks @Solvely-Colin.
  • fix(diagnostics): keep recovery scheduling out of the stuck-session warning backoff (#92752). Thanks @gnanam1990 and @Takhoffman.
  • clarify before_install hook scope (#92766). Thanks @sallyom.
  • Honor WhatsApp configured ACP bindings (#92513). Thanks @TurboTheTurtle and @mcaxtr.
  • feat(providers): add GLM-5.2 support (#92796).
  • fix(heartbeat): route outbound mirror to isolated session key (#92807). Thanks @agent-merkava.
  • fix(memory): explain skipped short-term recall hits (#92745). Thanks @mushuiyu886.
  • fix(gateway): forward image-only input on /v1/responses (parity with chat completions) (#92488). Thanks @s554097550.
  • fix(status): avoid cumulative usage for context percent (#92604). Thanks @ashishpatel26.
  • fix(nodes): surface pending reapproval diagnostics (#92547). Thanks @fuller-stack-dev.
  • fix(doctor): avoid false-positive legacy cron store warning when store was already migrated (fixes issue 92683) (#92690). Thanks @liuhao1024.
  • fix(telegram): skip IPv4 fallback when user explicitly configures non-ipv4first dnsResultOrder (fixes issue 41671) (#92806). Thanks @liuhao1024 and @vincentkoc.
  • fix(macos): defer isOverflowing mutation to break SwiftUI render loop (fixes issue 43480) (#92778). Thanks @liuhao1024 and @vincentkoc.
  • fix(gateway): use resolveNonNegativeNumber for totalTokens to display 0 instead of ? (fixes issue 43009) (#92795). Thanks @liuhao1024 and @vincentkoc.
  • fix(gateway): preserve active runs during plugin finalization (#92746). Thanks @scotthuang and @vincentkoc.
  • UI: localize Logs tab labels (#92820). Thanks @rubensfox20.
  • UI: localize logs hardcoded labels (#61080). Thanks @rubensfox20.
  • fix(telegram): preserve command callbacks while prefixing generic callback data (#92825). Thanks @hnshah.
  • fix(telegram): add 'callback_data:' prefix to inline button callbacks (#54962). Thanks @hnshah.
  • fix(copilot): drop thinking blocks from replay (#87060). Thanks @giodl73-repo.
  • fix(github-copilot): strip thinking blocks from latest assistant turn (issue 81520) (#81534). Thanks @SymbolStar.
  • feat(browser): extend --labels overlay to full-page and element captures (#92834). Thanks @hxy91819.
  • fix issue 92039: [Bug]: WhatsApp login reports success before auth is durably persisted, so Docker rebuilds/upgrades can force relink (#92095). Thanks @zhangguiping-xydt.
  • fix(stale): exempt ClawSweeper actionable labels from stale lifecycle (fixes issue 89564) (#92801). Thanks @liuhao1024.
  • fix(status): render sub-1000 token counts as plain integers (#89736). Thanks @jbetala7 and @vincentkoc.
  • fix(agents): catch malformed image blocks in sanitizeContentBlocksImages (#92792). Thanks @LowCode191 and @vincentkoc.
  • ci: gate stable releases on Windows companion assets (#92555). Thanks @fuller-stack-dev.
  • fix(agents): add usage guidance to sessions_spawn tool description (fixes issue 91814) (#91824). Thanks @zenglingbiao.
  • fix(qqbot): surface failed media sends (#92823). Thanks @zhangguiping-xydt.
  • Fix diagnostics OTEL runtime install trust (#92045). Thanks @efpiva.
  • fix(update): continue after package doctor warnings (#91586). Thanks @fuller-stack-dev.
  • fix(feishu): target typing reaction on inbound (#67783). Thanks @huiwen01.
  • fix(feishu): preserve root_id thread routing without thread_id forcing (#73958). Thanks @huiwen01.
  • fix(lobster): surface workflow path errors (#68106). Thanks @vvitovec.
  • fix(openai): preserve opaque reasoning transcript fields (#90682). Thanks @toruvieI.
  • fix(anthropic): strip thinking blocks from history when thinking is disabled (fixes issue 92360) (#92373). Thanks @liuhao1024.
  • fix(anthropic): merge consecutive assistant turns in turn validation (#87346). Thanks @Jefsky.
  • fix(anthropic): quarantine invalid direct tool schemas (#92896).
  • fix(anthropic): quarantine invalid projected tools (#89418). Thanks @vincentkoc.
  • fix(agents): guard Anthropic tool descriptors (#89221). Thanks @vincentkoc.
  • fix(agents): guard Anthropic tool schema conversion (#90228). Thanks @vincentkoc.
  • fix(agents): skip unreadable Anthropic tool schemas (#89622). Thanks @vincentkoc.
  • fix(llm): guard Anthropic provider tool descriptors (#89229). Thanks @vincentkoc.
  • fix(providers): skip unreadable Anthropic tool schemas (#90278). Thanks @vincentkoc.
  • fix(active-memory): preserve verbose recall summaries (#90739). Thanks @brokemac79.
  • Simplify QA scorecard mapping shape (#92558). Thanks @RomneyDa.
  • fix(memory-wiki): stop flagging raw source pages as malformed (#92876). Thanks @vincentkoc.
  • fix(providers): quarantine unreadable Anthropic payload tools (#92908).
  • fix(memory): preserve reindex rollback recovery (#92881). Thanks @TSHOGX and @vincentkoc.
  • fix(openai): quarantine unreadable tool schemas (#92921).
  • fix(openai): quarantine unreadable projected tools (#89413). Thanks @vincentkoc.
  • fix(agents): materialize OpenAI tool schemas (#89013). Thanks @vincentkoc.
  • fix(agents): guard OpenAI transport tool descriptors (#89016). Thanks @vincentkoc.
  • fix(agents): guard OpenAI tool schema conversion (#89378). Thanks @vincentkoc.
  • fix(agents): harden OpenAI strict schema inspection (#89543). Thanks @vincentkoc.
  • fix(agents): guard OpenAI strict tool diagnostics (#90200). Thanks @vincentkoc.
  • fix(providers): skip unreadable OpenAI completion tool schemas (#90283). Thanks @vincentkoc.
  • fix(providers): skip unreadable OpenAI responses tool schemas (#90286). Thanks @vincentkoc.
  • fix(openai): skip unreadable responses tool schemas (#90397). Thanks @vincentkoc.
  • Fold Telegram RTT sampling into live QA evidence (#92550). Thanks @RomneyDa.
  • fix(media): route OAuth image defaults through Codex (#92824). Thanks @bek91.
  • fix(cli): avoid false downgrade prompt for latest tag (#92911). Thanks @Andy312432 and @vincentkoc.
  • fix(openai): guard post-hook tool payloads (#92928).
  • fix(openai): guard responses tool payload names (#89703). Thanks @vincentkoc.
  • fix(sessions): fall back to reset archive for missing async transcripts (#92879). Thanks @masatohoshino and @CadanHu and @vincentkoc.
  • fix(feishu): re-resolve route when dynamic agent binding already exists in runtime config (fixes issue 42837) (#92814). Thanks @liuhao1024 and @vincentkoc.
  • fix(openai): omit gpt-5.5 tool reasoning effort (#90574). Thanks @BSG2000.
  • fix(openai): recover invalid reasoning signatures (#92941).
  • fix(lmstudio): deliver thinking "off" to binary-thinking models (#92002). Thanks @nxmxbbd.
  • issue 92201: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized (#92916). Thanks @mmyzwl.
  • fix(agents): do not misclassify client-disconnect abort as run timeout (#90936). Thanks @openperf.
  • fix(agents): make wrapToolWithBeforeToolCallHook idempotent to prevent double hook execution (fixes issue 92973) (#93009). Thanks @zenglingbiao.
  • fix(cron): require explicit message target proof (#92318). Thanks @hxy91819.
  • fix(gateway): repair usage cost aggregation across agents (#93022). Thanks @luke-skywalker-open-claw and @stablegenius49.
  • fix(tui): keep parent stdin paused after exit (#93159). Thanks @fuller-stack-dev.
  • Keep key-free web search providers opt-in (#93616). Thanks @davemorin and @vincentkoc.
  • feat(telegram): send rich message text (#92679). Thanks @obviyus.
  • fix(telegram): preserve rich markdown line breaks (#93164). Thanks @vincentkoc.
  • fix(telegram): allow expandable blockquotes (#84082). Thanks @jzakirov.
  • fix(telegram): expose thread create CLI remap (#89421). Thanks @spacegeologist.
  • fix(sessions): derive channel from account-scoped DM session keys in send-policy (#92788). Thanks @yetval.
  • Fix webchat media completion handoff (#91246). Thanks @TurboTheTurtle.
  • fix(cron): de-duplicate main-session systemEvent in heartbeat model input (#91287). Thanks @ZengWen-DT.
  • fix issue 92453: add session identity to runtime prompt (#92468). Thanks @zhangguiping-xydt.
  • fix(gateway): reject unknown OpenAI agent selectors (#92510). Thanks @zhangguiping-xydt.
  • fix(google): strip provider prefix from Vertex model path (#91218). Thanks @bymle.
  • fix(OpenAI Responses): disable item id replay for storeless providers (#90706). Thanks @snowzlm.
  • feat(usage): ship built-in /usage full footer (#92657). Thanks @Marvinthebored.
  • fix: start workspace files collapsed (#92779). Thanks @shakkernerd.
  • fix(ui): preserve /reset soft args in Control UI dispatch (#91353). Thanks @zhouhe-xydt.
  • fix(ui): preserve dashboard session parent lineage when session list is stale (#90658). Thanks @luoyanglang.
  • fix issue 92465: split OpenAI 431 embedding batches (#92650). Thanks @mushuiyu886.
  • fix(state): avoid sqlite wal on nfs state volumes (#91247). Thanks @849261680.
  • fix(memory): preserve retry state and embedding cache across reindex rollback (#59137). Thanks @TSHOGX.
  • fix(markdown-core): treat Infinity chunk limit as unbounded, not 1 (#92735). Thanks @yhterrance.
  • issue 92069: fix(cli): usage errors exit 0 (#92162). Thanks @Pandah97.
  • docs(nodes): add openclaw.json config example to Nodes overview (#92677). Thanks @liuhao1024.
  • docs(config): correct maxConcurrent default in agent-defaults type comments (AI-assisted) (#92695). Thanks @ArielSmoliar.
  • fix(discord): raise thread title timeout and tokens to fit reasoning models (#64734). Thanks @hanamizuki.
  • fix: require admin for HTTP model overrides (#92646). Thanks @steipete-oai.
  • fix(tui): show resolved canonical model ref in /model confirmation (#92773). Thanks @NarahariRaghava.

Linked issues

  • Reported: [Bug]: openclaw cron status reports legacy storePath (#91766). Thanks @AaronFaby.
  • Reported: [Bug]: Node.js auto-installer fails silently with ioctl errors then falsely reports success before crashing (#73837). Thanks @ItsMeForLua.
  • Reported: [Bug]: Missing SQLite perf and query-plan harness (#91616). Thanks @galiniliev.
  • Reported: [Feature]: Error: Gateway service install not supported on openbsd (#25621). Thanks @kucharskim.
  • Reported: [Bug]: cron edit --cron silently strips schedule.tz and staggerMs (direct path replaces schedule without merging) (#92291). Thanks @dcapclaw.
  • Reported: message tool: image param silently dropped on send — delivers text without attachment but returns ok:true (#92407). Thanks @ichirokyoto.
  • Reported: Kimi K2.6 reasoning_content 400 regression in long conversations after LCM compaction (follow-up issue 70392) (#71491). Thanks @RoseKongPS.
  • Reported: [Bug]: Moonshot/Kimi duplicate tool-call IDs in replay, exposed by WhatsApp group chats (#51593). Thanks @Faaab84 and @Pluviobyte.
  • Reported: Discord channel stays disabled with no warning unless plugins.entries.discord.enabled is set (#83212). Thanks @cdeyoung67.
  • Reported: [Bug]: Slack channel/thread sessions never persist assistant replies to the session transcript → total context loss when the CLI session binding is invalidated (#92489). Thanks @TalkingHeadsJed and @TurboTheTurtle.
  • Reported: ModelRegistry: a single invalid plugin catalog aborts the entire custom-models load, leaving zero models and an unlogged error (#92553). Thanks @fxstein.
  • Reported: Health check bloat: uptime monitors must use /health, not /v1/chat/completions (#55768). Thanks @faahim.
  • Reported: [Bug]: Windows Hub download link is not working (#92470). Thanks @arjkul.
  • Reported: Feishu channel leaks system runtime context (relevant-memories, sender metadata) into user-visible reply (#92589). Thanks @jovi2014-cyber.
  • Reported: [Performance] /models command slow in v2026.6.1 — catalog loading regression (#91809). Thanks @syfvb.
  • Reported: models.list marks auth-profile-backed SecretRef providers unavailable (#90685). Thanks @rohitjavvadi.
  • Reported: Name-keyed entries in channels.slack.channels silently dropped under groupPolicy: "allowlist" (#81665). Thanks @cjalden.
  • Reported: [Bug]: sessions_yield in a depth-1 subagent settles its background task as "cancelled" (operator-reserved status) and delivers a false "Background task cancelled" notice to the requester session (#92448). Thanks @aleps001.
  • Reported: [Bug]: OpenRouter: Anthropic models send wrong model ID to API (includes openrouter/ prefix) (#92611). Thanks @lijenhsin.
  • Reported: anthropic (api_key) provider: Claude Haiku 4.5 missing from static model catalog → "Unknown model" (model_not_found) (#90088). Thanks @maaron34.
  • Reported: github-copilot: tools[].eager_input_streaming still rejected on v2026.4.29 (re: issue 72183) (#75348). Thanks @finchinslc and @Kailigithub.
  • Reported: openclaw infer embedding create fails with TypeError: fetch failed on Node 24 despite valid Voyage credential; underlying cause is swallowed (#73713). Thanks @crsnpalmer-art.
  • Reported: Gateway runs well-formed-but-unknown agent slug under agents.defaults instead of 4xx (no roster validation in resolveAgentIdForRequest; x-openclaw-agent-id header never roster-validated) (#92504). Thanks @ryanhelms.
  • Reported: [Bug]: Delivery retry loop corrupts active sessions (R-004) — retry selector bypasses delivery.mode=none (#91420). Thanks @CarotaWealth.
  • Reported: Agent runtime header lacks session identity, causing misleading self-references (#92453). Thanks @QQSHI13.
  • Reported: fix(slack): emit message_sent hook on outbound delivery (mirror Telegram) (#89942). Thanks @rishitamrakar.
  • Reported: bug(cli): usage errors exit 0 (#92069). Thanks @marcospaulo.
  • Reported: void requireRef silences dead-import lint via side-effect expression (#83878). Thanks @davinci282828.
  • Reported: formatDiskSpaceBytes emits "1024 MiB" instead of "1.0 GiB" at the GiB boundary (#90245). Thanks @jbetala7.
  • Reported: setFeishuClientRuntimeForTest resets the SDK without clearing the client cache (#83911). Thanks @davinci282828.
  • Reported: [Bug]: Cron job with sessionTarget: "main" triggers both systemEvent and reminder despite delivery.mode: "none" (#44922). Thanks @GSL-R.
  • Reported: music_generate background task completion delivery consistently fails (completion wake + fallback both fail) (#91003). Thanks @kumaxs.
  • Reported: [Bug]: In the Control UI, /reset soft is truncated to /reset when executed, and the args are lost (#91316). Thanks @MaBeitian.
  • Reported: Bug: dashboard child sessions record assistant replies but do not display them (#90623). Thanks @lily-oc.
  • Reported: openclaw message thread create for Telegram: thread-create → topic-create remap not happening; gateway rejects with Unsupported Telegram action (#81581). Thanks @myrzka.
  • Reported: [Bug]: GatewayRequestError: Error: file is not a database: code=ERR_SQLITE_ERROR (#90491). Thanks @AFabyTWE.
  • Reported: Signal image captions truncated to first character (Infinity chunk limit normalizes to 1) (#92734). Thanks @yhterrance.
  • Reported: Docs feedback: /nodes (#92662). Thanks @Casper-Mars.
  • Reported: Bulk memory import can hit OpenAI 431; chunked indexing avoids it (#92465). Thanks @BrettHamlin.
  • Reported: Docker image ships an extraneous stale openclaw in /app/node_modules (extensions pin the published release) (#92551). Thanks @fxstein.
  • Reported: Telegram callback queries time out when agent turn is queued behind sequentialize (#42156). Thanks @Diaspar4u.
  • Reported: doctor + cron status still report the retired cron/jobs.json store after the SQLite migration (2026.6.5) (#92683). Thanks @motteman.
  • Reported: [Bug]: Telegram media download fails on IPv4-broken / IPv6-working hosts because runtime IPv4 fallback overrides config (#41671). Thanks @leandroirani933-ctrl and @vincentkoc.
  • Reported: macOS app pinwheels due to SwiftUI infinite render loop in VoiceWakeOverlay (#43480). Thanks @gdiab and @vincentkoc.
  • Reported: TUI displays Context Tokens as ?/200k instead of actual value (#43009). Thanks @ltxy12138-ai and @vincentkoc.
  • Reported: [Bug]: Telegram inline button callback_query not routed to agent — hallucination instead of tool call (#54909). Thanks @timt80 and @hnshah.
  • Reported: Status/session context window can over-report the selected model's actual window (#39857). Thanks @xdanger.
  • Reported: [Bug]: Reasoning model thinking blocks ( tags) in conversation history cause HTTP 400 on GitHub Copilot provider (#81520). Thanks @warcold.
  • Reported: fix(memory): EPERM on Windows persists after 64187 retry — needs copyFile/unlink fallback (was in closed PR 71611) (#78640). Thanks @MilleniumGenAI.
  • Reported: [Bug]: WhatsApp block streaming can suppress complete final replies after partial stream delivery (#81078). Thanks @Jackten.
  • Reported: Bug: Twilio voice-call can get stuck in hold music after failed/no-stream call (#81122). Thanks @donkeykong91.
  • Reported: [Bug]: Stale workflow does not exempt ClawSweeper queueable issues (#89564). Thanks @brokemac79.
  • Reported: [Bug]: openclaw status renders sub-1000 token counts as misleading fractional k (999 → "1.0k") (#89735). Thanks @jbetala7 and @vincentkoc.
  • Reported: [Feature]: sessions_spawn tool description lacks usage guidance, causing agents to not use sub-agents when appropriate (#91814). Thanks @cattails-lgao.
  • Reported: [Bug]: Lobster tool falls back to pipeline parsing for relative workflow file paths (#68101). Thanks @MPC7500 and @vvitovec.
  • Reported: openai-chatgpt-responses native replay sends encrypted reasoning and breaks next turn with invalid_encrypted_content (#90093). Thanks @richardmqq.
  • Reported: [Bug]: Persistent sessions corrupted by stale thinking blocks — provider rejects all subsequent turns (#92360). Thanks @notnaji.
  • Reported: Bug: Subagent announce-delivery echo messages inherit wrong provider/model metadata, causing persistent "thinking blocks cannot be modified" errors after gateway restart (#87329). Thanks @travellingsoldier85.
  • Reported: Codex-authenticated installs can auto-select direct OpenAI for image media understanding without OPENAI_API_KEY (#87168). Thanks @bek91.
  • Reported: [Bug]: Feishu dynamicAgentCreation feature not working (#42837). Thanks @cwlong163-afk and @vincentkoc.
  • Reported: BUG: sessions_spawn silently half-fails when thinking level is unsupported — fan-out spawns produce non-deterministic survivors, no signal to orchestrator (fix: symmetrize CLI-launch fallback with embedded path) (#92412). Thanks @oiGaDio.
  • Reported: Config hot-reload permanently disabled when inotify watches exhausted (no polling fallback) (#92851). Thanks @danbao.
  • Reported: Gateway becomes slow or times out under multi-session / multi-agent load (#92057). Thanks @xiaopings.
  • Reported: fix(memory-wiki): guard against missing agentIds (#92207). Thanks @qq230849622-a11y.
  • Reported: Embedded runner: freshly streamed thinking signatures intermittently invalid on replay (Anthropic); recovery wrapper never fires because error text is genericized (#92201). Thanks @CarlCapital.
  • Reported: before_tool_call hook fires twice: tools double-wrapped after normalizeToolParameters strips the wrap marker (#92973). Thanks @dertbv.
  • Reported: memory-wiki lint: sources/ directory requires frontmatter on raw imported files (#69700). Thanks @arlen8411.

Release verification

Don't miss a new openclaw release

NewReleases is sending notifications on new releases.