← 返回更新日志

OpenClaw v2026.6.9

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