chatwoot/app/javascript/dashboard/components-next
Muhsin Keloth 353089473e
feat(voice): Assignment aware visibility and join conflict for inbound calls (#14333)
### Description
Inbound voice calls now route ownership cleanly: the call widget is
hidden from agents who aren't the conversation assignee, the first agent
to pick up becomes the assignee, and any later join attempt by another
agent is rejected with a clear "<agent> is already handling the call."
alert.

Closes
https://linear.app/chatwoot/issue/PLA-98/inbound-voice-calls-assignment-aware-visibility-auto-assignment-on

### How to test

1. As Agent A and Agent B, open the dashboard for the same voice inbox
in two browsers.
2. Place an inbound call to the inbox with the conversation
**unassigned** — both agents should see the call widget.
3. Have Agent A click **Join**. Agent A's widget transitions to the
active call; Agent B's widget disappears (conversation is now assigned
to Agent A).
4. While the call is in progress, attempt to join from a third agent
(e.g., via the bubble in the conversation timeline) — the join is
rejected with the toast `Agent A is already handling the call.`
5. Resolve the conversation, then place a second call to a conversation
that is already manually assigned to Agent A — only Agent A sees the
widget; nobody else does.
6. Race test: trigger two near-simultaneous join attempts (two agents
click Join within a few hundred ms of each other) — exactly one wins;
the other gets the conflict alert.

---------

Co-authored-by: Muhsin <12408980+muhsin-k@users.noreply.github.com>
2026-04-30 18:38:10 +04:00
..
Accordion feat: Allow customizing the responses, flows in Captain (#11385) 2025-04-29 15:42:15 -07:00
AssignmentPolicy feat: allow zero conversation limit capacity policy (#13964) 2026-04-06 11:39:14 +05:30
avatar feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
banner feat: Add platform-wide status banners for outage notifications (#13943) 2026-04-29 17:18:38 +04:00
breadcrumb chore: Optimize contact page for smaller displays (#12183) 2025-08-14 19:07:20 +05:30
button chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
buttonGroup feat: Enhance button interactions (#12738) 2025-11-06 16:24:05 +05:30
Campaigns fix: ProseMirror prompt modal UI issue (#13722) 2026-03-09 16:51:49 +05:30
captain fix(bulk-select): limit select-all to visible items; add secondary slot (#12891) 2026-04-16 12:22:53 +05:30
changelog-card chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
checkbox feat: Add support for bulk action for Captain FAQs (#10905) 2025-02-27 17:05:33 -08:00
colorpicker chore: Remove older UI (#11720) 2025-07-01 09:43:44 +05:30
combobox feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
Companies feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
Contacts feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963) 2026-04-29 11:32:19 +04:00
content-templates feat: Add twilio content templates (#12277) 2025-08-29 16:13:25 +05:30
Conversation feat(voice): Wire Twilio voice flow through unified call model (#14091) 2026-04-30 11:25:39 +04:00
ConversationWorkflow fix: Adjust inbox settings pages layout width (#13590) 2026-02-20 20:20:32 +05:30
copilot fix: skip Enter key submission during IME composition in AI inputs (#13779) 2026-03-13 10:26:51 +05:30
CustomAttributes feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
dialog fix: ProseMirror prompt modal UI issue (#13722) 2026-03-09 16:51:49 +05:30
dropdown-menu chore: Remove vue-multiselect and migrate to next components (#13506) 2026-02-17 16:40:12 +05:30
Editor feat: compose form improvements (#13668) 2026-03-02 18:27:51 +05:30
feature-spotlight feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
filter fix: standardize contact company field on company_name (#14099) 2026-04-27 18:43:26 +05:30
flag feat: Flag icon component (#10564) 2024-12-10 11:53:24 +05:30
HelpCenter fix: prevent focus jump to title after new article auto-creates (#14145) 2026-04-27 13:30:51 +05:30
icon feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963) 2026-04-29 11:32:19 +04:00
Inbox chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
inline-input feat: onboarding account details with enriched data [UPM-17][UPM-18] (#13979) 2026-04-28 10:35:51 +05:30
input feat: allow zero conversation limit capacity policy (#13964) 2026-04-06 11:39:14 +05:30
label feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
message feat(voice): Assignment aware visibility and join conflict for inbound calls (#14333) 2026-04-30 18:38:10 +04:00
NewConversation feat: Add voice calling as a capability on Twilio SMS channel(Enterprise) (#13963) 2026-04-29 11:32:19 +04:00
pagination feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
phonenumberinput fix: Accidental contact creation on country dropdown toggle (#11494) 2025-05-16 16:14:00 +05:30
popover fix: prevent template picker dropdown cut-off in compose form (#14129) 2026-04-22 17:13:26 +05:30
radioCard feat(inbox): Enable conversation continuity for social channels (#11079) 2026-02-25 13:56:51 +04:00
select feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
selectmenu feat: Update conversation basic filter (#11415) 2025-05-06 12:44:23 +05:30
Settings feat(widget): Allow widget loading in mobile app WebViews when domain restrictions are set (#13763) 2026-03-17 14:29:41 +04:00
sidebar chore: update conversation sidebar interactions (#13988) 2026-04-20 13:08:19 +05:30
spinner feat: Add Spinner to new components (#10303) 2024-10-16 17:53:46 -07:00
switch feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
tabbar chore: Update theme colors and add new Inter variable fonts (#13347) 2026-01-28 14:36:04 -08:00
table feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
taginput feat: compose form improvements (#13668) 2026-03-02 18:27:51 +05:30
textarea feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
whatsapp feat: Add media_name support for WhatsApp templates document files (#12462) 2025-09-18 15:25:31 +05:30
year-in-review feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
CardLayout.vue feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
EmptyStateLayout.vue feat(V5): Update settings pages UI (#13396) 2026-02-19 15:04:40 +05:30
SidebarActionsHeader.story.vue feat: Update the UI to support the change for Copilot as a universal copilot (#11618) 2025-05-29 12:35:10 +05:30
SidebarActionsHeader.vue feat: Update the UI to support the change for Copilot as a universal copilot (#11618) 2025-05-29 12:35:10 +05:30
TeleportWithDirection.vue feat: Add Teleport component to fix RTL/LTR utility classes (#11455) 2025-05-12 11:49:23 -07:00