版本更新日志:了解新功能、改进和破坏性变更
Clawdbot 持续迭代更新,每个版本都带来新功能、性能改进和安全增强。本日志帮你快速了解版本演进,决定何时升级以及升级时需要注意什么。
学完你能做什么
- 了解最新版本的新功能和亮点
- 掌握各版本的破坏性变更,避免升级中断
- 查看问题修复列表,确认你的问题是否已解决
- 追踪功能演进路线,规划使用新特性
版本号说明
版本号格式:YYYY.M.D(年份.月.日)
- 主版本:年份或月份数字变化通常代表重大功能更新
- 补丁版本:
-1,-2,-3代表修复版本,仅包含 bug 修复
2026.1.25
状态:未发布
亮点(Highlights)
暂无
改进(Changes)
- Agents:在 exec allowlist 检查中遵守
tools.exec.safeBins(#2281) - Docs:收紧 Fly 私有部署步骤 (#2289) - 感谢 @dguido
- Gateway:对通过查询参数传递的 hook token 发出警告;文档化首选 header 认证方式 (#2200) - 感谢 @YuriNachos
- Gateway:添加危险的 Control UI 设备认证绕过标志 + 审计警告 (#2248)
- Doctor:在无认证的 gateway 暴露时发出警告 (#2016) - 感谢 @Alex-Alaniz
- Discord:添加可配置的特权 gateway intents(presences/members)(#2266) - 感谢 @kentaro
- Docs:在 providers 侧边栏添加 Vercel AI Gateway (#1901) - 感谢 @jerilynzheng
- Agents:扩展 cron 工具描述,包含完整的 schema 文档 (#1988) - 感谢 @tomascupr
- Skills:添加 GitHub、Notion、Slack、Discord 的缺失依赖元数据 (#1995) - 感谢 @jackheuberger
- Docs:添加 Render 部署指南 (#1975) - 感谢 @anurag
- Docs:添加 Claude Max API 代理指南 (#1875) - 感谢 @atalovesyou
- Docs:添加 DigitalOcean 部署指南 (#1870) - 感谢 @0xJonHoldsCrypto
- Docs:添加 Raspberry Pi 安装指南 (#1871) - 感谢 @0xJonHoldsCrypto
- Docs:添加 GCP Compute Engine 部署指南 (#1848) - 感谢 @hougangdev
- Docs:添加 LINE 渠道指南 - 感谢 @thewilloftheshadow
- Docs:为 Control UI 刷新归功两位贡献者 (#1852) - 感谢 @EnzeD
- Onboarding:将 Venice API key 添加到非交互式流程 (#1893) - 感谢 @jonisjongithub
- Onboarding:加强 beta 版安全警告文案 + 访问控制预期
- Tlon:将线程回复 ID 格式化为
@ud(#1837) - 感谢 @wca4a - Gateway:合并存储时优先使用最新的会话元数据 (#1823) - 感谢 @emanuelst
- Web UI:在 WebChat 中保持子 agent 通告回复可见 (#1977) - 感谢 @andrescardonas7
- CI:增加 macOS 检查的 Node 堆大小 (#1890) - 感谢 @realZachi
- macOS:通过升级 Textual 到 0.3.1 避免渲染代码块时崩溃 (#2033) - 感谢 @garricn
- Browser:回退到 URL 匹配用于扩展中继目标解析 (#1999) - 感谢 @jonit-dev
- Update:在脏检查中忽略 dist/control-ui 并在 UI 构建后恢复 (#1976) - 感谢 @Glucksberg
- Telegram:允许媒体发送时使用 caption 参数 (#1888) - 感谢 @mguellsegarra
- Telegram:支持插件 sendPayload channelData(媒体/按钮)并验证插件命令 (#1917) - 感谢 @JoshuaLelon
- Telegram:当流式传输被禁用时避免块回复 (#1885) - 感谢 @ivancasco
- Auth:在 ASCII 提示后显示可复制的 Google auth URL (#1787) - 感谢 @robbyczgw-cla
- Routing:预编译会话键正则表达式 (#1697) - 感谢 @Ray0907
- TUI:避免渲染选择列表时宽度溢出 (#1686) - 感谢 @mossein
- Telegram:在重启哨兵通知中保留主题 ID (#1807) - 感谢 @hsrvc
- Config:在
${VAR}替换之前应用config.env(#1813) - 感谢 @spanishflu-est1918 - Slack:在流式回复后清除 ack 反应 (#2044) - 感谢 @fancyboi999
- macOS:在远程目标中保持自定义 SSH 用户名 (#2046) - 感谢 @algal
修复(Fixes)
- Telegram:每行包装 reasoning 斜体以避免原始下划线 (#2181) - 感谢 @YuriNachos
- Voice Call:对 ngrok URL 强制执行 Twilio webhook 签名验证;默认禁用 ngrok 免费层绕过
- Security:通过在信任 headers 之前验证本地 tailscaled 的身份来强化 Tailscale Serve 认证
- Build:使 memory-core 对等依赖与锁文件对齐
- Security:添加 mDNS 发现模式,默认最小化以减少信息泄露 (#1882) - 感谢 @orlyjamie
- Security:通过 DNS pinning 强化 URL 获取以减少重新绑定风险 - 感谢 Chris Zheng
- Web UI:改进 WebChat 图片粘贴预览并允许仅发送图片 (#1925) - 感谢 @smartprogrammer93
- Security:默认用 per-hook 退出选项包装外部 hook 内容 (#1827) - 感谢 @mertcicekci0
- Gateway:默认认证现在失败关闭(需要 token/password;Tailscale Serve 身份仍然允许)
- Onboarding:从 onboarding/configure 流程和 CLI 标志中移除不支持的 gateway auth "off" 选择
2026.1.24-3
修复(Fixes)
- Slack:修复由于跨域重定向时缺少 Authorization header 导致的图片下载失败 (#1936) - 感谢 @sanderhelgesen
- Gateway:强化本地客户端检测和未认证代理连接的反向代理处理 (#1795) - 感谢 @orlyjamie
- Security audit:将禁用认证的 loopback Control UI 标记为关键 (#1795) - 感谢 @orlyjamie
- CLI:恢复 claude-cli 会话并将 CLI 回复流式传输到 TUI 客户端 (#1921) - 感谢 @rmorse
2026.1.24-2
修复(Fixes)
- Packaging:在 npm tarball 中包含 dist/link-understanding 输出(修复安装时缺失 apply.js 导入)
2026.1.24-1
修复(Fixes)
- Packaging:在 npm tarball 中包含 dist/shared 输出(修复安装时缺失 reasoning-tags 导入)
2026.1.24
亮点(Highlights)
- Providers:Ollama 发现 + 文档;Venice 指南升级 + 交叉链接 (#1606) - 感谢 @abhaymundhara
- Channels:LINE 插件(Messaging API)支持富回复 + 快速回复 (#1630) - 感谢 @plum-dawg
- TTS:Edge 回退(无 key)+
/tts自动模式 (#1668, #1667) - 感谢 @steipete, @sebslight - Exec approvals:通过
/approve在所有渠道中(包括插件)进行聊天内审批 (#1621) - 感谢 @czekaj - Telegram:DM 主题作为独立会话 + 出站链接预览切换 (#1597, #1700) - 感谢 @rohannagpal, @zerone0x
改进(Changes)
- Channels:添加 LINE 插件(Messaging API),支持富回复、快速回复和插件 HTTP 注册表 (#1630) - 感谢 @plum-dawg
- TTS:添加 Edge TTS 提供商回退,默认为无 key 的 Edge,格式失败时重试 MP3 (#1668) - 感谢 @steipete
- TTS:添加自动模式枚举(off/always/inbound/tagged),支持每会话
/tts覆盖 (#1667) - 感谢 @sebslight - Telegram:将 DM 主题视为独立会话,并使用线程后缀保持 DM 历史限制稳定 (#1597) - 感谢 @rohannagpal
- Telegram:添加
channels.telegram.linkPreview切换出站链接预览 (#1700) - 感谢 @zerone0x - Web search:为时间限定结果添加 Brave 新鲜度过滤器参数 (#1688) - 感谢 @JonUleis
- UI:刷新 Control UI 仪表板设计系统(颜色、图标、排版)(#1745, #1786) - 感谢 @EnzeD, @mousberg
- Exec approvals:将审批提示转发到聊天,通过
/approve支持所有渠道(包括插件)(#1621) - 感谢 @czekaj - Gateway:在 gateway 工具中暴露
config.patch,支持安全部分更新 + 重启哨兵 (#1653) - 感谢 @Glucksberg - Diagnostics:添加诊断标志用于定向调试日志(config + env 覆盖)
- Docs:扩展 FAQ(迁移、调度、并发、模型推荐、OpenAI 订阅认证、Pi 大小、可黑安装、docs SSL 变通方案)
- Docs:添加详细的安装程序故障排除指南
- Docs:添加 macOS VM 指南,包含本地/托管选项 + VPS/节点指导 (#1693) - 感谢 @f-trycua
- Docs:添加 Bedrock EC2 实例角色设置 + IAM 步骤 (#1625) - 感谢 @sergical
- Docs:更新 Fly.io 指南说明
- Dev:添加 prek pre-commit hooks + 依赖的每周更新配置 (#1720) - 感谢 @dguido
修复(Fixes)
- Web UI:修复 config/debug 布局溢出、滚动和代码块大小 (#1715) - 感谢 @saipreetham589
- Web UI:在活动运行期间显示停止按钮,空闲时切换回新会话 (#1664) - 感谢 @ndbroadbent
- Web UI:在重新连接时清除过时的断开横幅;允许保存不支持 schema 路径的表单但阻止缺失 schema (#1707) - 感谢 @Glucksberg
- Web UI:在聊天气泡中隐藏内部
message_id提示 - Gateway:允许 Control UI 仅 token 认证跳过设备配对,即使设备身份存在(
gateway.controlUi.allowInsecureAuth)(#1679) - 感谢 @steipete - Matrix:使用预检大小保护解密 E2EE 媒体附件 (#1744) - 感谢 @araa47
- BlueBubbles:将电话号码目标路由到 DM,避免泄露路由 ID,并自动创建缺失的 DM(需要 Private API)(#1751) - 感谢 @tyler6204
- BlueBubbles:当短 ID 缺失时,在回复标签中保留 part-index GUID
- iMessage:不区分大小写地规范化 chat_id/chat_guid/chat_identifier 前缀,并保持服务前缀句柄稳定 (#1708) - 感谢 @aaronn
- Signal:修复 reaction 发送(group/UUID 目标 + CLI author 标志)(#1651) - 感谢 @vilkasdev
- Signal:添加可配置的 signal-cli 启动超时 + 外部守护进程模式文档 (#1677)
- Telegram:在 Node 22 上为上传设置 fetch duplex="half" 以避免 sendPhoto 失败 (#1684) - 感谢 @commdata2338
- Telegram:在 Node 上使用包装的 fetch 进行长轮询以规范化 AbortSignal 处理 (#1639)
- Telegram:为出站 API 调用遵守每账户代理 (#1774) - 感谢 @radek-paclt
- Telegram:当语音笔记被隐私设置阻止时回退到文本 (#1725) - 感谢 @foeken
- Voice Call:在初始 Twilio webhook 时返回流式 TwiML 用于出站会话调用 (#1634)
- Voice Call:序列化 Twilio TTS 播放并在插话时取消以防止重叠 (#1713) - 感谢 @dguido
- Google Chat:收紧邮箱 allowlist 匹配、清理输入、媒体上限和 onboarding/docs/tests (#1635) - 感谢 @iHildy
- Google Chat:规范不带双
spaces/前缀的空间目标 - Agents:在上下文溢出提示错误时自动压缩 (#1627) - 感谢 @rodrigouroz
- Agents:使用活动 auth 配置文件进行自动压缩恢复
- Media understanding:当主模型已支持视觉时跳过图像理解 (#1747) - 感谢 @tyler6204
- Models:默认缺失的自定义提供商字段,以便接受最小配置
- Messaging:保持换行块分割对跨渠道的围栏 markdown 块安全
- Messaging:将换行块处理为段落感知(空行分割),以保持列表和标题在一起 (#1726) - 感谢 @tyler6204
- TUI:在 gateway 重新连接后重新加载历史以恢复会话状态 (#1663)
- Heartbeat:规范目标标识符以保持路由一致
- Exec:对于提升的 ask 保持审批,除非是完全模式 (#1616) - 感谢 @ivancasco
- Exec:将 Windows 平台标签视为 Windows 用于节点 shell 选择 (#1760) - 感谢 @ymat19
- Gateway:在服务安装环境中包含内联配置 env 变量 (#1735) - 感谢 @Seredeep
- Gateway:当 tailscale.mode 为 off 时跳过 Tailscale DNS 探测 (#1671)
- Gateway:减少延迟调用 + 远程节点探测的日志噪音;去抖动技能刷新 (#1607) - 感谢 @petter-b
- Gateway:阐明缺少 token 的 Control UI/WebChat 认证错误提示 (#1690)
- Gateway:当绑定到 127.0.0.1 时监听 IPv6 loopback,以便 localhost webhooks 工作
- Gateway:将锁文件存储在临时目录中以避免持久卷上的陈旧锁 (#1676)
- macOS:直接传输
ws://URL 默认到端口 18789;文档化gateway.remote.transport(#1603) - 感谢 @ngutman - Tests:在 CI macOS 上限制 Vitest worker 以减少超时 (#1597) - 感谢 @rohannagpal
- Tests:在嵌入式运行器流模拟中避免 fake-timer 依赖以减少 CI 不稳定 (#1597) - 感谢 @rohannagpal
- Tests:增加嵌入式运行器排序测试超时以减少 CI 不稳定 (#1597) - 感谢 @rohannagpal
2026.1.23-1
修复(Fixes)
- Packaging:在 npm tarball 中包含 dist/tts 输出(修复缺失 dist/tts/tts.js)
2026.1.23
亮点(Highlights)
- TTS:将 Telegram TTS 移至核心 + 默认启用模型驱动的 TTS 标签以支持表达性音频回复 (#1559) - 感谢 @Glucksberg
- Gateway:添加
/tools/invokeHTTP 端点用于直接工具调用(强制执行认证 + 工具策略)(#1575) - 感谢 @vignesh07 - Heartbeat:每渠道可见性控制(OK/alerts/indicator)(#1452) - 感谢 @dlauer
- Deploy:添加 Fly.io 部署支持 + 指南 (#1570)
- Channels:添加 Tlon/Urbit 渠道插件(DM、群组提及、线程回复)(#1544) - 感谢 @wca4a
改进(Changes)
- Channels:在内置 + 插件渠道中允许每组工具允许/拒绝策略 (#1546) - 感谢 @adam91holt
- Agents:添加 Bedrock 自动发现默认值 + 配置覆盖 (#1553) - 感谢 @fal3
- CLI:添加
clawdbot system用于系统事件 + 心跳控制;移除独立的wake - CLI:向
clawdbot models status添加实时认证探测以进行每配置文件验证 - CLI:在
clawdbot update后默认重启 gateway;添加--no-restart跳过 - Browser:为远程网关添加节点主机代理自动路由(每个 gateway/node 可配置)
- Plugins:为工作流添加可选的
llm-taskJSON-only 工具 (#1498) - 感谢 @vignesh07 - Markdown:添加每渠道表转换(Signal/WhatsApp 使用项目符号,其他使用代码块)(#1495) - 感谢 @odysseus0
- Agents:保持系统提示词仅时区并将当前时间移动到
session_status以获得更好的缓存命中 - Agents:从工具注册/显示中移除冗余的 bash 工具别名 (#1571) - 感谢 @Takhoffman
- Docs:添加 cron vs heartbeat 决策指南(包含 Lobster 工作流笔记)(#1533) - 感谢 @JustYannicc
- Docs:阐明空 HEARTBEAT.md 文件跳过心跳,缺失文件仍会运行 (#1535) - 感谢 @JustYannicc
修复(Fixes)
- Sessions:接受非 UUID sessionIds 用于历史/发送/状态,同时保留 agent 范围
- Heartbeat:接受插件 channel ids 用于心跳目标验证 + UI 提示
- Messaging/Sessions:将出站发送镜像到目标会话键(线程 + dmScope),创建发送时的会话条目,并规范化会话键大小写 (#1520)
- Sessions:拒绝数组支持的会话存储以防止静默擦除 (#1469)
- Gateway:比较 Linux 进程启动时间以避免 PID 回收锁循环;除非陈旧,否则保持锁 (#1572) - 感谢 @steipete
- Gateway:在 exec 审批请求中接受 null 可选字段 (#1511) - 感谢 @pvoo
- Exec approvals:持久化 allowlist 条目 id 以保持 macOS allowlist 行稳定 (#1521) - 感谢 @ngutman
- Exec:遵守 tools.exec ask/security 默认值用于提升的审批(避免不需要的提示)
- Daemon:在构建最小服务路径时使用平台 PATH 分隔符
- Linux:在 systemd PATH 中包含 env 配置的用户 bin 根目录并对齐 PATH 审核 (#1512) - 感谢 @robbyczgw-cla
- Tailscale:仅在权限错误时使用 sudo 重试 serve/funnel 并保持原始失败详情 (#1551) - 感谢 @sweepies
- Docker:更新 docker-compose 和 Hetzner 指南中的 gateway 命令 (#1514)
- Agents:当最后一个助手回合仅调用工具时显示工具错误回退(防止静默停止)
- Agents:解析身份时忽略 IDENTITY.md 模板占位符 (#1556)
- Agents:在模型切换时删除孤立的 OpenAI Responses reasoning 块 (#1562) - 感谢 @roshanasingh4
- Agents:在"agent 在回复前失败"消息中添加 CLI 日志提示 (#1550) - 感谢 @sweepies
- Agents:警告并忽略仅引用未知或未加载插件工具的工具 allowlists (#1566)
- Agents:将仅插件工具 allowlists 视为选择性加入;保持核心工具启用 (#1467)
- Agents:遵守嵌入式运行的 enqueue 覆盖以避免测试中的队列死锁
- Slack:遵守开放 groupPolicy 用于消息 + slash gate 中的未列出通道 (#1563) - 感谢 @itsjaydesu
- Discord:将自动线程提及绕过限制为 bot 拥有的线程;保持 ack 反应提及门控 (#1511) - 感谢 @pvoo
- Discord:重试速率限制的 allowlist 解析 + 命令部署以避免 gateway 崩溃
- Mentions:在群组聊天中当存在另一个明确提及时忽略 mentionPattern 匹配(Slack/Discord/Telegram/WhatsApp)
- Telegram:在媒体标题中渲染 markdown (#1478)
- MS Teams:从 Graph 作用域和 Bot Framework 探测作用域中移除
.default后缀 (#1507, #1574) - 感谢 @Evizero - Browser:当扩展在切换标签页后重用会话 id 时保持扩展中继标签可控制 (#1160)
- Voice wake:在模糊/提交时跨 iOS/Android 自动保存唤醒词并与 macOS 对齐限制
- UI:滚动长页面时保持 Control UI 侧边栏可见 (#1515) - 感谢 @pookNast
- UI:缓存 Control UI markdown 渲染 + 记忆化聊天文本提取以减少 Safari 输入抖动
- TUI:转发未知斜杠命令,在自动完成中包含 Gateway 命令,并将斜杠回复渲染为系统输出
- CLI:认证探测输出润色(表格输出、内联错误、减少噪音和
clawdbot models status中的换行修复) - Media:仅在它们以行开头时解析
MEDIA:标签,以避免剥离散文提及 (#1206) - Media:尽可能保留 PNG alpha;当仍超过大小上限时回退到 JPEG (#1491) - 感谢 @robbyczgw-cla
- Skills:将 bird Homebrew 安装门控到 macOS (#1569) - 感谢 @bradleypriest
更新建议
升级前检查
在升级到新版本之前,建议:
- 阅读破坏性变更:检查是否有破坏性变更会影响你的配置
- 备份配置:备份
~/.clawdbot/clawdbot.json - 运行诊断:
clawdbot doctor确保当前系统状态健康 - 检查依赖:确保 Node.js 版本符合要求(≥22)
升级后验证
升级完成后,执行以下验证:
bash
# 1. 检查版本
clawdbot --version
# 2. 检查状态
clawdbot status
# 3. 验证渠道连接
clawdbot channels status
# 4. 测试消息发送
clawdbot message "Hello" --target=<your-channel>查看完整更新日志
要查看更详细的版本历史和 issue 链接,请访问:
- GitHub Releases:https://github.com/moltbot/moltbot/releases
- 官方文档:https://docs.clawd.bot
历史版本
查看更早的版本更新,请访问 GitHub Releases 或项目根目录的 CHANGELOG.md。
参与贡献
如果你发现了 bug 或有功能建议,欢迎在 GitHub Issues 中提交。