Commit Graph

561 Commits

Author SHA1 Message Date
Abhinav Raut 0654e3bd2f fix: skip empty incoming attachments; assign team/agent before running post message hooks this allows automations to see the conversations assigned agent & team. 2026-05-27 00:24:27 +05:30
Abhinav Raut 0a0500f29a refactor: fold widget availability broadcast into BroadcastAgentAvailability 2026-05-26 00:21:15 +05:30
Abhinav Raut 2874e78e97 fix: mark-unread no-op when latest message is a continuity email 2026-05-25 01:59:56 +05:30
Abhinav Raut 183c83b5e6 fix: prod crash from private methods, plus PR #336 review fixes 2026-05-22 21:29:57 +05:30
Abhinav Raut a502039e59 perf: WS push for conv list, store/cache cleanups, ad-hoc UI polish
Convs and messages now push the full list-row payload to perm-authorized agents on create/assign/message, so livechat returning customers bubble up instantly without waiting for the timer refresh. Background list refresh bumped 30s ->  60s as a drift safety net.
2026-05-22 20:47:36 +05:30
Abhinav Raut edc82e9e55 refactor: drop Casbin, centralize agent cache invalidation, dedupe pending SLAs 2026-05-21 21:24:42 +05:30
Abhinav Raut 33572efa04 fix: address WS PR review - stale cache retry, livechat buffer, last_active TOCTOU 2026-05-21 00:46:43 +05:30
Abhinav Raut 7a8efcde16 fix: widget ping interval, last_active flush, ws ping error, slim new_message payload 2026-05-21 00:13:33 +05:30
Abhinav Raut 43ebed1c3a WS rewrite: per-client subscriptions and perf improvements
Targets broadcasts via per-tab list and open subs (validated at subscribe time)
instead of broadcasting message uuid to all agents. Adds frontend list typing, throttled sound,
and many perf improvements to reduce cpu memory & database queries.
Other fixes: Enforce message-to-conversation binding in handleGetMessage
2026-05-20 23:42:07 +05:30
Abhinav Raut 4e13e72cc3 fix: harden media + conversation queries against empty-uuid casts 2026-05-19 14:13:56 +05:30
Abhinav Raut 5f0fed695f fix: make CSAT template insert idempotent in v2.0.0 migration 2026-05-19 11:03:48 +05:30
Abhinav Raut b15c776142 update migration to version 2.3.0 2026-05-18 18:56:31 +05:30
Abhinav Raut 4c63152c5b Rename migration file v2.2.2 to v2.3.0 2026-05-18 17:30:29 +05:30
Abhinav Raut c85cb90bef Merge pull request #317 from jleroy/i18n/update-2026-05-15
Update translations [2026-05-15] and add regions names in languages filenames
2026-05-18 15:24:43 +05:30
Jonathan Leroy 06d1c395b0 Migration (v2.2.2): Remove unused "fmt" import 2026-05-18 05:36:50 +02:00
Jonathan Leroy fdf897cc95 Migration (v2.2.2): Use parameterized queries to prevent SQL injection patterns 2026-05-18 03:05:47 +02:00
Abhinav Raut 7b1256a249 bump frontend deps and tighten image upload validation 2026-05-18 01:51:13 +05:30
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
Jonathan Leroy 41b5a7d7ef Fix varible assignment 2026-05-15 09:38:49 +02:00
Jonathan Leroy e78f68221d Fix missing import 2026-05-15 09:28:52 +02:00
Jonathan Leroy e0f362c14e Migrate DB to the new locale format 2026-05-15 09:21:59 +02:00
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