Commit Graph

9 Commits

Author SHA1 Message Date
DigHuang
76df84e68c fix: ghost session cleanup, new chat switching, and markdown overflow handling (#287) 2026-03-04 18:54:47 +08:00
Haze
8f9fc056a4 fix(chat): improve message layout and text wrapping in ChatMessage co… (#181) 2026-02-26 13:46:23 +08:00
Haze
6383e10d63 feat(chat): reformat streaming output (#173) 2026-02-25 23:59:55 +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
36fb4bffc7 feat(chat): implement file upload support with staging and media handle (#77) 2026-02-13 18:23:47 +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
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