iachat/spec/enterprise/models
Tanmay Deep Sharma 9efd554693
fix: resolve V2 capacity bypass in team assignment (#13904)
## Description

When Assignment V2 is enabled, the V2 capacity policies
(AgentCapacityPolicy / InboxCapacityLimit) are not respected during
team-based assignment paths. The system falls back to the legacy V1
max_assignment_limit, and since V1 is deprecated and typically
unconfigured in V2 setups, agents receive unlimited assignments
regardless of their V2 capacity.

Root cause: Inbox class directly defined
member_ids_with_assignment_capacity, which shadowed the
Enterprise::InboxAgentAvailability module override in Ruby's method
resolution order (MRO). This made the V2 capacity check unreachable
(dead code) for any code path using member_ids_with_assignment_capacity.

## Type of change

- [ ] Bug fix (non-breaking change which fixes an issue)

## How Has This Been Tested?

⏺ Before the fix
1. Enable assignment_v2 + advanced_assignment on account
2. Create AgentCapacityPolicy with InboxCapacityLimit = 1 for an inbox
3. Assign the policy to an agent (e.g., John)
4. Create 1 open conversation assigned to John (now at capacity)
5. Create a new unassigned conversation in the same inbox
6. Assign a team (containing John) to that conversation
7. Result: John gets assigned despite being at capacity
⏺ After the fix
Same steps 1–6.
7. Result: John is NOT assigned — conversation stays unassigned (no
agents with capacity available)


## Checklist:

- [ ] My code follows the style guidelines of this project
- [ ] 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
- [ ] My changes generate no new warnings
- [ ] I have added tests that prove my fix is effective or that my
feature works
- [ ] New and existing unit tests pass locally with my changes
- [ ] Any dependent changes have been merged and published in downstream
modules
2026-03-27 15:38:17 +05:30
..
captain fix: Use handoff_key for scenarios (#13755) 2026-03-11 14:01:25 +05:30
channel feat(voice): Improved voice call creation flow [EE] (#12268) 2025-08-22 13:38:23 +02:00
concerns feat: allow captain to access contact attributes (#13850) 2026-03-20 16:15:06 +05:30
enterprise/concerns chore: Automate SSL with Cloudflare (#12021) 2025-07-24 13:09:06 +04:00
account_saml_settings_spec.rb feat: update users on SAML setup and destroy [CW-2958][CW-5612] (#12346) 2025-09-15 21:20:22 +05:30
account_spec.rb chore: Update account deletion email copy (#12317) 2025-08-31 16:01:41 +02:00
account_user_spec.rb feat: Add APIs to manage custom roles in Chatwoot (#9995) 2024-08-23 17:18:28 +05:30
agent_capacity_policy_spec.rb feat: Add agent capacity controllers (#12200) 2025-08-26 19:12:58 -07:00
applied_sla_spec.rb feat: Conversation API to return applied_sla and sla_events (#9174) 2024-04-01 23:30:07 +05:30
assignment_policy_spec.rb feat: Add assignment policies controllers with jbuilder views (#12199) 2025-08-18 19:15:21 -07:00
automation_rule_spec.rb feat: sla-2 add automation backend support for SLA (#8775) 2024-02-01 15:42:12 +05:30
company_spec.rb feat: Add company model and API with tests (#12548) 2025-10-08 07:53:43 -07:00
contact_company_association_spec.rb feat: Add company auto-association for contacts (CW-5726 Part 2) (#12711) 2025-11-03 20:36:13 +05:30
conversation_spec.rb feat: Add automatic favicon fetching for companies (#13013) 2026-03-05 18:51:28 -08:00
copilot_message_spec.rb fix: Update specs, add background response job implementation for copilot threads (#11600) 2025-05-27 14:10:27 -06:00
copilot_thread_spec.rb feat: Add support for more tool, standardize copilot chat service (#11560) 2025-05-23 01:07:07 -07:00
custom_attribute_definition_spec.rb feat: Conversation workflows(EE) (#13040) 2026-01-27 11:36:20 +04:00
custom_role_spec.rb feat: Add APIs to manage custom roles in Chatwoot (#9995) 2024-08-23 17:18:28 +05:30
inbox_capacity_limit_spec.rb feat: Add agent capacity controllers (#12200) 2025-08-26 19:12:58 -07:00
inbox_member_spec.rb feat: auditlog for team and inbox member updates (#7516) 2023-08-15 19:55:19 -07:00
inbox_spec.rb fix: resolve V2 capacity bypass in team assignment (#13904) 2026-03-27 15:38:17 +05:30
macro_spec.rb feat: add audit trail for macros (#7352) 2023-06-20 13:04:59 +05:30
message_spec.rb fix: captain talking over support agent (#13673) 2026-03-03 16:13:34 +05:30
sla_event_spec.rb feat: Conversation API to return applied_sla and sla_events (#9174) 2024-04-01 23:30:07 +05:30
sla_policy_spec.rb feat: sla 1 - refactor sla_policies model and add applied_sla model (#8602) 2024-01-23 23:48:02 +05:30
team_member_spec.rb feat: auditlog for team and inbox member updates (#7516) 2023-08-15 19:55:19 -07:00
team_spec.rb feat: Add audit trail events for team (#7285) 2023-06-09 17:30:36 -07:00
user_spec.rb chore: Move Enterprise pricing validation to on create (#8856) 2024-02-05 19:18:29 +05:30
webhook_spec.rb feat: Audit log APIs (#6434) 2023-03-01 20:02:58 +05:30