Commit Graph

347 Commits

Author SHA1 Message Date
Abhinav Raut 02f7c19082 Move trusted domaisn check to middleware 2026-04-04 22:21:34 +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 b34e581616 Skip redundant contact updates when JWT values unchanged 2026-04-04 18:42:44 +05:30
Abhinav Raut 73ea8741a2 Fix dev backend failing to start without the frontend being built. 2026-04-04 18:40:52 +05:30
Abhinav Raut 5a06a90152 Revert minification step for widget.js in production build process as the widget js is already very small and is not needed now 2026-04-04 18:36:36 +05:30
Abhinav Raut 0a9e57dcc5 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
2026-04-04 18:11:54 +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 1118a6f465 Fix duplicate webhook events for conversations created via api 2026-04-02 15:10:14 +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 d0a3527269 Sync contact name/email from JWT on every widget request 2026-04-01 17:15:22 +05:30
Abhinav Raut 9610c15603 Simplify notification toggle check 2026-03-30 18:51:58 +05:30
Abhinav Raut 13db8d2843 Fix command palette macros not working due to previous variable rename causing issues.
Improve sidebar navigation to retain open conversation

Fix notification when disabled app still tries sending emails.
2026-03-30 18:51:23 +05:30
Abhinav Raut b1bef238cf Feat: context links, context links allow admins to set urls to external system from sidebar with encrypted payload in query parameters. 2026-03-30 16:00:37 +05:30
Abhinav Raut 7d8c2d9fa3 Check conversation ownership before broadcasting typing event on conversations 2026-03-30 02:23:07 +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 5f6ca63dc4 Refactor use already fetched inbox config and set it in ctx for widget handlers 2026-03-30 01:22:43 +05:30
Abhinav Raut 114656e64e required jwt fields middleware for user 2026-03-30 01:10:02 +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 fb3ab68ef6 Sign avatar URLs in widget WS broadcasts, add CORS for launcher settings 2026-03-29 19:08:09 +05:30
Abhinav Raut 2d64cfcca3 Skip conversation access check for unattached media 2026-03-29 17:18:11 +05:30
Abhinav Raut 789a58ed0c Add echo_id for pending message matching, show ext_id in contact search, minor UI polish 2026-03-29 13:32:38 +05:30
Abhinav Raut eb94f2b06b Refactor widget WS: fix concurrent writes
Update merge visitor to contact query to include other tables
Update default for continuity email config
2026-03-28 21:19:11 +05:30
Abhinav Raut 52995d1cfb remove cache control headers for widget js file 2026-03-28 20:19:35 +05:30
Abhinav Raut 565732c5be add rate limit to show csat page 2026-03-28 20:03:27 +05:30
Abhinav Raut c8b717739c Add isNewConversation param to CreateContactMessage, cap page size to 500 2026-03-28 19:36: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 b04d9d6f8d Sign all avatar URLs in widget endpoints and WS broadcasts 2026-03-28 18:03:33 +05:30
Abhinav Raut 1d36ddde91 Make first name mandatory for live chat jwt 2026-03-28 13:46:23 +05:30
Abhinav Raut 4e0f781bd7 enrich exit only if not already set 2026-03-28 13:23:58 +05:30
Abhinav Raut 23e6a70844 Allow contacts with different external_user_ids to share email, add enrichment and remove email check from conversation matching 2026-03-28 12:29:44 +05:30
Abhinav Raut 14a7bf4435 Add widget.js minification step to build; subtle shadows. 2026-03-25 11:26:08 +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 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 48175300ab 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. 2026-03-22 16:59:55 +05:30
Abhinav Raut a788553137 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.
2026-03-16 00:49:20 +05:30
Abhinav Raut b8e236713d Merge branch 'main' into feat/live-chat-channel 2026-03-15 21:09:21 +05:30
Abhinav Raut 678239027e Refactor incoming message flow, add visitor upgrade on email reply, rate-limit livechat conversations 2026-03-11 12:19:58 +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 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 1ab78259ab Restrict message retries only to sender agent & failed messages 2026-02-24 23:59:05 +05:30
Abhinav Raut 4eb5dce12c Merge branch 'main' into feat/live-chat-channel 2026-02-22 15:13:36 +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 727213631c SSRF protection to webhooks
- New config webhook option to allow certain CIDR ranges in webhooks.
2026-02-16 02:40:05 +05:30
Abhinav Raut 7b7629d6fa Merge branch 'main' into feat/live-chat-channel 2026-02-11 00:27:59 +05:30
Abhinav Raut 9ad46cc9bd make plus addressing default in email inbox form 2026-01-29 00:05:15 +05:30
Abhinav Raut d0bad37464 feat: add support for toggling plus addressing for email inbox.
Fixes #233
2026-01-29 00:00:49 +05:30
Abhinav Raut c155fce93b feat: show contact offline / online status on sidebar
- mark contacts offline if not active for > 5 mins.
2026-01-26 03:28:34 +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 f0e9266d28 more fixes to LC 2026-01-21 00:13:02 +05:30
Abhinav Raut 361fece378 fix: trim whitespace from inbox and settings fields
Fixes #223
2026-01-20 00:03:01 +05:30