Commit Graph

42 Commits

Author SHA1 Message Date
Lingxuan Zuo
c03d92e9a2 Fix/moonshot cn web search domain (#338) 2026-03-08 00:00:47 +08:00
paisley
3ce4b5d17a fix(linux): single-line description and correct desktop.entry for valid .desktop file (#325) 2026-03-06 16:22:25 +08:00
paisley
01efd87642 fix(gateway): resolve undefined PID and NODE_OPTIONS errors in packaged app (#315) 2026-03-06 11:03:56 +08:00
Haze
be800f6cfc fix(channel): Feishu channel gateway wont restart after config (#291)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-03-04 21:45:44 +08:00
paisley
5ddb7d281d fix two clawx instances bug (#294) 2026-03-04 21:20:21 +08:00
paisley
52748d78b5 refactor(gateway): migrate from child_process.spawn to utilityProcess.fork (#290) 2026-03-04 20:56:19 +08:00
paisley
9703f361f9 fix: add -WindowStyle Hidden to powershell command to prevent window flash on Windows (#285) 2026-03-04 14:51:44 +08:00
paisley
bc47b455b5 fix(gateway): resolve model switch failure and websocket timeouts during rapid oauth restarts (#266) 2026-03-03 10:18:23 +08:00
Haze
9532400053 fix(win): Gateway restart win terminal open error (#265)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-03-02 21:28:01 +08:00
Lingxuan Zuo
e40f4b2163 Add built-in proxy settings for Electron and Gateway (#239)
Co-authored-by: zuolingxuan <zuolingxuan@bytedance.com>
2026-03-02 17:33:06 +08:00
paisley
29ef9591cf feat(settings): auto-set default provider after successful OAuth (#254) 2026-03-02 15:13:55 +08:00
Haze
730d5466dd fix(gateway): optimize gateway start robustness in version 0.1.19 (#244)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-03-01 17:42:25 +08:00
Haze
9d07f611a3 fix(install): windows install error (#233)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-02-28 18:39:10 +08:00
Haze
b4ef2bd51d feat(openrouter):add claw-x header (#213)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-02-28 15:46:26 +08:00
Haze
386d4c5454 fix(win): Windows stability improvements (#207) (#208)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-02-27 22:10:35 +08:00
Haze
4f50630291 feat(gateway, openclaw-auth): add browser config synchronization (#184) 2026-02-26 14:47:36 +08:00
Haze
6383e10d63 feat(chat): reformat streaming output (#173) 2026-02-25 23:59:55 +08:00
Haze
9a039ab9fb ClawX windows path robustness (#171)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Haze <hazeone@users.noreply.github.com>
2026-02-25 22:46:59 +08:00
Haze
b84b645aa1 feat(gateway): implement unloading of launchctl service to prevent au… (#170) 2026-02-25 21:49:24 +08:00
Haze
e8c11887d0 feat(gateway): sync gateway token and update agent models on provider… (#168) 2026-02-25 18:56:04 +08:00
Haze
2804b6da73 fix(gateway): remove --dev flag from gateway startup args (#167)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-25 18:29:29 +08:00
Haze
265b12281c fix(model): custom model choose error (#164) 2026-02-25 16:38:03 +08:00
Haze
4e7733353c fix(gateway): improve process termination handling and add timeout (#153) 2026-02-24 19:47:36 +08:00
Haze
d55305839f feat(updater): implement auto-install countdown and cancellation for updates (#151) 2026-02-24 16:41:53 +08:00
Haze
34105d60c6 fix(gateway): gateway start waiting (#120) 2026-02-20 21:23:06 +08:00
Haze
5005d405d9 chore(deps): update dependencies and devDependencies in package.json (#100) 2026-02-18 20:28:42 +08:00
Haze
cf8091d81f feat(chat): improve media handling and caching for user messages (#81) 2026-02-14 00:21:04 +08:00
DigHuang
1b508d5bde feat(provider): mainly support moonshot / siliconflow on setup (#43) 2026-02-11 11:33:33 +08:00
DigHuang
a27f3b4113 feat(gateway): improve Gateway process management & logging (#26) 2026-02-10 14:14:56 +08:00
Felix
7965b9c06e feat: add uv mirror detection and python bootstrap (#24)
Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
2026-02-10 13:55:37 +08:00
Haze
c440e95464 chore(product): fix link in app (#22) 2026-02-09 22:20:51 +08:00
DigHuang
05b5874832 feat(style): refactor layout, remove Header & Improve gateway readiness checks (#12) 2026-02-09 17:00:27 +08:00
Haze
de445ae3d5 Chore/build npm (#9)
Co-authored-by: DigHuang <114602213+DigHuang@users.noreply.github.com>
Co-authored-by: Felix <24791380+vcfgv@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-09 15:10:08 +08:00
Felix
fa6c23b82a feature: channels and skills (#2)
Co-authored-by: paisley <8197966+su8su@users.noreply.github.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 18:26:06 +08:00
Haze
9fe27e3510 chore(lint): remove ESLint configuration file and update lint scripts
- 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.
2026-02-06 05:50:20 +08:00
Haze
284861a0f5 feat(chat): write API keys to OpenClaw and embed Control UI for chat
Part 1: API Key Integration
- Create electron/utils/openclaw-auth.ts to write keys to
  ~/.openclaw/agents/main/agent/auth-profiles.json
- Update provider:save and provider:setApiKey IPC handlers to
  persist keys to OpenClaw auth-profiles alongside ClawX storage
- Save API key to OpenClaw on successful validation in Setup wizard
- Pass provider API keys as environment variables when starting
  the Gateway process (ANTHROPIC_API_KEY, OPENROUTER_API_KEY, etc.)

Part 2: Embed OpenClaw Control UI for Chat
- Replace custom Chat UI with <webview> embedding the Gateway's
  built-in Control UI at http://127.0.0.1:{port}/?token={token}
- Add gateway:getControlUiUrl IPC handler to provide tokenized URL
- Enable webviewTag in Electron BrowserWindow preferences
- Override X-Frame-Options/CSP headers to allow webview embedding
- Suppress noisy control-ui token_mismatch stderr messages
- Add loading/error states for the embedded webview

This fixes the "No API key found for provider" error and replaces
the buggy custom chat implementation with OpenClaw's battle-tested
Control UI.
2026-02-06 03:12:17 +08:00
Haze
b01952fba7 fix(stores): align RPC methods with OpenClaw protocol and fix chat flow
- Fix channels store: use channels.status instead of channels.list
- Fix skills store: use skills.status instead of skills.list
- Fix chat store: correct chat.history response parsing (messages in payload)
- Fix chat store: handle chat.send async flow (ack + event streaming)
- Add chat event handling for streaming AI responses (delta/final/error)
- Wire gateway:chat-message IPC events to chat store
- Fix health check: use WebSocket status instead of nonexistent /health endpoint
- Fix waitForReady: probe via WebSocket instead of HTTP
- Gracefully degrade when methods are unsupported (no white screen)
2026-02-06 02:38:18 +08:00
Haze
0f8e6f3f9e fix(gateway): implement proper OpenClaw WebSocket handshake protocol
- Send JSON-RPC connect request after WebSocket opens (required by OpenClaw Gateway)
- Use OpenClaw protocol format: { type: "req" } instead of { jsonrpc: "2.0" }
- Include proper ConnectParams: client info, auth token, protocol version
- Handle OpenClaw response format: { type: "res", ok: true/false }
- Handle OpenClaw event format: { type: "event", event: "..." }
- Wait for handshake completion before marking connection as running
- Improve error handling for connection failures

The Gateway was rejecting connections because:
1. ClawX wasn't sending the required "connect" handshake message
2. The protocol format was incorrect (standard JSON-RPC vs OpenClaw format)
2026-02-06 02:18:23 +08:00
Haze
af76b28286 fix(gateway): use GitHub URL for OpenClaw submodule and add token auth
- Change submodule URL from local path to https://github.com/openclaw/openclaw.git
- Checkout stable version v2026.2.3
- Add auto-generated gateway token (clawx-xxx) stored in electron-store
- Pass token via --token argument and OPENCLAW_GATEWAY_TOKEN env var
- Include token in WebSocket URL for authentication
- Add --dev and --allow-unconfigured flags for first-time setup
2026-02-06 00:50:19 +08:00
Haze
29ee21754a feat(gateway): integrate OpenClaw as git submodule
- Add OpenClaw as git submodule at ./openclaw/
- Update GatewayManager to start gateway from submodule path
- Support both production (dist) and development (pnpm dev) modes
- Add IPC handler for OpenClaw status check
- Update Setup wizard to check real OpenClaw submodule status
- Configure electron-builder to include submodule in packaged app
- Add npm scripts for submodule management:
  - postinstall: auto-init submodule
  - openclaw:init: initialize and install dependencies
  - openclaw:install: install dependencies only
  - openclaw:build: build OpenClaw
  - openclaw:update: update to latest version
2026-02-06 00:24:36 +08:00
Haze
1646536e40 feat(gateway): enhance gateway process management with auto-reconnection
Improve Gateway lifecycle management with the following features:

- Add exponential backoff reconnection (1s-30s delay, max 10 attempts)
- Add health check monitoring every 30 seconds
- Add proper restart method with graceful shutdown
- Handle server-initiated notifications (channel status, chat messages)
- Add 'reconnecting' state for better UI feedback
- Enhance IPC handlers with isConnected and health check endpoints
- Update preload script with new event channels
- Improve type safety and error handling throughout

Also fixes several TypeScript errors and unused variable warnings.
2026-02-05 23:15:07 +08:00
Haze
b8ab0208d0 feat(core): initialize project skeleton with Electron + React + TypeScript
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)
2026-02-05 23:09:17 +08:00