Commit Graph

57 Commits

Author SHA1 Message Date
晴天
e5f65c2f19 chore: 发布 v0.5.3 2026-03-06 13:15:07 +08:00
晴天
c81755612f chore: 发布 v0.5.2
- 修复 Linux 系统下 OpenClaw 安装检测问题
- 添加赞助商展示区
- 优化官网锚点跳转
2026-03-06 12:51:58 +08:00
晴天
d13e389035 fix: 更新内置版本号 2026-03-06 10:42:52 +08:00
晴天
a29592c508 bump: v0.5.1 — cargo fmt 修复 + 视频播放修复 2026-03-06 04:42:30 +08:00
晴天
402503cc6a style: cargo fmt 格式修复 assistant.rs 2026-03-06 04:41:52 +08:00
晴天
f0ff83a241 bump: v0.5.0 — 内置 AI 助手 + 图片识别 + 宣传素材全面更新 2026-03-06 04:36:23 +08:00
晴天
860218fa09 feat: 新增 AI 助手页面 + 图片识别功能 + 更新宣传素材
- 新增 AI 助手页面 (assistant.js/assistant.css/assistant.rs)
- 新增图片识别截图 (13.png) 并加入官网和 README
- 更新宣传视频 (promo-web.mp4) 含 AI 助手+工具调用+图片识别场景
- 更新视频封面 (video-cover.png/video-cover-light.png) 突出 AI 助手
- 更新 AI 助手演示 GIF (ai-assistant-demo.gif) 作为 README 首图
- 更新功能矩阵 GIF (feature-showcase.gif) AI 助手为 star 卡片
- 官网新增图片识别 showcase 区块
- README 新增图片识别特性和截图
- 视频封面改用专业设计版本
- 演示视频时长 badge 更新为 50 秒
2026-03-06 04:33:43 +08:00
晴天
7eb78ea186 修复:macOS Gateway 启动失败 Bootstrap failed: 5 (v0.4.8)
根因: plist 二进制路径过期(nvm/fnm 切版本后),launchctl 找不到程序
修复: launchctl bootstrap/kickstart 失败时回退到 CLI 直接 spawn Gateway
覆盖: start_service_impl + restart_service_impl 均有 fallback
2026-03-06 00:25:01 +08:00
晴天
fe66fe0e73 发布 v0.4.7:修复 fnm 检测 + Release Notes 生成
修复:
- fnm 用户 Node.js 检测失败(扫描 FNM_DIR/node-versions)
- Release Notes 中文 commit grep 失败(|| true 兜底)
2026-03-06 00:04:45 +08:00
晴天
d7d403e8a0 修复:fnm 用户 Node.js 检测 + Release Notes 生成失败
fnm 修复:
- 移除错误的 ~/.fnm/current/bin 路径
- macOS/Linux: 扫描  或 ~/.local/share/fnm/node-versions/*/installation/bin
- Windows: 扫描 %FNM_DIR% 或 %APPDATA%\fnm\node-versions\*\installation

release.yml 修复:
- grep 无匹配时返回 exit 1,GitHub Actions pipefail 导致脚本终止
- 用 { grep ... || true; } 包裹,中文 commit message 不再触发失败
2026-03-06 00:00:26 +08:00
晴天
b4e959ec99 紧急修复:mode 字段位置错误导致 Gateway 无法启动 (v0.4.6)
根因:openclaw.json 的 mode 属于 gateway 对象内部,不是顶层字段。
OpenClaw zod-schema 对顶层 mode 报 Unrecognized key 错误。

修复:
- config.rs init_openclaw_config: mode 移入 gateway 对象
- dev-api.js init_openclaw_config: 同上
- dashboard.js 自愈: config.mode → config.gateway.mode
- dashboard.js 自愈: 自动删除旧版错误的顶层 mode 字段
- setup.js 安装流程: config.mode → config.gateway.mode
2026-03-05 23:41:55 +08:00
晴天
8ba25a25e0 发布 v0.4.5:修复 nvm 兼容性 + 自动初始化配置
修复:
- nvm 用户 Node.js/CLI 检测失败(扫描 nvm 版本目录)
- Tauri v2 参数名 snake_case → camelCase 不匹配
- Windows CLI 检测遗漏(增加 PATH 兜底)
- Agent/记忆文件页面晦涩 os error 2 → 中文提示
- cargo fmt + clippy 修复

新增:
- 初始设置自动创建配置文件 + 一键初始化按钮
- ClawPanel Web 版部署文档 + 文档中心
2026-03-05 23:25:34 +08:00
晴天
e99479fbeb 修复:记忆文件页面 openclaw 找不到时的友好错误提示
memory.rs 的 agent_workspace() 也调用 openclaw CLI,
同样需要处理 NotFound 错误,显示中文提示而非 os error 2
2026-03-05 23:20:39 +08:00
晴天
ac5f6157ef 优化:Agent 管理页面 openclaw 找不到时显示友好错误提示
将 'No such file or directory (os error 2)' 替换为中文提示:
'OpenClaw CLI 未找到,请确认已安装并重启 ClawPanel'
涉及 list_agents、add_agent、delete_agent 三个命令
2026-03-05 23:19:12 +08:00
晴天
ef3ae03546 修复:nvm 用户 Node.js/CLI 检测失败的问题
Bug1: check_node_at_path 参数名不匹配(snake_case vs camelCase)
- Tauri v2 默认期望 camelCase,前端发送的 node_dir 改为 nodeDir
- 同步修复 save_custom_node_path 和所有 memory 函数的 agent_id → agentId

Bug2: Windows 上 OpenClaw CLI 已安装但检测显示 
- is_cli_installed() 仅检查 %APPDATA%\npm\openclaw.cmd
- 增加 PATH 查找兜底,兼容 nvm、自定义 prefix 等安装方式

增强: enhanced_path() 扫描 nvm 版本目录
- macOS/Linux: 扫描 ~/.nvm/versions/node/*/bin
- Windows: 扫描 %APPDATA%\nvm\* 和 %NVM_HOME%\*
2026-03-05 23:16:44 +08:00
晴天
bb2c6df8ec 优化:初始设置页面自动创建默认配置文件
当检测到 OpenClaw CLI 已安装但 openclaw.json 不存在时:
1. 自动创建包含合理默认值的配置文件(mode:local, tools:full 等)
2. 如果自动创建失败,显示「一键初始化配置」按钮供手动操作
3. 新增 init_openclaw_config API(dev-api.js + Tauri Rust 后端)
4. 用户不再需要去终端手动执行 openclaw configure
2026-03-05 23:14:13 +08:00
晴天
cb5cbe2f71 feat: Agent tools permission config UI + auto-heal (v0.4.4)
- Gateway config page: add tools profile selector (full/limited/none)
- Gateway config page: add session visibility selector (all/own/none)
- Auto-heal: setup + dashboard auto-set tools.profile:full on install/load
- Fixes OpenClaw 2026.3.2 breaking change that disabled tools by default
2026-03-05 22:40:02 +08:00
晴天
aae531a7bd bump: v0.4.3 - auto-set mode:local + Gateway self-heal 2026-03-05 22:35:09 +08:00
晴天
6ca4267970 feat: Node.js path scanning + manual path input + git HTTPS auto-fix (v0.4.2)
- Add scan_node_paths: auto-scan C/D/E/F/G drives for Node.js installations
- Add check_node_at_path: verify Node.js at user-specified directory
- Add save_custom_node_path: persist custom path to ~/.openclaw/clawpanel.json
- enhanced_path() now loads saved custom path and applies to all commands
- Windows enhanced_path: scan Program Files, LOCALAPPDATA, APPDATA, common drives
- Auto git config HTTPS-instead-of-SSH before npm install (fixes exit 128)
- Setup page: auto-scan button + manual path input when Node.js not detected
- Error diagnosis: add EPERM, MODULE_NOT_FOUND, SSH publickey patterns
- README: expanded troubleshooting section
2026-03-05 22:30:19 +08:00
晴天
b1b95e5a11 fix: macOS PATH detection + npm install error diagnosis (v0.4.1)
- Fix macOS Node.js/npm/openclaw detection by adding enhanced_path() with common install locations (/usr/local/bin, /opt/homebrew/bin, ~/.nvm, ~/.volta, etc.)
- Add npm install error diagnosis: auto-detect git missing (exit 128), ENOENT, permission denied, network errors, cache corruption
- Show macOS-specific hint when Node.js detection fails in setup page
- Add shared error-diagnosis.js module used by both setup and services pages
- Add troubleshooting section to README.md
- Bump version to 0.4.1
2026-03-05 22:21:11 +08:00
晴天
afb9f8ebe5 fix: cargo fmt + update docs version to 0.4.0 2026-03-05 20:57:21 +08:00
晴天
79cd15e1c4 v0.4.0: Gateway 进程守护、配置自愈、双配置同步、流式超时、模型删除安全切换 2026-03-05 20:44:47 +08:00
晴天
ffa9daffc3 chore: release v0.3.0 2026-03-04 22:55:48 +08:00
晴天
a6e1f40a59 feat: image rendering, sidebar toggle, contribute section; fix: private repo update check; bump v0.2.1 2026-03-04 20:47:00 +08:00
晴天
73ca2ba88e style: cargo fmt 2026-03-04 18:23:35 +08:00
晴天
3b81a193bb fix: wsClient.close→disconnect, model vision input, memory leaks; feat: loading skeletons, panel update check; bump v0.2.0 2026-03-04 18:07:12 +08:00
晴天
317cda70c2 fix: pairing required(metadata-upgrade) + agents 骨架屏
pairing.rs:
- platform 改用 std::env::consts::OS (windows/macos/linux),
  新增 deviceFamily=desktop,与 device.rs connect frame 保持一致
- 已配对设备若 platform 字段不匹配,自动覆盖更新,避免 Gateway
  因 metadata-upgrade 拒绝静默自动配对

agents.js + components.css:
- loadAgents 调用前先渲染 3 条骨架屏占位,消除空白等待期
- 添加 .skeleton 闪光动画样式
2026-03-04 15:13:27 +08:00
晴天
7f2f6db842 fix: 消除 Win 闪终端 + 替换慢 CLI 操作为直接进程管理
闪终端修复:
- extensions.rs: 提取 cftunnel_cmd() 助手,Windows 自动加
  CREATE_NO_WINDOW;get_cftunnel_status/action/logs 全部改用

CLI 替换:
- config.rs reload_gateway / restart_gateway: Windows/Linux 改调
  service::restart_service(),删除慢 openclaw gateway restart CLI 调用
- config.rs uninstall_gateway: Windows 改用直接 taskkill,
  Linux 改用 pkill,不再调用 openclaw gateway stop CLI
2026-03-04 14:56:49 +08:00
晴天
73d7d6e7f5 fix: 修复 pairing required - 改用 openclaw-control-ui 客户端 ID 触发静默自动配对
上游源码分析发现根本原因:
- Gateway 的 shouldAllowSilentLocalPairing 需要 isControlUi=true
  才能在本地连接时静默自动批准设备配对
- 我们之前用 gateway-client+backend,isControlUi=false,加上
  Tauri WebView 会发 Origin 头(hasBrowserOriginHeader=true),
  导致 shouldAllowSilentLocalPairing 返回 false → 'pairing required'

修复内容:
- device.rs: client.id 改为 openclaw-control-ui,mode 改为 ui,
  v3 签名 payload 同步更新,本地连接触发静默自动配对
- pairing.rs: paired.json 的 clientId/clientMode 同步更新
- main.js: 启动时自动调用 autoPairDevice(),确保 device 已配对
  + allowedOrigins 已写入,无需用户手动点击一键修复
2026-03-04 14:39:48 +08:00
晴天
7a05625aee fix: patch_gateway_origins 移至 paired 检查前,修复已配对设备跳过写入 origins 的 bug 2026-03-04 14:09:45 +08:00
晴天
8ced48be4c style: cargo fmt 格式化 pairing.rs 2026-03-04 13:39:42 +08:00
晴天
7c34f7919d fix: 修复系统诊断页面一键修复配对,解决 origin not allowed 握手失败
根本原因:Gateway WebSocket 服务检查 HTTP Origin 头,Tauri 应用的
origin (tauri://localhost / https://tauri.localhost) 不在
gateway.controlUi.allowedOrigins 白名单,导致 code 1008 拒绝握手。

修复内容:
- pairing.rs: auto_pair_device 新增 patch_gateway_origins(),在写入
  paired.json 的同时将 tauri://localhost 和 https://tauri.localhost
  写入 openclaw.json gateway.controlUi.allowedOrigins
- chat-debug.js: fixPairing 流程补充 origins 写入提示;success 后
  触发主 wsClient.reconnect() 让主界面恢复正常;修复诊断建议去除
  重复条件,合并 origin/端口 两种可能原因
- chat-debug.js: testWebSocket 1008 关闭时给出明确原因和解决方法
- ws-client.js: onclose 1008 时自动触发 _autoPairAndReconnect()
  而非普通重连,实现主应用自愈
2026-03-04 13:25:20 +08:00
晴天
590f943e7b fix: macOS 上 openclaw_command import 加 cfg 条件编译,消除 unused_imports 2026-03-04 12:54:42 +08:00
晴天
66799ee2c4 fix: 修复 macOS 专属 Clippy 错误
- service.rs: macOS 平台两处 manual_strip,改用 strip_prefix
- utils.rs: openclaw_command 在 macOS 未被调用,加 #[allow(dead_code)],函数体改用全路径 std::process::Command::new 避免 unused_imports
2026-03-04 12:49:56 +08:00
晴天
d8084f9213 fix: 修复所有 Clippy 警告,CI 质量门禁全部通过
- agent.rs: !...is_some() → .is_none() (nonminimal_bool)
- config.rs: 去掉 macOS/Windows 块多余 return (needless_return)
- config.rs: &old_pkg → old_pkg (needless_borrow)
- logs.rs: 第二处 saturating_sub + filter_map → map_while (lines_filter_map_ok)
- memory.rs: 两处 for/if-let → .iter().flatten() (manual_flatten)
- tray.rs: let _ = future → std::mem::drop (let_underscore_future)
2026-03-04 12:43:48 +08:00
晴天
c096ba143c fix: 修复 CI 编译错误与 Clippy 警告
- service.rs: macOS platform impl 是同步 fn,用 #[cfg] 在 caller 处区分,避免 .await 类型不匹配
- config.rs: macOS detect_installed_source read_link 失败时无 fallback,补充 return official
- config.rs: clippy::manual_strip,&path[2..] 改用 strip_prefix
- device.rs: clippy::needless_borrow,&pub_bytes 去掉多余引用
- device.rs: clippy::manual_is_multiple_of,% 2 != 0 改用 .is_multiple_of(2)
- logs.rs: clippy::manual_arithmetic_check,if/else 改用 saturating_sub
2026-03-04 12:31:19 +08:00
晴天
7cd6bb9b1b style: cargo fmt 格式化 Rust 代码,修复 CI 格式检查失败 2026-03-04 12:20:59 +08:00
晴天
e62f270422 chore: 跨平台构建脚本 + CI/CD 改进 + 行尾规范
- 新增 .gitattributes 统一 LF 行尾,解决 Mac/Windows 协作 CRLF 问题
- 新增 build.ps1 Windows 本地构建脚本(支持 -Debug/-Clean 参数)
- 新增 build.sh macOS/Linux 本地构建脚本
- 新增 .windsurf/workflows/release.md 发版操作工作流
- release.yml: 将 Release Notes 更新抽为独立 job,彻底解决多 matrix job 竞争条件
- release.yml: 补充代码签名环境变量注释占位,开源后可直接配 Secrets 启用
- ci.yml: 增加 cargo fmt --check 和 cargo clippy -D warnings 质量门禁
- .gitignore: 补充 Windows 平台特有文件、内部报告、IDE 文件
- docs/index.html: 修正 openclaw 仓库 URL
- README.md: 修正 openclaw 仓库 URL
2026-03-04 12:17:48 +08:00
晴天
dab61ccd24 fix: 修复多项关键 Bug,与 openclaw 上游协议对齐
- main.js: wsClient.connect 传参格式错误(完整 ws:// URL → host:port)
- ws-client.js: request() 等待重连时不处理 onReady 握手失败
- gateway.js: bind 写入非法值 'all',改为 openclaw 合法值 'lan'
- device.rs: connect payload 从 v2 升级到 v3,补充 platform/deviceFamily
- config.rs: macOS reload_gateway 在 async fn 中用同步 Command 阻塞 tokio
- service.rs: Windows check_service_status 端口硬编码 18789,改为读配置
- extensions.rs: parse_cftunnel_status 全角冒号解析失败,添加 split_after_colon
- tauri-api.js: cachedInvoke miss 时 logRequest 被记录两次
- tauri-api.js: mock 补充 list_agents / restart_gateway
- chat.js: 附件对象冗余 data 字段(双倍内存)+ 缩进修复
- services.js: 服务操作缺少操作中 toast 反馈
2026-03-04 12:16:58 +08:00
晴天
05771ffa63 fix: 修复所有页面 loading 动画未正确移除的问题
- chat-debug.js: loadDebugInfo 完成后正确调用 renderDebugInfo 移除 loading
- agents.js: loadAgents 失败时显示错误信息替代 loading
- dashboard.js: renderLogs 无日志时显示提示信息
- memory.js: loadFiles 失败时显示错误信息
- services.js: loadServices/loadRegistry/loadBackups 添加 loading 状态并在完成/失败时移除
- extensions.js: loadCftunnel/loadClawapp 添加 loading 状态并在完成/失败时移除
- models.js: loadConfig 添加 loading 状态并在失败时显示错误
- gateway.js: loadConfig 添加 loading 状态并在失败时显示错误
- logs.js: loadLog/searchLog 使用 loading-text 样式并在失败时显示错误

确保所有异步加载函数都:
1. 开始时显示 loading 状态
2. 成功时渲染数据(自动移除 loading)
3. 失败时显示错误信息(替代 loading)
2026-03-03 01:46:19 +08:00
晴天
53f46d8ef2 feat: Windows 兼容性全面改进
- Windows Gateway 启动改为前台 spawn 模式(绕过 schtasks 管理员权限)
- 添加全局 Gateway 未启动引导横幅(黄色提示条 + 一键启动按钮)
- 所有页面加载动画改为脉冲效果
- 统一 Windows cmd /c 调用加 CREATE_NO_WINDOW 标志
- 托盘菜单复用 service.rs 逻辑
- 新增 utils.rs 封装 openclaw_command
- 修复 config 文件 UI 字段污染问题
- 添加 dev.ps1 启动脚本
2026-03-02 13:00:16 +08:00
晴天
3705ab8081 feat: 聊天页面 + Agent 管理 + 模型排序固化 + 多项增强
- 新增聊天页面(WebSocket 实时通信、会话管理、Markdown 渲染)
- 新增 Agent 管理页面(CRUD、备份、工作区配置、模型选择)
- 新增设备认证模块(Ed25519 签名)
- 模型排序固化到配置文件(拖拽排序 + 下拉排序均写入底层数据)
- 记忆文件页面支持 Agent 切换
- Gateway 配置页重构为选项卡片布局
- 页面路由加载动画
- 批量测试支持终止、实时刷新卡片
- 服务管理备份说明文案
- Modal 组件支持 readonly 字段
- 脱敏 mock 数据中的内部地址
2026-03-01 12:19:21 +08:00
晴天
9b6d572ec8 refactor: 重新设计 Logo - 简洁现代的三爪设计
设计改进:
- 更简洁的三爪抽象设计(左/右/下三个方向)
- 去除复杂的网格装饰,更加简约现代
- 渐变色调整为更柔和的紫蓝色
- 侧边栏 Logo 从文字 CP 改为 SVG 图标
- 图标尺寸和样式优化,视觉效果更统一

技术细节:
- 全套 PNG 图标重新生成(16-1024px)
- 更新 icns (1.0M) 和 ico 文件
- 侧边栏 SVG 图标使用 currentColor 适配主题
2026-02-28 15:25:29 +08:00
晴天
333a3e54bb feat: 全新 Logo 设计 + 扩展工具一键安装功能
Logo 设计:
- 现代化爪印图标,紫蓝渐变配色
- 生成全套尺寸 PNG (16-1024px) + @2x 版本
- macOS icns + Windows ico + SVG 源文件
- 系统托盘和应用图标全面更新

扩展工具增强:
- cftunnel 支持一键安装(自动下载安装脚本)
- 实时显示安装进度和日志输出
- 安装完成后自动刷新状态
- 优化未安装状态的 UI 提示
2026-02-28 15:11:48 +08:00
晴天
1d64fdcce7 fix: 从 package.json 读取完整版本号修复汉化版更新误报
汉化版 CLI --version 输出不含 -zh.X 后缀,导致永远提示有更新。
改为从 npm 包 package.json 读取完整版本号。
2026-02-28 14:31:10 +08:00
晴天
a5c7760f25 feat: npm 源可配置,支持淘宝/官方/华为云镜像切换
- 所有 npm 操作使用用户配置的 registry,默认淘宝镜像
- 服务管理页面新增 npm 源设置区域(预设 + 自定义)
- 版本检测 API 同步使用配置源
- 配置持久化到 ~/.openclaw/npm-registry.txt
2026-02-28 14:10:09 +08:00
晴天
da8932a3e0 fix: 修复 Tauri GUI 环境下安装源检测错误
Tauri 进程 PATH 不含 /opt/homebrew/bin,导致 npm list 命令
静默失败,始终返回 official。改为优先检查 openclaw bin 的
symlink 指向判断安装源,npm list 作为 fallback。
2026-02-28 13:27:09 +08:00
晴天
ef2c6dfb1b fix: 切换安装源后自动重装 Gateway 服务更新 plist 路径 2026-02-28 12:56:01 +08:00
晴天
434cc5eccd fix: 优化升级进度条体验,每行日志递增进度并显示阶段提示 2026-02-28 12:50:42 +08:00
晴天
3fd98623c0 feat: 升级进度弹窗 + 安装源自动检测与切换
- 升级过程改为流式日志推送(Tauri Event),前端展示进度条和实时日志
- 后端自动检测当前安装的是官方版(openclaw)还是汉化版(openclaw-zh)
- 服务管理页支持一键切换安装源,切换时先卸载旧包避免 bin 冲突
- 版本号比较改为逐段数值比较,支持 -zh.X 后缀的小版本检测
- 仪表盘、关于页同步显示当前安装源标识
2026-02-28 12:43:19 +08:00