github abhinavxd/libredesk v2.1.0

latest release: v2.1.1
2 hours ago

Libredesk v2.1.0 🚀

Libredesk is now omni-channel. Alongside email, you can drop a live chat widget onto your website and handle both channels from your Libredesk instance.

This release started as "just the live chat channel," but the refactoring opened the door to a handful of long-pending improvements shipping in the same cut.

Note: Documentation for the new features (live chat, context links, external user ID, custom static directory) is being updated and will land shortly.

Live chat widget (beta)

image

An embeddable chat widget you install with a small JavaScript snippet.

Demo it on the landing page (bottom-right corner) at https://libredesk.io/.

  • Visitors and contacts - Libredesk now has 3 user types in total: Agents, Contacts, and Visitors (new). Visitors are anonymous users who can chat without logging in. If a user is already logged in on your site, you can identify them to Libredesk by passing a JWT signed by your backend.
  • Conversation continuity - when a user (visitor or contact) goes offline, unread agent replies are batched into an email after a configurable delay. Their email reply lands back in the same conversation, so users can switch between the widget and email interchangeably.
  • Per-inbox branding - logo, brand name, primary color, dark mode, customizable launcher (position, color, spacing), home screen (solid / gradient / image background, announcements, external links), greeting / intro messages, notice banner, office hours, and pre-chat form.
  • Behavior controls - separate rules for anonymous visitors and identified users (identified via JWT): start-conversation button text, whether they can start conversations, whether multiple open conversations are allowed, and whether replies to closed conversations are permitted. Plus per-inbox toggles for file uploads, emoji picker, and opening the widget straight into the last conversation.
  • Security - rate limits, per-inbox trusted domains, blocked IPs, and configurable session duration.
  • i18n - widget UI auto-detects the browser language (from Libredesk's supported locales) with a configurable fallback for everything else.

After upgrading, create a live chat inbox (Admin → Inboxes → New) to see the full set of configuration options in the form.

Other notable changes

  • CSAT is one-shot - ratings can only be submitted once per conversation; the rating link expires after use.

  • CSAT widget - in addition to the existing standalone CSAT page, CSAT can now be embedded as a small widget you can drop into your own site or email, so customers can rate wherever it fits.

    CSAT widget preview
  • Editable CSAT email template - the CSAT rating-request email is no longer hard-coded; customize it from the Email Templates section like any other outgoing template.

  • Custom static directory - self-hosters can point Libredesk at a directory to override the CSAT rating page, web templates, JS, and CSS, so you can fully white-label the customer-facing bits.

  • Context links - admin-configurable sidebar links that deep-link into external tools (billing, CRM, internal dashboards), with contact identity (email, contact ID, external user ID) passed into the URL so the target lands on the right record.

  • Tag importer - bulk import tags from CSV instead of creating them one at a time.

  • No email on self-assignment - assigning a conversation to yourself no longer triggers a redundant assignment email.

  • i18n improvements - many non-English translation improvements.

  • Non-contact sender indicator - if a message comes from someone other than the conversation's contact (e.g. a CC'd person replying), an activity entry is logged so the agent clearly sees the sender isn't the original contact.

  • External user ID on contacts - new external_user_id field that stores the unique user ID from your system (not Libredesk's). It becomes the identity anchor for the contact and relaxes the one-contact-per-email rule only for contacts that have an external user ID: multiple such contacts can share an email as long as each has a distinct external_user_id. Contacts without an external user ID still must have a unique email.

  • Quality of life and hardening - new-message notification sound for agents, unread notification count in the browser tab title, fairer, oldest-first auto-assigner, online / offline indicator on the contact sidebar, a cleaner, more compact conversation list, and a broad round of security and stability fixes.

Upgrade notes

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • a14d1dd Merge pull request #114 from abhinavxd/feat/live-chat-channel
  • f7cbfb5 Hard widget endpoints
  • dfa9808 Consolidate widget iframe layout and honor prefers-reduced-motion
  • 0258002 Fix contact_email log field to unwrap null.String
  • 189162b Clear typing indicator when switching conversations
  • 785c989 Flatten continuity config into [conversation] as continuity_scan_interval
  • fdb5a50 Add 7-day TTL window on visitor-to-contact upgrade via continuity email reply
  • 0003919 Harden widget apis: strip agent emails, fix cross-inbox merge, and tighten auth Don't render svgs inline for s3.
  • 286d409 Cap lengths on JWT/form name/email and restrict JWT user_id to contact or visitor
  • a8a6a97 Prevent stored XSS via SVG uploads
  • d7d58be Lock agent WS to same-origin and set SameSite=Lax on session cookie
  • 5e7575b Add inbox validation to conversation access control
  • de55a98 Set read limit for ws connections and handle panics in widget WS forwarder
  • fd0e871 Add max chat message length validation Use CSP headers to for trusted domains instead of referrer header checks. Update description for trusted domains
  • a55a323 Make outer app label text muted
  • fa64548 Make outer app form labels muted
  • 6ef17ee Make widget /auth/exchange idempotent Prevent tokens sent twice from widget.js, send only once. Update doc strings & comments for clarity. Fix error handling
  • aceecd9 Lazy-load emoji picker swap to lighter lib later
  • 300e9b1 Drop widget secondary color and auto-derive primary foreground for text selection.
  • de8c825 Increase widget iframe and launcher shadow depth
  • ceb1022 Increase gap between title and description in contact block confirmation dialog
  • 3fb75fb Make contact email matching deterministic and scope contact blocking to the email address
  • cd59a11 Update ROADMAP.md
  • 1db7f46 Extract BuildEmailThreadingHeaders to deduplicate email threading logic
  • d73a85f Fix continuity email threading: remove self-reference, drop unused meta field, cap source ID limit
  • a644ab2 Scope offline status broadcasts by user type instead of broadcasting to all
  • c610737 Centralize widget 401 handling in axios response interceptor, clear session and visitor cookies on expiry
  • 62e0211 Increase visitor default session TTL from 90 days to 180 days
  • 99daf4e DRY up widget inbox validation, use validateWidgetInbox middleware
  • 567e6cd Add csat field description, cast survey is now sent only once per conversation
  • 2d8daf2 Add "Choose channel" heading to new inbox page
  • 33a2a87 Fix secret handling in webhook and context link updates, allow clearing secrets
  • a56168c Fix incorrect webhook unassigned event value, use sentence case for event labels
  • b66c730 Clarify automation rules trigger scope, use sentence case for role permissions labels
  • 28bdb89 Update csat request email template Update csat webpage again..
  • c96253a Update shared view form layout
  • 6146f28 Add inbox channel validation in create conversation request
  • 35e0884 Extract reusable PaginationBar component, add week i18n key
  • e880759 add more snooze options in commnd box
  • e5c8b76 Remove extra margin from buttons with icons
  • 01f27c8 Auto focus on holiday name in BH form
  • 9f8ddc4 Set correct place holder for text editor in automation action
  • fa8d32a Fix emitter listener leaks, sidebar action button fixes. Auto focus on view form
  • 1ed6f9c Fix infinite re-render crash when opening conversation sidebar
  • 8dae4d1 Increase trimmed last message length to 120 chars
  • 508e0a4 Fix missing border for single conversation in widget
  • 1cb6074 Sync widget isOpen state across all open/close paths
  • c5c6a6b Clamp launcher spacing to 0-200, extend home gradient behind first card
  • c98c87d Fix visitor own messages counted as unread; set waiting_since on new conversations
  • 882f650 Stop broadcasting typing indicator between agents
  • b84c021 use lightbulb icon for csat survey tip
  • 9d91bb8 Send only one CSAT per conversation
  • c15ac8e Update ArrowRight icon size in HomeView.vue
  • 9424db2 Fix continuity email re-sending same messages
  • 0d9196b Add color customization for live chat launcher
  • e860164 Add widget home screen customization with configurable backgrounds, announcements, and external links Fix inconsistnet close button for mobile devices.
  • 710746c restyle widget bottom nav tabs to vertical layout with larger tap targets
  • 6aea4c9 Removed the Stepper component and replaced it with a simpler MenuCard layout for channel selection in NewInbox.vue. - Introduced a new SwitchField component for better UI consistency. - Updated WebSocket client to remove unnecessary token and inbox_id from ping and typing messages. - Added session duration configuration to the livechat channel settings in the backend.
  • d804e36 Fix continuity email tracking to not reset contact_last_seen_at and exclude continuity messages from unread count
  • 66cf217 dedupe page visits for widget
  • c798c67 Hide server-side security fields in chat settings response and adjust iframe border radius
  • dcf45fd Skip already attached media in new conversation api. Extract common logic for new message and convo api. New helper functions to fetch multiple medias in 1 shot
  • 7524ba6 Add support for custom attributes to createConversationRequest More polishes to notif panel Add You for current agent in select combobox. Remove unncesary checks for existing notifications while marking it as read. Send oldest SLA notifcation first (update sql query)
  • 588c364 Include visitor name in chat init response Fixes for correctly conversations and messages Rename establishSession to saveSess
  • 64eb4e4 Fix widget greeting overflow with long names. Sync messages on every WS connect
  • f487950 Polish notification panel
  • edb6565 Fix incorrect unread message count when a continuity message is auto sent in conversation Remove dead widget code Add config.toml to goreleaser
  • 8846ede standardize project name to lowercase "libredesk" across documentation, UI, and codebase. Vue router console warning fixes
  • 0305fec Add csat uuid as available param to CSAT request template
  • fd750b8 Add tag importer with file similar to agent import. Update help text across many admin sections for clarity
  • a327ca6 Add new csat widget that just accepts
  • f6e099c Fix notification sound to only alert for new or hidden-tab conversations
  • 5b5b837 Polish outer app login form layouts and improve email templates for consistency and clarity
  • ee26b62 Disable widget actions when message is being sent Fix widget input text area height
  • fa2d17e Update conversation list item layout with channel indicator and improve SLA time format
  • 4c47dd8 Drop redundant overdue text from compact SLA badges in conversation list
  • bb14b30 Remove gravatar
  • de74024 Simplify custom static dir to single mapping that mirrors built-in static/ structure
  • 37269af Persist small screen overlay dismissal in session storage
  • 70f7b4f Add small screen overlay warning for agent dashboard on mobile devices
  • 88a58c0 Custom static directory support, self hosted installations can pass static dir path to override csat and other web-templates, js and css files. Allowing instances to be fully customizable.
  • cc33269 Update README.md
  • e7eac6e Strip csat uui for agents (session) but keep for api consumers
  • bdaf915 Add dynamic launcher size adjustment for mobile and desktop
  • 4315b09 Merge pull request #280 from abhinavxd/dependabot/go_modules/github.com/go-jose/go-jose/v4-4.1.4
  • 2436f15 build(deps): bump github.com/go-jose/go-jose/v4 from 4.0.5 to 4.1.4
  • dc6f9e3 Update ROADMAP.md
  • aaff1b1 assign oldest convos first in auto assigner
  • 14b29a7 Resolve inline image CID references in message API responses instead of letting the api consumer handle it.
  • f8c572c Update ROADMAP.md
  • bf79197 Fix widget updateLastSeen firing on pre-load, skip for cached convo re-open
  • eea9913 Defer widget launcher display until auth and conversation data are loaded
  • ceec962 Debounce update-last-seen on tab switch, throttle idle detection goOnline
  • 3e18ce1 Polish sidebar page visits, make contact name linkable, fix redundant sync convo switch in widget on every tab change
  • 6dc2f1b Fix translations escape |
  • 3db51ec Fix consolidate duplicate i18n keys that have same values Polish csat page
  • 21824f6 Polish UI: fix reply box cutoff, refine scrollbars and text rendering
  • 54ecfb1 Fix own messages showing as unread in widget
  • 3c3d6a6 feat: replace widget JWT auth with Redis session tokens and parent-domain cookies Fix iOS Safari session loss by moving storage from iframe localStorage to first-party cookies. Add /auth/exchange, /auth/me endpoints for the same.
  • 235afb2 Play notification sound when tab is hidden and defer last-seen updates when tab is hidden Update js template rendered to use pipe syntax for fallbacks
  • 2839dcf Fix send typing indicators every 3 sec Fix vite config
  • 88bb199 Clear typing indicators after 5 sec
  • 20ff4a1 Sync msgs immediately once widget comes back online
  • a71432e Sync missed messages on widget WS connect to fix automation replies not appearing
  • 154be05 Fix widget mobile view zooming in for ios as the msg input had text size < 16 px.
  • 5c29708 Fix iframe src url
  • 02f7c19 Move trusted domaisn check to middleware
  • 5367baf fix chunking for widget app
  • 6abb6ad Move continuity config and intervals to live chat inbox form from toml. - Refactor widget.js. - Fix possible race conditions in inbox reload logic. - Reload only the updated inbox when an inbox is updated / created not all. - Retain last inbox while navigatin back from admin -> inbox
  • 87ab8f5 Fix sidebar user dropdown positioning and notification panel double-fetch
  • b34e581 Skip redundant contact updates when JWT values unchanged
  • 73ea874 Fix dev backend failing to start without the frontend being built.
  • 5a06a90 Revert minification step for widget.js in production build process as the widget js is already very small and is not needed now
  • 0a9e57d Revamp live chat widget JS API, use inbox UUID, non-blocking installation Update installation instructions for clarity Remove unncessary convo custom attribs being passed in JWT tokens for live chat
  • 000fd83 Add uuid column to inboxes table to use as widget public identifiers Auto focus on form inputs in widget Use defer widget in widget installation script
  • 1118a6f Fix duplicate webhook events for conversations created via api
  • 090ea73 Update caniuse-lite browserslist database
  • b739783 Render reply and private not template variables before saving them in DB.
  • d590ace Fix typing indicator broadcast to exclude the sender by comparing client IDs
  • 9ce5f60 Fix widget business hours showing wrong time due to missing UTC offset
  • d0a3527 Sync contact name/email from JWT on every widget request
  • 9c43654 Add conversation ref number to list conversations api response
  • 65b17bd Merge pull request #276 from abhinavxd/dependabot/go_modules/golang.org/x/image-0.38.0
  • 33b1ddc build(deps): bump golang.org/x/image from 0.18.0 to 0.38.0
  • 9610c15 Simplify notification toggle check
  • 13db8d2 Fix command palette macros not working due to previous variable rename causing issues.
  • 2a8d4b3 Fix notification count in document title on navigation
  • 747d3ca Preserve notification count in document title on navigation
  • 3c00028 Fix gravatar not visible in convo list
  • d260eb5 Fix vue-i18n nested placeholder error in context link i18n strings
  • c8c39cd add phone country code to context link payload
  • b1bef23 Feat: context links, context links allow admins to set urls to external system from sidebar with encrypted payload in query parameters.
  • 1840958 Show default name and email fields in pre-chat form config
  • 71c8ec8 Remove unused WS unsubscribe functions
  • 7d8c2d9 Check conversation ownership before broadcasting typing event on conversations
  • 9ae8100 Use widget upload API response directly instead of refetchign entire conversation Return ChatMessage format in upload api Fix scroll on content replace
  • 5f6ca63 Refactor use already fetched inbox config and set it in ctx for widget handlers
  • 114656e required jwt fields middleware for user
  • d02e041 Expose IsContinuityEmail flag to email templates for conditional rendering
  • 5590ae6 Create contact from JWT in widget middleware for visitor merge, fix message input focus and pending cleanup
  • faa2396 Focus back on text area once widget message is sent Sign pending avatar urls
  • fb3ab68 Sign avatar URLs in widget WS broadcasts, add CORS for launcher settings
  • 2d64cfc Skip conversation access check for unattached media
  • c06311b Rename AdminPageWithHelp to AdminSplitLayout
  • ed9b97f Polish message bubble envelope
  • 789a58e Add echo_id for pending message matching, show ext_id in contact search, minor UI polish
  • a84d6aa Update continuity config defaults
  • e942e51 Fix report overview sql
  • 0b5fa46 Simplify mig query
  • b4b4c80 Fix Reply-To double-set: caller-provided takes priority over inbox-level plus-addressing
  • 653266c Remove unused readme file Remove participant tooltip for message bubbler as activity log takes care of it Fix create sender before creating conversation
  • 11eb4d0 Translate remaining hardcoded eng strings.
  • c59ce4e Fix overview counts query: cast enum to text for COALESCE
  • 8a1ac87 Fix race condition in livechat Send: hold RLock during client iteration
  • eb94f2b Refactor widget WS: fix concurrent writes Update merge visitor to contact query to include other tables Update default for continuity email config
  • 52995d1 remove cache control headers for widget js file
  • 565732c add rate limit to show csat page
  • 42f5a7f Show ext id in contact list
  • ea0443e Fix contact detail: consistent text-xs font size, add icons for external ID and created date
  • c8b7177 Add isNewConversation param to CreateContactMessage, cap page size to 500
  • 2b645fa Security fixes: rate-limit widget endpoints, remove JWT from logs, harden middleware checks Increase max page size to 500 Allow large out of bound page sizes by overriding to maximum set. Reset websocket reconnect attempts when widget is back online
  • 6a7ecf6 Resolve sender using conversation context, show ext_id on contact detail
  • 2f81d60 Widget: larger prechat textarea, check email for participant activity, fix notification sound
  • a67f14c Play notification sound only on messages from agents
  • b04d9d6 Sign all avatar URLs in widget endpoints and WS broadcasts
  • 3b482e3 Fix widget: re-fetch convos on JWT set, prevent double conversation creation
  • 6ae73ee Check meta.from vs contact email for participant indicator
  • 1a148bd Show unread notification count in browser tab title
  • 975b996 fix: remove duplicate useI18n declaration
  • c3f0b18 Add participant activity note and visual indicator for non-contact senders
  • 1d36ddd Make first name mandatory for live chat jwt
  • 4e0f781 enrich exit only if not already set
  • 1344700 Remove insecure ref number matching, relax email constraint for ext_id contacts
  • 23e6a70 Allow contacts with different external_user_ids to share email, add enrichment and remove email check from conversation matching
  • b8519b9 Fix frontend build warnings: modern Sass API, split codemirror chunk.
  • 14a7bf4 Add widget.js minification step to build; subtle shadows.
  • c057560 Sync prechat form labels with custom attributes; hide stale messages during chat load.
  • 2233712 Polish widget UX: accessibility, tab nav, expand/collapse, conversation list, and mobile fixes.
  • 8b556d9 Polish auth pages, contact detail, and avatar upload UX.
  • 64ffd55 Polish automation UI: theme-aware colors, accessibility, and cleanup.
  • 969b5be Fix mention styling in messages, improve notification panel UX
  • 8fd0566 Improve sidebar semantics, form label hierarchy, and translate remaining hardcoded strings
  • 9652c6d Clean up i18n keys, sort language files, and refactor admin UI components.
  • 802987d Reorder livechat inbox form fields; show reply expectation message when agent is offline during business hours
  • 395a4e8 Refactor ws updates to use direct json payloads instead of prop value pattern.
  • f266021 Fix widget unread badge not restoring when chat is closed
  • da2a706 Don't show widget launcher until conversation data is loaded. Hide widget on fatal errors (expired JWT, server errors, init failures).
  • 4817530 Add rate limiting to public endpoints (auth, CSAT), fix rate limiter race condition and missing Content-Type header. Refactor rateLimitWidget into generic rateLimit middleware with config defaults.
  • bcd0ed4 Show conversation status in search results
  • 34aecd2 Fix widget business hours: use assigned team hours instead of always defaulting, fix timezone offset calculation. Show continuity email indicator in agent UI, broadcast email replies to widget as a user could have widget open and reply from email at the same time.
  • a788553 Use first unread message as subject for continuity emails, add ref number to continuity email subject. - Continuity email layout fixes and improvments. - Replace haikunator with email local part for visitor names, fallback to "Visitor" - Add optional website_url config field for "go to chat" link in continuity email footer - Remove unused / unncessary i18n keys.
  • b0f0215 Fix attachment previews in pending messages - Fix ci
  • b8e2367 Merge branch 'main' into feat/live-chat-channel
  • e7ab571 add reply guards, gravatar fallbacks for avatars, draft preview in conversation list, clickable agent avatars. Show sent messages immediately instead of waiting for WebSocket response.
  • 6782390 Refactor incoming message flow, add visitor upgrade on email reply, rate-limit livechat conversations
  • eb0a7b4 Add page visit tracking to widget - fix duplicate initialization guard - notification bell for agents - Refactor and clean up dead code - Fixes to pre chat form - Add new column country to users table - Update ratelimit pkg to be generic
  • 384dad0 Update README.md
  • b277b30 Create issues.yml
  • 36e2bd9 Create issues.yml
  • 68ed6b2 Update ROADMAP.md
  • 0a662b0 Add widget js API (hideDefaultLauncher, setUser, logout), fix static methods, update installation tab
  • 18764cb Redact websocket message content and let clients fetch the full message once they receive this event, this will make sure a client actually has permission to fetch that message.
  • 0b7c816 Allow live chat widgets to detect lang from user browser and fallback to defaults set by admin. New handler to return all available langs, remove hardcoded langs
  • 45a8011 Fix CSAT responses not visible agent message bubble - Fix csat form submission in widget - Update vite config to allow cross origin requests
  • aeb153b fix: message meta not being saved
  • 53181af Merge branch 'main' into feat/live-chat-channel
  • 131d32e Translate search result tabs - Translate sort options - Correct button size in ProfileEditView
  • 4eb5dce Merge branch 'main' into feat/live-chat-channel
  • 81847c7 i18n: fix localization issues (#231) Not backported to main due to extensive i18n refactoring changes in this branch.
  • 206af8a refactor move common utils to shared-ui
  • c21adfd refactor: move datetime utility functions to shared-ui and update imports
  • 7b7629d Merge branch 'main' into feat/live-chat-channel
  • c155fce feat: show contact offline / online status on sidebar - mark contacts offline if not active for > 5 mins.
  • 70e6ebc feat(widget): merge visitor to contact when new JWT is available i.e. when user logs into a an external system. - Prevent file uploads on initial message, user send a message first to enable attachments. - fix thumbs not loading with signature and expiry
  • 8bdc30e rename components to reflect purpose
  • acc94e8 feat(livechat): show author name in conversation list
  • eb5cae5 feat(widget): add audio notification for new messages
  • ae12d3e more fixes
  • a94c384 more fixes
  • f0e9266 more fixes to LC
  • 0aa4cad refactor(sidebar): improve layout and styling of sidebar components, remove unnecessary padding around chil sidebar items
  • 107f1ad fix issues with threading with widget messages - fix: live chat email inbox not being initialized. - make launcher logo take entire launcher space. - New columns last_interaction_sender_id and last_message_sender_id to track who sent last message in conversation
  • 8ebe77a - Fix copy button component usage - Set --primary color value correct in live chat widget.
  • e2a9a00 Live chat: add admin toggle to open widget directly into previous conversation / a new conversation
  • 511f464 fix merge conflict issues
  • 4d25ae7 reduce the number of fetched conversation messages from 1000 to 400 for livechat
  • 08acb09 fix build
  • 2421b96 fix merge conflcits
  • 7958d7e Merge branch 'main' into feat/live-chat-channel
  • 7217086 add instructions for authenticated users for live chat widget
  • 98b3b54 Add installation tab to live chat form for copying widget js snippet
  • aae8d1f Consider visitors and contacts same, as the only difference is that visitors are not authenticated. Show a warning in sidebar when a conversation with a visitor is opened.
  • 7858a94 add missing error check
  • 95ae55d add missing comma in get-contact-chat-conversations query
  • 0dedc0b remove missing query from queries struct
  • 0f207a0 remove missing query from query map
  • 6840f73 fix component imports
  • bf1cf02 Merge branch 'main' into feat/live-chat-channel
  • 4a1e7af do not sending typing ws message to widget clients if it's a private message being typed by agent
  • 9c43b88 hide live chat continuity emails in AgentMessageBubble
  • a4b5340 move file system media url secret and expiry duration to fs.go
  • f7e243f update fetchMessageAttachments to use signed URLs for media attachments with a 4-hour expiration
  • 16ca6b6 Send batched unread messages in conversation continuity email after contact has not seen a conversation for configured amount of time, instead of sending a single message immediately when contact is disconnected on websocket.
  • 1de54fe add network connection banner in live chat widget
  • 54e6144 refactor and fixes to convo continuity
  • 1deeaf6 remove unnecessary descriptions for fields and translations
  • 3a59901 fixes to pre chat form
  • c7291b1 fix layout for live chat inbox tabs for smaller devices hide admin help text on smaller devices
  • 5de870c Config option to show or hide ‘Powered by Libredesk’ in the live chat widget. Make the start conversation button a floating button and add a gradient fade overlay
  • d7067bc feat: add email fallback / continutiy inbox feature for live chat inbox
  • ed44805 fix: newly created conversation not being added to the conversation list, simplify chat conversation SQL queries. - add indexes to make conversation unread message count faster
  • c721d19 fix migration
  • 7711183 fix component import
  • 45a77b1 fix build
  • 9a77c89 Merge branch 'main' into feat/live-chat-channel
  • 18d4a8f feat: auto-remove pending outgoing widget messages after 10 seconds if they have a temporary ID
  • a2234e9 make widget expand to full viewport height update shadows for iframe and widget
  • d7fe615 Center pre chat form title
  • 68c2708 feat: remove VisitorInfoForm component and integrate customizable pre-chat form.
  • 4f9fc02 show uploading state when file is being uploaded from widget
  • 6cfa938 fix: remove unnecessary filter from default icon styling in widget
  • f72f158 - show thumbnail image in widget thread instead of the entire image - update file imports to use shared-ui utils and remove redundant file.js - Implement SignedURLStore interface for fs store
  • 1962abd feat: implement rate limiting for public widget endpoints with Redis support
  • 081a5c6 fix: update main.js to import styles from shared-ui instead
  • c35ab42 feat: configurable visitor information collection with a form before starting chat.
  • f05014f refactor: implement widget authentication middleware with standard HTTP headers
  • e2bba04 Fix: Trusted domain validation for live chat widget, check the referrer header instead of origin.
  • 4beab72 feat: add external user ID support and secret field for inboxes. Update user and inbox models, queries, and migrations
  • 26b3b30 feat: add authenticated user support by passing JWT from parent to widget iframe.
  • 11fd57a update lucide-vue-next to version 0.525.0
  • d4f644c feat translate widget app
  • 646bbc7 wait for widget vue app to be ready before showing the widget icon - show arrow down when when widget is open
  • 3c37095 feat: Add loading indicators to chat components and improve spinner UI
  • 74732bf feat: Add expand/collapse functionality to chat view
  • 8ee81c2 feat: Widget dark mode and chat reply expectation message in chat title.
  • 282dc83 fix set correct var name
  • 61a70f6 clean up live chat move last message details in the meta JSONB column of conversations
  • 5b6a58f wip: intercom like live chat with chat widget - new vue app for serving live chat widget, created subdirectories inside frontend dir main and widget - vite changes for both main app and widget app. - new backend live chat channel - apis for live chat widget

Don't miss a new libredesk release

NewReleases is sending notifications on new releases.