Commit Graph

480 Commits

Author SHA1 Message Date
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 e7eac6eb94 Strip csat uui for agents (session) but keep for api consumers 2026-04-08 12:57:05 +05:30
Abhinav Raut aaff1b1427 assign oldest convos first in auto assigner 2026-04-07 16:32:03 +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 b739783eec Render reply and private not template variables before saving them in DB. 2026-04-02 14:31:53 +05:30
Abhinav Raut d590ace4a9 Fix typing indicator broadcast to exclude the sender by comparing client IDs 2026-04-02 11:48:54 +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 9c43654021 Add conversation ref number to list conversations api response 2026-04-01 16:16:26 +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 c8c39cd87a add phone country code to context link payload 2026-03-30 16:02:26 +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 71c8ec88c0 Remove unused WS unsubscribe functions 2026-03-30 02:26:15 +05:30
Abhinav Raut 7d8c2d9fa3 Check conversation ownership before broadcasting typing event on conversations 2026-03-30 02:23:07 +05:30
Abhinav Raut d02e0418e1 Expose IsContinuityEmail flag to email templates for conditional rendering 2026-03-30 01:03:17 +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 fb3ab68ef6 Sign avatar URLs in widget WS broadcasts, add CORS for launcher settings 2026-03-29 19:08:09 +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 a84d6aa001 Update continuity config defaults 2026-03-29 00:08:12 +05:30
Abhinav Raut e942e51720 Fix report overview sql 2026-03-29 00:03:33 +05:30
Abhinav Raut 0b5fa46825 Simplify mig query 2026-03-29 00:02:14 +05:30
Abhinav Raut b4b4c809d4 Fix Reply-To double-set: caller-provided takes priority over inbox-level plus-addressing 2026-03-28 23:53:56 +05:30
Abhinav Raut 653266c6bc Remove unused readme file
Remove participant tooltip for message bubbler as activity log takes care of it
Fix create sender before creating conversation
2026-03-28 22:51:35 +05:30
Abhinav Raut c59ce4eced Fix overview counts query: cast enum to text for COALESCE 2026-03-28 21:30:22 +05:30
Abhinav Raut 8a1ac870d0 Fix race condition in livechat Send: hold RLock during client iteration 2026-03-28 21:30:07 +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 42f5a7faf5 Show ext id in contact list 2026-03-28 19:59:13 +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 6a7ecf6b8a Resolve sender using conversation context, show ext_id on contact detail 2026-03-28 18:44:57 +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 b04d9d6f8d Sign all avatar URLs in widget endpoints and WS broadcasts 2026-03-28 18:03:33 +05:30
Abhinav Raut c3f0b18392 Add participant activity note and visual indicator for non-contact senders 2026-03-28 14:50:58 +05:30
Abhinav Raut 1344700973 Remove insecure ref number matching, relax email constraint for ext_id contacts 2026-03-28 13:07:21 +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 8fd05667ac Improve sidebar semantics, form label hierarchy, and translate remaining hardcoded strings 2026-03-25 00:47:18 +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 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 bcd0ed4fd1 Show conversation status in search results 2026-03-22 15:17:07 +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 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 b0f0215952 Fix attachment previews in pending messages
- Fix ci
2026-03-15 21:36:02 +05:30
Abhinav Raut b8e236713d Merge branch 'main' into feat/live-chat-channel 2026-03-15 21:09:21 +05:30
Abhinav Raut e7ab571c48 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. 2026-03-11 14:52: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