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