Abhinav Raut
ea93e5efa9
update agent approval hint for AI tools to clarify data change requirements
2026-09-19 00:11:13 +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
2221f95804
Merge pull request #607 from abhinavxd/agent-notification-preferences
...
add per-agent notification preferences
2026-09-17 00:34:53 +05:30
Abhinav Raut
ba349158bc
add notification settings link
2026-09-17 00:31:44 +05:30
Abhinav Raut
75ab05cc5f
show a loader while notification settings load
2026-09-16 23:07:37 +05:30
Abhinav Raut
635ce63b78
fix browser notification persistence
2026-09-16 12:39:05 +05:30
Abhinav Raut
43c007ef9e
improve notification previews and editor AI
...
Show the latest reply in alerts without quoted email history. Share AI prompts across conversation editors and clarify browser notification settings.
2026-09-16 01:54:35 +05:30
Abhinav Raut
ef53a48106
revert chagnes to render.go
2026-09-16 01:43:39 +05:30
Abhinav Raut
6fd04dee1b
remove message time from email queue
2026-09-16 00:31:04 +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
f07ccd7970
prevent overlapping notification preference saves
2026-09-15 17:54:02 +05:30
Abhinav Raut
ced1a8bee5
add per-agent notification preferences and browser push
2026-09-15 12:31:27 +05:30
Abhinav Raut
9016466fb7
Merge pull request #452 from IzzaldinSamir/patch-1
...
Fix: Ensure email text visibility in Dark Mode (#449 )
2026-09-15 00:52:01 +05:30
Abhinav Raut
d8041240c8
apply email light canvas only for email channel conversations
2026-09-15 00:16:03 +05:30
Abhinav Raut
4f291fee31
Merge remote-tracking branch 'origin/main' into patch-1
2026-09-15 00:12:02 +05:30
Abhinav Raut
42f7bb7b97
Merge pull request #603 from anvme/fix/csat-double-submit
...
fix: prevent duplicate CSAT submissions under concurrency
2026-09-14 18:50:04 +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
5fdf79ffa7
Merge pull request #601 from anvme/fix/csat-feedback-utf8
...
fix: truncate CSAT feedback by runes to preserve valid UTF-8
2026-09-14 18:49:20 +05:30
Abhinav Raut
6487b6b242
remove over-explanatory CSAT comments
2026-09-14 18:47:46 +05:30
Abhinav Raut
349519a6ec
Merge pull request #578 from pmslava/list-priority
...
Conversation list: show a priority marker on each row
2026-09-14 18:39:54 +05:30
Abhinav Raut
a870722c53
use ladders for priority market
2026-09-14 18:35:55 +05:30
Stanislaw
7388ab9c65
fix: prevent duplicate CSAT submissions under concurrency
...
The pre-check on response_timestamp was a read-then-write race: concurrent
submits all passed it and all wrote. Guard the UPDATE with
response_timestamp IS NULL and treat a zero-row update as already submitted.
2026-09-14 15:03:17 +02:00
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
411ea027f0
Merge pull request #594 from abhinavxd/dependabot/npm_and_yarn/frontend/vitest-4.1.11
...
Bump vitest from 4.1.0 to 4.1.11 in /frontend
2026-09-14 14:03:10 +05:30
dependabot[bot]
6e039e27f5
Bump vitest from 4.1.0 to 4.1.11 in /frontend
...
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest ) from 4.1.0 to 4.1.11.
- [Release notes](https://github.com/vitest-dev/vitest/releases )
- [Changelog](https://github.com/vitest-dev/vitest/blob/main/docs/releases.md )
- [Commits](https://github.com/vitest-dev/vitest/commits/v4.1.11/packages/vitest )
---
updated-dependencies:
- dependency-name: vitest
dependency-version: 4.1.11
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-10 21:19:09 +00:00
pmslava
302bbd21f5
conversation: show a priority marker on conversation list rows
...
The list showed no priority at all, so an agent scanning the inbox could not tell a
High-priority conversation from the rest without opening it - which matters when an
automation rule raises priority for paying customers. Each row now carries a small
coloured dot in the metadata cluster next to the channel icon and the relative time,
using the semantic tokens the rest of the desk uses for urgency: destructive for High,
warning-600 for Medium, muted-foreground for Low, and muted-foreground for any priority
an install has renamed. The dot is a tooltip trigger and carries an aria-label, both
reading "Priority: <name>", and rows whose priority is unset render nothing. The
mapping lives in one small PriorityDot component so any future priority display stays
consistent with it. No backend change was needed: the get-conversations query already
selects conversation_priorities.name as priority, ConversationListItem already carries
it, and a priority change is broadcast over the websocket and merged into the list row.
2026-09-09 00:16:22 +02:00
Abhinav Raut
b5c4a30805
Update 2FA status and conversation reports in roadmap
2026-09-09 01:34:36 +05:30
Abhinav Raut
2c1aa922a8
Update roadmap with new features and statuses
2026-09-09 01:33:53 +05:30
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
920ac2c495
Merge pull request #577 from abhinavxd/ai-prompts-crud
...
CRUD for editor ai prompts.
2026-09-09 01:01:33 +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
b35fc839cc
Change translation contribution process to Crowdin
...
Updated translation contribution guidelines to use Crowdin.
2026-09-09 00:40:50 +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
70c86060b0
Merge pull request #572 from abhinavxd/contacts-toolbar-layout
...
move new contact button to the right of the contacts toolbar
2026-09-08 02:16:08 +05:30
Abhinav Raut
7b72e44f15
move new contact button to the right of the contacts toolbar
2026-09-08 02:12:03 +05:30
Abhinav Raut
251f2bf7d0
Merge pull request #312 from Gumbraise/feat/add-contact-form-and-api-route
...
Implement create contact functionality
2026-09-08 02:08:13 +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
85a1b477f6
Merge pull request #475 from fredrikblau/feat/private-note-ticket-links
...
Add conversation reference links to private notes
2026-09-06 01:30:42 +05:30
Abhinav Raut
c1b999b014
fix stale searches and mention email links
2026-09-06 01:29:26 +05:30
Abhinav Raut
3bf997f99b
Merge pull request #559 from abhinavxd/dependabot/npm_and_yarn/frontend/qs-6.16.0
...
Bump qs from 6.15.2 to 6.16.0 in /frontend
2026-09-03 13:22:02 +05:30
dependabot[bot]
908f3413fe
Bump qs from 6.15.2 to 6.16.0 in /frontend
...
Bumps [qs](https://github.com/ljharb/qs ) from 6.15.2 to 6.16.0.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/ljharb/qs/compare/v6.15.2...v6.16.0 )
---
updated-dependencies:
- dependency-name: qs
dependency-version: 6.16.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-03 06:28:57 +00:00
Abhinav Raut
e1c8719580
rename ticket references to conversation references
2026-09-03 11:15:38 +05:30
Abhinav Raut
3d45b5f74f
fix ticket reference parsing, stored links and suggestion popup
2026-09-03 01:43:30 +05:30
Abhinav Raut
dd57a86374
Merge pull request #556 from abhinavxd/command-palette
...
rebuild the command palette and add keyboard shortcuts for conversation actions
2026-09-03 01:06:06 +05:30