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