晴天
|
a6e1f40a59
|
feat: image rendering, sidebar toggle, contribute section; fix: private repo update check; bump v0.2.1
v0.2.1
|
2026-03-04 20:47:00 +08:00 |
|
晴天
|
59c84b5eaf
|
ci: improve release notes with categorized changelog, clickable downloads, first-use guide
v0.2.0
|
2026-03-04 18:56:48 +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 |
|
晴天
|
57ad84fcd3
|
fix: 聊天附件图片 AI 看不到的问题
根本原因分析(对比上游源码):
1. fileToBase64 用 split(',')[1] 在边缘情况不如 regex 健壮,
改为 /^data:[^;]+;base64,(.+)\$/ 精确提取(匹配 upstream)
2. updateSendState 只判断文本,有附件无文本时发送按钮禁用,
改为 !text && !attachments.length 联合判断
3. renderAttachments 没有调用 updateSendState,添加附件后
按钮状态不更新,修复:末尾调用 updateSendState()
4. 无粘贴图片支持:新增 handlePaste,Ctrl+V 直接粘贴图片
|
2026-03-04 15:44:51 +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 |
|
晴天
|
5352337eaa
|
fix(ci): 移除 ci.yml 中的 libappindicator3-dev 解决 ubuntu-24.04 包冲突
|
2026-03-01 14:34:56 +08:00 |
|
晴天
|
25080cb1e5
|
docs: 完善项目文档与 Release 下载引导
- README: 新增下载安装区(macOS/Windows/Linux 分系统引导)、补充功能特性(10 个页面模块)、更新目录结构
- CHANGELOG: 重写 v0.1.0 变更记录,按 Keep a Changelog 格式详列所有功能
- release.yml: 动态生成 Release Body(含版本化下载引导表 + git log 自动 changelog),fetch-depth: 0 拉全量历史
- 已同步更新 v0.1.0 Release 页面描述
|
2026-03-01 14:30:00 +08:00 |
|
晴天
|
2a788e49e7
|
fix(ci): 移除 libappindicator3-dev 解决 ubuntu-24.04 包冲突
libappindicator3-dev 与 libayatana-appindicator3-dev 在 ubuntu-24.04
上互相冲突,Tauri v2 只需要后者即可。
|
2026-03-01 14:09:52 +08:00 |
|
晴天
|
60a4a3c6b5
|
fix: 修复 dashboard.js 模板字符串语法错误 + Linux 构建环境
- formatDate 函数改用字符串拼接避免嵌套模板字符串转义问题
- Linux 改回 ubuntu-latest 解决 libwebkit2gtk-4.1-dev 依赖冲突
v0.1.0
|
2026-03-01 13:54:20 +08:00 |
|
晴天
|
5c638994e5
|
ci: 增强 release 工作流支持手动触发和全平台构建
- 添加 workflow_dispatch 手动触发入口
- 新增 macOS Intel (x86_64) 构建目标
- Linux 固定 ubuntu-22.04 提升向下兼容性
- 修复 Windows 下 shell 兼容问题
|
2026-03-01 13:46:04 +08:00 |
|
晴天
|
3ac02ea19f
|
feat(dashboard): rich data display to overview system states
- add tunnel, mcp configurations insights
- show more statistical cards
- add create backup quick action
|
2026-03-01 13:26:55 +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 |
|
晴天
|
6946ffda17
|
feat: 新增模型列表排序功能 + 优化隧道列表卡片样式
- 模型列表支持 7 种排序方式(默认/名称/延迟/上下文)
- 隧道列表改为现代化卡片布局,增强视觉效果
- 添加悬停动画、状态徽章、图标等细节优化
|
2026-02-28 15:00:54 +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 |
|
晴天
|
84a6ab4d45
|
refactor: 全局重构原生弹窗为自定义 Modal 并同步更新项目文档
- 替换所有不可用的 `alert`, `confirm`, `prompt` 调用为异步的自定义 `Modal` 组件以适配 Tauri WebView 的 API 限制。
- 优化与重构核心服务组件接口,增加模型有效性测试 (`test_model`) 以及依赖更新支持。
- 同步补齐 `README.md` 与 `CHANGELOG.md` 新增的系统特性说明(含仪表盘、日记、存储、重构页面调整)。
|
2026-02-28 03:42:19 +08:00 |
|
晴天
|
75e94a7560
|
chore: 添加开源社区基础设施和项目文档
- 添加 README、LICENSE (MIT)、CONTRIBUTING、CHANGELOG
- 添加 GitHub Issue/PR 模板和 FUNDING 配置
- 添加 CI/CD 工作流(ci.yml + release.yml)
- 添加项目文档页面 (docs/index.html)
- 添加 logo 和社群二维码图片资源
- 添加开发和构建脚本 (dev.sh + build.sh)
- 更新 package-lock.json 依赖
|
2026-02-28 03:23:39 +08:00 |
|
晴天
|
add7f1e083
|
fix: 模型测试兼容 reasoning 模型的 reasoning_content 字段
|
2026-02-27 01:27:54 +08:00 |
|
晴天
|
0f79ce338f
|
fix: 修复功能空壳问题 + 新增模型测试
- 服务管理:动态扫描 LaunchAgents plist,不再硬编码 4 个服务
- 服务启停:检查 launchctl 执行结果,失败时返回 stderr
- 配置保存:Gateway/模型配置保存后自动重载 Gateway 服务使配置生效
- 模型测试:新增 test_model 命令,向 provider 发送 chat completion 验证连通性
- 新增 reqwest 依赖用于 HTTP 请求
|
2026-02-27 01:14:34 +08:00 |
|
晴天
|
fedd2f66fc
|
feat: 新增「关于」和「扩展工具」页面
- 关于页面:版本信息、相关项目链接、快捷链接、开源协议
- 扩展页面:cftunnel 隧道状态/路由/启停/日志 + ClawApp 状态/快捷访问
- Rust 后端:新增 extensions.rs(4 个命令:状态/操作/日志/ClawApp 检测)
- 侧边栏新增「扩展」和「关于」导航项,总计 8 个页面
|
2026-02-27 00:53:01 +08:00 |
|
晴天
|
1b9a195d32
|
feat: 精简页面结构并增强核心功能
- 删除 MCP 配置、Agent 配置、部署 3 个页面,保留 6 个核心页面
- 重写模型配置页:Provider/模型 CRUD + 一键应用默认模型(自动生成 fallback)
- 增强服务管理页:版本检测 + 配置备份管理(创建/恢复/删除)
- 增强记忆文件页:单个文件下载 + 分类打包 zip 下载
- Rust 后端新增 5 个命令(4 个备份 + export_memory_zip)
- 更新路由和侧边栏,同步清理
|
2026-02-27 00:16:45 +08:00 |
|
晴天
|
c2e3f738b5
|
fix: 修复内存泄漏和添加保存按钮加载状态
- router.js: 防止 hashchange 监听器重复绑定
- sidebar.js: 用事件委托替代每次重新绑定事件
- logs.js: 搜索定时器提升为模块级变量,添加 cleanup 导出
- models/agents/gateway/mcp: 保存按钮添加 disabled + 加载文本
|
2026-02-26 23:35:33 +08:00 |
|
晴天
|
352b85405d
|
fix: 修复暗色主题缺失变量和 CSS 选择器冲突
- variables.css: 暗色主题添加缺失的 --border-focus
- pages.css: 修复 .editor-area 从 flex 容器改为正确的 textarea 样式
- components.css: 添加 .stat-card-meta 类
- dashboard.js: 内联样式替换为 CSS 类
|
2026-02-26 23:28:24 +08:00 |
|
晴天
|
8077cf0bdb
|
fix: agents.js fallback 输入框实时同步到 state
|
2026-02-26 23:24:00 +08:00 |
|
晴天
|
91c33f78a4
|
fix: 修复路由竞态、删除确认、输入同步等交互问题
- router.js 添加竞态防护和页面清理钩子
- logs.js 切换 Tab 时清空搜索框
- models.js 删除 Provider 添加确认提示,输入框改 oninput 实时同步
- mcp.js 删除 Server 添加确认提示
- gateway.js Tailscale 地址为空时保留原配置
|
2026-02-26 23:23:11 +08:00 |
|
晴天
|
ed353cb3b5
|
feat: 全面完善功能和修复 CSS/API 问题
- 修复暗色主题缺少 --accent 变量导致按钮颜色异常
- 消除所有 CSS 硬编码颜色(btn-primary, btn-danger:hover, sidebar-logo)
- 添加 toast.warning 样式支持
- Modal 支持 Enter 确认和 Escape 关闭
- Dashboard 快速操作按钮添加 loading 状态
- Services 操作后延迟刷新确保状态同步
- Memory 页面添加预览/新建/删除文件功能
- Deploy 页面 .env 路径添加默认值
- Rust 后端补充 delete_memory_file/check_installation/write_env_file 命令
- Mock 数据补全所有 API 端点
|
2026-02-26 23:19:00 +08:00 |
|
晴天
|
8bf2caf788
|
feat: 添加日间/夜间主题切换系统
- 新增 theme.js 主题管理模块(localStorage 持久化)
- variables.css 重构为亮色默认 + 暗色 data-theme 切换
- sidebar 底部添加主题切换按钮(sun/moon SVG 图标)
- 修复 scrollbar 硬编码颜色为 CSS 变量
- 修复 agents.js fallbacks 未定义时的空指针错误
|
2026-02-26 23:08:21 +08:00 |
|
晴天
|
d32ce81547
|
feat: 完善 UI 交互和 mock 数据
- 修复 tab/modal/toolbar CSS class 不匹配问题
- 新增 Modal 弹窗组件替代原生 prompt()
- 补全所有页面的 mock 数据(日志/记忆/MCP)
- 添加 loading 骨架屏动画、按钮 disabled 状态
- 添加搜索高亮 mark 样式
- 修复记忆页面 memory-sidebar/memory-editor 样式
|
2026-02-26 22:55:56 +08:00 |
|
晴天
|
e26c4d9307
|
feat: ClawPanel v0.1.0 项目骨架
- Tauri v2 + Vanilla JS + Vite 技术栈
- 9 个页面: 仪表盘/服务管理/日志/模型配置/Agent配置/Gateway/MCP工具/记忆文件/部署
- Rust 后端: 配置读写/服务管理(launchd)/日志读取/记忆文件管理
- 暗色主题 + 玻璃拟态 UI
- Mock 数据支持纯浏览器开发调试
|
2026-02-26 22:34:55 +08:00 |
|