Commit Graph

55 Commits

Author SHA1 Message Date
paisley
da8ed3bb32 feat: add PostHog telemetry and privacy toggle in settings (#409) 2026-03-11 15:22:02 +08:00
Haze
95e090ecb5 feat(agents): support chat to agent (#403) 2026-03-11 12:03:30 +08:00
Lingxuan Zuo
80e89ddc5c Fix token usage history gaps and add dev detail popup (#386)
Co-authored-by: zuolingxuan <zuolingxuan@bytedance.com>
2026-03-10 17:20:10 +08:00
Haze
36c0fcb5c7 feat(Agnet): support multi agents (#385) 2026-03-10 16:13:55 +08:00
Lingxuan Zuo
3d664c017a refactor(new merge) (#369)
Co-authored-by: paisley <8197966+su8su@users.noreply.github.com>
Co-authored-by: zuolingxuan <zuolingxuan@bytedance.com>
2026-03-09 20:18:25 +08:00
Lingxuan Zuo
e28eba01e1 refactor/channel & ipc (#349)
Co-authored-by: paisley <8197966+su8su@users.noreply.github.com>
Co-authored-by: zuolingxuan <zuolingxuan@bytedance.com>
2026-03-09 19:04:00 +08:00
paisley
2c5c82bb74 Refactor clawx (#344)
Co-authored-by: ashione <skyzlxuan@gmail.com>
2026-03-09 13:10:42 +08:00
Lingxuan Zuo
3d804a9f5e refactor IPC (#341) 2026-03-08 11:54:49 +08:00
paisley
0901d9912a Increase chat send RPC timeout to 120s for high-latency networks (#311) 2026-03-05 15:49:36 +08:00
DigHuang
2f17e74944 fix(session): remove limit parameter from sessions.list RPC call (#304) 2026-03-05 12:05:12 +08:00
DigHuang
76df84e68c fix: ghost session cleanup, new chat switching, and markdown overflow handling (#287) 2026-03-04 18:54:47 +08:00
DigHuang
c49c7f18bd feat(chat): enhance sidebar with session management and deletion (#274) 2026-03-03 19:07:42 +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
Mao Mr
bf62639573 fix(chat): show loading when run from console and when sending in app (#228) 2026-02-28 17:09:00 +08:00
Felix
d4f77a442c misc: improve timeout handling and warnings in skills (#211) 2026-02-28 10:16:36 +08:00
Haze
45932a95c3 refactor(chat): modify newSession logic to avoid resetting old sessio… (#185) 2026-02-26 15:23:59 +08:00
Haze
d11f45cc73 fix(chat): enhance file path extraction and preserve optimistic user … (#182) 2026-02-26 14:35:33 +08:00
Haze
1ca0017f85 feat(openclaw): add repair function for ClawX-only bootstrap files an… (#180) 2026-02-26 11:55:19 +08:00
Haze
96ac13fd90 feat(chat, gateway): implement error recovery timer and enhance histo… (#179) 2026-02-26 11:26:39 +08:00
Haze
6383e10d63 feat(chat): reformat streaming output (#173) 2026-02-25 23:59:55 +08:00
Haze
d55305839f feat(updater): implement auto-install countdown and cancellation for updates (#151) 2026-02-24 16:41:53 +08:00
Haze
cf27bb0d64 feat(openclaw): update openclaw version 223 (#149) 2026-02-24 16:09:39 +08:00
Haze
f821949829 fix(model): update gemini apikey modify function (#119) 2026-02-20 20:17:30 +08:00
Haze
c969e899c8 feat(chat): enhance image extraction and file path handling in messages (#116) 2026-02-20 10:48:46 +08:00
Haze
1759b98443 fix(chat): optimize chat with pic response (#103) 2026-02-19 00:29:10 +08:00
Haze
d108a850ef feat(chat): opt pic show in chat history (#87) 2026-02-14 18:00:57 +08:00
Haze
cf8091d81f feat(chat): improve media handling and caching for user messages (#81) 2026-02-14 00:21:04 +08:00
Haze
8a49c66891 fix(chat): enhance file handling and error reporting in ChatInput (#80) 2026-02-13 20:43:42 +08:00
Haze
36fb4bffc7 feat(chat): implement file upload support with staging and media handle (#77) 2026-02-13 18:23:47 +08:00
Felix
a8e26362b9 refactor: Directly add new chat session to state upon creation (#62) 2026-02-12 12:09:14 +08:00
Felix
fcba8b86d5 fix(chat): improve message handling, fix type errors and migrate changes to enhance branch (#50) 2026-02-11 17:10:53 +08:00
paisley
6e09a69f4f feat(app): i18n (#48) 2026-02-11 15:34:53 +08:00
Felix
f9581d2516 fix(chat): improve handling of streaming messages and add pending state management (#46) 2026-02-11 13:55:34 +08:00
Haze
1267e0cc56 fix(updater): update function support alpha (#45) 2026-02-11 13:49:03 +08:00
DigHuang
0ced0b042c refactor(provider): provider API validation & CN defaults (#47) 2026-02-11 13:48:15 +08:00
DigHuang
1b508d5bde feat(provider): mainly support moonshot / siliconflow on setup (#43) 2026-02-11 11:33:33 +08:00
Felix
a0505490cd feat: enhance ClawHub integration with new CLI paths and IPC handlers for config and skills directories (#41) 2026-02-11 11:32:03 +08:00
Felix
816a0e24a2 misc: chat stop button and tool typing indicator and prevent sending message during composition (#37) 2026-02-10 19:12:22 +08:00
Haze
9e5fdc5631 fix(update): electron update function (#32) 2026-02-10 15:20:04 +08:00
paisley
41b6868646 chore: update channel url (#13) 2026-02-09 17:27:13 +08:00
Haze
e6317cafd6 chore(frontend): fix corn task (#3) 2026-02-07 01:28:38 +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
94a6cecf2f fix(chat): move toolbar to Header and add New Session button
- Move ChatToolbar (session selector, refresh, thinking toggle) from
  the Chat page body into the Header component, so controls appear
  at the same level as the "Chat" title
- Add New Session button (+) to create a fresh conversation
- Add newSession action to chat store
- Header conditionally renders ChatToolbar only on /chat route
- Chat page fills full content area without duplicate toolbar
2026-02-06 04:57:25 +08:00
Haze
3468d1bdf4 feat(chat): native React chat page with session selector and streaming
Replace the iframe-based Control UI embed with a native React
implementation that communicates directly with the Gateway via
gateway:rpc IPC calls and chat event streaming.

New components:
- ChatToolbar: session selector dropdown, refresh button, thinking toggle
- ChatMessage: message bubbles with markdown (react-markdown + GFM),
  collapsible thinking blocks, tool use cards, image attachments
- ChatInput: textarea with Enter to send, Shift+Enter for new line
- message-utils: extractText/extractThinking/extractImages/extractToolUse
  ported from OpenClaw's message-extract.ts

Rewritten chat store with:
- Session management (sessions.list, switchSession)
- Proper chat.history loading with raw message preservation
- chat.send with idempotencyKey and run tracking
- Streaming via handleChatEvent (delta/final/error/aborted)
- Thinking toggle (show/hide reasoning blocks)
2026-02-06 04:49:01 +08:00
Haze
a36c3c5399 fix(stores): channels.status and skills.status return complex objects, not arrays
The Dashboard crashed with 'channels.slice is not a function' because
channels.status returns a deeply nested object per channel ID, not a
Channel[] array. Same issue with skills.status.

For now, use empty arrays since channel/skill management is deferred
to their dedicated pages. Will properly parse the complex response
format when those pages are implemented.
2026-02-06 03:50:23 +08:00
Haze
f67370ce03 fix(app): scope header overrides to gateway URLs only
- The session.webRequest.onHeadersReceived was stripping X-Frame-Options
  and modifying CSP for ALL responses including the Vite dev server,
  which could break the main app rendering. Now only applies to
  gateway URLs (127.0.0.1:18789 / localhost:18789).
- Dashboard: only fetch channels/skills when gateway is running
- Dashboard: guard against non-array channels/skills data
- Gateway store: use dynamic import() instead of require() for chat
  store to avoid ESM/CJS issues in Vite
2026-02-06 03:40:47 +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
4431d2ba1d feat(providers): implement real API key validation with OpenRouter support
- Replace mock API key validation with actual API calls to verify keys
- Add validateApiKeyWithProvider() with provider-specific implementations
- Support Anthropic, OpenAI, Google, and OpenRouter validation
- Add OpenRouter as a new provider option in setup wizard and settings
- Fix setup page to call real validation instead of mock length check
- Allow validation during setup before provider is saved
- Return user-friendly error messages instead of raw API errors
2026-02-06 01:25:33 +08:00
Haze
e02cf05baf feat(update): implement auto-update functionality with electron-updater
- Add AppUpdater module with update lifecycle management
- Create UpdateSettings UI component with progress display
- Add Progress UI component based on Radix UI
- Create update Zustand store for state management
- Register update IPC handlers in main process
- Auto-check for updates on production startup
- Add commit documentation for commits 2-6
2026-02-05 23:36:12 +08:00