Commit Graph

412 Commits

Author SHA1 Message Date
Abhinav Raut 3e7756a8b0 fix: correct config keys for socket and draft retention 2026-05-29 22:18:36 +05:30
Abhinav Raut c8a5717b43 fix: filter search results by conversation read permission
Auto focus on search input
Trim search responses to 200 chars as more's not needed.
2026-05-28 21:38:57 +05:30
Abhinav Raut 29881f2f82 fix: close ws stale-perm gaps and resub on reconnect
Reject disabled agents in FilterAuthorizedListUUIDs, kick role members on
permission removal or role delete, and re-sub the list and open conv on
ws reconnect using local state. Also plug the app logger into the ws
package so kicks no longer log when no connections exist.
2026-05-28 20:07:19 +05:30
Abhinav Raut 743b00ee22 fix: address PR review across stores, ws broadcast, and sticky scroll 2026-05-28 18:32:16 +05:30
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 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 ee4ddae407 fix: log team-member fetch errors during cache invalidation 2026-05-21 21:44:25 +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 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 b15c776142 update migration to version 2.3.0 2026-05-18 18:56:31 +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
Abhinav Raut 7b1256a249 bump frontend deps and tighten image upload validation 2026-05-18 01:51:13 +05:30
Abhinav Raut b014d0d9a5 resolve inline image cids on send-message response, revert f841a81f 2026-05-15 17:39:04 +05:30
Jonathan Leroy e0f362c14e Migrate DB to the new locale format 2026-05-15 09:21:59 +02:00
Jonathan Leroy 8283b4e917 Update languages codes to include regions names and set default language to
"en-US"
2026-05-15 07:09:51 +02:00
Abhinav Raut 0abd96fb70 Fix quoted image resolution 2026-05-15 02:47:30 +05:30
Abhinav Raut 123b809be4 Address review feedback on bulk actions 2026-05-14 20:06:56 +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 74189f84fb reduce websocket message channel buffer size from 10000 to 256 2026-05-12 15:48:10 +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 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 8579570890 fix inbox form binding wait_timeout to wrong key, never persisting SMTP pool wait timeout 2026-04-23 14:53:20 +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 3ba8ab0a8d prevent idle detection from overwriting away_manual/away_and_reassigning 2026-04-21 22:40:10 +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 5bbd0f7c8d Increase default rate limits 2026-04-21 18:06:52 +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 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 785c989a6b Flatten continuity config into [conversation] as continuity_scan_interval 2026-04-17 00:03:37 +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 286d409a74 Cap lengths on JWT/form name/email and restrict JWT user_id to contact or visitor 2026-04-16 03:27:50 +05:30
Abhinav Raut a8a6a97814 Prevent stored XSS via SVG uploads 2026-04-16 03:13:45 +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 5e7575b08e Add inbox validation to conversation access control 2026-04-16 02:52:01 +05:30
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