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
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
66cf21731f
dedupe page visits for widget
2026-04-13 00:33:59 +05:30
Abhinav Raut
c798c676a5
Hide server-side security fields in chat settings response and adjust iframe border radius
2026-04-12 23:17:11 +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
588c364821
Include visitor name in chat init response
...
Fixes for correctly conversations and messages
Rename establishSession to saveSess
2026-04-12 16:17:10 +05:30
Abhinav Raut
fd750b8cf4
Add tag importer with file similar to agent import.
...
Update help text across many admin sections for clarity
2026-04-09 15:35:29 +05:30
Abhinav Raut
a327ca69a7
Add new csat widget that just accepts
2026-04-09 13:55:39 +05:30
Abhinav Raut
de740245c1
Simplify custom static dir to single mapping that mirrors built-in static/ structure
2026-04-09 00:24:05 +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
14b29a7063
Resolve inline image CID references in message API responses instead of letting the api consumer handle it.
...
Fix make file go run cmd
2026-04-07 16:19:19 +05:30
Abhinav Raut
3c3d6a6149
feat: replace widget JWT auth with Redis session tokens and parent-domain cookies Fix iOS Safari session loss by moving storage from iframe localStorage to first-party cookies.
...
Add /auth/exchange, /auth/me endpoints for the same.
Fix duplicate network calls, and agent notification for new conversations.
2026-04-05 18:58:45 +05:30
Abhinav Raut
235afb2b88
Play notification sound when tab is hidden and defer last-seen updates when tab is hidden
...
Update js template rendered to use pipe syntax for fallbacks
2026-04-05 01:51:45 +05:30
Abhinav Raut
02f7c19082
Move trusted domaisn check to middleware
2026-04-04 22:21:34 +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
b34e581616
Skip redundant contact updates when JWT values unchanged
2026-04-04 18:42:44 +05:30
Abhinav Raut
73ea8741a2
Fix dev backend failing to start without the frontend being built.
2026-04-04 18:40:52 +05:30
Abhinav Raut
5a06a90152
Revert minification step for widget.js in production build process as the widget js is already very small and is not needed now
2026-04-04 18:36:36 +05:30
Abhinav Raut
0a9e57dcc5
Revamp live chat widget JS API, use inbox UUID, non-blocking installation
...
Update installation instructions for clarity
Remove unncessary convo custom attribs being passed in JWT tokens for live chat
2026-04-04 18:11:54 +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