Commit Graph

306 Commits

Author SHA1 Message Date
Nicolas Varrot
cf6512043c docs: widen page container to 1200px 2026-02-14 12:53:10 +00:00
Nicolas Varrot
6b290bd919 docs: enlarge demo GIF on GitHub Pages 2026-02-14 12:51:34 +00:00
Nicolas Varrot
3cbf6fc758 docs: replace fake demo with real GIF recording
- Replace animated JS conversation demo on GitHub Pages with actual GIF
- Replace static screenshot in README with the GIF
- Remove demo animation script (no longer needed)
2026-02-14 12:48:07 +00:00
Nicolas Varrot
729b804120 chore: bump v1.45.0 2026-02-14 11:53:08 +00:00
Nicolas Varrot
1c9e90b132 feat: persist scroll position per session when switching 2026-02-14 11:53:05 +00:00
Nicolas Varrot
29f895806d chore: bump v1.44.0 2026-02-14 09:56:45 +00:00
Nicolas Varrot
aa9680cad6 feat: message bookmarks — star important messages and jump back to them
- Add bookmark button on message hover (amber star icon)
- Bookmarked messages show a small star indicator in the timestamp row
- Floating bookmarks panel to list and jump to bookmarked messages
- Bookmarks persisted in localStorage per session
- i18n support (EN/FR)
2026-02-14 09:56:37 +00:00
Nicolas Varrot
56fccc1e62 chore: bump v1.43.0 2026-02-14 07:56:01 +00:00
Nicolas Varrot
1c804cb53b feat: word-wrap toggle for code blocks
Add a persistent wrap/nowrap toggle button in the code block header bar,
consistent with the existing tool call content viewer. Persisted in
localStorage. Default is nowrap (existing behavior).
2026-02-14 07:55:58 +00:00
Nicolas Varrot
608e58ed2c chore: bump v1.42.0 2026-02-14 05:54:18 +00:00
Nicolas Varrot
1c564d57b5 feat: configurable send shortcut (Enter vs Ctrl+Enter)
Add toggle in chat input to switch between Enter-to-send (default)
and Ctrl+Enter-to-send modes. Preference persists in localStorage.
Keyboard shortcuts modal reflects the current setting.
2026-02-14 05:54:11 +00:00
Nicolas Varrot
9f2e8ee9fe ci: add failure webhook to notify OpenClaw agent for auto-fix
When CI fails on main, posts failure details to OpenClaw webhook
which spawns an isolated agent to diagnose and fix the issue.
Webhook URL and token stored as GitHub secrets (no hardcoded URLs).
2026-02-14 04:44:06 +00:00
Nicolas Varrot
058501709e chore: fix lint warnings — suppress eslint-disable on setState in effects 2026-02-14 03:54:30 +00:00
Nicolas Varrot
4004e2a0b0 chore: bump v1.41.0 2026-02-14 01:54:20 +00:00
Nicolas Varrot
28fe46d523 feat: show new message count badge on scroll-to-bottom button
When scrolled up and new messages arrive, the scroll-to-bottom button
now shows a count badge (e.g. '3', '99+') instead of just bouncing.
This gives users a clear sense of how many messages they missed.
2026-02-14 01:54:13 +00:00
Nicolas Varrot
a52bca40d5 refactor: remove HighlightedTextarea (cursor desync unfixable) 2026-02-14 00:49:53 +00:00
Nicolas Varrot
cb5a67ba20 fix: disable syntax highlight by default (cursor desync issue) 2026-02-14 00:45:55 +00:00
Nicolas Varrot
b248963e71 feat: auto-detect WSS gateway URL for HTTPS deployments 2026-02-14 00:36:13 +00:00
Nicolas Varrot
e857b96bcb chore: bump v1.40.2 2026-02-13 23:55:29 +00:00
Nicolas Varrot
0bf25f40a9 feat: add suggestion chips to empty chat state
Clickable example prompts appear when a session has no messages,
giving users quick-start ideas. 2x2 grid on desktop, stacked on mobile.
Fully i18n'd (EN/FR).
2026-02-13 23:55:26 +00:00
togotago
f46d233553 fix: reconcile deleted sessions blacklist against gateway (#4)
Fix: reconcile deleted-sessions blacklist against gateway on each refresh. Permanent sessions like agent:main:main auto-recover from accidental deletion. Closes #3
2026-02-14 00:52:06 +01: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
6048b9ef13 chore: bump v1.40.1 2026-02-13 22:01:47 +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
525973b56d chore: bump version to v1.40.0 2026-02-13 21:55:10 +00:00
Nicolas Varrot
2b095278c7 feat: session filter chips in sidebar — filter by channel type, active status 2026-02-13 21:54:45 +00:00
Nicolas Varrot
f1ce872206 chore: bump version to v1.39.2 2026-02-13 20:53:07 +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
452a18b5e9 chore: bump version to v1.39.1 2026-02-13 20:51:21 +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
c47bca4e2e chore: bump version to v1.39.0 2026-02-13 19:53:17 +00:00
Nicolas Varrot
c596bdd99a feat: line numbers in code blocks with toggle button
- Show line numbers for code blocks with more than 3 lines
- Toggle button (# icon + line count) in the language header bar
- Preference persisted in localStorage
- Line numbers are non-selectable (won't copy with code)
- Hidden for short snippets to reduce visual noise
2026-02-13 19:53:04 +00:00
Nicolas Varrot
d3989e532d fix: prevent iOS auto-zoom on input focus (maximum-scale=1) 2026-02-13 18:16:21 +00:00
Nicolas Varrot
1927fce788 fix: restore textarea border, only remove accent focus ring 2026-02-13 18:14:46 +00:00
Nicolas Varrot
81cf110f4b chore: bump version to v1.38.0 2026-02-13 18:13:22 +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
2f25c45942 fix: remove textarea inner border, keep only container border 2026-02-13 17:57:03 +00:00
Nicolas Varrot
0329fa48bf fix: replace ugly focus ring with subtle border color change on textarea 2026-02-13 17:55:19 +00:00
Nicolas Varrot
ac29646dc8 fix: hide non-essential header buttons on mobile (sound, export, theme, language) 2026-02-13 17:50:49 +00:00
Nicolas Varrot
219d487c43 fix: hide preview and syntax highlight buttons on mobile to give textarea more space 2026-02-13 17:50:00 +00:00
Nicolas Varrot
153d165457 fix: navigator not defined in test environment 2026-02-13 15:51:07 +00:00
Nicolas Varrot
ea8e5e3dab chore: bump version to v1.37.0 2026-02-13 15:46:50 +00:00
Nicolas Varrot
622aa107f8 feat: show response generation time on assistant messages
Track how long each assistant response took to generate and display
it subtly next to the timestamp (e.g. '· 12.3s'). The timing is
measured from the first streaming delta to the final state, and
preserved across the history reload that follows stream completion.

Only visible for messages generated during the current session.
2026-02-13 15:46:29 +00:00
Nicolas Varrot
d31374baf7 docs: add missing features to README (PWA, notifications, keyboard shortcuts, accessibility) 2026-02-13 15:27:10 +00:00
Nicolas Varrot
a9ed8872fb chore: bump version to v1.36.1 2026-02-13 15:12:15 +00:00
Nicolas Varrot
d3e8f3143a fix: sync html lang attribute with i18n locale selection
- Set document.documentElement.lang on initial load and locale change
- Ensures screen readers and browser features respect the active language
- Removes duplicate aria-label on MessageSearch input
2026-02-13 15:11:39 +00:00
Nicolas Varrot
a44b6db77d style: add global focus-visible outline for keyboard navigation accessibility
Adds a consistent focus ring (accent-dim color, 2px) on all focusable
elements when navigated via keyboard (:focus-visible). Mouse/touch clicks
no longer show the default browser outline (:focus:not(:focus-visible)).

Elements with existing Tailwind focus:ring-* classes are unaffected since
they already handle their own focus styling.
2026-02-13 14:57:39 +00:00
Nicolas Varrot
74278476e4 chore: bump version to v1.36.0 2026-02-13 14:43:26 +00:00
Nicolas Varrot
1942ba18c7 feat: semantic <time> elements with full-date tooltip on message timestamps
- Replace raw text timestamps with <time> HTML elements
- Add dateTime attribute (ISO 8601) for accessibility and machine readability
- Add title attribute showing full date+time on hover (weekday, date, time with seconds)
- Localized tooltip using the user's language preference
- Helps users see exact timestamps for older messages shown as abbreviated times
2026-02-13 14:43:05 +00:00