Commit Graph

371 Commits

Author SHA1 Message Date
Abhinav Raut de55a984e7 Set read limit for ws connections and handle panics in widget WS forwarder 2026-04-16 02:51:50 +05:30
Abhinav Raut fd0e871a79 Add max chat message length validation
Use CSP headers to for trusted domains instead of referrer header checks.
Update description for trusted domains
2026-04-16 02:30:02 +05:30
Abhinav Raut 6ef17eeae6 Make widget /auth/exchange idempotent
Prevent tokens sent twice from widget.js, send only once.
Update doc strings & comments for clarity.
Fix error handling
2026-04-16 01:16:24 +05:30
Abhinav Raut 300e9b1238 Drop widget secondary color and auto-derive primary foreground for text selection. 2026-04-15 20:17:56 +05:30
Abhinav Raut a644ab2e44 Scope offline status broadcasts by user type instead of broadcasting to all 2026-04-15 02:21:18 +05:30
Abhinav Raut 62e02118bd Increase visitor default session TTL from 90 days to 180 days 2026-04-15 00:43:40 +05:30
Abhinav Raut 99daf4e8da DRY up widget inbox validation, use validateWidgetInbox middleware 2026-04-15 00:11:19 +05:30
Abhinav Raut 6146f28126 Add inbox channel validation in create conversation request 2026-04-14 21:28:11 +05:30
Abhinav Raut c5c6a6b57e Clamp launcher spacing to 0-200, extend home gradient behind first card 2026-04-13 22:37:22 +05:30
Abhinav Raut e860164ad7 Add widget home screen customization with configurable backgrounds, announcements, and external links
Fix inconsistnet close button for mobile devices.
2026-04-13 04:01:07 +05:30
Abhinav Raut 6aea4c9895 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.
2026-04-13 01:38:53 +05:30
Abhinav Raut 66cf21731f dedupe page visits for widget 2026-04-13 00:33:59 +05:30
Abhinav Raut c798c676a5 Hide server-side security fields in chat settings response and adjust iframe border radius 2026-04-12 23:17:11 +05:30
Abhinav Raut dcf45fd168 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
2026-04-12 23:02:22 +05:30
Abhinav Raut 7524ba6c19 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)
2026-04-12 22:54:54 +05:30
Abhinav Raut 588c364821 Include visitor name in chat init response
Fixes for correctly conversations and messages
Rename establishSession to saveSess
2026-04-12 16:17:10 +05:30
Abhinav Raut fd750b8cf4 Add tag importer with file similar to agent import.
Update help text across many admin sections for clarity
2026-04-09 15:35:29 +05:30
Abhinav Raut a327ca69a7 Add new csat widget that just accepts 2026-04-09 13:55:39 +05:30
Abhinav Raut de740245c1 Simplify custom static dir to single mapping that mirrors built-in static/ structure 2026-04-09 00:24:05 +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 e7eac6eb94 Strip csat uui for agents (session) but keep for api consumers 2026-04-08 12:57:05 +05:30
Abhinav Raut 14b29a7063 Resolve inline image CID references in message API responses instead of letting the api consumer handle it.
Fix make file go run cmd
2026-04-07 16:19:19 +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 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