晴天 b9a7c043d2 fix(audit): 复查发现的 5 个 bug — 双 listener / duplicate stub / timer leak / i18n
逐项排错盘点(OpenClaw + Hermes 引擎 + 共享层全面复查)。

## Bug #1 — Hermes 引擎双 listener 数组混用
src/engines/hermes/index.js

onStateChange / onReadyChange 共用一个 `_listeners` 数组:
```js
onStateChange(fn) { _listeners.push(fn); ... }
onReadyChange(fn) { _listeners.push(fn); ... }   ← 同一数组
```

main.js 注册 sidebar 渲染回调时两个都注册:
```js
_engineStateUnsub = engine.onStateChange(() => renderSidebar(sidebar))
_engineReadyUnsub = engine.onReadyChange(() => renderSidebar(sidebar))
```

结果:每次 detectHermesStatus(15s 一次 poll)触发,sidebar 被
renderSidebar 调两遍。OpenClaw 引擎用的 lib/app-state.js 早就是分开
两个数组(_gwListeners + _listeners),Hermes 是退化实现。

修复:
- 拆成 _stateListeners / _readyListeners 两个数组
- 加 prevReady / prevRunning 做 diff,仅在状态实际变化时通知

## Bug #2 — Web 模式下 check_panel_update 永远返回 false
scripts/dev-api.js

`check_panel_update` 在 line 6785 有完整实现(fetch GitHub/Gitee
release API),但 line 8586 又 stub 了一次:
```js
check_panel_update() { return { hasUpdate: false } }
```

Object literal 后定义覆盖前定义,Web 模式下用户永远看不到「有新版」
提示,必须升级到桌面客户端才能查更新。

修复:删掉重复 stub,留注释说明真实实现位置。

esbuild 之前就在 build 里 warn `Duplicate key "check_panel_update"
in object literal`,现在 warning 也消失了。

## Bug #3 — engine-select.js setTimeout 不在 cleanup 时清
src/pages/engine-select.js

choose 动画里两个 setTimeout (600ms + 1300ms) 没保存 id,路由
cleanup 时不清。极端情况:用户点完 OpenClaw 后立刻点 secondary
"稍后再说" → 1300ms 后被强制 navigate 回原 targetRoute,把用户拉走。

修复:
- 模块级 _animTimers 数组追踪所有动画 setTimeout id
- cleanup 时 clearTimeout 全清
- stage.dataset 防御性访问(路由切走后 stage 可能已不在 DOM)

## Bug #4 — router.js 三处中文硬编码
src/router.js

之前页面 loading / 加载失败 / 重新加载按钮直接写死"加载中..."
"页面加载失败" "重新加载"。i18n 里 `common.loading` /
`common.pageLoadFailed` / `common.reloadRetry` 早已存在但没用上。

修复:import t() + 三处替换。

## Bug #5 — dashboard.js Promise 超时 Error 写死中文
src/pages/dashboard.js

`new Error(\`超时(${ms/1000}s)\`)` — 这条错误最后被 humanizeError
处理后展示给用户,本来应该走 i18n。改成英文 `Timed out after Xs`,
统一与日志聚合(其他地方都是英文)。

## 验证
- npm run build:PASS(1.85s, 无 duplicate-key warning)
- cargo fmt --check:PASS(无改动)
- 受影响场景:
  - 引擎切换 sidebar 性能(Hermes 双重渲染消失)
  - Web 模式更新提示(恢复正常)
  - engine-select 动画中途切走(不再被强拉回)
  - 加载/错误页(i18n 完整)
2026-05-14 07:17:28 +08:00
2026-04-16 13:55:26 +08:00
2026-05-08 04:39:36 +08:00
2026-05-13 16:53:47 +08:00
2026-04-25 23:47:22 +08:00
2026-05-13 16:53:47 +08:00
2026-05-13 16:53:47 +08:00

ClawPanel

OpenClaw & Hermes Agent Management Panel with Built-in AI Assistant — Multi-Engine AI Framework Management

🇨🇳 中文 | 🇺🇸 English | 🇹🇼 繁體中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇻🇳 Tiếng Việt | 🇪🇸 Español | 🇧🇷 Português | 🇷🇺 Русский | 🇫🇷 Français | 🇩🇪 Deutsch

Release Downloads License CI


ClawPanel Feature Showcase

ClawPanel is a visual management panel supporting multiple AI Agent frameworks, currently with OpenClaw and Hermes Agent dual-engine support. It features a built-in intelligent AI assistant that helps you install, auto-diagnose configurations, troubleshoot issues, and fix errors. 8 tools + 4 modes + interactive Q&A — easy to manage for beginners and experts alike.

🌐 Website: claw.qt.cool | 📦 Download: GitHub Releases

🎁 QingchenCloud AI API

Internal technical testing platform, open for selected users. Sign in daily to earn credits.

QingchenCloud AI

  • Daily Sign-in Credits — Sign in daily + invite friends to earn test credits
  • OpenAI-Compatible API — Seamless integration with OpenClaw, plug and play
  • Resource Policy — Rate limiting + request caps, may queue during peak hours
  • Model Availability — Models/APIs subject to actual page display, may rotate versions

⚠️ Compliance: This platform is for technical testing only. Illegal use or circumventing security mechanisms is prohibited. Keep your API Key secure. Rules subject to latest platform policies.

🔥 Dev Board / Embedded Device Support

ClawPanel provides a pure Web deployment mode (zero GUI dependency), natively compatible with ARM64 boards:

  • Orange Pi / Raspberry Pi / RK3588npm run serve to run
  • Docker ARM64docker run ghcr.io/qingchencloud/openclaw:latest
  • Armbian / Debian / Ubuntu Server — Auto-detect architecture
  • No Rust / Tauri / GUI needed — only Node.js 18+ required

📖 See Armbian Deployment Guide | Web Dev Mode

Community

A community of passionate AI Agent developers and enthusiasts — join us!

Discord  ·  Discussions  ·  Report Issue

Features

  • 🤖 AI Assistant (New) — Built-in AI assistant, 4 modes + 8 tools + interactive Q&A. See AI Assistant Highlights
  • 🧩 Multi-Engine Architecture — Supports both OpenClaw and Hermes Agent dual engines, freely switchable, independently managed
  • 🤖 Hermes Agent Chat — Built-in Hermes Agent chat interface with tool call visualization, file system access toggle, SSE streaming output
  • 🖼️ Image Recognition — Paste screenshots or drag images, AI auto-analyzes, multimodal conversations
  • Dashboard — System overview, real-time service monitoring, quick actions
  • Service Management — OpenClaw / Hermes Gateway start/stop, version detection & one-click upgrade, config backup & restore
  • Model Configuration — Multi-provider management, model CRUD, batch connectivity tests, latency detection, drag-to-reorder, auto-save + undo
  • Gateway Configuration — Port, access scope (localhost/LAN), auth Token, Tailscale networking
  • Messaging Channels — Unified Telegram, Discord, Feishu, DingTalk, QQ management, multi-Agent binding per platform
  • Communication & Automation — Message settings, broadcast strategies, slash commands, Webhooks, execution approval
  • Usage Analytics — Token usage, API costs, model/provider/tool rankings, daily usage charts
  • Agent Management — Agent CRUD, identity editing, model config, workspace management
  • Chat — Streaming, Markdown rendering, session management, /fast /think /verbose /reasoning commands
  • Cron Jobs — Cron-based scheduled execution, multi-channel delivery
  • Log Viewer — Multi-source real-time logs with keyword search
  • Memory Management — Memory file view/edit, categorized management, ZIP export, Agent switching
  • QingchenCloud AI API — Internal testing platform, OpenAI-compatible, daily sign-in credits
  • Extensions — cftunnel tunnel management, ClawApp status monitoring
  • About — Version info, community links, related projects, one-click upgrade

Download & Install

Go to Releases for the latest version:

macOS

Chip Installer Notes
Apple Silicon (M1/M2/M3/M4) ClawPanel_x.x.x_aarch64.dmg Macs from late 2020+
Intel ClawPanel_x.x.x_x64.dmg Macs 2020 and earlier

⚠️ "Damaged" or "unverified developer"? App is unsigned. Run: sudo xattr -rd com.apple.quarantine /Applications/ClawPanel.app

Windows

Format Installer Notes
EXE ClawPanel_x.x.x_x64-setup.exe Recommended
MSI ClawPanel_x.x.x_x64_en-US.msi Enterprise / silent install

Linux

Format Installer Notes
AppImage ClawPanel_x.x.x_amd64.AppImage No install, chmod +x and run
DEB ClawPanel_x.x.x_amd64.deb sudo dpkg -i *.deb
RPM ClawPanel-x.x.x-1.x86_64.rpm sudo rpm -i *.rpm

Linux Server (Web Version)

curl -fsSL https://raw.githubusercontent.com/qingchencloud/clawpanel/main/scripts/linux-deploy.sh | bash

Visit http://YOUR_SERVER_IP:1420 after deployment. 📖 Linux Deployment Guide

Docker

docker run -d --name clawpanel --restart unless-stopped \
  -p 1420:1420 -v clawpanel-data:/root/.openclaw \
  node:22-slim \
  sh -c "apt-get update && apt-get install -y git && \
    npm install -g @qingchencloud/openclaw-zh --registry https://registry.npmmirror.com && \
    git clone https://github.com/qingchencloud/clawpanel.git /app && \
    cd /app && npm install && npm run build && npm run serve"

📖 Docker Deployment Guide

Quick Start

  1. Initial Setup — First launch auto-detects Node.js, Git, OpenClaw. One-click install if missing.
  2. Configure Models — Add AI providers (DeepSeek, MiniMax, OpenAI, Ollama, etc.) with API keys. Test connectivity.
  3. Start Gateway — Go to Service Management, click Start. Green status = ready.
  4. Start Chatting — Go to Live Chat, select model, start conversation with streaming & Markdown.

🤖 AI Assistant Highlights

Built-in AI assistant that can directly operate your system — diagnose, fix, even submit PRs.

Four Modes

Mode Icon Tools Write Confirm Use Case
Chat 💬 Pure Q&A
Plan 📋 Read configs/logs, output plans
Execute Normal work, dangerous ops need confirm
Unlimited Full auto, no prompts

Eight Tools

Tool Function
ask_user Ask user questions (single/multi/text)
get_system_info Get OS, architecture, home directory
run_command Execute shell commands
read_file / write_file Read/write files
list_directory Browse directories
list_processes View processes
check_port Check port usage

Tech Architecture

Layer Technology Description
Frontend Vanilla JS + Vite Zero framework, lightweight
Backend Rust + Tauri v2 Native performance, cross-platform
Communication Tauri IPC + Shell Plugin Frontend-backend bridge
Styling Pure CSS (CSS Variables) Dark/Light themes, glassmorphism

Build from Source

git clone https://github.com/qingchencloud/clawpanel.git
cd clawpanel && npm install

# Desktop (requires Rust + Tauri v2)
npm run tauri dev        # Development
npm run tauri build      # Production

# Web only (no Rust needed)
npm run dev              # Dev with hot reload
npm run build && npm run serve  # Production

FAQ

Hot Update Caused UI Issues / Rolling Back to Built-in Version

ClawPanel desktop supports frontend hot updates. Update files are stored at:

OS Path
Windows %USERPROFILE%\.openclaw\clawpanel\web-update\
macOS / Linux ~/.openclaw/clawpanel/web-update/

If the UI looks broken after a hot update or you want to revert to the version bundled with the installer, simply delete that directory and restart:

# macOS / Linux
rm -rf ~/.openclaw/clawpanel/web-update

# Windows PowerShell
Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw\clawpanel\web-update"

After restarting ClawPanel, the built-in frontend resources will be used automatically.

Project Description
OpenClaw AI Agent Framework
ClawApp Cross-platform mobile chat client
cftunnel Cloudflare Tunnel tool

Contributing

Issues and Pull Requests are welcome. See CONTRIBUTING.md for guidelines.

Acknowledgements

ClawPanel keeps growing because of every contributor in the community. Thank you for helping make the project better.

Code Contributors

Thanks to these developers for submitting Pull Requests and contributing directly to the codebase:


liucong2013

#88

axdlee

#58

ATGCS

#107

livisun

#106

kiss-kedaya

#101 #94

wzh4869

#82

0xsline

#15

jonntd

#18

Community Reporters

Thanks to community members who opened issues, reported bugs, and suggested features:

If we missed your contribution, please open an issue and we will add it promptly.

Sponsor

If you find this project useful, consider supporting us via USDT (BNB Smart Chain):

Sponsor QR
0xbdd7ebdf2b30d873e556799711021c6671ffe88f

Contact

License

This project is licensed under AGPL-3.0. For commercial/proprietary use without open-source requirements, contact us for a commercial license.

© 2026 QingchenCloud (武汉晴辰天下网络科技有限公司) | claw.qt.cool

Languages
JavaScript 63.3%
Rust 24.6%
CSS 10.4%
Shell 1%
HTML 0.5%
Other 0.1%