Commit Graph

62 Commits

Author SHA1 Message Date
Nicolas Varrot
4bcc9f1eff chore: mark feedback #40 done 2026-02-12 23:43:18 +00:00
Nicolas Varrot
5992af103d chore: mark feedback #53 done 2026-02-12 23:38:16 +00:00
Nicolas Varrot
8558ea157f chore: mark feedback #45 done 2026-02-12 23:30:19 +00:00
Nicolas Varrot
da2e4862dd feat: display agent avatar from OpenClaw identity config
Fetch agent identity via agent.identity.get WS method after connect.
Display avatar in message bubbles (replacing Bot icon) and in the
header (replacing the PinchChat logo when an avatar is configured).
Falls back to default icons when no avatar is set.
2026-02-12 23:29:32 +00:00
Nicolas Varrot
8abeb4d77a docs: release v1.15.1 — fix metadata viewer popup 2026-02-12 23:22:28 +00:00
Nicolas Varrot
9f67c9e5dc fix: metadata viewer popup clipped by overflow-hidden parent
The MetadataViewer popup was rendered inside the message bubble which has
overflow-hidden, causing the popup to be invisible. Fix by using
createPortal to render the popup directly on document.body with fixed
positioning. Also adds click-outside-to-close behavior.

Closes feedback #46
2026-02-12 23:22:05 +00:00
Nicolas Varrot
d03a02351f docs: release v1.15.0 — message metadata viewer 2026-02-12 23:17:48 +00:00
Nicolas Varrot
b4813f091a feat: add message metadata viewer on hover
Small info button appears on hover of each message bubble.
Click to expand a panel showing raw message metadata (id, role,
timestamp, channel, sender info, etc.) from the gateway.
Useful for debugging and understanding message routing.
Collapsed by default, doesn't clutter the UI.

Closes feedback item #39
2026-02-12 23:17:27 +00:00
Nicolas Varrot
66058fd8ef docs: mark item #43 done 2026-02-12 23:11:45 +00:00
Nicolas Varrot
983c11798b docs: mark item #44 done 2026-02-12 23:10:23 +00:00
Nicolas Varrot
3ca76ebe26 style: rework user message styling from violet to cyan theme
Replace violet tint with cyan/teal tones to match the existing cyan accent
theme. User messages now use from-cyan-900/20 background gradient and
cyan-400/15 border, with cyan-200 user icon. Subtler and more cohesive
with the dark theme while remaining clearly distinct from assistant messages.

Fixes feedback #44
2026-02-12 23:10:03 +00:00
Nicolas Varrot
9fb9f76bdb docs: mark item #42 done 2026-02-12 22:26:38 +00:00
Nicolas Varrot
6c0558f5ed docs: release v1.14.1 — persistent session deletion 2026-02-12 21:40:30 +00:00
Nicolas Varrot
d9e1b88a70 fix: persist deleted sessions via localStorage blacklist
Deleted sessions would reappear after page refresh because the
gateway sessions.list response still included them. Now maintains
a localStorage blacklist of deleted session keys that filters them
out on every load, regardless of gateway-side deletion support.
2026-02-12 21:40:07 +00:00
Nicolas Varrot
9b7f15f5ad docs: release v1.11.1 — fix Windows textarea scrollbar 2026-02-12 18:15:43 +00:00
Nicolas Varrot
ad7d149f88 fix: hide horizontal scrollbar on textarea for Windows compatibility
Add overflow-x: hidden and word-break styles to textarea to prevent
ugly horizontal scrollbar on Windows. Also hide the horizontal webkit
scrollbar track entirely.
2026-02-12 18:15:08 +00:00
Nicolas Varrot
cecfa3e010 style: custom webkit scrollbar styling for macOS/Chrome
Add ::-webkit-scrollbar rules matching the dark theme. Textarea gets
an even thinner 4px scrollbar. Fixes ugly default scrollbar on macOS.

Closes feedback #36.
2026-02-12 18:05:15 +00:00
Nicolas Varrot
7d9c4098f2 docs: mark feedback #33 as done 2026-02-12 17:46:13 +00:00
Nicolas Varrot
17ff52aaaf feat: display agent name badge in header next to session label
Shows the agentId (e.g. 'main') with a bot icon in the header subtitle,
making it clear which agent is handling the current conversation.
Useful for multi-agent setups.
2026-02-12 17:45:38 +00:00
Nicolas Varrot
79b516bf9d docs: release v1.8.1 — fix markdown rendering in long messages 2026-02-12 17:26:56 +00:00
Nicolas Varrot
ce05315868 docs: release v1.8.0 — per-session input drafts 2026-02-12 17:15:54 +00:00
Nicolas Varrot
03eb9e6de2 feat: per-session input drafts preserved on session switch 2026-02-12 17:15:26 +00:00
Nicolas Varrot
e9679091e7 docs: release v1.7.0 — delete session from sidebar 2026-02-12 16:57:46 +00:00
Nicolas Varrot
e94325b38a feat: delete session from sidebar with confirmation dialog 2026-02-12 16:57:18 +00:00
Nicolas Varrot
94df362001 docs: mark feedback #34 as done 2026-02-12 16:49:55 +00:00
Nicolas Varrot
a17fbf134a docs: release v1.5.0 — resizable sidebar 2026-02-12 15:47:09 +00:00
Nicolas Varrot
fa9b10ac97 feat: resizable sidebar with drag handle and persisted width 2026-02-12 15:46:39 +00:00
Nicolas Varrot
15f8060beb docs: mark feedback #27 as done 2026-02-12 14:44:55 +00:00
Nicolas Varrot
06b2b1cbcf docs: mark feedback #26 as done 2026-02-12 12:42:28 +00:00
Nicolas Varrot
7df30d87ee docs: mark feedback #25 as done 2026-02-12 12:25:28 +00:00
Nicolas Varrot
1465ae1887 style: move model badge from header to token progress bar area 2026-02-12 12:25:17 +00:00
Nicolas Varrot
8640585426 docs: mark feedback #24 as done 2026-02-12 12:06:21 +00:00
Nicolas Varrot
96f28836cd feat: display model name badge in header for active session
Shows the model (e.g. claude-opus-4-6) as a subtle chip next to the
session label in the header. Hovering reveals agent ID if available.
Model and agentId are now extracted from sessions.list response.
2026-02-12 12:06:12 +00:00
Nicolas Varrot
1c4700d142 docs: mark feedback #23 as done 2026-02-12 02:46:00 +00:00
Nicolas Varrot
2a7f3d9c88 docs: mark feedback #22 as done 2026-02-12 01:42:54 +00:00
Nicolas Varrot
29482e377a fix: resolve ESLint errors for React compiler rules
- Chat.tsx: replace mutable variable in render IIFE with useMemo+reduce
  to satisfy react-hooks/immutability rule
- ConnectionBanner.tsx: move setState calls into a useCallback to avoid
  synchronous setState in effect body (react-hooks/set-state-in-effect)
- useGateway.ts: suppress set-state-in-effect for legitimate mount init
2026-02-12 01:42:40 +00:00
Nicolas Varrot
c3824dd29f docs: mark feedback item #15 as done 2026-02-11 20:25:39 +00:00
Nicolas Varrot
72f7d76cc4 feat: add emoji icons to tool call badges
Replace Lucide icons with emojis on tool call badges for better visual
identification:  exec, 🔍 web_search, 📖 read, ✏️ write/edit,
🧠 memory,  cron, 🚀 sessions_spawn, and more.

Also reduces bundle by removing unused Lucide icon imports from ToolCall.

Closes feedback item #15.
2026-02-11 20:25:31 +00:00
Nicolas Varrot
538fb3a7bd docs: mark feedback item #14 as done 2026-02-11 20:15:41 +00:00
Nicolas Varrot
38d7aab6da docs: mark feedback item #13 as done 2026-02-11 20:07:23 +00:00
Nicolas Varrot
cbee0efcee docs: mark feedback item #12 as done 2026-02-11 19:17:03 +00:00
Nicolas Varrot
d26c4988f2 feat(landing): add animated fake UI demo with tool call visualization
Replaces the screenshot placeholder with a live animated demo showing:
- Sidebar with fake sessions and token usage bars
- User typing animation with cursor
- Thinking indicator with animated dots
- Colored tool call badges (web_search, exec)
- Expandable tool results with parameters
- Formatted assistant response with markdown
- Auto-looping animation

All pure CSS/JS, no dependencies. Matches the app's dark theme and color scheme.

Closes feedback item #12
2026-02-11 19:16:52 +00:00
Nicolas Varrot
569dbc6d4d docs: mark feedback item #11 as done 2026-02-11 18:25:42 +00:00
Nicolas Varrot
f556c8db8e docs: rewrite features for README and landing page
Reorder and rewrite feature descriptions to highlight what actually
differentiates PinchChat: tool call visualization, GPT-like interface,
multi-session navigation. Remove generic features (markdown, file upload,
dark theme) that don't sell the product. Pragmatic tone, no fluff.
2026-02-11 18:25:32 +00:00
Nicolas Varrot
04e1f3b778 docs: mark Mermaid diagram feedback item #10 as done 2026-02-11 17:45:26 +00:00
Nicolas Varrot
09ae82df6c docs: mark GitHub Pages feedback item #9 as done 2026-02-11 17:36:30 +00:00
Nicolas Varrot
ee5d870f06 docs: mark image display feedback item #7 as done 2026-02-11 17:18:19 +00:00
Nicolas Varrot
762a5f2026 feat: inline image display with lightbox
- Add image block type for base64 and URL images
- Parse image/image_url blocks from gateway history
- Render images inline in chat messages (rounded, dark-themed)
- Click-to-zoom lightbox with Escape to close
- Markdown images also use the lightbox component
- Detect base64 images in tool results (e.g. Read tool on image files)
- Support png, jpg, gif, webp formats
2026-02-11 17:18:10 +00:00
Nicolas Varrot
375302a27b docs: mark logo feedback item #8 as done 2026-02-11 16:47:09 +00:00
Nicolas Varrot
97c16be399 feat: integrate PinchChat logo throughout the app
- Use logo.png as favicon (replaces emoji SVG)
- Show logo in header next to title
- Show larger logo on login screen
- Add OG image meta tag
- Add centered logo in README
- Closes feedback item #8
2026-02-11 16:47:02 +00:00