Commit Graph

375 Commits

Author SHA1 Message Date
晴天
024e4c9517 chore(gitignore): 忽略 pnpm-lock.yaml 和 yarn.lock
本项目使用 npm / package-lock.json,防止贡献者用 pnpm 或 yarn
安装依赖时误提交 lock 文件(见 PR #232 的 review)。
2026-04-20 03:06:58 +08:00
h91312
ef1e409dc3 refactor(chat): 聊天界面字体大小统一使用 CSS 变量 (#194)
将 chat.css 中硬编码的 font-size 改为 --font-size-xs/sm/md/lg/xl 变量,支持统一字体缩放。

Thanks @h91312 for the contribution!
2026-04-20 02:58:30 +08:00
github-actions[bot]
a798f4e09b ci: update latest.json for v0.13.3 2026-04-16 06:42:03 +00:00
晴天
08b767b212 chore(deps): update Rust dependencies for security
- Bump rand 0.9.2 -> 0.9.4 (addresses unsoundness alert)
- Update getrandom, fastrand, and other transitive deps via cargo update

Note: rand 0.8.5/0.7.3 remain as indirect deps of upstream crates
(Tauri/winit/etc) and cannot be forced to 0.9.x due to API breakage.
The vulnerable code path (custom logger calling rand::rng()) is not
exercised by ClawPanel.
v0.13.3
2026-04-16 14:19:48 +08:00
晴天
a6e200793a Merge branch 'main' of https://github.com/qingchencloud/clawpanel 2026-04-16 13:55:48 +08:00
晴天
36eaa64bf4 chore(release): v0.13.3
- 修复 #212 AI 消息气泡空白
- 修复 #215 HTTPS 下 WebSocket Mixed Content
- 修复 #219 多实例版本检测错误
- 修复引擎切换后仪表盘无限加载
- 修复热更新假更新循环(macOS/Linux)
- CI release 构建前自动同步版本号
2026-04-16 13:55:26 +08:00
github-actions[bot]
283c4df24d ci: update latest.json for v0.13.2 2026-04-13 07:27:09 +00:00
晴天
55e8365cab chore: release v0.13.2 v0.13.2 2026-04-13 15:10:20 +08:00
github-actions[bot]
fc75426aef ci: update latest.json for v0.13.1 2026-04-13 03:33:27 +00:00
晴天
7731b138ba chore: release v0.13.1 v0.13.1 2026-04-13 11:20:28 +08:00
晴天
7e527228c2 fix: show loading skeleton during engine switch and initial boot
引擎切换和初始启动时 boot() 是异步的,期间内容区完全空白。
现在在 boot() 开始前立即显示骨架屏动画,消除空白等待期。
- sidebar.js: 引擎切换点击时立即在 content 区注入骨架屏
- main.js: 初始启动 boot() 前也显示骨架屏
2026-04-13 11:14:33 +08:00
晴天
6d0fad10f7 chore(hermes): remove cron quick action from dashboard
定时任务功能暂不需要,移除仪表盘快捷操作中的"定时任务"入口
2026-04-13 11:10:17 +08:00
晴天
549801e007 fix: sidebar menu not updating after engine switch + dashboard loading skeleton
1. engine-manager: activateEngine 切换时调用 engine.boot() 检测状态
2. main.js: onEngineChange 监听器重绑 state/ready 回调,确保新引擎
   状态变化时侧边栏自动刷新
3. Hermes 仪表盘: loading 期间显示骨架屏动画,消除空白等待
4. components.css: 新增 .skeleton-line 通用骨架行样式
2026-04-13 11:08:55 +08:00
晴天
c02cb8e659 feat(setup): add local/custom install mode for Hermes Agent
安装步骤新增"本地"和"自定义"两种模式切换:
- 本地模式:原有一键安装流程(uv tool install)
- 自定义模式:输入已有 Hermes Gateway URL,测试连接后保存并跳到配置步骤
  适用于已在其他机器安装或手动安装的用户
- URL 格式校验 + 连接失败错误提示
- 新增 10 个 i18n 键
2026-04-13 11:01:47 +08:00
晴天
5df0cd36ae fix(hermes): add --force to uv tool install, improve install error handling
1. Rust + dev-api: uv tool install 添加 --force 标志,解决
   "Executable already exists: hermes.exe" 错误
2. 安装失败时显示醒目的错误提示框(红色边框+图标+详细错误信息)
3. 失败后保留日志面板 + 进度条变红,方便排查
4. 安装按钮变为"重试",点击后清除错误状态重新安装
5. 进度条 error 状态 CSS 样式
2026-04-13 10:51:41 +08:00
晴天
b676db6a46 feat(setup): simplify Hermes install — remove extras, add inline logs
1. 移除可选组件(extras)选择 UI,只安装核心包,提高安装成功率
2. 安装过程中内嵌显示实时日志 + 进度条 + 百分比
3. 安装前显示安装说明(uv 管理器、核心包、扩展后装提示)
4. 进度条样式优化:渐变色、更粗、更圆润
5. 日志面板优化:等宽字体、空状态提示、min-height
6. 新增 4 个 i18n 键(installDescSimple/installInfoUv/installInfoCore/installInfoExtrasLater)
2026-04-13 10:43:58 +08:00
晴天
3fc73b485b feat(about): Hermes config/upgrade/uninstall use modal dialogs with logs
配置按钮: 弹出模态框显示当前 Hermes 配置(Provider/URL/Key/Model),
  带"前往配置向导"按钮跳转 setup 页面
升级按钮: 确认模态框 → 进度条+实时日志(监听 hermes-install-log 事件)
卸载按钮: 两步确认(是否卸载 → 是否清除配置) → 进度条+日志
所有操作完成后自动刷新 Hermes 卡片数据
新增 6 个 i18n 键
2026-04-13 10:35:37 +08:00
晴天
d8d671a221 fix(setup): make Hermes wizard phases clickable, stop auto-redirect
1. 已完成的步骤指示器可点击返回(检测/安装/配置/启动)
2. 已安装+Gateway 运行时不再自动跳转仪表盘,停在"完成"步骤
3. 用户从 About 页点"配置"进入向导后可自由浏览每个步骤
2026-04-13 10:29:24 +08:00
晴天
6971bd32e8 feat(about): add Hermes Agent upgrade/uninstall/config buttons
Hermes 卡片已安装状态下新增三个操作按钮:
- 配置: 跳转到 Hermes 设置页
- 升级: 调用 updateHermes() 重新安装最新版
- 卸载: 调用 uninstallHermes(),支持选择是否清除配置
新增 12 个 i18n 键 (zh/en/繁/ja/ko)
2026-04-13 10:24:03 +08:00
晴天
c88a652bc5 chore: v0.13.1 release prep — fix fake update, cleanup hot update, version bump
1. main.js: import package.json → __APP_VERSION__ (统一版本来源)
2. dev-api.js: check_panel_update 实现 GitHub/Gitee API 查询
   (与 Rust 端逻辑一致,Web 模式可正常检测新版本)
3. dev-api.js: 移除 check_hermes 中未使用的 enhanced 变量
4. i18n: 清理 14 个废弃的热更新相关翻译键
5. 版本号升级: 0.13.0 → 0.13.1
   (package.json, Cargo.toml, tauri.conf.json)
2026-04-13 10:20:36 +08:00
晴天
2b6f80091a fix: fake update detection, Hermes web mode commands, cleanup hot update
1. 假更新检测: checkNewVersion 对比 Tauri 二进制版本与前端版本,
   若前端版本 > 二进制版本(热更新导致),提示用户下载完整安装包
2. 版本统一: sidebar 和 about 页面均使用 __APP_VERSION__
3. 更新机制: checkHotUpdate → checkNewVersion,改用 GitHub Releases API,
   移除 check_frontend_update / download / rollback / get_update_status 死代码
4. Hermes Web 模式: dev-api.js 实现全部 15 个 Hermes 命令处理器
   (check_python, check_hermes, install_hermes, configure_hermes,
    hermes_gateway_action, hermes_health_check, hermes_api_proxy,
    hermes_agent_run, hermes_read_config, hermes_fetch_models,
    hermes_update_model, hermes_detect_environments, hermes_set_gateway_url,
    update_hermes, uninstall_hermes)
5. i18n: 新增 versionMismatch, hotUpdateDeprecated, downloadFullInstaller
2026-04-13 09:50:36 +08:00
晴天
f5ce70dde6 fix: 修正所有 README 中 Hermes Agent GitHub 链接
org-2048/hermes-agent → nousresearch/hermes-agent(11 个语言文件)
2026-04-13 04:40:22 +08:00
github-actions[bot]
e422bd7b19 ci: update latest.json for v0.13.0 2026-04-12 20:36:30 +00:00
晴天
2de05d9ca6 fix: Hermes setup 完成后自动更新引擎状态并跳转仪表盘
- detectHermesStatus 每次调用前清除 check_hermes 缓存,确保拿到最新数据
- setup 向导检测到已安装+Gateway 运行中时,自动调用 engine.detect() 更新 _ready
- refreshHermes 同样清缓存+自动跳转,覆盖安装/配置/启动后的刷新场景
- 修复 sidebar 停留在"初始设置"的问题
v0.13.0
2026-04-13 04:28:18 +08:00
晴天
a69d0404ac fix: Hermes 模式下隐藏 OpenClaw Gateway 横幅
- setupGatewayBanner 移到引擎无关位置,update() 内部按引擎判断显隐
- 新增 onEngineChange 监听,切换引擎时自动刷新横幅状态
- Hermes 模式不再显示"Gateway 未运行"提示
2026-04-13 04:22:49 +08:00
晴天
dd9d7e5b6e fix: 初始设置页全部检测通过时自动跳转仪表盘
修复全部检测项(Node.js/Git/CLI/配置文件)通过后仍停留在初始设置页的问题,
现在会自动刷新引擎状态并跳转到仪表盘。
2026-04-13 04:18:29 +08:00
晴天
5575566806 feat: Hermes Agent 多引擎架构核心代码
- 新增 src/engines/hermes/ 完整引擎(仪表盘/服务管理/模型配置/Agent管理/对话)
- 新增 src/lib/engine-manager.js 引擎管理器(切换/检测/状态)
- 新增 src-tauri/src/commands/hermes.rs 后端命令(Gateway控制/配置读写/Agent Run SSE)
- sidebar 引擎切换器 UI
- i18n 新增 engine 模块(中/英/繁体)
- 多安装清理工具(gateway-ownership.js)
- 晴辰助手文件访问开关
- Hermes 对话工具调用可视化、SSE 流式输出
- Cargo.lock / dev-api.js 同步更新
2026-04-13 04:09:09 +08:00
晴天
32190c8f27 feat: v0.13.0 — 新增 Hermes Agent 双引擎支持,更新全部文档与官网
- 新增 Hermes Agent 引擎,与 OpenClaw 双引擎并行管理
- 内置 Hermes Agent 对话界面(工具调用可视化、SSE 流式、文件访问开关)
- 多安装清理工具(OpenClaw 多安装检测与一键清理)
- 官网 index.html 更新(title/meta/OG/Twitter/Schema.org/hero/i18n)
- 全部 11 语言 README 更新为多引擎架构描述
- 版本号升级至 0.13.0(package.json/Cargo.toml/tauri.conf.json)
- CHANGELOG.md 新增 0.13.0 条目
- 规划与开发文档从 docs/ 迁移至 .tmp/(不再对外暴露)
2026-04-13 04:09:09 +08:00
github-actions[bot]
849924b152 ci: update latest.json for v0.12.0 2026-04-10 21:51:06 +00:00
晴天
d397de4c52 fix: npm install后误卸载新装包(current_source=unknown时old_pkg与new pkg相同) v0.12.0 2026-04-11 05:26:27 +08:00
晴天
2f33409a8b fix: allow unused_variables for reload_gateway_internal (app unused on macOS) 2026-04-11 04:55:53 +08:00
晴天
e3af36603a fix: CI lint errors - openclaw_command import scope, clippy warnings 2026-04-11 04:51:07 +08:00
晴天
fef694a087 style: cargo fmt 2026-04-11 04:45:58 +08:00
晴天
271dc93b08 feat: OpenClaw 4.9 全面适配 (v0.12.0)
- 推荐内核统一升级至 2026.4.9 / 2026.4.9-zh.2
- standalone 安装兼容 edition 格式 latest.json + openclaw-zh- 文件名前缀
- standalone 三级降级: R2 CDN → GitHub Releases → npm
- pre_install_cleanup 所有命令加 10s 超时保护(修复安装卡死)
- npm uninstall 加 30s 超时保护
- wmic 全部迁移到 PowerShell(兼容 Windows 11)
- standalone 下载增加文字进度显示
2026-04-11 04:42:36 +08:00
晴天
70d768be17 feat: new pages + dashboard enhancements + backend improvements
New pages:
- Plugin Hub: grid cards, search, install/toggle/enable plugins
- Route Map: SVG visualization of channels→agents bindings with legends
- Diagnose: gateway connectivity diagnosis with step-by-step checks

Dashboard enhancements:
- WebSocket status indicator (connected/handshaking/reconnecting/disconnected)
- Connected channels overview with platform icons
- Colored log level badges (ERROR/WARN/INFO/DEBUG) with timestamps
- Channels data loading in dashboard secondary fetch

Splash screen:
- Multi-stage boot detection (JS not loaded vs boot slow vs timeout)
- 15s: WebView2/resource load failure
- 20s: "initializing..." hint with elapsed counter
- 90s: true timeout error

Backend (Rust):
- diagnose.rs: gateway connectivity diagnosis command
- messaging.rs: plugin management commands
- service.rs: improvements
- lib.rs: register new commands

Frontend libs:
- feature-gates.js: feature flag system
- ws-client.js: reconnect state tracking
- tauri-api.js: new API bindings
- model-presets.js: provider fixes
- Remove gateway-guardian-policy.js (unused)

Dev API (scripts/dev-api.js):
- list_all_plugins, toggle_plugin, install_plugin handlers
- probe_gateway_port, diagnose_gateway_connection handlers

i18n: dashboard, sidebar, diagnose, extensions, routeMap locale modules
CSS: plugin-hub cards, route-map SVG styles
2026-04-11 00:44:06 +08:00
晴天
c1fb674c44 chore: bump vite 6.4.1 → 6.4.2 (fix CVE-2026-39363 + path traversal) 2026-04-11 00:42:01 +08:00
晴天
56039ce932 fix: improve install/uninstall stability + dreaming animations + scan fix flow
Dreaming page:
- Restore animated hero card (stars, moon, floating Z's, deep sky gradient)
- Glass-morphism stat cards inside hero
- runAction/toggleDreaming: friendly toast for unsupported RPCs instead of raw error

Install/Uninstall (config.rs):
- pre_install_cleanup: fix Windows process kill (wmic CommandLine match instead of useless WINDOWTITLE filter), kill standalone dir processes, wait 2s
- uninstall: wait 3s after gateway stop, wmic kill standalone processes, retry deletion with 3s delay
- upgrade source-switch: standalone cleanup with process kill + retry + wait
- gateway reinstall: wait 2s after stop before install

Scan fix flow (chat-debug.js):
- 5-step fix with progress toasts (pairing, doctor, gateway, wait, websocket)
- Gateway start polling (up to 15s) instead of fixed 5s wait
- WebSocket reconnect polling (up to 12s) instead of fixed 3s wait

Frontend (modal.js + about.js):
- setProgressLabels() for custom progress text per modal usage
- Uninstall modal shows "停止服务/卸载组件/清理文件" instead of "下载依赖"

i18n: 11 locales updated with fixStep* and uninstall progress keys
2026-04-11 00:37:14 +08:00
晴天
cfd00f043e feat: add Dreaming UI and gateway auto-fix startup flow 2026-04-10 20:28:20 +08:00
晴天
3105e56fd6 fix hosted session binding and harden panel config resolution 2026-04-10 18:59:41 +08:00
github-actions[bot]
6beaa7f46a ci: update latest.json for v0.11.6 2026-04-07 08:31:51 +00:00
晴天
3c5a0d252b chore: release v0.11.6
feat: Skills multi-agent support — agent selector + per-agent skills directory (Rust/Node.js/frontend)
feat: Assistant tool mode streaming — typewriter effect + tool_calls chunk accumulation
improve: OpenClaw 4.5 compatibility — full agent event stream handling + 3-min ultimate timeout
improve: Replace hot-update with stable download links (website/GitHub)
fix: Gateway status flapping — dashboard throttle + TCP retry + debounce threshold
fix: Assistant empty gray bubbles — SSE 0-chunk detection + stream error capture + render filter
v0.11.6
2026-04-07 16:17:09 +08:00
晴天
35423f428b feat(chat): OpenClaw 4.5 compatibility — fix silent no-reply + add working state indicators
Problem:
- Sending a message with no response left users stuck with an empty typing
  indicator forever (no timeout, no error, no feedback)
- Users had no visibility into what OpenClaw was doing (thinking, planning,
  executing tools, running commands, waiting for approval)
- The response watchdog only reacted to chat delta/final events, ignoring
  all agent processing events

Root cause:
- Watchdog looped every 15s polling history but had no ultimate timeout
- Agent events (lifecycle, item, plan, approval, thinking, command_output)
  were not handled — only tool stream events updated the typing hint
- When OpenClaw processed silently (no delta), the UI showed nothing useful

Fix:
1. Handle ALL OpenClaw 4.5 agent event streams in handleEvent():
   - lifecycle: "AI is processing…" on phase start
   - item: structured execution steps (tool/command/search/analysis)
   - plan: "AI is planning…"
   - approval: "Waiting for approval…"
   - thinking: "AI is thinking…"
   - command_output: "Running command…"
   - compaction/error: appropriate indicators

2. Enhanced watchdog mechanism:
   - 3-minute ultimate timeout that persists across watchdog re-polls
   - Agent events reset the polling timer (OpenClaw is alive) but not
     the ultimate timeout
   - After 30s shows "Still waiting…" with elapsed time
   - At 3min shows clear error: "Check if OpenClaw is running"

3. Live elapsed timer in typing indicator:
   - Shows seconds elapsed since message was sent (after 5s)
   - Updates every 5s while waiting
   - Properly cleaned up on response/error/page exit

4. Config compatibility check: no changes needed — our code already uses
   canonical config paths, no legacy aliases affected by 4.5 removal.

Files: chat.js, chat.css, locales/modules/chat.js
2026-04-07 16:15:17 +08:00
github-actions[bot]
f781f2afa6 ci: update latest.json for v0.11.5 2026-04-06 19:48:32 +00:00
晴天
1b0ee6a18d fix: clippy manual_flatten in skills.rs v0.11.5 2026-04-07 03:34:56 +08:00
晴天
c968d179b1 style: cargo fmt 2026-04-07 03:30:48 +08:00
晴天
ad00ffef3d chore: release v0.11.5
feat: SkillHub skill store (SDK-based, no CLI dependency)
- Rust SDK (skillhub.rs): HTTP search, index fetch, zip download+extract
- Node.js SDK (skillhub-sdk.js): mirrors Rust SDK for Web/Docker mode
- Skills page: new "Store" tab with full index browse + client-side filter
- Remove 6 old CLI-dependent commands, add 3 SDK commands
- Migrate assistant.js skill tools from ClawHub CLI to SkillHub SDK
- Fix index decode error ({total,skills} wrapper vs bare array)
- Fix skill name display (API field 'name' vs 'display_name')
- Clean up 13 dead CSS rules from old skills hero/tips UI
2026-04-07 03:25:26 +08:00
github-actions[bot]
b57235e2a7 ci: update latest.json for v0.11.4 2026-04-05 17:20:45 +00:00
晴天
4f8ac803ce chore: release v0.11.4 v0.11.4 2026-04-06 01:07:36 +08:00
晴天
9ff91f74d8 feat: IME-aware chat input, message copy button, Git path scanning
- Fix IME composition issue: Enter during Chinese/Japanese/Korean input
  method composition no longer prematurely sends messages (assistant.js)
  Uses e.isComposing + keyCode 229 guard on keydown handler
- Add one-click copy button to chat message bubbles (both chat.js and
  assistant.js), with hover-reveal animation and checkmark feedback
- Add 'copy' icon to SVG icon library (Lucide style)
- Add CSS for msg-copy-btn in chat.css and assistant.css
- Implement scan_git_paths Rust command: scans common Git installation
  locations on Windows/macOS/Linux (Program Files, Scoop, Chocolatey,
  GitHub Desktop, VS Code, MSYS2, Homebrew, Xcode CLT, etc.)
- Register scan_git_paths in lib.rs, tauri-api.js, dev-api.js
- Add scan button + results UI in settings.js Git path section
- Add i18n keys: gitScan, gitScanning, gitScanEmpty, gitScanUse
2026-04-06 00:14:18 +08:00
晴天
42aeb8b077 fix: Gateway status discrepancy — foreign detection, claim action, banner sync
- Services page: foreign Gateway now shows warning dot (yellow) instead of green
- Add claim_gateway command (Rust + dev-api + frontend API) to adopt foreign Gateway
- Services page: add "Claim Gateway" button for foreign Gateway instances
- Top banner: distinguish foreign Gateway (warning + claim) vs stopped (info + start)
- app-state: expose isGatewayForeign(), pass foreign flag to onGatewayChange listeners
- Services page actions now immediately sync global Gateway state (no 15s poll wait)
- Relax owner matching: cli_path missing on either side no longer triggers foreign
- Add i18n keys: foreignGatewayBanner, claimGateway, claimSuccess, claimFailed, processing
2026-04-05 23:12:16 +08:00