# 更新日志 本项目的所有重要变更都将记录在此文件中。 格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/), 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 ## [0.9.8] - 2026-03-23 ### 新功能 (Features) - **渠道管理全面增强** — 新增渠道列表 + Agent 绑定双面板布局,支持渠道卡片批量管理 - **10 大消息渠道全覆盖** — QQBot、Telegram、Discord、Slack、飞书、钉钉、微信、Signal、Matrix、MS Teams 全部支持面板内配置、保存、校验 - **Signal 在线校验** — 新增 signal-cli HTTP daemon 连通性检测(/v1/about 端点),返回 API 版本信息 - **MS Teams 在线校验** — 新增 Azure AD OAuth2 client_credentials 流程校验 App ID / App Password / Tenant ID - **微信 ClawBot 集成** — 腾讯微信官方 `@tencent-weixin/openclaw-weixin` 插件一键安装 + 扫码登录,QR 码 Canvas 渲染(手机可扫描)、插件版本检测与升级提示、登录后自动写入渠道配置并刷新列表 - **QQ 渠道诊断** — QQBot 渠道增加专属诊断工具,检测插件安装、配置状态 - **Agent 绑定 CRUD** — 支持在面板内直接创建/编辑/删除 Agent 路由绑定 - **渠道标签映射** — 新增 channel-labels.js,统一中文渠道名称(如 telegram→Telegram, discord→Discord) - **Docker 部署支持** — 新增 Dockerfile 多阶段构建 + docker-compose.yml + 一键部署脚本 - **Skills 管理增强** — Skill 验证、扫描、安装功能全面增强,支持 fullPath 检测 - **Messaging 插件迁移** — QQBot 插件自动迁移到 @tencent-connect/openclaw-qqbot ### 修复 (Fixes) - **WhatsApp 渠道移除** — 上游 WhatsApp 插件运行时未加载(Gateway `web.login.start` 返回 `not available`),暂时移除;改用微信官方渠道替代 - **messaging.rs 编译错误修复** — 修复 `insert_array_as_csv` 缺少引用、Matrix/MS Teams 保存时 `cfg` 双重可变借用导致编译失败 - **Gateway PID 检测逻辑修复** — Windows `is_process_alive` 从错误的前缀匹配改为精确 PID 字段解析 - **JSON 配置修复重写** — `fix_common_json_errors` 单引号修复和注释剥离完全重写,避免截断 URL 中的 `//` - **Linux 异步阻塞修复** — `check_service_status` 和 `start_service_impl` 中的同步 TCP 连接改用 `spawn_blocking` - **XSS 安全修复** — channels.js `showWarning`、main.js `errMsg`、agents.js `renderBindingBadges` 和错误加载均添加 HTML 转义 - **渠道卡片编辑按钮修复** — 已接入渠道卡片的「编辑」按钮缺失 click handler,点击无响应;现已补全事件绑定 - **微信渠道检测修复** — 微信登录后自动写入 `channels.openclaw-weixin` 配置,修复 `platform_list_id` / `platform_storage_key` 双向映射,登录后立即刷新列表 - **Vite 代理修复** — 移除重复 `ws: true`、无效 `econnreset` 事件监听,修复 WebSocket socket 错误处理 - **Docker 部署修复** — .dockerignore 不再排除 src/,volume 挂载路径与 Dockerfile USER 一致 - **心跳检测修复** — WebSocket 首次连接时 `_lastMessageAt` 初始化为 `Date.now()`,避免心跳永远不触发 - **PID 安全假设修复** — `get_gateway_pid_by_port` 读不到命令行时不再假定为 Gateway ### 改进 (Improvements) - **Win11 wmic 兼容** — `read_process_command_line` 优先使用 PowerShell `Get-CimInstance`,fallback 到 wmic - **macOS Intel 路径兼容** — 版本检测和来源检测同时查找 `/opt/homebrew`(ARM)和 `/usr/local`(Intel) - **macOS PID 检测** — 服务状态检测新增 `lsof` 获取 PID,不再始终返回 None - **Windows 路径兼容** — Skills fullPath 验证支持 Windows 盘符路径(如 `C:\`) - **gateway_listen_port 缓存** — 新增 5 秒缓存,避免服务检测时频繁读文件解析 JSON - **第三方 API 接入引导优化** — 移除内置密钥,改为引导式流程(注册→填密钥→选模型),新增助手↔OpenClaw 双向同步按钮(带确认框) - **API 错误信息完整展示** — 模型测试和助手测试的 API 错误(如 429 限流)完整显示 error.message,URL 自动转为可点击链接,方便排查和引流 - **飞书渠道升级** — 从 `@openclaw/feishu` 迁移到飞书官方插件 `@larksuite/openclaw-lark`,支持文档读写、多维表格、日程等高级能力,一键扫码创建机器人 - **Gateway 重启防卡死** — `gateway_command` 增加 20s 超时,超时后自动 force-kill 残留进程并 fresh start;全平台启动前端口占用检查防止重复拉起;Guardian 自动守护在 Tauri 桌面端也启用;状态轮询间隔从 30s 缩短至 15s - **Regex 编译优化** — 多行注释正则改用 LazyLock 静态编译 - **Agent 配置注释修正** — `agents.profiles` 注释修正为上游实际的 `agents.list` - **Linux cmd 候选清理** — 移除 Unix 平台上无意义的 `openclaw.cmd` 候选路径 ### 待规划 (Planned) > 以下为已归档的规划方案摘要,原独立文档已清理。 - **Gateway 运行检测重构** — 用统一的「端口 + HTTP 探针」方案替换当前各平台复杂的进程/netstat/launchctl 检测逻辑,跨 Windows/macOS/Linux 统一实现。核心思路:先查端口占用确认进程存在,再发 HTTP 请求确认是 Gateway(`GET /v1/health` 或 `/v1/version`)。详见原 `docs/gateway-detection-plan.md` - **AI 助手功能扩展** — 五大模块:① Docker/WSL 管理(容器操作、镜像管理)② Web 搜索(搜索引擎集成、结果注入上下文)③ SSH 远程管理(连接/命令/文件传输)④ 知识库/灵魂迁移(导入导出 Agent 灵魂与知识)⑤ 模型配置自动导入(从服务商 API 自动发现模型)。详见原 `docs/assistant-features-plan.md` - **Docker 多实例管理** — API 代理 + 实例切换架构,支持一台机器部署多个 OpenClaw Docker 实例并在面板内统一调度。涉及 dev-api.js 代理层、前端实例选择器、数据隔离。详见原 `docs/docker-multi-instance-plan.md` - **国际化 (i18n)** — 基于 i18n.js 核心模块实现中英双语,语言包 JSON 结构,按页面逐步迁移硬编码中文字符串。包含语言检测、降级策略、参数插值。详见原 `docs/i18n-plan.md` - **命令执行权限管理** — AI 助手执行终端命令时支持白名单/黑名单规则,四种模式(确认/白名单/黑名单/无限),glob 通配符匹配,存储于 `clawpanel.json`。详见原 `docs/ROADMAP-v0.9.md` - **安装体验优化** — 默认安装原版包、保存自定义 Node.js 路径后实时生效验证、Linux Web 版后台一键更新机制 - **其他** — 渠道级消息统计、更多国内模型服务商预设、Rust 原生 Docker API(bollard)、前端热更新增量包 ## [0.9.7] - 2026-03-21 ### 新功能 (Features) - **Markdown 表格渲染** — 聊天消息中的 Markdown 表格以 HTML 表格形式展示,支持表头高亮、斑马纹、悬停效果 (#112) - **Doctor 一键诊断修复** — 新增 `openclaw doctor --fix` 和 `openclaw doctor` 后端命令,支持从面板内自动检测和修复配置问题 (#103) - **自定义 OpenClaw 安装路径** — 初始设置和服务管理页支持自定义 OpenClaw 配置目录(如 `E:\数据\AI\.openclaw`),解决非默认安装位置的检测问题 - **关闭窗口最小化到托盘** — 关闭主窗口时最小化到系统托盘,不退出应用 - **应用重启命令** — 设置变更后支持从面板内一键重启应用 ### 修复 (Fixes) - **Agent 创建失败兜底** — CLI 创建 Agent 超时或失败时,自动降级为直接写 openclaw.json,不再因 CLI 卡死导致创建失败 - **模型 API 类型自动修复** — 保存时自动将错误的 API 类型(如 `google-gemini` → `google-generative-ai`)修正为上游支持的格式 (#97) - **SkillHub 安装状态竞态** — 搜索时先实时检测 SkillHub 安装状态,避免缓存误判导致误报"请先安装" - **聊天响应看门狗** — 发送消息后 15 秒无 delta 事件自动刷新历史,防止响应丢失时 UI 卡在等待状态 - **Clippy 编译警告** — 修复 dead_code 和 manual_flatten 编译警告,代码更规范 ### 改进 (Improvements) - **模型配置可折叠** — 每个服务商区块支持折叠/展开,模型多时页面更清爽 (#98) - **PATH 检测优先级优化** — macOS/Linux/Windows 均调整为版本管理器路径(nvm/volta/fnm)优先于系统路径,减少环境检测误判 - **聊天 typing 提示增强** — 等待回复时支持显示工具调用等状态提示文字 - **官网内容更新** — 新增 apple-touch-icon、布局优化、图标资源重命名解决浏览器缓存问题 - **贡献者致谢** — README 和 CONTRIBUTING.md 新增历史贡献者致谢名单及维护指南 ## [0.9.6] - 2026-03-18 ### 修复 (Fixes) - **仪表盘二次加载崩溃** — 切换页面后返回仪表盘不再报 `Cannot read properties of null (reading 'recommended')` (#100) - **聊天代码单引号乱码** — 代码块中 `'` 不再显示为 `'`,修正 Markdown 渲染器的 HTML 转义策略 (#99) - **聊天图片路径反斜杠丢失** — Windows 路径 `C:\Users\...` 在图片加载失败提示中不再丢失反斜杠 - **聊天页折叠侧边栏后不自适应** — 折叠主侧边栏后聊天页面现在正确撑满全宽 - **Gateway 状态横条延迟** — WebSocket 连接成功后立即刷新 Gateway 状态,不再等待 30 秒轮询周期 - **版本列表加载失败** — 修复 npm registry 返回 gzip 压缩响应时 `error decoding response body` 错误(reqwest 启用 gzip 解压) - **配置保存后 Gateway 需手动启动** — 所有页面(模型/渠道/通信等)保存 openclaw.json 后自动重载 Gateway(防抖 3 秒),不再需要手动点启动按钮 - **dev.ps1 启动脚本报错** — 修复 PowerShell 解析 emoji 字符时的编码错误 ### 新功能 (Features) - **托管 Agent** — 聊天页新增「⊕ 托管」按钮,可设定任务目标后让 AI 自动循环引导 OpenClaw 执行: - 内置系统提示词,明确调度 Agent 的身份和职责 - 可视化滑块设置最大回复次数(5-200 或 ∞ 无限) - 定时自动停止(开关 + 滑块 + 倒计时进度条) - 上下文自动压缩(超过 20 条历史自动压缩为摘要) - OpenClaw 回复包含「完成/停止」时自动停止循环 - 单按钮启动/停止切换,运行时输入框自动锁定 ### 改进 (Improvements) - **Toast 通知样式** — 从半透明毛玻璃改为实底+边框+阴影,暗色模式兼容性更好 - **聊天输入框增大** — 最小高度 44px,最大高度 200px,输入体验更舒适 ## [0.9.5] - 2026-03-17 ### 修复 (Fixes) - **仪表盘加载卡住** — 从其他页面返回仪表盘时不再永远显示加载占位符,添加错误捕获和重试按钮 (#96) - **Gemini 模型配置崩溃** — Google Gemini 的 api 类型从错误的 `google-gemini` 修正为 `google-generative-ai`,与上游 OpenClaw 配置规范一致 (#93) - **聊天代码下划线消失** — Markdown 渲染器的下划线转斜体正则改为 word-boundary 匹配,`my_variable` 等标识符不再被误转 (#92) - **聊天发送前校验** — Gateway 未就绪时点击发送按钮会提示警告,而非静默失败 - **聊天页空值防御** — `createStreamBubble`、`renderAttachments`、`showPageGuide`、`loadHistory` 等 8 处空值检查,防止快速切页时报错 - **WebSocket 重复连接** — 添加 `_connecting` 状态标记和 `connect()` 防重入守卫,避免重复发起连接 ### 新功能 (Features) - **工具调用渲染** — 聊天消息中的 AI 工具调用(tool call)以可折叠卡片形式展示,包含工具名、状态、时间、参数和结果详情 - **自动滚动控制** — 用户向上滚动查看历史消息时,新回复不再强制跳到底部;点击 ↓ 按钮恢复自动跟随 ### 改进 (Improvements) - **WebSocket 全局单例** — `wsClient` 改为 `window` 级单例,防止热更新时创建重复实例 - **Docker 部署文档** — 新增 FAQ:面板内安装 OpenClaw 失败的原因和解决方案(推荐一体镜像或 Dockerfile 预装) ### 安全 (Security) - **quinn-proto 漏洞修复** — 更新 quinn-proto 0.11.13 → 0.11.14,修复 QUIC transport parameter 解析 panic (GHSA-6xvm-j4wr-6v98) ## [0.9.4] - 2026-03-17 ### 新功能 (Features) - **OpenClaw 独立安装包** — 全新 standalone 安装方式,自带 Node.js 运行时,零依赖、无需 npm,下载即用。支持 Windows/macOS/Linux/树莓派 - **安装方式选择器** — 初始设置页新增安装方式下拉:自动选择(推荐)/ CDN 加速 / GitHub / npm 编译,汉化版专属 - **GitHub 下载模式** — 支持从 GitHub Releases 下载独立安装包,CDN 不可用时的备选方案 - **动态版本查询** — 安装时动态查询 latest.json 获取最新版本,不怕旧资源被删除 ### 改进 (Improvements) - **默认汉化版** — 未安装状态默认识别为汉化优化版(而非官方版),更符合国内用户习惯 - **CherryStudio 干扰过滤** — CLI 检测过滤第三方 openclaw 二进制(如 CherryStudio),避免误识别 - **安装日志安全** — 日志不再暴露 R2 完整下载地址,防止被恶意利用 - **卸载兼容增强** — 卸载同时清理 standalone 安装目录和 npm 全局安装,覆盖所有可能路径 - **macOS 免 sudo** — standalone 安装到用户目录(~/.openclaw-bin),解决 macOS npm 全局安装权限不足问题 - **官网独立安装包入口** — README 和 docs/index.html 下载区新增独立安装包说明和下载按钮 ## [0.9.3] - 2026-03-16 ### 修复 (Fixes) - **仪表盘版本显示"未知"** — 修复 coreP Promise 解构顺序错误(config 和 version 互换),导致版本卡片无法正确读取版本信息 - **Agent 管理"暂无 Agent"** — OpenClaw 的 main agent 是隐式的(不在 agents.list 中),list_agents 现在始终自动插入 main agent - **Agent 模型显示 [object Object]** — 正确解析 model 对象的 primary 字段,兼容字符串和对象两种格式 - **定时任务触发/编辑/删除失败** — cron.run/update/remove RPC 参数从 id 修正为 jobId,匹配 Gateway schema - **聊天会话列表消失** — 恢复 chat header 中的 sidebar toggle 按钮(PR#88 将按钮移入 sidebar 内导致折叠后无法展开) - **Gateway 启动失败 Unknown config keys** — stripUiFields 现在清理根层级的 ClawPanel 内部字段(version info),防止污染 openclaw.json - **Docker 安装超时** — npm 镜像源不再 fallback 到海外 registry.npmjs.org,优先使用国内 npmmirror - **SkillHub CLI 检测误报"请先安装"** — 检测参数从 --version 修正为 --cli-version - **消息渠道配置被仪表盘覆盖** — 仪表盘自愈逻辑用缓存 config 覆盖文件导致 channels 丢失,现在先读取最新配置再 patch ### 改进 (Improvements) - **ARM 设备性能优化** — in-flight 请求去重防止进程堆积、后端 serverCached 缓存、Gateway 轮询降频(15s→30s)、get_status_summary 改为直接读文件不走 CLI - **R2 CDN 安装加速** — 新增 Cloudflare R2 预装归档下载(dl.qrj.ai),Windows 安装从 3-10 分钟降至 1-2 分钟 - **模型添加体验优化** — 快捷添加改为模型选择弹窗,用户可自主勾选需要的模型 ## [0.9.2] - 2026-03-16 ### 新功能 (Features) - **SkillHub + ClawHub 双源技能管理** — Skills 页面新增已安装/搜索安装 Tab 切换,支持 SkillHub 和 ClawHub 双源下拉选择、搜索安装、卸载功能 - **SkillHub CLI 集成** — 新增 SkillHub 检测、安装、搜索、安装 Skill 的完整后端命令链(Rust + Web 双模式) - **消息渠道多 Agent 绑定展示** — 已接入列表现在显示所有绑定的 Agent 标签,不再只显示第一个 - **消息渠道快速绑定 Agent** — 已接入平台点击"绑定新 Agent"弹出简化的 Agent 选择弹窗,无需重新填写凭证 - **消息渠道多账号支持(飞书)** — 后端 save_messaging_platform 支持 accountId 参数,可将不同飞书应用绑定到不同 Agent - **NVM_SYMLINK 环境变量支持** — Windows 下 nvm 用户的 Node.js 路径检测更可靠 ### 修复 (Fixes) - **Skills JSON 解析修复** — extractCliJson 函数正确处理 CLI 输出中混入的 Node.js 警告信息 - **`--verbose` 日志污染** — 移除 openclaw skills 命令中多余的 --verbose 参数,避免输出被 npm 日志污染 - **SkillHub 搜索结果解析** — 修复实际 CLI 输出格式与预期不符导致的搜索结果为空 - **Windows cmd /c 兼容** — SkillHub/npx/ClawHub 命令在 Windows 上正确通过 cmd /c 调用 - **Cron delivery 参数格式** — 定时任务投递参数修复为正确的 mode+to+channel 格式 - **白屏安全网** — boot() 增加 try-catch 和 splash 超时检测,WebView2 加载失败时不再白屏 ### 改进 (Improvements) - **Git HTTPS 重写规则扩展** — 从 6 条扩展到 14 条,覆盖 GitHub/GitLab/Bitbucket 的所有 SSH/Git 协议变体 - **Agent 管理直接读 openclaw.json** — 不再通过 CLI 获取 Agent 列表,响应速度大幅提升 - **记忆文件直接读 openclaw.json** — Agent workspace 路径从配置文件直接解析,避免 CLI 调用阻塞 - **NSIS 中文语言选择器** — Windows 安装包默认中文,支持语言选择 - **WebView2 内嵌引导安装** — NSIS 安装包内嵌 WebView2 bootstrapper,离线环境也能安装 - **模型添加体验优化** — 模型页面快捷添加改为模型选择弹窗,用户可自主勾选需要的模型 - **助手系统提示词精简** — 移除冗余信息,聚焦技术支持核心能力 ## [0.8.6] - 2026-03-13 ### 修复 (Fixes) - **切换汉化版 SSH 认证失败** — npm install 子进程现通过 `GIT_CONFIG_COUNT` 环境变量强制注入 HTTPS insteadOf 规则,确保即使全局 git config 未生效(Windows PATH 问题等),SSH→HTTPS 替换也能在 npm 子进程中工作 - **#58 定时任务触发错误** — 修复 `fetchJobs` 中 `id: j.name || j.id` 导致自定义名称的任务无法触发(感谢 @axdlee) - **#63 systemd 部署找不到 OpenClaw** — 文档改用 `$(which node)` 动态路径 + `Environment=PATH` 确保 systemd 服务能找到 Node.js 和 OpenClaw CLI - **#64 Skills 页面 JSON 解析错误** — `openclaw skills list --json` 输出混入 Node.js 警告时不再报错,新增 `extract_json` 提取有效 JSON 对象 - **CI rustfmt/clippy 跨平台警告** — 修复 `unused_imports`(BufRead/BufReader 移入 cfg block)、`needless_return`×3、`and_then→map` ### 改进 (Improvements) - **错误诊断更精准** — SSH 错误诊断改用更严格的匹配(`permission denied`、`publickey`、`host key verification`),不再被 npm verbose 日志中的 `git@` 字样误触发 - **README 文档增强** — 新增「快速上手」4 步指南、Web 版部署指南(含 Nginx 配置示例)、消息渠道配置指南、FAQ 扩充 6 个常见问题 ## [0.8.5] - 2026-03-13 ### 修复 (Fixes) - **Web 模式渠道配对报错** — 补全 `pairing_list_channel` / `pairing_approve_channel` 后端 handler,飞书/钉钉配对审批不再报"未实现的命令" - **Web 模式插件状态报错** — 补全 `get_channel_plugin_status` / `install_channel_plugin` handler,QQ 机器人等插件保存不再 404 - **Web 模式初始设置缺失** — 补全 `check_git` / `auto_install_git` / `configure_git_https` / `guardian_status` / `invalidate_path_cache` handler,Web 部署全流程可用 ### 改进 (Improvements) - **Web 模式 handler 100% 覆盖** — dev-api.js 现已覆盖 tauri-api.js 中所有命令,Web 部署不再出现"未实现的命令"错误 ## [0.8.4] - 2026-03-13 ### 改进 (Improvements) - **移除龙虾军团入口** — 精简产品功能,移除 Docker 集群管理页面及相关军事化主题 UI,聚焦"简单好用"的核心体验 - **前端瘦身** — 删除 3 个专用模块(docker.js / docker-tasking.js / pixel-roles.js),pages.css 减少约 700 行,tauri-api.js 清理 30 个未使用 API 方法 ## [0.8.3] - 2026-03-12 ### 修复 (Fixes) - **默认安装改为原版** — 版本选择器默认选中「原版」(official),原版排在汉化版前面 - **CI Clippy 兼容** — Linux root 检测从 `unsafe libc::geteuid()` 改为 `std::env::var("USER")`,移除 libc 依赖 ## [0.8.2] - 2026-03-12 ### 修复 (Fixes) - **接口地址不再强制拼接 /v1** — 火山引擎(/v3)等第三方 API 不再被错误追加 /v1,仅 Ollama(端口 11434)自动补全 - **OpenClaw 升级 SSH 失败** — 增加 `git://` 和 `git+ssh://` 协议重定向到 HTTPS,`--unset-all` + `--add` 确保 4 条规则全部生效 - **飞书插件安装失败** — 新增内置插件检测(`is_plugin_builtin`),已内置时自动跳过 npm install - **飞书保存 ReferenceError** — 修复 `overlay is not defined`(应为 `modal`),修复表单收集不支持 `