Commit Graph

1694 Commits

Author SHA1 Message Date
Abhinav Raut ac403791fd improve copilot reply drafts and add presets
Reply drafts are now written in first person as the agent and never offer to escalate, since a human is already handling the conversation. Add quick preset buttons to the copilot panel and reuse a shared transcript helper.
2026-07-12 04:48:29 +05:30
Abhinav Raut ef0add0fff add reasoning effort setting for providers
Add a reasoning effort field to the completion provider config, sent as-is to the model. Reasoning models such as GPT-5.x need it set to "none" to use tools. Also switch to max_completion_tokens.
2026-07-12 04:48:01 +05:30
Abhinav Raut 1343790353 restrict custom tool methods to GET and POST
Limit custom tools to GET and POST and validate the method on save. GET args now go on the query string and POST args in the body. Also stop sending the raw stored secret when its decryption fails, which would leak ciphertext and fail auth confusingly.
2026-07-12 04:47:50 +05:30
Abhinav Raut 0d755fc777 send CSAT on every resolve path
CSAT was only sent when a human resolved from the UI. AI and automation resolves go straight through UpdateConversationStatus and skipped it. Moved the send there so all paths trigger it. It is idempotent and no-ops when the contact has no email.
2026-07-12 04:47:43 +05:30
Abhinav Raut 16c79a2706 guard AI agent replies and add prior-conversation context
The agent now only replies to a turn the primary contact authored, so a CC'd or plus-address participant hands off to a human instead of driving tool calls under the contact's identity. It also asks the customer to confirm before resolving, and can read the contact's other recent conversations for context.
2026-07-12 04:47:36 +05:30
Abhinav Raut 7186c95e40 add WIP autonomous AI agent that replies to assigned conversations
Medium (title + short body):
add WIP autonomous AI agent

New internal/aiagent package runs AI assistants that reply to customers
on conversations assigned to them, grounded on a knowledge base. Also mines
resolved conversations for FAQ suggestions. Adds admin UI and the v2.7.0
schema. Still work in progress.
2026-07-11 04:54:49 +05:30
Abhinav Raut 0ecd783941 add AI copilot backed by a knowledge base and custom tools
Adds two agent-facing AI features: a copilot chat panel in the conversation
sidebar and a generate-reply button in the reply box. Both run an agentic
tool-calling loop whose first tool searches the knowledge base.

Snippets are chunked and embedded on save, then searched in memory with
brute-force cosine similarity (no pgvector). Providers are split into completion
and embedding types. Both are OpenAI-compatible and the API key is encrypted at
rest. Admins can also register custom HTTP tools the model can call.

A new admin AI settings page covers provider config, snippets, and tools. The
v2.6.0 migration and schema add the ai_knowledge_base, embeddings, and ai_tools
tables plus the ai_providers type column.
2026-07-10 15:51:27 +05:30
Abhinav Raut e38facf750 Merge pull request #410 from abhinavxd/convo-list-sla-draft-fixes
make SLA badges react to prop changes and hide draft label on open conversation
2026-07-10 00:42:41 +05:30
Abhinav Raut 9ce7feded0 make SLA badges react to prop changes and hide draft label on open conversation 2026-07-10 00:28:36 +05:30
Abhinav Raut 0fa00cf10d Merge pull request #408 from abhinavxd/jwt-phone-country-code
accept phone country code in livechat JWT auth
2026-07-09 23:32:01 +05:30
Abhinav Raut 526d6abd50 Merge pull request #409 from abhinavxd/assign-nudge-permission-check
hide assign-to-me nudge when agent lacks assignee permission
2026-07-09 23:31:38 +05:30
Abhinav Raut 57481de4e3 Merge pull request #407 from abhinavxd/draft-attachment-preview
show attachment type in draft preview when there is no draft text
2026-07-09 23:31:33 +05:30
Abhinav Raut fc71d30b8a accept phone country code in livechat JWT auth 2026-07-09 23:15:05 +05:30
Abhinav Raut 99492cc4fe hide assign-to-me nudge when agent lacks assignee permission 2026-07-09 22:42:28 +05:30
Abhinav Raut 2de3038d07 show attachment type in draft preview when there is no draft text 2026-07-09 22:20:50 +05:30
Abhinav Raut e3d5d46fb3 Merge pull request #406 from abhinavxd/livechat-phone-field-and-ui-fixes
Livechat phone field and UI fixes
2026-07-09 02:35:11 +05:30
Abhinav Raut 8a8d372a70 use one phone field in livechat JWT and fix phone validation 2026-07-09 02:27:08 +05:30
Abhinav Raut e56e3d3b0f use distinct icons for online, away and offline status dots 2026-07-09 01:50:20 +05:30
Abhinav Raut 8f658f274d add livechat pre-chat phone field and fix default launcher logo 2026-07-09 01:49:38 +05:30
Abhinav Raut e9a7269c3f Merge pull request #404 from abhinavxd/harden-contact-create-and-drop-away-on-login
Harden contact create, drop set-away-on-login, make status dots color blind safe
2026-07-08 13:16:45 +05:30
Abhinav Raut 9b5326c689 normalize email before validating create conversation request 2026-07-08 13:14:22 +05:30
Abhinav Raut 4dabc84a33 harden contact create, drop set-away-on-login, make status dots colorblind-safe 2026-07-08 12:14:36 +05:30
Abhinav Raut 4020829d66 Merge pull request #403 from abhinavxd/add-novalidate-remaining-forms
add novalidate to remaining vee-validate forms
2026-07-08 01:58:17 +05:30
Abhinav Raut 3bf95aeac1 add novalidate to remaining vee-validate forms 2026-07-08 01:44:29 +05:30
Abhinav Raut 08ed665e00 Merge pull request #402 from abhinavxd/fix-livechat-form-native-validation
fix livechat form submit silently failing on invalid url/number fields
2026-07-08 01:33:58 +05:30
Abhinav Raut d6f44a3c61 fix livechat form submit silently failing on invalid url/number fields 2026-07-08 01:32:58 +05:30
Abhinav Raut 2bfe242933 Merge pull request #261 from josephsellers/delete-private-notes
delete pvt notes
2026-07-08 01:09:59 +05:30
Abhinav Raut 60ebefebdc fix edge cases in private note soft-delete 2026-07-08 01:00:24 +05:30
Abhinav Raut 43b43a82ef Merge branch 'main' into delete-private-notes 2026-07-08 00:47:28 +05:30
Abhinav Raut d696b53c80 soft-delete private notes with a tombstone instead of removing them 2026-07-08 00:43:29 +05:30
Abhinav Raut 5a826b9c14 Merge pull request #399 from abhinavxd/reply-box-per-type-drafts
Reply box per type drafts
2026-07-08 00:26:21 +05:30
Abhinav Raut adeb4eee27 swap private-note delete to a hover 3-dot menu with confirm dialog 2026-07-07 23:55:37 +05:30
Abhinav Raut 9e0c1f332d Merge branch 'main' into delete-private-notes 2026-07-07 23:37:05 +05:30
Abhinav Raut bde6f019dc Merge pull request #401 from abhinavxd/fix-dark-highlight-css-leak
fix dark-mode mention highlight leaking a yellow background
2026-07-07 23:34:51 +05:30
Abhinav Raut dc882e033a Merge pull request #260 from josephsellers/contact-name-upsert
Fix: update contact names on upsert instead of discarding them
2026-07-07 23:34:29 +05:30
Abhinav Raut 8268221ea2 fix dark-mode mention highlight leaking a yellow background onto every .dark element 2026-07-07 23:26:57 +05:30
Abhinav Raut 1d7bc67ebf stop sent drafts from coming back after a failed or reordered sync 2026-07-07 23:11:45 +05:30
Abhinav Raut 186502a4f8 open the reply/note tab matching the conversation's last-used draft 2026-07-07 22:57:50 +05:30
Abhinav Raut 0ae9232410 Merge pull request #400 from ahfoysal/fix-assignment-notification-read
Mark assignment notifications read on ticket action
2026-07-06 23:52:55 +05:30
ahfoysal 27e8efb27b fix: update assignment notification state in UI 2026-07-06 16:47:20 +06:00
ahfoysal f4f8db81d9 Mark assignment notifications read on action 2026-07-06 13:32:16 +06:00
Abhinav Raut 8a68ae34a9 fix flaky reply e2e and stop draft load from wiping in-progress input 2026-07-05 23:22:50 +05:30
Abhinav Raut 79b764944a fix attachments and macros leaking across reply and private note drafts 2026-07-05 20:26:58 +05:30
Abhinav Raut ee7b829ff2 Merge branch 'main' into reply-box-per-type-drafts 2026-07-05 20:12:44 +05:30
Abhinav Raut 3feecf4296 Merge pull request #394 from abhinavxd/minor-improvements
add livechat widget preview and misc improvements
2026-07-05 20:09:25 +05:30
Abhinav Raut 0949761d04 fix contrast threshold and cache invalidation order on login 2026-07-05 20:03:31 +05:30
Abhinav Raut 0660ae4e3c Merge pull request #396 from abhinavxd/dependabot/go_modules/golang.org/x/image-0.41.0
build(deps): bump golang.org/x/image from 0.38.0 to 0.41.0
2026-07-05 19:07:42 +05:30
Abhinav Raut 5166358301 move isValidDraftType to bottom of file 2026-07-05 18:42:33 +05:30
Abhinav Raut 18027bc0e3 fix draft races by making the store the single source of truth 2026-07-05 18:42:17 +05:30
dependabot[bot] 6eabd8aa1f build(deps): bump golang.org/x/image from 0.38.0 to 0.41.0
Bumps [golang.org/x/image](https://github.com/golang/image) from 0.38.0 to 0.41.0.
- [Commits](https://github.com/golang/image/compare/v0.38.0...v0.41.0)

---
updated-dependencies:
- dependency-name: golang.org/x/image
  dependency-version: 0.41.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-03 12:38:48 +00:00