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