Commit Graph

64 Commits

Author SHA1 Message Date
Abhinav Raut ee26b62366 Disable widget actions when message is being sent
Fix widget input text area height
2026-04-09 01:25:51 +05:30
Abhinav Raut 88a58c0f3b 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.
- New meta JSONB field in CSAT responses to capture random adhoc data as that might be needed for custom CSAT pages.
- Add support prefilled rating for csat pages picked from query param
2026-04-09 00:04:00 +05:30
Abhinav Raut bf7919747d Fix widget updateLastSeen firing on pre-load, skip for cached convo re-open 2026-04-06 15:18:33 +05:30
Abhinav Raut eea99130fa Defer widget launcher display until auth and conversation data are loaded 2026-04-06 14:21:36 +05:30
Abhinav Raut ceec9623cd Debounce update-last-seen on tab switch, throttle idle detection goOnline 2026-04-06 13:47:48 +05:30
Abhinav Raut 3e18ce15ad Polish sidebar page visits, make contact name linkable, fix redundant sync convo switch in widget on every tab change 2026-04-06 13:18:02 +05:30
Abhinav Raut 3db51ec02d Fix consolidate duplicate i18n keys that have same values
Polish csat page
2026-04-05 22:05:23 +05:30
Abhinav Raut 54ecfb1c84 Fix own messages showing as unread in widget 2026-04-05 19:06:23 +05:30
Abhinav Raut 3c3d6a6149 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.

Fix duplicate network calls, and agent notification for new conversations.
2026-04-05 18:58:45 +05:30
Abhinav Raut 235afb2b88 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
2026-04-05 01:51:45 +05:30
Abhinav Raut 2839dcff88 Fix send typing indicators every 3 sec
Fix vite config
2026-04-05 01:06:22 +05:30
Abhinav Raut 88bb199da2 Clear typing indicators after 5 sec 2026-04-05 00:54:29 +05:30
Abhinav Raut 20ff4a157a Sync msgs immediately once widget comes back online 2026-04-05 00:32:01 +05:30
Abhinav Raut a71432eff9 Sync missed messages on widget WS connect to fix automation replies not appearing
Automation replies sent before the widget's WebSocket connection was
established (e.g. first message from a new visitor) were silently lost
because LiveChat.Send() returned ErrClientNotConnected. Now the widget
syncs conversations and messages on every WS join, reconnect, and
network recovery - silently to avoid loader flashes.
2026-04-05 00:18:46 +05:30
Abhinav Raut 154be058e4 Fix widget mobile view zooming in for ios as the msg input had text size < 16 px.
More fixes for widget mobile view
Sync messages once websocket is connected
2026-04-05 00:09:37 +05:30
Abhinav Raut 6abb6ad017 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
2026-04-04 21:35:04 +05:30
Abhinav Raut 000fd83b30 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
2026-04-03 02:34:07 +05:30
Abhinav Raut 9ce5f60023 Fix widget business hours showing wrong time due to missing UTC offset 2026-04-02 01:45:47 +05:30
Abhinav Raut 9ae8100e8a Use widget upload API response directly instead of refetchign entire conversation
Return ChatMessage format in upload api
Fix scroll on content replace
2026-03-30 02:04:23 +05:30
Abhinav Raut 5590ae6ae3 Create contact from JWT in widget middleware for visitor merge, fix message input focus and pending cleanup 2026-03-30 00:28:33 +05:30
Abhinav Raut faa23967bf Focus back on text area once widget message is sent
Sign pending avatar urls
2026-03-29 23:35:26 +05:30
Abhinav Raut 2b645fa4e8 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
2026-03-28 19:27:41 +05:30
Abhinav Raut 2f81d60a6f Widget: larger prechat textarea, check email for participant activity, fix notification sound 2026-03-28 18:32:08 +05:30
Abhinav Raut a67f14ce5e Play notification sound only on messages from agents 2026-03-28 18:15:35 +05:30
Abhinav Raut 3b482e37c6 Fix widget: re-fetch convos on JWT set, prevent double conversation creation 2026-03-28 17:45:17 +05:30
Abhinav Raut c057560251 Sync prechat form labels with custom attributes; hide stale messages during chat load. 2026-03-25 11:16:30 +05:30
Abhinav Raut 2233712f85 Polish widget UX: accessibility, tab nav, expand/collapse, conversation list, and mobile fixes. 2026-03-25 02:28:43 +05:30
Abhinav Raut 9652c6d4bc Clean up i18n keys, sort language files, and refactor admin UI components. 2026-03-24 01:42:35 +05:30
Abhinav Raut 802987dcad Reorder livechat inbox form fields; show reply expectation message when agent is offline during business hours 2026-03-24 00:16:16 +05:30
Abhinav Raut 395a4e80df Refactor ws updates to use direct json payloads instead of prop value pattern.
Add real-time agent availability status updates to widget.

Consolidate multiple WS broadcasts into single calls
2026-03-22 19:34:21 +05:30
Abhinav Raut da2a706a7a Don't show widget launcher until conversation data is loaded. Hide widget on fatal errors (expired JWT, server errors, init failures). 2026-03-22 17:25:02 +05:30
Abhinav Raut 34aecd268f 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. 2026-03-18 10:50:55 +05:30
Abhinav Raut eb0a7b437d 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
2026-03-11 03:52:07 +05:30
Abhinav Raut 0a662b081c Add widget js API (hideDefaultLauncher, setUser, logout), fix static methods, update installation tab 2026-03-03 16:53:38 +05:30
Abhinav Raut 0b7c816407 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
2026-02-26 01:54:34 +05:30
Abhinav Raut 81847c7f4e i18n: fix localization issues (#231)
Not backported to main due to extensive i18n refactoring changes in this branch.
2026-02-22 15:12:00 +05:30
Abhinav Raut 70e6ebcc48 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
2026-01-26 02:52:28 +05:30
Abhinav Raut 8bdc30e6c1 rename components to reflect purpose 2026-01-25 03:30:36 +05:30
Abhinav Raut acc94e8f0f feat(livechat): show author name in conversation list 2026-01-25 03:27:46 +05:30
Abhinav Raut eb5cae59bb feat(widget): add audio notification for new messages 2026-01-25 03:07:59 +05:30
Abhinav Raut ae12d3eb34 more fixes 2026-01-25 02:36:59 +05:30
Abhinav Raut 8ebe77a5fd - Fix copy button component usage
- Set --primary color value correct in live chat widget.
2026-01-18 11:55:43 +05:30
Abhinav Raut e2a9a00217 Live chat: add admin toggle to open widget directly into previous conversation / a new conversation
- Improve greeting and introduction messages to support template variables for user names.
2026-01-17 18:22:40 +05:30
Abhinav Raut 16ca6b6df7 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.
Make the batching interval and time threshold for unread messages configurable
2025-10-03 01:54:17 +05:30
Abhinav Raut 1de54fe110 add network connection banner in live chat widget 2025-09-25 23:37:54 +05:30
Abhinav Raut 3a5990174b fixes to pre chat form 2025-09-25 02:20:00 +05:30
Abhinav Raut 5de870c446 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
2025-09-24 23:34:39 +05:30
Abhinav Raut d7067bce7d feat: add email fallback / continutiy inbox feature for live chat inbox 2025-09-21 00:51:19 +05:30
Abhinav Raut ed448055ed 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
2025-08-26 03:03:34 +05:30
Abhinav Raut 18d4a8fe3b feat: auto-remove pending outgoing widget messages after 10 seconds if they have a temporary ID 2025-08-23 19:24:14 +05:30