Commit Graph

94 Commits

Author SHA1 Message Date
Nicolas Varrot
5ee2d119a5 docs: mark feedback items #75-#78 as done 2026-02-15 20:08:33 +00:00
Nicolas Varrot
7606a09ba9 fix: clipboard fallback for insecure contexts, session rename via sessions.patch
- Add copyToClipboard utility with execCommand fallback for HTTP deployments (#76)
- Replace all navigator.clipboard.writeText calls with copyToClipboard
- Session rename now persists server-side via sessions.patch (#78)
- Pass onRename callback from App to Sidebar
2026-02-15 20:07:33 +00:00
Nicolas Varrot
f28ab429a3 docs: mark #73 and #74 as done 2026-02-15 02:02:36 +00:00
Nicolas Varrot
e1ba4aaf9d fix: session deletion persistence and action button overlap
- Fix blacklist reconciliation logic that was removing blacklisted keys
  for sessions still on the gateway (inverted filter condition)
- Move message action buttons (copy, bookmark, metadata, retry) above
  the message bubble (-top-3) to prevent overlapping text content

Closes #73, #74
2026-02-15 02:02:00 +00:00
Nicolas Varrot
be631a4df7 feat: slash command autocomplete in chat input
Type '/' to see available OpenClaw commands (/status, /reasoning,
/verbose, /model, /compact, /reset, /help) with descriptions.
Navigate with arrow keys, select with Tab/Enter.
Supports EN/FR i18n.
2026-02-14 15:57:39 +00:00
Nicolas Varrot
48745774d2 docs: mark items #69, #72 as done 2026-02-14 14:26:20 +00:00
Nicolas Varrot
a83be24192 docs: mark items #64-66, #68, #70-71 as done 2026-02-14 13:59:28 +00:00
Nicolas Varrot
143e9486c2 feat: PWA install prompt, brand-colored channel icons, image load fix, semantic connection indicator
- Fix image display bug: remove loading='lazy' + use opacity instead of hidden (#66)
- PWA: add id/scope to manifest, fix SW cache name, add install prompt hook + button (#64)
- Colorize channel icons with brand colors (Discord blurple, Telegram blue, etc.) (#68)
- Use semantic green for connection indicator instead of theme accent (#70)
- Replace Sparkles icon with PinchChat logo in sidebar (#65)
- Replace decorative dots in sidebar footer with GitHub link (#71)
2026-02-14 13:58:18 +00:00
Nicolas Varrot
d3b1b931b2 fix: clearer update indicator — current version + separate green badge for available update 2026-02-13 22:11:04 +00:00
Nicolas Varrot
89da84dbd6 docs: mark #67 and #68 as done 2026-02-13 22:02:05 +00:00
Nicolas Varrot
d478eee638 fix: cursor desync in highlighted textarea (#68) + update indicator (#67)
- Remove font-style:italic from .ht-italic (different glyph widths cause desync)
- Remove font-weight:600 from .ht-heading (bolder glyphs are wider)
- Remove background/border-radius from code token spans
- Remove text-decoration from .ht-link
- Token spans now ONLY use color — zero text geometry changes
- Use inherit for font-size/line-height in shared .ht-backdrop/.ht-textarea
- Add update check hook: polls GitHub releases, shows indicator in sidebar
2026-02-13 22:01:25 +00:00
Nicolas Varrot
48814a263c fix: improve avatar fallback in header, strengthen session switch reset (#63) 2026-02-13 20:52:41 +00:00
Nicolas Varrot
84512b1f15 fix: new message indicator, cursor desync, button overlap, avatar fallback
- #63: 'New messages' label only shows when actual new messages arrive while scrolled up; plain arrow button shown otherwise
- #64: Fix cursor desync in HighlightedTextarea by matching backdrop border width to textarea
- #65: Move floating buttons inside scroll container with sticky positioning to prevent overlap with growing textarea
- #66: Graceful fallback to Bot icon when agent avatar image fails to load
2026-02-13 20:51:09 +00:00
Nicolas Varrot
51de6984b6 feat: message grouping — hide avatar and reduce spacing for consecutive same-role messages
Consecutive messages from the same role within 2 minutes are visually
grouped: subsequent messages hide the avatar (keeping alignment) and
use tighter vertical spacing. Date separators and role changes break
groups. This matches modern chat UX patterns (Discord, Telegram).
2026-02-13 18:12:44 +00:00
Nicolas Varrot
63af0b0dde chore: bump version to v1.32.2 2026-02-13 09:40:34 +00:00
Nicolas Varrot
cbb46115a0 fix: render markdown lists with proper bullet/number styles
Tailwind's preflight resets list-style to none on ul/ol elements.
Add explicit list-style-type rules for markdown-body: disc for ul,
decimal for ol, with circle/square for nested levels.
Also add li margin for spacing.

Closes feedback #61
2026-02-13 09:40:22 +00:00
Nicolas Varrot
5acc5a820d fix: improve light theme readability for tool badges and user bubbles
- Expose resolvedTheme in ThemeContext for theme-aware rendering
- Tool call badges: darker text colors and higher bg opacity in light theme
- User message bubbles: increased bg opacity and border strength in light theme
- Progress bars and send button already use accent CSS variables (no change needed)

Closes feedback #60
2026-02-13 09:27:42 +00:00
Nicolas Varrot
0a0acbe4e0 chore: bump version to v1.32.0 2026-02-13 09:12:24 +00:00
Nicolas Varrot
b783ae181b feat: optimistic message rendering with send status indicators
- User messages appear instantly with 'sending' state (dimmed, clock icon)
- Transitions to 'sent' (checkmark) when server acknowledges
- Shows error state (alert icon, retry visible) if send fails
- Applied to both primary and secondary sessions
2026-02-13 09:12:09 +00:00
Nicolas Varrot
979bc14ca8 fix: add security headers and no-cache for index.html in nginx config
- X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy
- Prevent caching index.html so SPA updates are always picked up
- Add engines field (node >=18) and lint:fix script to package.json
2026-02-13 03:27:29 +00:00
Nicolas Varrot
00bf6d156f docs: release v1.27.0 — syntax highlighting in textarea 2026-02-13 02:26:49 +00:00
Nicolas Varrot
e3149661d8 docs: release v1.26.0 — drag & drop session reordering 2026-02-13 02:11:14 +00:00
Nicolas Varrot
16af579e3c docs: mark feedback #51 as done 2026-02-13 01:56:46 +00:00
Nicolas Varrot
4dfaaff2b5 feat: live markdown preview toggle in chat input
- Eye icon button next to file picker toggles preview on/off
- Shows rendered markdown above textarea in real-time
- Lazy-loads ReactMarkdown (no bundle impact when off)
- Preference persisted in localStorage
- i18n: EN/FR labels for show/hide preview
2026-02-13 01:56:13 +00:00
Nicolas Varrot
6125e0468b docs: mark feedback #54 as done 2026-02-13 01:12:45 +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
7bcbf8192b docs: release v1.21.0 — streaming thinking/reasoning display 2026-02-13 00:41:42 +00:00
Nicolas Varrot
ba92ce8825 docs: release v1.20.2 — theme switcher actually works 2026-02-13 00:30:30 +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
5c35bdda32 docs: release v1.19.0 — tool call word-wrap toggle 2026-02-12 23:47:16 +00:00
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