## 2026.1.24
### 重点更新
- **服务提供商**:Ollama 发现功能 + 文档;Venice 指南升级 + 交叉链接。(#1606) 感谢 @abhaymundhara。https://docs.clawd.bot/providers/ollama https://docs.clawd.bot/providers/venice
- **频道**:LINE 插件(Messaging API)支持富回复 + 快速回复。(#1630) 感谢 @plum-dawg。
- **TTS**:Edge 后备方案(无需密钥)+ `/tts` 自动模式。(#1668, #1667) 感谢 @steipete, @sebslight。https://docs.clawd.bot/tts
- **执行审批**:通过 `/approve` 在所有频道(包括插件)中进行聊天内审批。(#1621) 感谢 @czekaj。https://docs.clawd.bot/tools/exec-approvals https://docs.clawd.bot/tools/slash-commands
- **Telegram**:将私信主题作为独立会话处理 + 外链预览开关。(#1597, #1700) 感谢 @rohannagpal, @zerone0x。https://docs.clawd.bot/channels/telegram
### 变更内容
- **频道**:新增 LINE 插件(Messaging API),支持富回复、快速回复和插件 HTTP 注册表。(#1630) 感谢 @plum-dawg。
- **TTS**:新增 Edge TTS 提供商后备方案,默认使用无需密钥的 Edge 服务,并在格式失败时重试 MP3。(#1668) 感谢 @steipete。https://docs.clawd.bot/tts
- **TTS**:新增自动模式枚举(关闭/始终/入站/标记),支持按会话使用 `/tts` 覆盖。(#1667) 感谢 @sebslight。https://docs.clawd.bot/tts
- **Telegram**:将私信主题视为独立会话,并通过线程后缀保持私信历史记录限制稳定。(#1597) 感谢 @rohannagpal。
- **Telegram**:新增 `channels.telegram.linkPreview` 以切换外链预览。(#1700) 感谢 @zerone0x。https://docs.clawd.bot/channels/telegram
- **网络搜索**:为时间范围结果新增 Brave 新鲜度过滤器参数。(#1688) 感谢 @JonUleis。https://docs.clawd.bot/tools/web
- **用户界面**:刷新控制面板 UI 设计系统(排版、颜色、间距)。(#1786) 感谢 @mousberg。
- **执行审批**:将审批提示转发至聊天,支持所有频道(包括插件)使用 `/approve`。(#1621) 感谢 @czekaj。https://docs.clawd.bot/tools/exec-approvals https://docs.clawd.bot/tools/slash-commands
- **网关**:在网关工具中公开 config.patch,支持安全的部分更新 + 重启哨兵。(#1653) 感谢 @Glucksberg。
- **诊断**:新增用于定向调试日志的诊断标志(配置 + 环境变量覆盖)。https://docs.clawd.bot/diagnostics/flags
- **文档**:扩展常见问题解答(迁移、调度、并发、模型推荐、OpenAI 订阅认证、Pi 规格、可定制安装、文档 SSL 变通方案)。
- **文档**:新增详细安装程序故障排除指南。
- **文档**:新增 macOS 虚拟机指南,包含本地/托管选项 + VPS/节点指南。(#1693) 感谢 @f-trycua。
- **文档**:新增 Bedrock EC2 实例角色设置 + IAM 步骤。(#1625) 感谢 @sergical。https://docs.clawd.bot/bedrock
- **文档**:更新 Fly.io 指南说明。
- **开发**:新增 prek pre-commit 钩子 + 用于每周更新的 dependabot 配置。(#1720) 感谢 @dguido。
### 修复内容
- **Web UI**:修复配置/调试布局溢出、滚动和代码块尺寸问题。(#1715) 感谢 @saipreetham589。
- **Web UI**:在活动运行期间显示停止按钮,空闲时切换回新会话。(#1664) 感谢 @ndbroadbent。
- **Web UI**:重新连接时清除过时的断开连接横幅;允许保存包含不支持模式路径的表单,但阻止缺少模式的表单。(#1707) 感谢 @Glucksberg。
- **Web UI**:在聊天气泡中隐藏内部 `message_id` 提示。
- **网关**:允许控制面板 UI 仅令牌认证跳过设备配对,即使设备身份存在(`gateway.controlUi.allowInsecureAuth`)。(#1679) 感谢 @steipete。
- **Matrix**:解密端到端加密媒体附件,并带有预检大小保护。(#1744) 感谢 @araa47。
- **BlueBubbles**:将电话号码目标路由到私信,避免泄露路由 ID,并自动创建缺失的私信(需要私有 API)。(#1751) 感谢 @tyler6204。https://docs.clawd.bot/channels/bluebubbles
- **BlueBubbles**:当短 ID 缺失时,在回复标签中保留部分索引 GUID。
- **iMessage**:不区分大小写地标准化 chat_id/chat_guid/chat_identifier 前缀,并保持带服务前缀的句柄稳定。(#1708) 感谢 @aaronn。
- **Signal**:修复反应发送(群组/UUID 目标 + CLI 作者标志)。(#1651) 感谢 @vilkasdev。
- **Signal**:新增可配置的 signal-cli 启动超时 + 外部守护进程模式文档。(#1677) https://docs.clawd.bot/channels/signal
- **Telegram**:在 Node 22 上为上传设置 fetch duplex="half",避免 sendPhoto 失败。(#1684) 感谢 @commdata2338。
- **Telegram**:在 Node 上使用包装的 fetch 进行长轮询,以标准化 AbortSignal 处理。(#1639)
- **Telegram**:为出站 API 调用遵守每个账户的代理设置。(#1774) 感谢 @radek-paclt。
- **Telegram**:当语音笔记被隐私设置阻止时,回退到文本。(#1725) 感谢 @foeken。
- **语音通话**:在初始 Twilio webhook 上为出站通话返回流式 TwiML。(#1634)
- **语音通话**:序列化 Twilio TTS 播放,并在插话时取消以防止重叠。(#1713) 感谢 @dguido。
- **Google Chat**:收紧电子邮件白名单匹配、清理输入状态、媒体限制以及入门/文档/测试。(#1635) 感谢 @iHildy。
- **Google Chat**:标准化空间目标,避免重复的 `spaces/` 前缀。
- **智能体**:在因上下文溢出提示错误而失败前自动压缩。(#1627) 感谢 @rodrigouroz。
- **智能体**:使用活动认证配置文件进行自动压缩恢复。
- **媒体理解**:当主模型已支持视觉时,跳过图像理解。(#1747) 感谢 @tyler6204。
- **模型**:为缺失的自定义提供商字段提供默认值,以便接受最小配置。
- **消息传递**:保持跨频道的围栏式 Markdown 块的新行分块安全。
- **消息传递**:将新行分块视为段落感知(空行分割),以保持列表和标题的完整性。(#1726) 感谢 @tyler6204。
- **TUI**:网关重新连接后重新加载历史记录以恢复会话状态。(#1663)
- **心跳**:标准化目标标识符以实现一致的路由。
- **执行**:除非完全模式,否则保持对提升询问的审批。(#1616) 感谢 @ivancasco。
- **执行**:将 Windows 平台标签视为 Windows 以选择节点 shell。(#1760) 感谢 @ymat19。
- **网关**:在服务安装环境中包含内联配置环境变量。(#1735) 感谢 @Seredeep。
- **网关**:当 tailscale.mode 关闭时,跳过 Tailscale DNS 探测。(#1671)
- **网关**:减少延迟调用 + 远程节点探测的日志噪音;防抖技能刷新。(#1607) 感谢 @petter-b。
- **网关**:为缺失令牌的情况澄清控制面板/WebChat 认证错误提示。(#1690)
- **网关**:当绑定到 127.0.0.1 时监听 IPv6 环回地址,以便本地 webhook 正常工作。
- **网关**:将锁文件存储在临时目录中,以避免在持久卷上出现陈旧的锁。(#1676)
- **macOS**:将直接传输 `ws://` URL 默认端口设为 18789;记录 `gateway.remote.transport`。(#1603) 感谢 @ngutman。
- **测试**:在 CI macOS 上限制 Vitest 工作线程数以减少超时。(#1597) 感谢 @rohannagpal。
- **测试**:在嵌入式运行器流模拟中避免使用 fake-timer 依赖,以减少 CI 不稳定。(#1597) 感谢 @rohannagpal。
- **测试**:增加嵌入式运行器排序测试超时时间,以减少 CI 不稳定。(#1597) 感谢 @rohannagpal。
## 2026.1.24
### Highlights
- Providers: Ollama discovery + docs; Venice guide upgrades + cross-links. (#1606) Thanks @abhaymundhara. https://docs.clawd.bot/providers/ollama https://docs.clawd.bot/providers/venice
- Channels: LINE plugin (Messaging API) with rich replies + quick replies. (#1630) Thanks @plum-dawg.
- TTS: Edge fallback (keyless) + `/tts` auto modes. (#1668, #1667) Thanks @steipete, @sebslight. https://docs.clawd.bot/tts
- Exec approvals: approve in-chat via `/approve` across all channels (including plugins). (#1621) Thanks @czekaj. https://docs.clawd.bot/tools/exec-approvals https://docs.clawd.bot/tools/slash-commands
- Telegram: DM topics as separate sessions + outbound link preview toggle. (#1597, #1700) Thanks @rohannagpal, @zerone0x. https://docs.clawd.bot/channels/telegram
### Changes
- Channels: add LINE plugin (Messaging API) with rich replies, quick replies, and plugin HTTP registry. (#1630) Thanks @plum-dawg.
- TTS: add Edge TTS provider fallback, defaulting to keyless Edge with MP3 retry on format failures. (#1668) Thanks @steipete. https://docs.clawd.bot/tts
- TTS: add auto mode enum (off/always/inbound/tagged) with per-session `/tts` override. (#1667) Thanks @sebslight. https://docs.clawd.bot/tts
- Telegram: treat DM topics as separate sessions and keep DM history limits stable with thread suffixes. (#1597) Thanks @rohannagpal.
- Telegram: add `channels.telegram.linkPreview` to toggle outbound link previews. (#1700) Thanks @zerone0x. https://docs.clawd.bot/channels/telegram
- Web search: add Brave freshness filter parameter for time-scoped results. (#1688) Thanks @JonUleis. https://docs.clawd.bot/tools/web
- UI: refresh Control UI dashboard design system (typography, colors, spacing). (#1786) Thanks @mousberg.
- Exec approvals: forward approval prompts to chat with `/approve` for all channels (including plugins). (#1621) Thanks @czekaj. https://docs.clawd.bot/tools/exec-approvals https://docs.clawd.bot/tools/slash-commands
- Gateway: expose config.patch in the gateway tool with safe partial updates + restart sentinel. (#1653) Thanks @Glucksberg.
- Diagnostics: add diagnostic flags for targeted debug logs (config + env override). https://docs.clawd.bot/diagnostics/flags
- Docs: expand FAQ (migration, scheduling, concurrency, model recommendations, OpenAI subscription auth, Pi sizing, hackable install, docs SSL workaround).
- Docs: add verbose installer troubleshooting guidance.
- Docs: add macOS VM guide with local/hosted options + VPS/nodes guidance. (#1693) Thanks @f-trycua.
- Docs: add Bedrock EC2 instance role setup + IAM steps. (#1625) Thanks @sergical. https://docs.clawd.bot/bedrock
- Docs: update Fly.io guide notes.
- Dev: add prek pre-commit hooks + dependabot config for weekly updates. (#1720) Thanks @dguido.
### Fixes
- Web UI: fix config/debug layout overflow, scrolling, and code block sizing. (#1715) Thanks @saipreetham589.
- Web UI: show Stop button during active runs, swap back to New session when idle. (#1664) Thanks @ndbroadbent.
- Web UI: clear stale disconnect banners on reconnect; allow form saves with unsupported schema paths but block missing schema. (#1707) Thanks @Glucksberg.
- Web UI: hide internal `message_id` hints in chat bubbles.
- Gateway: allow Control UI token-only auth to skip device pairing even when device identity is present (`gateway.controlUi.allowInsecureAuth`). (#1679) Thanks @steipete.
- Matrix: decrypt E2EE media attachments with preflight size guard. (#1744) Thanks @araa47.
- BlueBubbles: route phone-number targets to DMs, avoid leaking routing IDs, and auto-create missing DMs (Private API required). (#1751) Thanks @tyler6204. https://docs.clawd.bot/channels/bluebubbles
- BlueBubbles: keep part-index GUIDs in reply tags when short IDs are missing.
- iMessage: normalize chat_id/chat_guid/chat_identifier prefixes case-insensitively and keep service-prefixed handles stable. (#1708) Thanks @aaronn.
- Signal: repair reaction sends (group/UUID targets + CLI author flags). (#1651) Thanks @vilkasdev.
- Signal: add configurable signal-cli startup timeout + external daemon mode docs. (#1677) https://docs.clawd.bot/channels/signal
- Telegram: set fetch duplex="half" for uploads on Node 22 to avoid sendPhoto failures. (#1684) Thanks @commdata2338.
- Telegram: use wrapped fetch for long-polling on Node to normalize AbortSignal handling. (#1639)
- Telegram: honor per-account proxy for outbound API calls. (#1774) Thanks @radek-paclt.
- Telegram: fall back to text when voice notes are blocked by privacy settings. (#1725) Thanks @foeken.
- Voice Call: return stream TwiML for outbound conversation calls on initial Twilio webhook. (#1634)
- Voice Call: serialize Twilio TTS playback and cancel on barge-in to prevent overlap. (#1713) Thanks @dguido.
- Google Chat: tighten email allowlist matching, typing cleanup, media caps, and onboarding/docs/tests. (#1635) Thanks @iHildy.
- Google Chat: normalize space targets without double `spaces/` prefix.
- Agents: auto-compact on context overflow prompt errors before failing. (#1627) Thanks @rodrigouroz.
- Agents: use the active auth profile for auto-compaction recovery.
- Media understanding: skip image understanding when the primary model already supports vision. (#1747) Thanks @tyler6204.
- Models: default missing custom provider fields so minimal configs are accepted.
- Messaging: keep newline chunking safe for fenced markdown blocks across channels.
- Messaging: treat newline chunking as paragraph-aware (blank-line splits) to keep lists and headings together. (#1726) Thanks @tyler6204.
- TUI: reload history after gateway reconnect to restore session state. (#1663)
- Heartbeat: normalize target identifiers for consistent routing.
- Exec: keep approvals for elevated ask unless full mode. (#1616) Thanks @ivancasco.
- Exec: treat Windows platform labels as Windows for node shell selection. (#1760) Thanks @ymat19.
- Gateway: include inline config env vars in service install environments. (#1735) Thanks @Seredeep.
- Gateway: skip Tailscale DNS probing when tailscale.mode is off. (#1671)
- Gateway: reduce log noise for late invokes + remote node probes; debounce skills refresh. (#1607) Thanks @petter-b.
- Gateway: clarify Control UI/WebChat auth error hints for missing tokens. (#1690)
- Gateway: listen on IPv6 loopback when bound to 127.0.0.1 so localhost webhooks work.
- Gateway: store lock files in the temp directory to avoid stale locks on persistent volumes. (#1676)
- macOS: default direct-transport `ws://` URLs to port 18789; document `gateway.remote.transport`. (#1603) Thanks @ngutman.
- Tests: cap Vitest workers on CI macOS to reduce timeouts. (#1597) Thanks @rohannagpal.
- Tests: avoid fake-timer dependency in embedded runner stream mock to reduce CI flakes. (#1597) Thanks @rohannagpal.
- Tests: increase embedded runner ordering test timeout to reduce CI flakes. (#1597) Thanks @rohannagpal.