Commit Graph

632 Commits

Author SHA1 Message Date
Abhinav Raut 08e6801fc4 polish widget UI and fix proactive message delete
Widget:
- home background stays pinned while the content scrolls, fade sits on it
- one radius and shadow scale across cards, buttons and inputs
- live search in the help tab with a "no results" state
- attachment-only messages show "Image" in the conversation preview
- launcher and panel use the same shadows as the header

Admin:
- preview column is a fixed width so zoom does not resize it, hidden on small screens
- preview matches the real widget again
- search spinner replaces the magnifier instead of covering the page

Fixes:
- deleting a proactive message did nothing, the dialog cleared the pending
  id before the handler read it
- an inbox created through the API could not be saved from the form, it
  jumped to the pre-chat tab with no error

Adds livechatWidgetTabs.cy.js covering the proactive message and help
center tabs.
2026-09-20 18:48:51 +05:30
Abhinav Raut f6f1bb4ad1 show helpcenter article as is inside the widget. adds new ?embed query param that shows the entire helpcenter in embed mode 2026-09-19 03:58:04 +05:30
Abhinav Raut d2dc51b734 link article translations by group id and tidy the widget chat
Move the translation_group_id migration into v2.9.0 and drop the slug backfill. Existing articles each get their own group and admins link translations from the new UI. The public article page now builds its language links from the group instead of the slug, so translations with different slugs no longer 404.
2026-09-19 02:13:13 +05:30
Abhinav Raut 0ee2e9e86b merge main 2026-09-19 01:39:24 +05:30
Abhinav Raut 00c758f894 Merge pull request #620 from abhinavxd/feature/agent-ai-tools
Custom AI tools to copilot and generate reply with human approval
2026-09-19 01:37:11 +05:30
Abhinav Raut a1117ac5fe send the AI agent's last reply before handing off to a human
The handoff tool used to reassign the conversation right away, so the
assistant's own reply was dropped and the customer saw nothing. It now
records the intent, the reply goes out, then the handoff runs.
2026-09-19 01:34:43 +05:30
Abhinav Raut a85d59add9 always send verified for agent tool calls and tidy the approval UI 2026-09-19 00:39:32 +05:30
Abhinav Raut 769aa32fdf send the real contact verification state to AI tools on agent surfaces 2026-09-18 20:54:38 +05:30
Abhinav Raut aac97e3baf reject a second AI tool run while one waits for approval 2026-09-18 20:44:21 +05:30
Abhinav Raut 8d99740a41 add custom AI tools to copilot and generate reply with an agent approval step 2026-09-18 20:19:52 +05:30
Abhinav Raut 7848551326 fix review findings in widget campaigns and help search 2026-09-18 18:42:15 +05:30
Abhinav Raut 8769e92f0b handle overnight campaign hours 2026-09-18 16:40:47 +05:30
Abhinav Raut 29847f955f keep campaign visitor sessions identified 2026-09-18 16:38:24 +05:30
Abhinav Raut b28f57674f fix quick reply character limits 2026-09-18 16:38:03 +05:30
Abhinav Raut 7d77754b52 improve live chat widget flows
Expand widget conversations with audience-specific forms, AI handoffs, message previews, and help article translations. Keep existing inbox settings compatible and reject invalid live chat configuration.
2026-09-18 16:09:15 +05:30
Abhinav Raut 3843f1e7e9 Merge branch 'main' into libredesk-widget-improvements 2026-09-18 02:55:49 +05:30
Abhinav Raut ccba084d4b Merge remote-tracking branch 'origin/main' into libredesk-widget-improvements 2026-09-18 02:54:09 +05:30
Abhinav Raut ab44d64068 add cursor pagination and search sorting 2026-09-18 02:21:05 +05:30
Abhinav Raut 3d09ad1a2e preserve existing search API responses 2026-09-18 01:20:44 +05:30
Abhinav Raut 9c1e14704f fix campaign reply and poll edge cases, enlarge mobile launcher 2026-09-18 01:05:21 +05:30
Abhinav Raut 9391b50b80 fix search results and pagination 2026-09-17 02:29:30 +05:30
Abhinav Raut 608eefb76d Merge remote-tracking branch 'origin/main' into search-improvements 2026-09-17 02:25:17 +05:30
Abhinav Raut f600e7e9b7 add filters, pagination and richer results to conversation search 2026-09-16 13:01:35 +05:30
Abhinav Raut 89f58904d2 wip: add widget campaigns, help center in widget and transcript download 2026-09-16 02:11:44 +05:30
Abhinav Raut 6655a9fcb0 fix reply alerts and browser push subscriptions
Send every reply alert while batching email for five minutes. Keep shared browser subscriptions tied to the signed-in agent.
2026-09-16 00:16:12 +05:30
Abhinav Raut ced1a8bee5 add per-agent notification preferences and browser push 2026-09-15 12:31:27 +05:30
Abhinav Raut 2b3b9a4ce4 Merge pull request #602 from anvme/fix/csat-error-leak
fix: don't render raw driver errors on CSAT submit
2026-09-14 18:49:46 +05:30
Abhinav Raut 6487b6b242 remove over-explanatory CSAT comments 2026-09-14 18:47:46 +05:30
Stanislaw cdfe81155f fix: don't render raw driver errors on CSAT submit
handleUpdateCSATResponse rendered err.Error() directly, so submitting a form
to a malformed UUID leaked the raw Postgres error to the page. Show a generic
message and only surface known envelope.Error messages.
2026-09-14 15:02:59 +02:00
Stanislaw 852dbfe7e1 fix: truncate CSAT feedback by runes to preserve valid UTF-8
Feedback was sliced by bytes at maxCsatFeedbackLength, which could split a
multibyte character and produce invalid UTF-8. Postgres then rejects the row
and the entire submission fails, losing the rating too. Truncate by runes.
2026-09-14 15:02:59 +02:00
Abhinav Raut 93df6c8bf3 Merge pull request #492 from pat-s/agent/sso-only-auth
feat(auth): add SSO-only login mode
2026-09-09 01:32:18 +05:30
Abhinav Raut 32f814757f drop the rationale comment on isLocalLoginEnabled 2026-09-09 01:16:53 +05:30
Abhinav Raut bde1f06ec6 skip the OIDC lookup on login unless local login is disabled and translate the error 2026-09-09 01:14:42 +05:30
Abhinav Raut 34d2a64895 keep prompt content out of the agent prompt list and load it on edit behind ai:manage 2026-09-09 00:45:43 +05:30
Abhinav Raut 30b5d94627 add editor prompts admin page to create, edit and delete AI reply box prompts 2026-09-09 00:33:02 +05:30
Abhinav Raut 52b6658e74 reject duplicate emails when creating a contact and reuse shared i18n keys 2026-09-08 01:44:16 +05:30
Abhinav Raut e8007b67fd Merge remote-tracking branch 'origin/main' into pr-312
# Conflicts:
#	frontend/apps/main/src/components/sidebar/Sidebar.vue
#	frontend/apps/main/src/features/contact/ContactsList.vue
#	internal/user/contact.go
#	internal/user/user.go
2026-09-08 01:29:04 +05:30
Abhinav Raut 8109d1b1d6 filter conversation and message search by read permissions in sql 2026-09-03 00:51:13 +05:30
Abhinav Raut afeb120a5f apply the search limit after the read-permission filter 2026-09-03 00:10:44 +05:30
Abhinav Raut c47e8e0c5b let search callers pass a result limit and show the palette spinner while typing 2026-09-02 23:48:44 +05:30
Abhinav Raut 9c0d242549 rebuild the command palette and add keyboard shortcuts for conversation actions 2026-09-02 15:44:27 +05:30
Abhinav Raut b136346b95 fetch only the edited view's count after saving a view 2026-09-02 01:19:50 +05:30
Abhinav Raut 2ba716cb58 Merge remote-tracking branch 'origin/main' into pr/sidebar-counts
# Conflicts:
#	frontend/apps/main/src/stores/conversation.js
#	internal/conversation/conversation.go
2026-09-02 00:45:50 +05:30
Abhinav Raut 5e22ed3f56 keep the thumbnail name when its upload fails 2026-09-02 00:01:46 +05:30
Abhinav Raut 12bb634b0f Merge remote-tracking branch 'origin/main' into shrink-macro-payloads
# Conflicts:
#	frontend/apps/main/src/features/conversation/ReplyBox.vue
#	frontend/apps/main/src/stores/macro.js
#	frontend/apps/main/src/stores/macro.test.js
#	internal/image/image.go
2026-09-02 00:01:42 +05:30
Abhinav Raut 4aacd20261 keep the upload when the thumbnail fails 2026-09-01 23:07:36 +05:30
Abhinav Raut c934758ca8 cap sidebar view counts and move the count badge into a component 2026-09-01 21:18:48 +05:30
Abhinav Raut c1d613c942 Merge pull request #548 from malpou/fix/oidc-redirect-live-lookup
oidc: resolve redirect URL live so Root URL changes without a restart (preferred option)
2026-08-30 23:48:47 +05:30
Abhinav Raut 60cb85494c Merge pull request #544 from malpou/api/source-id
api: accept source_id on conversation and message endpoints
2026-08-30 23:47:26 +05:30
Abhinav Raut baeade99a6 oidc: always read the redirect URL from settings, drop the session copy 2026-08-30 23:26:34 +05:30