Files
PinchChat/CHANGELOG.md
2026-02-13 05:42:56 +00:00

15 KiB
Raw Blame History

Changelog

All notable changes to PinchChat are documented here.

Format based on Keep a Changelog, with Conventional Commits.

[1.30.1] — 2026-02-13

Fixed

  • Added missing aria-label attributes to icon-only buttons (sidebar close, search clear, JSON copy) for screen reader accessibility
  • Added i18n keys for new aria-labels (EN + FR)

[1.30.0] — 2026-02-13

Added

  • Service worker for PWA support — static assets are cached for instant loads and offline shell
  • App is now installable as a standalone PWA on mobile and desktop (Add to Home Screen)
  • Enhanced manifest with orientation, categories, and complete icon set

[1.29.2] — 2026-02-13

Fixed

  • Images now show a pulsing loading skeleton while loading and a graceful error fallback (icon + alt text) when they fail to load

[1.29.1] — 2026-02-13

Fixed

  • External links in markdown messages now open in a new tab with rel="noopener noreferrer" for security

[1.29.0] — 2026-02-13

Added

  • System theme option — automatically follows OS light/dark preference via prefers-color-scheme, updates dynamically when OS setting changes

[1.28.2] — 2026-02-13

Fixed

  • Resolved all 3 ESLint warnings (react-hooks/set-state-in-effect) — lint now passes with 0 errors and 0 warnings

[1.28.1] — 2026-02-13

Fixed

  • Docker: added security headers (X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy)
  • Docker: index.html is no longer cached, ensuring SPA updates are always picked up after redeploy

Changed

  • Added engines field (node >=18) and lint:fix npm script to package.json

[1.28.0] — 2026-02-13

Added

  • Multi-tab split view — open 2 sessions side by side with a resizable divider
  • Split view button in sidebar session actions (columns icon)
  • Secondary pane supports full chat: history, streaming, sending, aborting
  • Divider width persisted in localStorage

[1.27.0] — 2026-02-13

Added

  • Syntax highlighting in chat input textarea — real-time markdown coloring (code blocks, inline code, bold, italic, headings, links) using transparent overlay technique
  • Toggle button (highlighter icon) to enable/disable syntax highlighting, persisted in localStorage

[1.26.0] — 2026-02-13

Added

  • Drag & drop session reordering in sidebar — custom order persists in localStorage, works within pinned/unpinned groups

[1.24.0] — 2026-02-13

Added

  • Raw JSON viewer toggle on each message — hover to reveal {} button, click to show full gateway payload as formatted JSON with copy support

[1.20.2] — 2026-02-13

Fixed

  • Theme switcher now actually works — migrated ~150 hardcoded Tailwind color classes across all 17 components to CSS custom properties
  • All UI elements (backgrounds, text, borders, accents, hover states) now respond to Dark/Light/OLED theme changes in real-time
  • Added theme-aware hover, separator, and scrollbar variables per theme mode
  • Markdown styles (code, blockquotes, tables) now use theme variables instead of hardcoded colors

[1.20.0] — 2026-02-12

Added

  • Theme switcher — Dark, Light, and OLED Black modes with 6 configurable accent colors (Cyan, Violet, Emerald, Amber, Rose, Blue)
  • CSS custom properties system for consistent theming across all components
  • Theme and accent preferences persisted in localStorage

[1.18.0] — 2026-02-12

Added

  • Improved thinking/reasoning indicator with elapsed time counter — shows pulsing "Reasoning..." with timer when agent is thinking with hidden content, instead of generic bouncing dots

[1.16.0] — 2026-02-12

Added

  • Display agent avatar from OpenClaw identity config — shown in assistant message bubbles and header when configured

[1.15.1] — 2026-02-12

Fixed

  • Metadata viewer popup was invisible due to parent overflow-hidden — now renders via portal outside the message bubble

[1.15.0] — 2026-02-12

Added

  • Message metadata viewer — discreet button on hover shows raw message details (id, role, timestamp, channel, etc.)

[1.14.2] — 2026-02-12

Fixed

  • Textarea scrollbar only appears when content overflows max-height (no more permanent scrollbar)

[1.14.1] — 2026-02-12

Fixed

  • Session deletion now persists across page refreshes via localStorage blacklist — deleted sessions no longer reappear after reload

[1.14.0] — 2026-02-12

Added

  • Collapse/expand all tool calls toggle — floating button appears when conversation has tool calls, lets you collapse or expand all at once

[1.13.0] — 2026-02-12

Added

  • Keyboard shortcuts Alt+↑ / Alt+↓ to navigate between sessions
  • Shortcut documented in the keyboard shortcuts help panel (?)

[1.12.0] — 2026-02-12

Added

  • Export conversation as Markdown file — download button in header saves current session with formatted messages, tool calls, thinking blocks, and timestamps

[1.11.1] — 2026-02-12

Fixed

  • Windows horizontal scrollbar — hide horizontal scrollbar in textarea input; add word-wrap to prevent overflow

[1.11.0] — 2026-02-12

Added

  • Relative timestamps in sidebar — each session shows how recently it was active (2m, 3h, 1d)
  • Message preview in sidebar — last message preview shown below session name
  • Recency sorting — sessions sorted by most recently updated within pinned/unpinned groups

[1.10.0] — 2026-02-12

Added

  • Agent name badge — display the agent name (e.g. "Marlbot") in the header next to the session label (17ff52a)

[1.9.0] — 2026-02-12

Added

  • Human-friendly session titles — header and sidebar now show readable names (Main, Cron, Task + channel) instead of raw UUIDs; falls back to label or cleaned key (52a1a7f)

[1.8.1] — 2026-02-12

Fixed

  • Markdown rendering in long messagesautoFormatText no longer wraps markdown prose in code fences; bold, headings, and bullet lists are now correctly rendered (4c8faf0)

[1.7.0] — 2026-02-12

Added

  • Delete session from sidebar — trash icon on hover with confirmation dialog; calls sessions.delete on the gateway (e94325b)

[1.6.0] — 2026-02-12

Added

  • System event detection — heartbeats, cron triggers, webhooks, and channel events now display as subtle inline notifications instead of full user message bubbles (581675d)

[1.5.0] — 2026-02-12

Added

  • Resizable sidebar — drag the right edge to resize the sidebar; width persists across sessions (fa9b10a)

[1.4.0] — 2026-02-12

New features and mobile fixes.

Added

  • Session pinning — pin important sessions to the top of the sidebar for quick access (e24378a)
  • Model badge — see which AI model is handling the current session, displayed next to the token progress bar (96f2883, 1465ae1)

Fixed

  • Mobile viewport overflow — chat messages no longer clip on left/right edges on iPhone (8ef1b42)

[1.3.0] — 2026-02-12

New features improving daily usability.

Added

  • Unread message indicators — sessions with new messages show a visual badge in the sidebar so you never miss activity (c0d27a7)
  • Copy buttons on tool calls — expanded tool call parameters and results now have one-click copy buttons (908dbb4)
  • Troubleshooting guide — README now includes a troubleshooting section for common connection and build issues (7a55940)

Fixed

  • CI lint errors — resolved lint issues in Sidebar, TypingIndicator, and useGateway (6734b54)

[1.2.2] — 2026-02-12

Code readability and developer experience polish.

Added

  • Language labels on code blocks — fenced code blocks now show the language name (e.g. "python", "bash") in a subtle label for easier identification (ae3f683)
  • Elapsed time on thinking indicator — see how long the agent has been thinking with a live counter (0c95150)

[1.2.1] — 2026-02-12

Small UX and documentation polish.

Added

  • Auto-focus chat input — input field automatically focuses when switching sessions or on connection, so you can start typing immediately (f2038a2)
  • Keyboard navigation for sessions — use arrow keys to navigate the session list in the sidebar (f55a24c)
  • i18n contribution guide — README now includes a section explaining how to add new languages (f827307)

[1.2.0] — 2026-02-12

Polish, performance, and developer experience improvements.

Added

  • Browser tab title — shows the active session name in the tab title (e53ef36)
  • PWA support — manifest, apple-touch-icon, and proper favicon sizes for installable webapp (b8cbc75)
  • Channel/type icons in session list — Discord, Telegram, cron, and webchat sessions now show recognizable icons in the sidebar (73d9e5f)
  • Date separators — visual dividers between messages from different days for easier conversation scanning (375bd10)
  • Screenshot in README — added a real screenshot of the app to the README (788909f)
  • Loading indicator — spinner when switching sessions (cb882f5)
  • Login URL validation — inline hint when gateway URL doesn't start with ws:// or wss://, connect button disabled until valid (dc49734)

Changed

  • Lazy-loaded Chat component — reduces initial bundle size by deferring heavy markdown/syntax-highlighting imports (b5eafde)

Fixed

  • Notification API guard — no longer crashes in browsers that don't support the Notification API (8301cba)
  • ESLint + CI — resolved all ESLint errors including React compiler rules; added lint step to CI pipeline (916910f, 29482e3)
  • WebSocket reconnection — exponential backoff with jitter instead of fixed-interval retry, preventing thundering herd on server restart (f8be728)

[1.1.0] — 2026-02-11

A massive feature release turning PinchChat from a basic chat UI into a polished, accessible, and well-documented webchat client for OpenClaw.

Added

  • OG card image + social meta tags — rich previews when sharing links on Twitter/Discord/etc. (88b6494)
  • Retry/resend button on user messages — resend a message if something went wrong (5b2f3a3)
  • Browser notifications + tab badge — get notified of new messages even when the tab is in the background (473d23c)
  • PR template + security policy — standardized PR descriptions and responsible disclosure process (d020094)
  • ErrorBoundary — graceful crash recovery with a user-friendly error screen instead of a blank page (b61a232)
  • Keyboard shortcuts modal — press ? to see all available shortcuts (ae83545)
  • Session search filter — filter sessions in the sidebar with Ctrl+K shortcut (1779709)
  • Emoji icons on tool call badges — visual icons per tool type (🔍 web_search, exec, 📖 read, etc.) (72f7d76)
  • Line break support — messages now preserve single line breaks via remark-breaks (59104b4)
  • Copy button on assistant messages — one-click copy of the full message text (dd5b56e)
  • Animated UI demo on landing page — interactive fake chat showing tool call visualization, typing effects, and thinking indicators (d26c498)
  • Connection lost/reconnected banner — visual feedback when WebSocket connection drops or recovers (32a2166)
  • Scroll-to-bottom button — appears when scrolled up in chat, click to jump to latest messages (b56c80a)
  • Inline image display — images render directly in chat with a click-to-expand lightbox (762a5f2)
  • Logo integration — PinchChat logo in header, login screen, favicon, and OG meta tags (97c16be)
  • GitHub Pages landing page — feature showcase at marlburrow.github.io/pinchchat (4f47732)
  • Docker support — Dockerfile, docker-compose.yml, CI auto-publish to ghcr.io/marlburrow/pinchchat (5fd7300)
  • Language selector — toggle EN/FR in the header at runtime (9b3aed4)
  • Copy button on code blocks — one-click copy for code snippets (b6a989b)
  • i18n support — English and French UI via VITE_LOCALE env var (99b7db9)
  • Runtime login screen — enter gateway credentials at runtime, no secrets baked into the build (36f9480)
  • NO_REPLY filtering — silently hides agent NO_REPLY messages from the chat (8834b2a)
  • GitHub Actions CI — lint and build checks on every push and PR (a6b26b0)
  • Issue templates — bug report and feature request forms (2d3ee47)
  • Contributing guide — CONTRIBUTING.md with dev setup and PR guidelines (e34643d)

Changed

  • Landing page layout — moved demo to hero section, replaced grid with alternating feature sections (d118498)
  • Token progress bars — unified with subtle cyan opacity ramp, replacing the multi-color gradient (84c8e24)
  • Features rewrite — pragmatic feature descriptions in README and landing page, highlighting real differentiators (f556c8d)
  • Architecture diagram — replaced ASCII art with a Mermaid diagram in the README (02d2ab3)
  • Smart auto-scroll — only auto-scrolls when the user is near the bottom (3e7a596)
  • Timestamp locale — uses the selected i18n locale instead of hardcoded fr-FR (88c393e)
  • Vendor code-splitting — split React and markdown dependencies into separate chunks, eliminating the 500KB bundle warning (d7bdf3b)

Fixed

  • Prefers-reduced-motion — all animations respect the user's OS motion preference (fd66fed)
  • ARIA accessibility — added ARIA attributes to interactive elements for screen reader support (78f82fd)
  • Landing page demo messages left-aligned (inherited text-align:center from hero) (02e4bcf)
  • i18n key for 'Parameters' label in tool call expansion (195ad62)
  • Sidebar overlay closes on Escape key + aria-hidden for screen readers (91c22a1)
  • Corrected index.html lang attribute, page title, favicon path, and added SEO meta tags (24c7d00)
  • Localized all hardcoded French strings to English with ARIA accessibility attributes (3370916)
  • Fixed OpenClaw repo link in README (604f902)

Improved

  • TypeScript strictness — replaced any types with proper interfaces across gateway client, hooks, and components (693229c)

Renamed

  • ClawChat → PinchChat — full project rename across all files, configs, and docs (d58c34f)

[1.0.0] — 2026-02-11

Initial release as ClawChat.

  • Dark neon theme with Tailwind CSS v4
  • WebSocket connection to OpenClaw gateway
  • Session sidebar with token usage progress bars
  • Markdown rendering with GFM and syntax highlighting
  • Tool call badges with expandable JSON panels
  • Thinking block display (collapsible)
  • File upload with image compression and drag & drop
  • Streaming response display