Commit Graph
5008 Commits
Author SHA1 Message Date
Pranav 9e8ea5d2f8 Add support for persistent copilot messages and threads 2025-05-12 17:47:20 -07:00
Pranav 543dd1476d Update the UI 2025-05-12 16:02:35 -07:00
Pranav 5f412b0baf Add limit to the conversations 2025-05-12 14:36:29 -07:00
Pranav 98cb3e0bf8 Update empty state ui 2025-05-12 14:21:40 -07:00
Pranav 16b09e8b3f Update the position of panel buttons 2025-05-12 13:52:20 -07:00
Pranav 653c47bd9d Merge branch 'develop' into rethinking-copilot 2025-05-12 12:48:11 -07:00
696611ae63 feat: Add Teleport component to fix RTL/LTR utility classes (#11455)
# Pull Request Template

## Description

This PR introduces a `CustomTeleport` component that wraps Vue's
Teleport to preserve directionality context (ltr / rtl) when teleporting
content outside the app’s root container.

### Problem
Currently, the app sets the text direction (`[dir="ltr"]` or
`[dir="rtl"]`) on a container `div` inside `<body>`, not on `<body>`
itself. When content is teleported directly into `body`, it no longer
inherits the correct direction context. As a result, direction-aware
utility classes like `ltr:pl-2`, `rtl:ml-1`, etc., break because CSS
selectors like `[dir="ltr"] .ltr\:pl-2` no longer match. Identified this
issue when working on this
[PR](https://github.com/chatwoot/chatwoot/pull/11382)

### Solution
The `CustomTeleport` component automatically applies the correct `[dir]`
attribute (`ltr` or `rtl`) on the teleported content's wrapper based on
the current `isRTL` setting from the store. This ensures that
direction-specific Tailwind utility classes continue to work as
expected, even when the content is rendered outside the app root.

## Type of change

- [x] New feature (non-breaking change which adds functionality)


## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [x] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules

---------

Co-authored-by: Pranav <pranavrajs@gmail.com>
2025-05-12 11:49:23 -07:00
Sivin VargheseandGitHub 1b45eb70c9 feat: Add scroll lock on chat list context menu (#11467)
# Pull Request Template

## Description

This PR uses `useScrollLock` from `VueUse` to lock scrolling on the chat
list panel when the context menu is open.

## Type of change

- [x] New feature (non-breaking change which adds functionality)

## How Has This Been Tested?

### Loom video

https://www.loom.com/share/68a25af2c1b149f8bd06bdbaafb4d82d?sid=0984fde6-ade2-405a-afc9-6d8f99480874


## Checklist:

- [x] My code follows the style guidelines of this project
- [x] I have performed a self-review of my code
- [ ] I have commented on my code, particularly in hard-to-understand
areas
- [ ] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [x] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2025-05-12 11:14:11 -07:00
Tanmay Deep SharmaandGitHub d14505d464 fix: add named volumes for storage, postgres, and redis (#11465)
This PR updates docker-compose.production.yaml to simplify volume
management and eliminate host-path mounts that were causing permission
and startup errors.
2025-05-12 17:32:12 +05:30
Pranav 2553888a8b Add support for search_articles 2025-05-11 11:10:03 -07:00
Pranav 115ca2feb0 Update copilot 2025-05-11 10:51:33 -07:00
Pranav 4cd9bcd938 Showing the thought process hidden 2025-05-11 10:28:52 -07:00
Pranav 244780eaa8 Add support for multiple tools in Chatwoot 2025-05-11 10:15:12 -07:00
Pranav 6609f7637a Move conversation fetch as a tool 2025-05-11 01:09:03 -07:00
Pranav 34e929c705 Move copilot to websockets 2025-05-11 00:37:59 -07:00
Chatwoot BotandGitHub 142bae5fa4 chore: Update translations (#11458) 2025-05-10 19:21:34 -07:00
Pranav bcce9cf74b Fix eslint 2025-05-10 19:19:58 -07:00
Pranav 512334ee6b Move copilot to its own controller outside of conversations 2025-05-10 18:57:34 -07:00
Pranav 4b6b1fed71 style: adjust panel buttons positioning and size in conversation view 2025-05-09 14:53:27 -07:00
Pranav 1a07eb50c5 Add floating button for conversations screen 2025-05-09 14:48:02 -07:00
Pranav 50b6c07114 Add support for the uiState 2025-05-09 14:02:38 -07:00
Pranav 939cf61b7c Add support for the uiState 2025-05-09 14:02:24 -07:00
Pranav f12214f782 fix styles for copilot 2025-05-09 13:32:02 -07:00
Pranav 66fcaa5e01 Add copilot to every page 2025-05-09 13:16:27 -07:00
Pranav a06964c0f1 Update styles 2025-05-09 12:16:21 -07:00
Pranav 333c1ca383 Update styles 2025-05-09 12:14:49 -07:00
Pranav fb5cf32734 Change a lot to make it work 2025-05-09 11:52:11 -07:00
Pranav d024120afd Update the tab size 2025-05-09 11:49:45 -07:00
Pranav ec6cb63f02 Update Chat list header 2025-05-09 11:48:37 -07:00
Pranav 58acebc6e3 Reduced the size for conversation card 2025-05-09 11:48:16 -07:00
Pranav 7a60a861f1 Remove copilot from conversation view 2025-05-09 11:03:27 -07:00
Pranav 580d08a033 Remove duplicate copilot 2025-05-09 11:03:02 -07:00
Pranav 5e2678bc6d Use rem instead of px 2025-05-09 11:01:16 -07:00
Pranav dba72e5a95 Merge branch 'develop' into rethinking-copilot 2025-05-09 10:10:19 -07:00
Pranav b522491310 Revert design changes 2025-05-09 10:09:44 -07:00
Pranav d1ed7419ac Rethink Copilot from scratch 2025-05-09 00:42:58 -07:00
PranavandGitHub 61c5d751fc chore: Make the table of contents in help center sticky (#11448) 2025-05-09 08:44:44 +05:30
PranavandGitHub a57dfe4478 fix: Allow resource access without filter type in custom_filters API (#11445)
The custom filters API previously required a filter_type attribute, even
when accessing a resource by its ID, which isn’t necessary. This PR
removes that condition.

Fixes https://github.com/chatwoot/chatwoot/issues/11384
2025-05-08 20:12:05 -07:00
PranavandGitHub 27430752b5 feat: Allow agent bots to update custom attributes in accessible conversations (#11447)
Previously, agent bots weren’t allowed to edit custom attributes in
conversations. But with AI, it’s now more feasible to return accurate
and useful attributes. Since there’s no strong reason to block this,
this PR enables bots to update custom attributes.

Fixes https://github.com/chatwoot/chatwoot/issues/11378
2025-05-08 20:11:02 -07:00
Shivam MishraandGitHub 4d684da288 fix: Update the copy for excluding the unattended conversations (#11450) 2025-05-08 20:08:12 -07:00
Vishnu NarayananandGitHub 588e8a4ee7 fix: throttle stalecontacts job (#11430)
- throttle stale contacts job
- process 20% accounts every day
- reduce batch size from 100 to 20
- add delay between jobs
2025-05-08 20:05:08 -07:00
6766b706c1 feat: Add support for typing events in webhooks (#11423)
Added support for typing events in webhooks. Two new events are now
available: `conversation_typing_on` and `conversation_typing_off`.


<img width="746" alt="Screenshot 2025-05-08 at 4 50 24 PM"
src="https://github.com/user-attachments/assets/62da7b38-de0f-42c5-84f4-066e653da331"
/>

---------

Co-authored-by: Pranav <pranav@chatwoot.com>
Co-authored-by: Pranav <pranavrajs@gmail.com>
2025-05-08 17:28:35 -07:00
c73f8aefc5 feat: Allow support for trusted IPs to disable throttling (#11226)
Co-authored-by: Pranav <pranav@chatwoot.com>
2025-05-08 16:10:30 -07:00
Chatwoot BotandGitHub 823c3df27f chore: Update translations (#11432) 2025-05-08 15:45:53 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
e86b70b63e chore(deps-dev): Bump vite from 5.4.18 to 5.4.19 (#11446)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite)
from 5.4.18 to 5.4.19.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/releases">vite's
releases</a>.</em></p>
<blockquote>
<h2>v5.4.19</h2>
<p>Please refer to <a
href="https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md">CHANGELOG.md</a>
for details.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vitejs/vite/blob/v5.4.19/packages/vite/CHANGELOG.md">vite's
changelog</a>.</em></p>
<blockquote>
<h2><!-- raw HTML omitted -->5.4.19 (2025-04-30)<!-- raw HTML omitted
--></h2>
<ul>
<li>fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19965">#19965</a>,
check static serve file inside sirv (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19966">#19966</a>)
(<a
href="https://github.com/vitejs/vite/commit/766947e7cbf1cdd07df9737394e8c870401b78b0">766947e</a>),
closes <a
href="https://redirect.github.com/vitejs/vite/issues/19965">#19965</a>
<a
href="https://redirect.github.com/vitejs/vite/issues/19966">#19966</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/vitejs/vite/commit/80a333a23103ced0442d4463d1191433d90f5e19"><code>80a333a</code></a>
release: v5.4.19</li>
<li><a
href="https://github.com/vitejs/vite/commit/766947e7cbf1cdd07df9737394e8c870401b78b0"><code>766947e</code></a>
fix: backport <a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19965">#19965</a>,
check static serve file inside sirv (<a
href="https://github.com/vitejs/vite/tree/HEAD/packages/vite/issues/19966">#19966</a>)</li>
<li>See full diff in <a
href="https://github.com/vitejs/vite/commits/v5.4.19/packages/vite">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=vite&package-manager=npm_and_yarn&previous-version=5.4.18&new-version=5.4.19)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/chatwoot/chatwoot/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-08 15:45:11 -07:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
16e0dbb3aa chore(deps): Bump rack from 2.2.13 to 2.2.14 (#11444)
Bumps [rack](https://github.com/rack/rack) from 2.2.13 to 2.2.14.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rack/rack/blob/main/CHANGELOG.md">rack's
changelog</a>.</em></p>
<blockquote>
<h2>[2.2.14] - 2025-05-06</h2>
<h3>Security</h3>
<ul>
<li><a
href="https://github.com/rack/rack/security/advisories/GHSA-gjh7-p2fx-99vx">CVE-2025-46727</a>
Unbounded parameter parsing in <code>Rack::QueryParser</code> can lead
to memory exhaustion.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rack/rack/commit/d0dcf75706d72d7e874ee31934a97881c1a439ce"><code>d0dcf75</code></a>
Bump patch version.</li>
<li><a
href="https://github.com/rack/rack/commit/fd44bd7259c2df03cdcf0fa33de6fc4f82befc1b"><code>fd44bd7</code></a>
Remove 2nd argument to <code>unescape</code>.</li>
<li><a
href="https://github.com/rack/rack/commit/3f5a4249118d09d199fe480466c8c6717e43b6e3"><code>3f5a424</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/rack/rack/commit/c48e52f7c57e99e1e1bf54c8760d4f082cd1c89d"><code>c48e52f</code></a>
Merge commit from fork</li>
<li>See full diff in <a
href="https://github.com/rack/rack/compare/v2.2.13...v2.2.14">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=rack&package-manager=bundler&previous-version=2.2.13&new-version=2.2.14)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/chatwoot/chatwoot/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-08 13:09:21 -07:00
Sivin VargheseandGitHub 94c58051f1 fix: Broken outline in account settings page (#11439) 2025-05-08 21:37:29 +05:30
Shivam MishraandGitHub c87b2109a9 feat: allow auto resolve waiting option (#11436) 2025-05-08 12:52:17 +05:30
Vishnu NarayananandGitHub bfddc4da24 chore: use housekeeping queue for remove_stale_contacts job (#11435)
- Use the housekeeping queue for the `remove_stale_contacts` job
- fix specs
2025-05-08 09:39:49 +05:30
Vishnu NarayananandGitHub 199f2fb86c fix: stale contacts job queue (#11434) 2025-05-08 08:43:34 +05:30