3b0a776a9f8206b274e80285b4cbdc1767d2d050
- Add RemoteSystemStatus & Binding types for type safety (no more unsafe casts) - Add dedicated password field to SshHost (was reusing keyPath) - Fix remote_read_raw_config to return String instead of parsed JSON Value - Fix remote_list_history timestamps: convert Unix epoch to ISO 8601 - Add !isConnected guards: Chat send, Home delete agent, App apply changes - Fix History fallthrough to local API when remote but disconnected - Fix Doctor: runDoctorCmd rejects when remote+disconnected, listBackups skips fetch for remote, remove dead memoryFiles/totalMemoryBytes code - Fix Channels: add isRemote guard to refresh handlers, remove local Binding interface in favor of shared type, remove unsafe casts - Fix Chat: reset agentId on instance switch, add isConnected to deps - Fix App.tsx: narrow connectionStatus dependency to isConnected only - Use shared formatBytes from utils instead of local copy in Doctor - CreateAgentDialog uses useInstance() context instead of props Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Co-Authored-By: Claude <noreply@anthropic.com> Co-Authored-By: Happy <yesreply@happy.engineering>
ClawPal MVP (Tauri)
ClawPal is a local helper for OpenClaw configuration:
- install scenarios via Recipes
- one-click rollback for every config change
- local doctor checks with basic auto-fixes
Quick start
npm install
npm run dev
Override folders outside ~/.openclaw
You can place ClawPal-managed files outside ~/.openclaw with env vars:
export CLAWPAL_OPENCLAW_DIR="$HOME/.openclaw" # OpenClaw 配置来源目录(默认)
export CLAWPAL_DATA_DIR="$HOME/.clawpal" # ClawPal 元数据目录(默认: $CLAWPAL_OPENCLAW_DIR/.clawpal)
Build
npm run build
cd src-tauri && cargo build
Release
npm run release:dry-run
npm run release
Project layout
src/React + TypeScript UIsrc-tauri/Rust + Tauri host and command APIsdocs/plans/design and implementation plan
Description
Languages
Rust
49.9%
TypeScript
48.8%
Shell
0.7%
CSS
0.5%