Abhinav Raut
dbf4d3a0a6
Fix inline image media not linking on S3 presigned URLs
...
Also simplify the inline-image helpers: one <img src> matcher plus stringutil.ExtractUUID, instead of two combined regexes with offset math.
2026-05-14 22:36:11 +05:30
Abhinav Raut
534771e94e
Save inline image cid refs instead of urls in DB to survive url expiry
2026-05-14 17:07:11 +05:30
Abhinav Raut
0be4a48b9c
Generate thumbnails for extensionless images with magic byte detection
2026-05-14 17:06:35 +05:30
Abhinav Raut
b72dad7cc7
Swap lightbox to lib, force-download via query param, link inline media on insert
2026-05-14 17:06:35 +05:30
Abhinav Raut
4ab1885e5e
Harden inline image embed
2026-05-14 17:06:35 +05:30
Abhinav Raut
35bdf02002
Drop replaceCIDInContent, keep PR scoped to image resize UX
2026-05-14 17:06:35 +05:30
Abhinav Raut
acda125ad6
Refactor inline images PR for project conventions
2026-05-14 17:06:35 +05:30
Matthew Campbell
b96a9c599a
Inline images, lightbox, and attachment UX
...
Paste/drop to upload images in the editor with drag-resize handles and a
size toolbar. Image attachments open in a lightbox with zoom/pan and
keyboard navigation. File attachments get type-specific icons and a PDF
preview pane.
Outgoing email inlines images as multipart/related CID parts so
recipients see them even if our /uploads/ URLs later expire or the
server is unreachable. Orphan uploads (pasted into the reply before the
message is persisted) are embedded too; cross-conversation references
are still rejected.
Also tightens replaceCIDInContent HTML safety and scopes the uploads
URL regex to <img src> attributes only.
2026-05-14 17:06:35 +05:30
Abhinav Raut
ab05d6abad
fix ws client leak when conn dies between ping writes
2026-05-12 11:43:57 +05:30
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