Commit Graph

178 Commits

Author SHA1 Message Date
Nicolas Varrot
82d2e37a27 feat: raw JSON viewer toggle on each message
Add a {⁠} button (visible on hover) that toggles a collapsible panel
showing the full raw gateway JSON payload for any message.
Includes copy-to-clipboard, word-wrap, and i18n (EN/FR).
Useful for debugging and understanding the gateway protocol.

Closes feedback #52
2026-02-13 01:41:04 +00:00
Nicolas Varrot
e1cfb47ae0 docs: update README with new features and Ctrl+F shortcut 2026-02-13 01:25:45 +00:00
Nicolas Varrot
6125e0468b docs: mark feedback #54 as done 2026-02-13 01:12:45 +00:00
Nicolas Varrot
17836bf5ed docs: release v1.23.0 — webhook scaffolding cleanup 2026-02-13 01:12:19 +00:00
Nicolas Varrot
c7cd47b09a feat: strip webhook/hook scaffolding from user messages
Messages from /hooks/agent containing SECURITY NOTICE blocks and
<<<EXTERNAL_UNTRUSTED_CONTENT>>> delimiters are now cleaned up.
Only the actual user content is displayed, with a small webhook
badge indicator showing the message originated from a webhook.

Closes feedback #54
2026-02-13 01:12:04 +00:00
Nicolas Varrot
82b76cc0a6 docs: release v1.22.0 — message search (Ctrl+F) 2026-02-13 00:57:32 +00:00
Nicolas Varrot
6c19c26b84 feat: message search with Ctrl+F — filter and navigate matches in conversation 2026-02-13 00:57:19 +00:00
Nicolas Varrot
7bcbf8192b docs: release v1.21.0 — streaming thinking/reasoning display 2026-02-13 00:41:42 +00:00
Nicolas Varrot
664fc0e109 feat: display thinking/reasoning content during streaming
Extract thinking blocks from delta events and render them inline
using the existing ThinkingBlock component. Previously, thinking
content was only visible after the stream finished (via history
reload). Now it appears in real-time as the agent reasons.

Closes feedback #57.
2026-02-13 00:41:23 +00:00
Nicolas Varrot
ba92ce8825 docs: release v1.20.2 — theme switcher actually works 2026-02-13 00:30:30 +00:00
Nicolas Varrot
b60c0ce3c4 fix: migrate all components to theme-aware CSS variables
Replace ~150 hardcoded Tailwind color classes (bg-zinc-*, text-zinc-*,
border-white/*, text-cyan-*, bg-cyan-*) with CSS custom properties
(--pc-*) across all 17 components.

Add @theme block in index.css for Tailwind v4 theme-aware utility
classes (bg-pc-elevated, text-pc-text, border-pc-border, etc.).

Add --pc-hover, --pc-hover-strong, --pc-separator variables per theme
(white/alpha for dark/OLED, black/alpha for light).

Theme switcher (dark/light/OLED) now actually works — all UI elements
respond to theme changes in real-time.

Fixes #55
2026-02-13 00:29:50 +00:00
Nicolas Varrot
62663e1ac9 docs: release v1.20.1 — fix CI lint errors 2026-02-13 00:13:41 +00:00
Nicolas Varrot
73a46f3ba7 fix: resolve all ESLint errors blocking CI releases
- Extract ThemeContext and ToolCollapseContext definitions into separate
  files to satisfy react-refresh/only-export-components rule
- Move useTheme and useToolCollapse hooks to dedicated hook files
- Fix empty catch block in ThemeContext (add comment)
- Replace Date.now() ref in ThinkingIndicator with useState initializer
- Update all imports across components

Closes feedback #58
2026-02-13 00:13:12 +00:00
Nicolas Varrot
8ab4f83666 chore: mark feedback #47 done 2026-02-12 23:51:28 +00:00
Nicolas Varrot
7f4e263845 docs: release v1.20.0 — theme switcher 2026-02-12 23:51:19 +00:00
Nicolas Varrot
b20bf41bf4 feat: theme switcher — dark, light, OLED modes with configurable accent colors
- Add ThemeContext with CSS custom properties for all base colors
- Three theme modes: Dark (default), Light, OLED Black
- Six accent colors: Cyan, Violet, Emerald, Amber, Rose, Blue
- Theme switcher dropdown in header (palette icon)
- Persisted in localStorage
- CSS variables replace hardcoded hex colors in index.css and components
- i18n support (EN/FR) for theme labels
2026-02-12 23:51:01 +00:00
Nicolas Varrot
5c35bdda32 docs: release v1.19.0 — tool call word-wrap toggle 2026-02-12 23:47:16 +00:00
Nicolas Varrot
bd446aa2e6 feat: word-wrap toggle on tool call content blocks
Add a wrap/nowrap toggle button on tool call parameters and results.
Default: word-wrap enabled (pre-wrap + break-words) so content fits
without horizontal scrolling. Click the toggle to switch to nowrap
mode for raw formatting with horizontal scroll.

Closes feedback #41
2026-02-12 23:46:55 +00:00
Nicolas Varrot
4bcc9f1eff chore: mark feedback #40 done 2026-02-12 23:43:18 +00:00
Nicolas Varrot
25e63f8d18 feat: improved thinking/reasoning indicator with elapsed time counter
When the agent is reasoning with hidden thinking (thinking=low), show a
pulsing 'Reasoning...' indicator with elapsed time instead of generic
bouncing dots. Once text content starts streaming, falls back to the
regular streaming dots.

Closes feedback #40
2026-02-12 23:42:39 +00:00
Nicolas Varrot
2b9729e901 docs: release v1.17.0 — updated landing page demo 2026-02-12 23:38:25 +00:00
Nicolas Varrot
5992af103d chore: mark feedback #53 done 2026-02-12 23:38:16 +00:00
Nicolas Varrot
4b41b45755 feat: update landing page demo to match current UI
- User messages: right-aligned cyan gradient bubbles with border
- Assistant messages: left-aligned dark zinc bubbles
- Squared-round avatars (rounded-2xl) matching app style
- Date separator between messages
- Channel icons in sidebar (Discord SVG, Telegram SVG, chat/cron icons)
- Proper bubble structure instead of flat message layout

Closes feedback #53
2026-02-12 23:38:07 +00:00
Nicolas Varrot
8558ea157f chore: mark feedback #45 done 2026-02-12 23:30:19 +00:00
Nicolas Varrot
f95c9ad65c docs: release v1.16.0 — agent avatar display 2026-02-12 23:30:07 +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
53a8655bb1 docs: release v1.14.2 — textarea scrollbar fix 2026-02-12 23:12:04 +00:00
Nicolas Varrot
66058fd8ef docs: mark item #43 done 2026-02-12 23:11:45 +00:00
Nicolas Varrot
73881396d1 fix: hide textarea scrollbar when content doesn't overflow
Set overflow-y: auto on textarea so the vertical scrollbar only
appears when content exceeds max-height. Fixes #43.
2026-02-12 23:11:25 +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
792a34bfb9 style: visually differentiate user vs assistant message bubbles
User messages now have a subtle violet tint (border + gradient) to
distinguish them from assistant messages, similar to WhatsApp/Telegram
style. Keeps the dark theme and soft palette.
2026-02-12 22:26:18 +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
32bc43d54f docs: add SECURITY.md with security policy and vulnerability reporting 2026-02-12 20:38:41 +00:00
Nicolas Varrot
87f4c8ebf9 docs: release v1.14.0 — collapse/expand all tool calls 2026-02-12 19:37:11 +00:00
Nicolas Varrot
2b1ca2d0c8 feat: add collapse/expand all tool calls toggle button
Adds a floating button in the chat area that lets users collapse or expand
all tool call details at once. Useful for long conversations with many tool
calls where scrolling through expanded results is tedious.

- New ToolCollapseContext provides global collapse/expand state
- ToolCall components react to global state changes via version tracking
- Toggle button appears only when conversation has tool calls
- Supports EN/FR i18n
2026-02-12 19:36:53 +00:00
Nicolas Varrot
cab78db057 docs: add keyboard shortcuts section to README, version/stars badges, update landing page with v1.13 2026-02-12 19:17:06 +00:00
Nicolas Varrot
268105e125 docs: release v1.13.0 — session navigation shortcuts 2026-02-12 19:08:30 +00:00
Nicolas Varrot
1fc63b4e92 feat: add Alt+↑/↓ keyboard shortcuts to navigate between sessions 2026-02-12 19:08:00 +00:00
Nicolas Varrot
89056884ad docs: add Recent Updates section to landing page highlighting v1.4–v1.12 features 2026-02-12 19:01:43 +00:00
Nicolas Varrot
d969207ea9 docs: release v1.12.0 — conversation export 2026-02-12 18:39:17 +00:00
Nicolas Varrot
8d4b606482 feat: export conversation as Markdown file
Add a download button in the header that exports the current session's
messages as a well-formatted Markdown file. Includes:
- User/assistant/system event labels with timestamps
- Thinking blocks as collapsible <details>
- Tool calls with JSON parameters
- Tool results as collapsible sections
- Image placeholders
- Session label and export date in header

i18n: EN + FR translations for the export tooltip.
2026-02-12 18:38:54 +00:00
Nicolas Varrot
d6449773c3 docs: add ARCHITECTURE.md with detailed codebase guide 2026-02-12 18:27:58 +00:00
Nicolas Varrot
9b7f15f5ad docs: release v1.11.1 — fix Windows textarea scrollbar 2026-02-12 18:15:43 +00:00