Commit Graph

67 Commits

Author SHA1 Message Date
晴天
13270a0065 fix: add cron.js to git tracking (was in .git/info/exclude) 2026-03-11 02:18:43 +08:00
晴天
01561820be fix: sidebar clock icon + cron button loading + #35 _normalizeBaseUrl crash
- sidebar.js: add clock SVG to ICONS map for 定时任务 nav item
- cron.js: add loading feedback to toggle/delete buttons
- dev-api.js: extract _normalizeBaseUrl from handlers object to standalone function
  Fixes #35: 'Cannot read properties of undefined (reading _normalizeBaseUrl)'
  Root cause: handlers are called as standalone functions via API middleware,
  so 'this' is undefined. Moving to a standalone function fixes it.
2026-03-11 02:08:01 +08:00
晴天
8602008a13 feat(services): add openclaw.json config editor with auto-backup and restart
- Config editor section in services page (hidden when file doesn't exist)
- Real-time JSON syntax validation as you type
- Auto-backup before every save
- Two save modes: 'Save & Restart Gateway' or 'Save Only'
- Reload button to discard unsaved changes
- Change detection (dirty state indicator)
2026-03-11 02:08:01 +08:00
晴天
8bba06f552 feat(cron): register cron page in router + sidebar, fix Gateway RPC call formats
- main.js: register /cron route
- sidebar.js: add '定时任务' to '数据' section
- cron.js: fix RPC params to match Gateway API:
  - cron.list: add includeDisabled param
  - cron.add: use structured schedule{kind,expr} + payload{kind,message}
  - cron.update: use patch format
  - cron.run: add mode:'force'
  - Map Gateway CronJob state fields (lastRunStatus, lastRunAtMs, etc)
2026-03-11 02:08:01 +08:00
晴天
381c7c1bb4 fix(memory): add loading animation for agent switch and tab change 2026-03-11 02:08:01 +08:00
晴天
64795d0b8d feat(docker): add OS-specific Docker installation guide when not connected
- Windows: Docker Desktop download link + WSL2 hint
- macOS: Docker Desktop download (ARM/Intel) + Homebrew alternative
- Linux: curl one-liner + usermod + systemd hint
- Add CSS styling for guide section
2026-03-11 02:08:00 +08:00
晴天
c30d0c450f fix(channels): make guide steps collapsible + fix modal content overflow
- channels.js: guide steps now use <details> for collapsible display
- components.css: add .modal-content-body to scrollable flex rule
- Fixes modals being too tall with buttons pushed off screen
2026-03-11 02:08:00 +08:00
晴天
e25f49d531 feat(channels): add Feishu/Lark messaging channel integration
- Frontend: add feishu to PLATFORM_REGISTRY with official tutorial guide
- Tauri backend: add feishu read/save/verify in messaging.rs
- Web backend: add all messaging platform handlers to dev-api.js
- Feishu verification uses tenant_access_token API (feishu/lark dual domain)
- Plugin: @openclaw/feishu@latest auto-installed on save
- Guide links to official OpenClaw Feishu plugin article
2026-03-11 02:08:00 +08:00
晴天
17b4f3d6b3 fix: remove discontinued gpt-5.4 and gpt-5.3-codex from QTCOOL fallback model list 2026-03-10 22:56:19 +08:00
晴天
91f96ac96b fix: resolve 6 issues (#32 #31 #25 #33 #29 #23)
- #32: parseCookies decodeURIComponent crash with malformed cookies (Authelia)
- #31: Gateway restart no longer overwrites user CORS allowedOrigins (merge instead)
- #25: Windows terminal flashing - add CREATE_NO_WINDOW to skills.rs + assistant.rs
- #33: Model test tolerates non-auth HTTP errors (Ali Coding Plan compatibility)
- #29: Auto-detect ws/wss protocol for reverse proxy + protocol-aware Docker URLs
- #23: Chat session sidebar stays open when switching sessions
2026-03-10 22:52:49 +08:00
晴天
a2f8ed9d54 feat(channels): add messaging channels and built-in qq bot 2026-03-10 03:33:21 +08:00
晴天
6d7c595122 feat(ui): 收口导航并优化实例切换与离线提示 2026-03-10 00:28:27 +08:00
晴天
f32bce12cb feat(guardian): 强化Gateway守护与Windows启停安全 2026-03-10 00:28:09 +08:00
晴天
743af933bd chore: 恢复未计划移除的扩展页 2026-03-10 00:12:34 +08:00
晴天
117de4665d feat(docker): 完善龙虾军团任务调度与提示 2026-03-10 00:11:47 +08:00
晴天
a084e23671 feat(docker): 配置同步+性格注入+Gateway认证 2026-03-09 06:24:21 +08:00
晴天
727903f94b feat: Docker 集群增强 — Gateway 通讯API、像素兵种系统、互动组件、UI 优化 2026-03-09 05:35:30 +08:00
晴天
69160c06f4 feat: 兼容 OpenClaw v2026.3.7 (SecretRef token, caps tool-events, 认证错误处理, Gateway 可见终端) 2026-03-09 00:23:44 +08:00
晴天
b904fb2398 feat: Docker集群管理改进 - 部署弹窗基础/高级模式、容器分类管理、节点端点预设检测、登录安全增强 2026-03-08 13:44:00 +08:00
晴天
f898733146 fix: fixPairing stop+wait+start instead of restart to reload config 2026-03-08 02:07:52 +08:00
晴天
02e1ef6b14 feat: 版本管理 + macOS提示优化 + 部署文档更新
- OpenClaw 版本管理: 安装/升级/降级/切换版本, 汉化版/原版选择
- 新增 list_openclaw_versions API (Rust + Web)
- upgrade_openclaw 支持指定版本号
- 版本选择器弹窗 (about.js)
- macOS Gatekeeper 提示优化: 强调拖入应用程序, No such file 备选
- 部署文档统一使用 npm run serve 替代 npx vite
- showUpgradeModal 支持自定义标题 + onClose 回调
- serve.js 路径分隔符跨平台修复
- 扩展工具页面优化 + AI助手危险工具确认
2026-03-08 01:46:27 +08:00
晴天
dbc2aa8a61 Merge branch 'pr-15' 2026-03-08 00:18:58 +08:00
0xsline
5eb5a93a76 fix(skills): stabilize loading, install list and scroll behavior 2026-03-07 20:56:48 +08:00
晴天
0752dc2a71 feat: v0.6.0 — 公益AI接口 + Agent灵魂借尸还魂 + 知识库 + 全局AI诊断 + 官网改版 2026-03-07 19:36:25 +08:00
晴天
921c371934 feat: AI助手支持 Anthropic/Gemini 原生API + 修复Windows终端闪烁
- AI助手新增 API 类型选择器(OpenAI兼容 / Anthropic原生 / Google Gemini)
- 实现 Anthropic Messages API 流式调用 + 工具调用(tool_use/tool_result)
- 实现 Google Gemini streamGenerateContent + 工具调用(functionCall)
- 设置弹窗动态切换 placeholder 和提示文本
- 测试按钮和模型拉取适配三种 API 类型
- 修复 Windows 上 Gateway 状态轮询导致终端反复闪烁(execSync/spawn 加 windowsHide)
- 默认密码统一为 123456 + 改密码后自动移除顶部横幅
- 后端 API 增加暴力破解保护、配置缓存、请求体大小限制
2026-03-06 22:46:40 +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
晴天
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
晴天
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
晴天
46928e798c fix: auto-set mode:local after Gateway install + dashboard self-heal
- Setup flow: write mode:'local' to openclaw.json after Gateway install
- Dashboard: auto-heal missing mode field on load for existing users
2026-03-05 22:34:07 +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
晴天
79cd15e1c4 v0.4.0: Gateway 进程守护、配置自愈、双配置同步、流式超时、模型删除安全切换 2026-03-05 20:44:47 +08:00
晴天
373fc37f92 fix: limit auto-pair to 1 attempt to prevent infinite loop, add button feedback on diagnostics page 2026-03-04 21:28:06 +08:00
晴天
3886aafc00 feat: gateway auth supports token/password mode switching; fix ClawApp description 2026-03-04 21:20:18 +08:00
晴天
ea251002c8 fix: auto-repair origin not allowed in connect handshake + cleanup duplicate listeners 2026-03-04 21:16:41 +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
晴天
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
晴天
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
晴天
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
晴天
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
晴天
60a4a3c6b5 fix: 修复 dashboard.js 模板字符串语法错误 + Linux 构建环境
- formatDate 函数改用字符串拼接避免嵌套模板字符串转义问题
- Linux 改回 ubuntu-latest 解决 libwebkit2gtk-4.1-dev 依赖冲突
2026-03-01 13:54:20 +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