这是一个仅面向网关的 `extended-stable`(扩展稳定版)版本,相当于我们目前的 LTS。此版本基于 2026 年 8 月底的 OpenClaw,并包含关键安全更新、可靠性与性能修复,以及新模型支持等功能。本版本发布时,OpenClaw 的最新版本为 [2026.9.7](https://github.com/openclaw/openclaw/releases#release-v2026.9.7)
## 2026.8.34
### 亮点
- **扩展稳定版正确性汇总:** 向后移植 113 个经审计筛选的修复单元,涵盖升级、Doctor、身份验证、会话、渠道、插件、沙箱、文件系统安全、模型运行时和发布打包。
- **完整重新扫描:** 重新评估完整的 2026.8.33 发现范围、大型多用途拉取请求以及 2026.7.35 系列,而非仅从上一次向后移植的游标继续推进。
- **升级与恢复强化:** 在升级、重启和 Doctor 修复过程中保留凭据、智能体状态、插件清单、转录记录、计划任务、服务所有权和运行时链接。
- **边界修复:** 加强远程文件系统变更、插件和技能扫描、浏览器身份验证、渠道回复身份、私有技能入口以及限定作用域的运行时所有权。
### 变更
- **扩展稳定版发布准备:** 将 OpenClaw、可发布插件、原生版本元数据、生成的渠道目录和 npm 软件包清单统一调整为 2026.8.34。
### 修复
- **插件:** 恢复孤立安装,同时不削弱所有权保护。
- **Doctor:** 修复带键的多智能体名册,同时不影响所有权(#134706)
- 防止设备配对迁移因受污染的记录而崩溃。
- **Doctor:** 在升级过程中保留各智能体的记忆搜索配置。
- **Doctor:** 根据来源信息检测共享身份验证迁移(#134808)
- **Cron:** 拒绝重写过时的 Doctor 存储。
- **网关:** 在身份验证发生变化后刷新模型目录(#134361)
- **OpenAI:** 修复过时的 Doctor 路由固定设置。
- **身份验证:** 验证共享凭据迁移回执(#134952)
- **Cron:** 将模型别名的作用域限定于选定的所有者(#135069)
- **记忆:** 为兼容的嵌入模型解析配置文件身份验证(#134744)
- **身份验证:** 恢复因已完成迁移而遗留的凭据(#135346)
- **身份验证:** 重新登录时修复升级后过时的配置文件顺序。
- **身份验证:** 在 Doctor 中保留自定义提供商的 SecretRef。
- **Docker:** 在运行时镜像中安装 libgomp1,以支持托管的 llama.cpp(#134532)
- **设备:** 允许经过授权的限定作用域节点令牌管理(#135617)
- **Microsoft Teams:** 当渠道回复没有 replyToId 时,线程上下文会丢失(#129345)
- **UI:** 忽略仅限工具的模型身份验证行(#134218)
- **Cron:** 省略 env 时,更改类型会因“command env must be an object”而失败(#134639)
- **备份:** 在遍历前排除工作区。
- **基础设施:** 从 Windows 扩展名查找中删除空的 PATHEXT 条目(#135807)
- **Anthropic:** 当代理省略 message_delta 的用量信息时,上下文用量会丢失(#135467)
- **Systemd:** 保护托管备份中的凭据(#131786)
- **智能体:** 保留请求方的 MCP 运行时所有权(#134819)
- **插件:** 在源挂载发生变化时刷新持久化注册表(#136517)
- 后续排空操作重试“正在排空”错误时,网关重启会卡住(#136713)
- **身份验证:** 在会话 SDK 刷新期间保留 OAuth 元数据(#127988)
- **Doctor:** 识别已配置的记忆提供商密钥引用(#137782)
- **会话:** 保留逻辑共享存储的所有权(#138380)
- 具有完整访问权限的任务在网关重启后会丢失工具(#138701)
- 从会话差异中排除未更改的文件(#138877)
- **身份验证:** 在数分钟内(而非数小时内)恢复已禁用计费的配置文件(#136364)
- **身份验证:** 登录期间保持未设置的默认模型不变(#139218)
- **网关:** 避免升级中的客户端断开连接时发生崩溃(#139061)
- **Shell 环境:** 在登录导入期间保留 CLI 终端所有权(#139308)
- **自动回复:** 将末尾新增的转录内容计入记忆刷新后的最新总量(#138928)
- **Cron:** 在重启后保留待执行的节奏化检查(#140083)
- **守护进程:** 时钟跳变后,Systemd 安装不再因“无法验证所有权”而中止(#137253)
- **配置:** 在进程内重启后应用环境变更(#141296)
- 粘贴的文本在模型锁定的 Codex 会话中丢失(#142021)
- **Docker:** 修复依赖项所有权保护导致的源码构建问题(#142073)
- **安全:** 保留现有的 WhatsApp 群组允许列表(#142589)
- **Doctor:** 避免安装未选择的搜索提供商(#142640)
- **Doctor:** 迁移旧版 Codex 音乐模型选择器(#143235)
- **Doctor:** 在诊断中保留所选模型的元数据(#144332)
- **Discord:** 报告父渠道对线程权限的拒绝(#121144)
- **配置:** 保存设置时避免误报模型变更(#144807)
- **Doctor:** 隔离失败时保留旧版注册表文件(#144787)
- 在发现对话期间保留路由所有权(#146927)
- **安装:** Node 验证失败时保留运行时链接(#147221)
- 对于未安装插件的渠道配置,Doctor 会报告 OAuth 目录缺失(#147888)
- **Doctor:** 防止会话修复后重新播放私有的待处理输入(#148625)
- **渠道:** 确保任务作用域的上下文租约仅结算一次(#148922)
- **推送:** 规范化格式错误的代理身份验证错误(#149112)
- **Cron:** 在静默更改计划之前拒绝无效的错峰设置(#151740)
- **CLI:** 将模型验证排除在会话执行之外(#154763)
- **智能体:** 将空的凭据环境变量视为未解析(#155558)
- **Doctor:** 对梦境日记和所有记忆目标处理程序应用环境所有者回退机制(#156437)
- **沙箱:** 解除跨运行时目标的限定作用域重建阻塞(#157808)
- **安全:** 在审计层级检查中解析 GPT 的代数编号(#140012)
- **Doctor:** 在没有默认智能体的情况下报告共享身份验证的健康状况(#134902)
- **Doctor:** 收敛冗余的共享身份验证迁移子集(#135096)
- **Doctor:** 报告保留的设备身份验证文件(#133978)
- **更新:** 聊天所有权被撤销后停止分离式更新(#137312)
- **Doctor:** 在完整检查期间检查源身份验证存储(#137610)
- **网关:** 在重启后恢复排队中的 RPC 回复(#138565)
- **Doctor:** 在配置修复期间保留旧版所有权(#138837)
- 防止 Doctor 因浏览器配置文件权限问题而卡住(#139612)
- **网关:** 防止 Systemd 重启卡住(#140914)
- **Doctor:** 恢复作用域无效的旧版节点令牌(#143599)
- **技能:** 网关重启时刷新会话快照(#122110)
- **Doctor:** 修复会话 SQLite 导入会从旧版转录记录中遗漏 Codex 助手消息的问题(#140296)
- **Cron:** 在计划运行时转发 claude-cli 身份验证配置文件,以防止 OAuth 过期(#144266)
- **Discord:** 保留发送者拥有的行数限制和回复作用域(#137969)
- **安装:** 安装过程中绝不替换或破坏现有的 nvm(#145317)
- **会话:** 在 Doctor 中恢复被遗漏的历史转录记录(#120781)
- **更新:** 识别使用自定义 npm 前缀的安装(#146091)
- **上下文:** 在回复维护前保留提供商作用域的提示词预算(#141052)
- **会话:** 防止 Doctor 和启动过程耗尽内存(#149704)
- **守护进程:** 在服务升级过程中保留内联身份验证信息(#149686)
- **更新:** 使用服务凭据验证已配对的可信代理网关(#153540)
- 后台延续任务会丢失会话访问权限和 GitHub 工具(#141865)
- **Doctor:** 跨读取数据块边界解码会话标头(#154034)
- 故障压缩探测会导致运行控制卡死,并使重启中止(#154868)
- **UI:** 发布被拒绝的目标操作(#156363)
- **命令:** 对会话生命周期键进行去重(#158487)
- **插件:** 保留运行时构件偏好设置(#158487)
- **智能体:** 从公共入口中剥离私有技能创作功能(#159220)
- **插件:** 卸载期间保留 include 的所有权(#159945)
- **渠道:** 恢复系统智能体的审批反应(#159132)
- **Moonshot:** 拒绝继承的思考模型键(#158437)
- **腾讯:** 忽略继承的 effort-map 键(#158437)
- **工作进程:** 监听已经中止的操作 Promise(#158228)
- **网关:** 拒绝非对象类型的 Claude 历史记录行(#158228)
- **Copilot:** 在同步工厂函数失败后恢复池(#157819)
- **Tlon:** 保留 IPv6 舰船来源(#157825)
- **短信:** 清理已撤销的入站媒体(#157825)
- **Slack:** 保留替换后的 Webhook 注册(#158085)
- **Matrix:** 接受系统智能体的审批反应(#158164)
- **渠道:** 在重启后保持输入状态计时的排他性(#158830)
- **ACP:** 格式化未设置的可选工具参数(#159417)
- **会议:** 清理部分启动的音频(#157982)
- **执行:** 保留准备好的插件环境(#158378)
- **MXC:** 网桥失败后清理临时目录(#158532)
- **Discord:** 保留批处理原生回复的身份(#158886)
- **技能:** 对遗漏的危险执行别名仅计数一次(#158906)
- **沙箱:** 保留远程变更路径的原始字节(#159346)
- **浏览器:** 接受标准 CDP 标头容器(#159430)
- **插件:** 保留稀疏目录偏好设置(#159945)
- **Doctor:** 保留完整的插件清单(#153901)
- **文件系统:** 保持有界文件系统操作的正确性(#157524)
### 完整贡献记录
此版本包含 113 个获批单元:60 个与源代码完全一致的提交、25 个实质性调整、27 个从大型或多用途拉取请求中提取的狭窄切片,以及一个用于实现 2026.7.35 插件清单一致性的修复。已由 2026.8.33 架构覆盖的单元,或其较新存储契约在此版本分支中并不存在的单元,均记录为有证据支持的纳入项,而非重复或推测性的代码。
### 发布验证
- npm 软件包:https://www.npmjs.com/package/openclaw/v/2026.8.34
- 注册表 tarball:https://registry.npmjs.org/openclaw/-/openclaw-2026.8.34.tgz
- 完整性校验:`sha512-wr/4SIbHkX2sSCi5etvIevjYK4IWfKsQmPf3Yhhrix4Eg94CALkdBr8VPAQsbMXyiILGQpW6syjXsmFs+aCvzg==`
- 发布 SHA:`d21cb744af45bc4d29352750c5e1e7f1cf7f066a`
- 完整发布 CI 报告:https://github.com/openclaw/releases/blob/main/evidence/2026.8.34/release-evidence.md
- 发布流程:https://github.com/openclaw/openclaw/actions/runs/36941737739
- npm 预检:https://github.com/openclaw/openclaw/actions/runs/36819226831
- 完整发布验证:https://github.com/openclaw/openclaw/actions/runs/36818791392
- 插件 npm 发布:https://github.com/openclaw/openclaw/actions/runs/36942133414
- 插件 ClawHub 发布:没有常规 OIDC 候选项
- 插件 ClawHub 引导:不需要
- OpenClaw npm 发布:https://github.com/openclaw/openclaw/actions/runs/36919657824/attempts/1
- npm Telegram Beta 端到端测试:未提供
This is a gateway-only `extended-stable` release, which is our current equivalent to LTS. This release is OpenClaw from the end of August 2026, plus critical security updates, reliability and performance fixes, and features like new model support. The latest version of OpenClaw at the time of this release is [2026.9.7](https://github.com/openclaw/openclaw/releases#release-v2026.9.7)
## 2026.8.34
### Highlights
- **Extended-stable correctness rollup:** backport 113 audit-selected fix units across upgrades, Doctor, authentication, sessions, channels, plugins, sandboxing, filesystem safety, model runtimes, and release packaging.
- **Complete rescan:** re-evaluate the full 2026.8.33 discovery range, large mixed-purpose pull requests, and the 2026.7.35 lineage instead of advancing only from the previous backport cursor.
- **Upgrade and recovery hardening:** preserve credentials, agent state, plugin inventory, transcripts, schedules, service ownership, and runtime links through upgrades, restarts, and Doctor repair.
- **Boundary fixes:** tighten remote filesystem mutation, plugin and skill scanning, browser authentication, channel reply identity, private skill ingress, and scoped runtime ownership.
### Changes
- **Extended-stable release preparation:** align OpenClaw, publishable plugins, native version metadata, generated channel catalogs, and npm package inventories to 2026.8.34.
### Fixes
- **Plugins:** Recover orphan installs without weakening ownership.
- **Doctor:** Repair keyed multi-agent rosters without ownership (#134706)
- Prevent device pairing migration crash on contaminated records.
- **Doctor:** Preserve per-agent memory search during upgrades.
- **Doctor:** Detect shared auth migration by provenance (#134808)
- **Cron:** Refuse stale doctor store rewrites.
- **Gateway:** Refresh model catalog after auth changes (#134361)
- **Openai:** Repair stale doctor route pins.
- **Auth:** Verify shared credential migration receipts (#134952)
- **Cron:** Keep model aliases scoped to the selected owner (#135069)
- **Memory:** Resolve profile auth for compatible embeddings (#134744)
- **Auth:** Recover credentials stranded by completed migrations (#135346)
- **Auth:** Relogin repairs stale profile order after upgrade.
- **Auth:** Preserve custom provider SecretRefs in Doctor.
- **Docker:** Install libgomp1 in the runtime image for managed llama.cpp (#134532)
- **Devices:** Allow authorized scoped node token management (#135617)
- **Msteams:** Thread context is dropped when a channel reply has no replyToId (#129345)
- **Ui:** Ignore tool-only model auth rows (#134218)
- **Cron:** Kind change fails with "command env must be an object" when env is omitted (#134639)
- **Backup:** Exclude workspaces before traversal.
- **Infra:** Drop empty PATHEXT entries from Windows extension lookup (#135807)
- **Anthropic:** Context usage is lost when a proxy omits message_delta usage (#135467)
- **Systemd:** Protect credentials in managed backups (#131786)
- **Agents:** Preserve requester MCP runtime ownership (#134819)
- **Plugins:** Refresh persisted registry when source mounts change (#136517)
- Gateway restart hangs while followup drain retries a draining error (#136713)
- **Auth:** Preserve OAuth metadata during session SDK refresh (#127988)
- **Doctor:** Recognize configured memory provider secret references (#137782)
- **Sessions:** Preserve logical shared-store ownership (#138380)
- Full-access tasks lose tools after Gateway restart (#138701)
- Keep unchanged files out of session diffs (#138877)
- **Auth:** Recover billing-disabled profiles in minutes instead of hours (#136364)
- **Auth:** Keep an unset default model unchanged during login (#139218)
- **Gateway:** Avoid crashes when an upgrading client disconnects (#139061)
- **Shell-env:** Preserve CLI terminal ownership during login imports (#139308)
- **Auto-reply:** Fold trailing transcript growth into memory-flush fresh totals (#138928)
- **Cron:** Preserve pending paced checks across restart (#140083)
- **Daemon:** Systemd install no longer aborts on "ownership could not be verified" after a clock step (#137253)
- **Config:** Apply environment changes after in-process restart (#141296)
- Pasted text is missing in model-locked Codex sessions (#142021)
- **Docker:** Restore source builds after dependency ownership guard (#142073)
- **Security:** Preserve existing WhatsApp group allowlists (#142589)
- **Doctor:** Avoid installing unselected search providers (#142640)
- **Doctor:** Migrate legacy Codex music model selectors (#143235)
- **Doctor:** Preserve selected model metadata in diagnostics (#144332)
- **Discord:** Report parent channel denies for thread permissions (#121144)
- **Config:** Avoid false model changes when saving settings (#144807)
- **Doctor:** Preserve legacy registry files when quarantine fails (#144787)
- Retain route ownership while discovering conversations (#146927)
- **Install:** Preserve runtime links when Node validation fails (#147221)
- Doctor reports missing OAuth dir for channel config with no installed plugin (#147888)
- **Doctor:** Stop private pending inputs replaying after session repair (#148625)
- **Channels:** Settle task-scoped context leases once (#148922)
- **Push:** Normalize malformed proxy auth errors (#149112)
- **Cron:** Reject invalid stagger before silent schedule changes (#151740)
- **Cli:** Keep model validation out of session execution (#154763)
- **Agents:** Treat empty credential environment variables as unresolved (#155558)
- **Doctor:** Apply ambient-owner fallback to dream diary and all memory target handlers (#156437)
- **Sandbox:** Unblock scoped recreation across runtime targets (#157808)
- **Security:** Parse gpt generation numbers in the audit tier check (#140012)
- **Doctor:** Report shared auth health without a default agent (#134902)
- **Doctor:** Converge redundant shared auth relocation subsets (#135096)
- **Doctor:** Report retained device-auth files (#133978)
- **Update:** Stop detached updates after chat ownership is revoked (#137312)
- **Doctor:** Inspect source auth stores during full lint (#137610)
- **Gateway:** Recover queued RPC replies across restart (#138565)
- **Doctor:** Preserve legacy ownership during config repair (#138837)
- Prevent browser profile permission hangs in Doctor (#139612)
- **Gateway:** Prevent systemd restarts from hanging (#140914)
- **Doctor:** Recover legacy node tokens with invalid scopes (#143599)
- **Skills:** Refresh session snapshots on gateway restart (#122110)
- **Doctor:** Session SQLite import drops Codex assistant messages from legacy transcripts (#140296)
- **Cron:** Forward claude-cli auth profile on scheduled runs to prevent OAuth expiration (#144266)
- **Discord:** Preserve sender-owned line limits and reply scope (#137969)
- **Install:** Never replace or break an existing nvm during installation (#145317)
- **Sessions:** Recover omitted historical transcripts in Doctor (#120781)
- **Update:** Recognize custom npm prefix installations (#146091)
- **Context:** Preserve provider-scoped prompt budgets before reply maintenance (#141052)
- **Sessions:** Prevent Doctor and startup memory exhaustion (#149704)
- **Daemon:** Preserve inline auth through service upgrades (#149686)
- **Update:** Verify paired trusted-proxy gateways with service credentials (#153540)
- Background continuations lose session access and GitHub tools (#141865)
- **Doctor:** Decode session headers across read chunk boundaries (#154034)
- Faulty compaction probe wedges run steering and restart aborts (#154868)
- **Ui:** Publish rejected goal operations (#156363)
- **Commands:** Deduplicate session lifecycle keys (#158487)
- **Plugins:** Preserve runtime artifact preference (#158487)
- **Agents:** Strip private skill authoring from public ingress (#159220)
- **Plugins:** Preserve include ownership during uninstall (#159945)
- **Channels:** Restore system-agent approval reactions (#159132)
- **Moonshot:** Reject inherited thinking-model keys (#158437)
- **Tencent:** Ignore inherited effort-map keys (#158437)
- **Workers:** Observe already-aborted operation promises (#158228)
- **Gateway:** Reject non-object Claude history rows (#158228)
- **Copilot:** Recover pool after synchronous factory failures (#157819)
- **Tlon:** Preserve IPv6 ship origins (#157825)
- **Sms:** Clean revoked inbound media (#157825)
- **Slack:** Preserve replacement webhook registrations (#158085)
- **Matrix:** Accept system-agent approval reactions (#158164)
- **Channels:** Retain typing tick exclusivity across restart (#158830)
- **Acp:** Format unset optional tool arguments (#159417)
- **Meeting:** Clean up partial audio startup (#157982)
- **Exec:** Retain prepared plugin environment (#158378)
- **Mxc:** Clean temp directory after bridge failure (#158532)
- **Discord:** Preserve batched native reply identities (#158886)
- **Skills:** Count omitted dangerous exec aliases once (#158906)
- **Sandbox:** Preserve remote mutation path bytes (#159346)
- **Browser:** Accept standard CDP header containers (#159430)
- **Plugins:** Preserve sparse catalog preferences (#159945)
- **Doctor:** Preserve complete plugin inventory (#153901)
- **Fs:** Preserve bounded filesystem correctness (#157524)
### Complete contribution record
This release represents 113 approved units: 60 exact source commits, 25 material adaptations, 27 narrow slices extracted from large or mixed-purpose pull requests, and one 2026.7.35 plugin-inventory parity repair. Units already covered by the 2026.8.33 architecture, or whose newer storage contract does not exist on this release line, are recorded as evidence-backed inclusions rather than duplicate or speculative code.
### Release verification
- npm package: https://www.npmjs.com/package/openclaw/v/2026.8.34
- registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.8.34.tgz
- integrity: `sha512-wr/4SIbHkX2sSCi5etvIevjYK4IWfKsQmPf3Yhhrix4Eg94CALkdBr8VPAQsbMXyiILGQpW6syjXsmFs+aCvzg==`
- release SHA: `d21cb744af45bc4d29352750c5e1e7f1cf7f066a`
- full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.8.34/release-evidence.md
- release publish: https://github.com/openclaw/openclaw/actions/runs/36941737739
- npm preflight: https://github.com/openclaw/openclaw/actions/runs/36819226831
- full release validation: https://github.com/openclaw/openclaw/actions/runs/36818791392
- plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/36942133414
- plugin ClawHub publish: no normal OIDC candidates
- plugin ClawHub bootstrap: not needed
- OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/36919657824/attempts/1
- npm Telegram beta E2E: not supplied