Release v0.1.9
文档
- 修复 README 中多个文档链接 404 问题(#513):更正快速开始、渠道接入、飞书/钉钉/企业微信/QQ 渠道、技能开发等链接路径。感谢 @lvjianchaos 🙏
bug修复
-
修复
sudo gateway install报 exit 125 错误:sudo openclaw gateway install时,process.getuid()返回0(root),导致 launchctl 目标 domain 变为gui/0。root 没有 GUI 登录 session,launchctl bootstrap gui/0因此报Bootstrap failed: 125: Domain does not support specified action。修复方案:resolveGuiDomain()优先读取SUDO_UID环境变量(sudo 自动设置),确保 bootstrap 始终指向原始用户的gui/<uid>domain -
修复非 GUI 会话下
gateway install报 exit 125 错误:在 SSH 连接或无 GUI 登录的 macOS 用户下安装网关时,launchctl bootstrap gui/<uid>因gui/<uid>domain 不存在而报Bootstrap failed: 125。修复方案:当检测到 launchd 125 错误时,自动降级到launchctl load -w(macOS 兼容方案),服务立即启动,并在用户下次 GUI 登录时自动激活 -
修复
--port参数安装后端口不生效问题(根本修复):LEGACY_GATEWAY_LAUNCH_AGENT_LABELS包含com.clawdbot.gateway(与当前 label 相同),legacy 清理循环会fs.unlink删除当前 plist 文件,导致后续主 teardown 的unload -w无文件可操作(no-op),旧服务的 launchd 注册未被清除,新load -w/bootstrap检测到同名 label 已存在也变成 no-op,进程始终以旧端口启动。修复方案:legacy 循环跳过当前 label(由主 teardown 处理),确保 plist 文件在unload -w前始终存在 -
修复 SSH 会话中无法卸载/替换 GUI 会话加载的 LaunchAgent:通过 SSH 执行
gateway install --port 18790时,如果该服务之前是通过 GUI 登录会话加载的(launchctl load/bootstrap gui/<uid>),SSH 会话中的bootout gui/<uid>/label和unload -w命令均无法触达该服务(macOS launchd 跨域隔离),导致旧进程持续运行。修复方案:所有 launchd 卸载/停止/检测操作优先使用launchctl remove <label>(无需指定 domain,跨上下文可靠),launchctl list <label>替代launchctl print domain/label做存在性检测,确保从 SSH、sudo、GUI 任意上下文均可正确管理服务
微信官方插件渠道支持
- 新增微信渠道(
@tencent-weixin/openclaw-weixin):新增微信官方插件渠道@openclaw-cn/openclaw-weixin,通过腾讯官方openclaw-weixin接入微信个人号。配置向导支持一键安装插件、自动启用渠道配置,并引导用户通过扫码完成微信登录 - plugin-sdk 新增运行时命令授权工具函数:为官方微信插件导出
resolveSenderCommandAuthorizationWithRuntime(基于 runtime 对象的命令授权)、resolveDirectDmAuthorizationOutcome(DM 授权结果判定),修复官方插件消息处理时is not a function崩溃 - plugin-sdk 新增临时目录解析函数:导出
resolvePreferredOpenClawTmpDir,修复官方微信插件加载时因缺少该函数导致的启动崩溃 - 插件运行时新增
withReplyDispatcher方法:在PluginRuntime.channel.reply中新增withReplyDispatcher生命周期包装器,确保回复分发完成后所有排队消息被刷新,修复官方微信插件处理消息时withReplyDispatcher is not a function报错 - 配置向导模型选择过滤优化:修复配置向导中选择百炼等自定义 Provider 时显示所有模型而非仅该 Provider 模型的问题。修复方案:在过滤前将 config 中的自定义 Provider 模型补充到 SDK 目录中,确保按 Provider 筛选时能正确显示对应模型列表
- 修复微信插件子路径导入报错:修复
@tencent-weixin/openclaw-weixin插件加载时报Cannot find module '.../plugin-sdk/index.js/channel-config-schema'的问题。根本原因:jiti 别名指向plugin-sdk/index.js(文件)而非目录,导致子路径导入被拼接为无效路径。修复方案:resolvePluginSdkAlias()返回目录路径;新增plugin-sdk/channel-config-schema.ts子路径模块 - 新增 plugin-sdk 全部子路径模块:为微信官方插件 v2.0.1 补齐所有子路径导入模块(
account-id、channel-contract、channel-runtime、command-auth、config-runtime、core、infra-runtime、plugin-entry、reply-runtime、text-runtime),包含withFileLock文件锁工具函数和loadConfig/writeConfigFile配置读写函数导出,以及OpenClawConfig/OpenClawPluginApi类型别名映射 - 修复微信插件版本兼容性检查失败:微信插件 v2.0.1 要求主机版本
>=2026.3.22(上游日期格式),而 openclaw-cn 使用0.x版本号导致检查不通过。修复方案:在package.json中新增openclawVersion字段(2026.3.24),PluginRuntime.version优先读取该字段,使第三方插件的版本兼容性检查正常通过
Web UI 功能增强
- Web UI 对话页面新增模型切换功能:在对话页面右上角控制栏新增模型下拉选择器,支持在已配置的模型间快速切换。下拉列表显示「默认 (模型名)」选项及所有白名单允许的模型(含自定义 Provider 模型),格式为
模型名 · 提供商;选择后通过/model指令自动切换当前会话模型 models.listRPC 返回白名单过滤结果:Gateway 的models.list接口现在通过buildAllowedModelSet过滤,仅返回用户配置白名单中允许的模型(而非全部已发现模型),同时包含自定义 Provider 中不在标准目录的模型条目,并附带defaultModel/defaultProvider信息