Commit Graph

541 Commits

Author SHA1 Message Date
Abhinav Raut 66d8c3580c fall back to image preview for inline-image-only messages 2026-05-17 17:35:31 +05:30
Abhinav Raut b014d0d9a5 resolve inline image cids on send-message response, revert f841a81f 2026-05-15 17:39:04 +05:30
Abhinav Raut f841a81f1e skip cid rewrite for private notes 2026-05-15 16:48:15 +05:30
Abhinav Raut b5000c7bc4 skip auto-reply and csat send when contact has no email 2026-05-15 16:16:32 +05:30
Abhinav Raut f6a4ad537f fix auto-replies and csat fanning out to last message's cc list
Both now send to the contact only and carry meta.is_automated so the
reply-box prefill skips them and inherits CCs from the last human message.
2026-05-15 16:16:32 +05:30
Abhinav Raut c1f80d93cb Fix: persist drafts with inline-only images
Increase orphan media GC duration to 7 days as some drafts might need them
2026-05-15 16:15:40 +05:30
Abhinav Raut b6dd5f08dc Merge pull request #316 from abhinavxd/fix/key-rotation
Don't fatal on encryption_key rotation
2026-05-15 10:44:23 +05:30
Abhinav Raut 3e1c6471ea Scope encryption_key rotation fix to boot path 2026-05-15 10:36:13 +05:30
Abhinav Raut 0abd96fb70 Fix quoted image resolution 2026-05-15 02:47:30 +05:30
Abhinav Raut 7c949e653c Don't fatal on encryption_key rotation 2026-05-15 02:39:07 +05:30
Abhinav Raut 793c3d2f3f Fix quoted-reply inline images returning no signed URL 2026-05-15 00:44:12 +05:30
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