521 Commits

Author SHA1 Message Date
Abhinav Raut feb23fae8a fix new inbox create dropping enabled/csat_enabled/secret/linked_email_inbox_id 2026-04-25 13:24:43 +05:30
Abhinav Raut ffa5a22f3f fix s3 avatar_url storing bucket path instead of /uploads/<uuid>
Trim spaces around reply to config
2026-04-24 20:12:04 +05:30
Abhinav Raut dce33238e2 exclude inbox reply_to from reply recipients to prevent self-loop 2026-04-24 19:14:55 +05:30
Abhinav Raut 3d2da2a11f add reply_to on email inboxes for routing replies off the SMTP From domain 2026-04-24 18:39:16 +05:30
Abhinav Raut 38c14808be fix view greater/less than date filter including boundary-day rows 2026-04-23 15:28:34 +05:30
Abhinav Raut 467a62b091 fix snoozed_until leak causing resolved/closed conversations to reopen 2026-04-23 11:36:03 +05:30
Abhinav Raut dd6c8f93a0 add conversation.subject_ref_format config for customizing outgoing email subject marker 2026-04-23 03:11:36 +05:30
Abhinav Raut ed4bac6139 return error on default status update instead of silent no-op 2026-04-21 21:48:13 +05:30
Abhinav Raut 1012949539 Merge remote-tracking branch 'origin/main' into category-statuses 2026-04-21 21:28:07 +05:30
Abhinav Raut 2d3958fe49 Merge pull request #294 from abhinavxd/more-view-filters
More fields in view filters.
2026-04-21 21:18:38 +05:30
Abhinav Raut 38a7fd699b update mig ver 2026-04-21 21:14:22 +05:30
Abhinav Raut 15021bf22b Make session lifetime configurable 2026-04-21 20:27:40 +05:30
Abhinav Raut 06b36b74fd Add prompt-to-tag-on-reply inbox setting 2026-04-21 20:24:19 +05:30
Abhinav Raut 8090309e2e Fix autoassigner delaying conversation assignment when first picked agent is capped
Handle cases where teams do not have any agents
2026-04-21 18:06:39 +05:30
Abhinav Raut aa9e4cdae2 feat: add conversation status categories and update related logic.
- Introduced a new category field for conversation statuses to classify them as 'open', 'waiting', or 'resolved'. Which allows max assignment limits in team to work with custom statuses as well.
2026-04-21 16:55:09 +05:30
Abhinav Raut 00785c6061 WIP: More filters to views
Virtualize agent list and tag list.
2026-04-19 17:22:49 +05:30
Abhinav Raut f7cbfb525c Hard widget endpoints
- Gate widget inbox_id on UUID to prevent enumeration.
- Throttle inbound WS frames per connection (typing/page_visit/ping)
- Restrict admin-set URLs to http/https
- Apply closed-conversation reply guard to media upload path (was text-only)
- Reject empty uploads and use io.ReadAll
- Validate inbox config before DB create; drop unused func VerifySignature
2026-04-17 02:41:40 +05:30
Abhinav Raut 0258002190 Fix contact_email log field to unwrap null.String 2026-04-17 00:18:47 +05:30
Abhinav Raut fdb5a507d2 Add 7-day TTL window on visitor-to-contact upgrade via continuity email reply 2026-04-16 12:50:38 +05:30
Abhinav Raut 00039191eb Harden widget apis: strip agent emails, fix cross-inbox merge, and tighten auth
Don't render svgs inline for s3.
2026-04-16 11:26:13 +05:30
Abhinav Raut d7d58bebdb Lock agent WS to same-origin and set SameSite=Lax on session cookie 2026-04-16 03:13:09 +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 3fb75fbdde Make contact email matching deterministic and scope contact blocking to the email address 2026-04-15 12:50:55 +05:30
Abhinav Raut 1db7f4602d Extract BuildEmailThreadingHeaders to deduplicate email threading logic 2026-04-15 02:32:55 +05:30
Abhinav Raut d73a85ffb5 Fix continuity email threading: remove self-reference, drop unused meta field, cap source ID limit 2026-04-15 02:21:41 +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 33a2a877a5 Fix secret handling in webhook and context link updates, allow clearing secrets 2026-04-14 23:00:14 +05:30
Abhinav Raut 28bdb89e8d Update csat request email template
Update csat webpage again..
2026-04-14 22:14:39 +05:30
Abhinav Raut c98c87d478 Fix visitor own messages counted as unread; set waiting_since on new conversations 2026-04-13 22:36:02 +05:30
Abhinav Raut 882f650401 Stop broadcasting typing indicator between agents 2026-04-13 14:51:37 +05:30
Abhinav Raut 9d91bb8636 Send only one CSAT per conversation 2026-04-13 13:56:15 +05:30
Abhinav Raut 9424db2607 Fix continuity email re-sending same messages 2026-04-13 10:45:58 +05:30
Abhinav Raut 0d9196b269 Add color customization for live chat launcher 2026-04-13 04:16: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 d804e365cb Fix continuity email tracking to not reset contact_last_seen_at and exclude continuity messages from unread count 2026-04-13 00:59:16 +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 edb65650d9 Fix incorrect unread message count when a continuity message is auto sent in conversation
Remove dead widget code
Add config.toml to goreleaser
2026-04-12 03:18:47 +05:30
Abhinav Raut 8846ede8c7 standardize project name to lowercase "libredesk" across documentation, UI, and codebase.
Vue router console warning fixes
2026-04-10 16:33:27 +05:30
Abhinav Raut 0305fecaf0 Add csat uuid as available param to CSAT request template 2026-04-09 17:03:52 +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 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