3eacff3acd2c706553095864ba36ce93aa7d6c77
- Remote config dirty state: baseline/diff/apply/discard mechanism matching local behavior (RemoteConfigBaselines managed state) - Remote update check: fallback to npm registry query via reqwest when `openclaw update status` unavailable on remote - Discord guild names: resolve via Discord REST API using bot token from config, fixing guild IDs showing as names - InstanceContext: add discordGuildChannels to prevent local/remote data mixing (replaces prop drilling through Cook/ParamForm) - Remote agent creation: resolve profile ID to provider/model string before writing to config - Remote profile creation: auto-reuse API key from same-provider existing profile; show auth suggestion in Settings UI - Instance-aware: Chat, actions, ParamForm, Channels, Doctor, History, Home, Settings all branch on isRemote/isConnected - Remote commands: chat, session management, model profiles, config baseline, Discord guild channels, update check 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%