Hybrid config repair approach:
1. Pre-sanitize: Add sanitizeOpenClawConfig() using a conservative
blocklist approach to remove known-invalid keys (e.g. skills.enabled
at root level) BEFORE starting the Gateway. Uses blocklist instead
of allowlist for forward-compatibility — new valid keys added by
future OpenClaw versions are never stripped.
2. Reactive fallback: The existing doctor auto-repair mechanism catches
any OTHER config validation errors, runs openclaw doctor --fix, and
retries once.
3. Move Python readiness check outside the while loop since it's
fire-and-forget and only needs to run once per start() call.
Also adds comprehensive unit tests for the sanitization logic.
Co-authored-by: Haze <hazeone@users.noreply.github.com>
- Deleted the .eslintrc.cjs file to simplify configuration management.
- Updated lint scripts in package.json to remove unnecessary extensions for linting.
- Added new devDependencies for ESLint and globals to enhance linting capabilities.
Set up the complete project foundation for ClawX, a graphical AI assistant:
- Electron main process with IPC handlers, menu, tray, and gateway management
- React renderer with routing, layout components, and page scaffolding
- Zustand state management for gateway, settings, channels, skills, chat, and cron
- shadcn/ui components with Tailwind CSS and CSS variable theming
- Build tooling with Vite, electron-builder, and TypeScript configuration
- Testing setup with Vitest and Playwright
- Development configurations (ESLint, Prettier, gitignore, env example)