Commit Graph

353 Commits

Author SHA1 Message Date
Abhinav Raut 28fa0bad23 add email notif template to schema
- update migration
2026-01-01 14:43:40 +05:30
Abhinav Raut 1aa2d91432 feat: mentions for private notes
- mentioning an agents sends an email to the agent.
- mentioning a team sends an email to to the entire team.
2026-01-01 13:59:34 +05:30
Abhinav Raut d0d3335a70 Merge pull request #209 from abhinavxd/patch-api-1
Patch
2026-01-01 01:47:27 +05:30
Abhinav Raut 186c4c869d fix: check read_team_all before read_team_inbox in EnforceConversationAccess
read_team_all is a superset that grants access to all team conversations.
  It should be checked first so users with this permission can access any conversation assigned to their team, regardless of user assignment.
2025-12-31 15:39:37 +05:30
Abhinav Raut 532cd7f563 feat(navigation): add pluralization for navigation items
feat: make data table item names clickable.

fix(conversation): focus reply box editor on conversation change

fix(conversation): focus editor on tab change in ReplyBoxContent

fix(conversation): update conversation list item to use router-link

fix(conversation): update message bubble to use router-link for author

fix(conversation): update last interaction fields on message insert

fix(conversation): add last interaction fields to conversation model

fix(conversation): update SQL queries to include last interaction fields

feat(migrations): add migration for last interaction fields in conversations

fix(schema): update schema to include last interaction fields in conversations
2025-12-31 12:34:04 +05:30
Abhinav Raut b7d5ee0952 fix: add prompt=consent for Google to make sure we get refresh token everytime 2025-12-31 03:02:23 +05:30
Abhinav Raut 0c766323a1 update authorization URL to prompt for account selection 2025-12-29 01:34:57 +05:30
Abhinav Raut 914bcc1f87 simplify stale draft deletion sql 2025-12-27 17:38:33 +05:30
Abhinav Raut 957f945ee6 update sort order for shared view list. 2025-12-27 15:58:02 +05:30
Abhinav Raut 79f1a23192 sort user views by name 2025-12-27 15:57:02 +05:30
Abhinav Raut 9c17f98d73 show subject instead of contacts name in previous conversation list
allow previous conversation timestamps to wrap
2025-12-27 14:26:03 +05:30
Abhinav Raut ddddf04fb6 feat: Shared views for agents and specific teams and admin pages to manage shared views.
- Log activity for password set and role permission changes.
- Fix agent permissions not changing when a role is modified / deleted.
2025-12-27 13:57:21 +05:30
Abhinav Raut 064a73ba4b feat: add conversations:read_team_all permission to allow agents to see conversations assigned to their team, regardless of whether an agent is assigned or not.
- Allow all SLAs to be fetched without permission checks.

Ref #203
2025-12-26 19:57:45 +05:30
Abhinav Raut c62294aaef feat: Make convo panels resizable
- add new report/overview metrics
2025-12-26 04:52:30 +05:30
Abhinav Raut 7847364933 set automation queue size to 10k 2025-12-26 03:57:24 +05:30
Abhinav Raut f165f0e6ef remove appending ref number to agent reply mail subjects 2025-12-26 03:30:12 +05:30
Abhinav Raut 7ac483d043 handle converastion not found errors while fetching conversations fetched using uuids from the to plus address 2025-12-26 03:22:25 +05:30
Abhinav Raut 27d929c302 refactor add util funcs to extract conversation uuid from to address 2025-12-26 03:15:07 +05:30
Abhinav Raut 5fd6bbdae8 remove unused struct field 2025-12-26 03:04:38 +05:30
Abhinav Raut a63c073c15 fix strip conversation uuid from receipient address as it could be the inbox email with plus variant
- adds test cases for util functions that strip inbox email.
- update make file to include frontend unit tests
2025-12-24 16:08:25 +05:30
Abhinav Raut 096bc87016 Feat: add plus-addressing for conversation matching on incoming emails 2025-12-24 16:08:25 +05:30
Abhinav Raut 895a74b3b8 encrypt ai provider keys
- add flow types to oauth inboxes to prevent accidental updates
2025-12-24 16:08:25 +05:30
Abhinav Raut 22af66c44d Feat: match incoming messages to conversations using reference number in the subject.
refactor: update GetConversation method to include reference number parameter
2025-12-24 16:08:25 +05:30
Abhinav Raut e4f260e3f4 fixes for msft email provider 2025-12-24 16:08:25 +05:30
Abhinav Raut b7103b24ef show oauth callback error / success messages as toast.
Add logs for errors and minor refactor
2025-12-24 16:08:25 +05:30
Abhinav Raut c7f1f23c0b fix deadlock on token refresh 2025-12-24 16:08:25 +05:30
Abhinav Raut 44554118f2 fix do dot encrypt client id
remove superfluous arg
set default imap scan interval to 5 mins
2025-12-24 16:08:25 +05:30
Abhinav Raut 5c1d0af971 fix: handle error when marshalling decrypted app settings 2025-12-24 16:08:25 +05:30
Abhinav Raut 94202e22bd refactor: update OAuth flow to use Redis for state management instead of storing it in session
- Replace Google logo with SVG
2025-12-24 16:08:25 +05:30
Abhinav Raut 0a70204731 refactor and clean up remove uncessary token refresh on init of email inbox 2025-12-24 16:08:25 +05:30
Abhinav Raut 2a238a719e -fix email notifications not working.
- reload app settings when notification settings are changed to trigger admin banner prompting user to restart app
- remove unncessary dummy password check before retaining passwords as an empty password check is enough.
2025-12-24 16:08:25 +05:30
Abhinav Raut 4de936da22 remove omitempty from tags
remove unused fn
2025-12-24 16:08:25 +05:30
Abhinav Raut 5c364fb954 fix oauth credentials not being saved correctly , refactor use exisitng oauth pkg for oauth functionalities 2025-12-24 16:08:25 +05:30
Abhinav Raut f3ddc26512 wip inbox oauth and encryption 2025-12-24 16:08:25 +05:30
Abhinav Raut 34888ce226 refactor: update draft handling to retrieve all drafts for a user instead of fetching drafts per convo on click. 2025-12-24 13:19:25 +05:30
Abhinav Raut b0c5003103 Delete drafts when there's no meaningful content in them.
- show `pencil` icon in conversations if they have draft.
- auto-delete drafts if draft has empty content
2025-12-24 02:19:46 +05:30
Abhinav Raut 36e03c14d7 Merge branch 'main' into fix/reply-draft-persistence 2025-12-24 00:32:52 +05:30
Abhinav Raut c160210853 fix: ensure draft cleaner runs only with a positive retention period 2025-12-21 23:42:05 +05:30
Abhinav Raut 6bcc16e541 feat: along with editor content also save attachments and macro actions in drafts 2025-12-21 23:37:33 +05:30
Abhinav Raut cf67b9679d add missing migrations
check if drafts are dirty before saving draft
2025-12-21 21:04:43 +05:30
Abhinav Raut 159e8ae576 fix errors while fetching draft on conversation without any saved drafts 2025-12-21 20:27:30 +05:30
Abhinav Raut 2707231f9b add draft retention policy with automatic cleanup of stale drafts 2025-12-21 19:23:01 +05:30
Abhinav Raut d80474023b remove unncessary enforceconversation access in delete and get convo draft 2025-12-21 19:11:28 +05:30
Ubuntu 0a5e5de544 fix: Handle NULL password field for imported contacts
Change Password field from string to null.String in User model to properly
handle contacts imported from external systems (e.g., Magento) that have
NULL passwords in the database.

Previously, fetching contacts with NULL passwords caused a SQL scan error:
"sql: Scan error on column index 4, name \"password\": converting NULL to
string is unsupported"
2025-12-17 12:25:58 +00:00
csr4422 e6bafb20a6 feat: implement draft manager methods 2025-12-16 13:37:39 +05:30
csr4422 cd8c5ab119 add ConversationDraft model 2025-12-16 13:30:16 +05:30
Abhinav Raut 59dd3dcda7 fix: make conversation last seen timestamp and unread counts per agent, right now its global.
adds new table `conversation_last_seen`
Migrations for v0.8.5

Remove col `assignee_last_seen_at` from schema
2025-12-13 01:22:59 +05:30
csr4422 08254178f1 Add database queries for draft CRUD operations 2025-12-10 19:29:10 +05:30
vldmkr 532ae1f7d1 feat(imap): enhance searchMessages to fallback to standard SEARCH on ESEARCH failure 2025-12-08 14:14:49 +02:00
Abhinav Raut d4420cff7d feat(imap): add fallback for servers without ESEARCH support
Check ESEARCH capability before using extended search options. For
servers that don't support ESEARCH, fall back to using sequence
numbers from AllSeqNums() instead of Min/Max range.

Ref #181
2025-12-01 01:34:07 +05:30