iachat/enterprise/app/policies
Rodribm10 21f5fcce6a fix(retention): cohort endpoint 500 — Pundit policy + SQL binding
Dois bugs que faziam o cohort retornar 500 e a página de Retenção mostrar
"Falha ao carregar cohort":

1. `Captain::AssistantPolicy` não tinha `cohort?` → Pundit batia em
   NoMethodError no `check_authorization`. Adicionado como leitura pública
   da assistente, igual `show?`/`playground?`.

2. `RetentionCohortService#cohort_activity` chamava `exec_query(sql, name, [@account.id])`
   passando array de valores onde a API espera bind objects. A SQL ainda
   interpolava `account_id = $1` direto na string (sem placeholder ligado).
   Migrado pra `ActiveRecord::Base.sanitize_sql_array` com `?`, igual ao
   resto da base. Mantém parametrização e remove acoplamento com posicional.

Validado em prod via hot-patch (USR2): GET retention/cohort agora 200 com
3 cohorts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 12:46:20 -03:00
..
captain fix(retention): cohort endpoint 500 — Pundit policy + SQL binding 2026-04-26 12:46:20 -03:00
enterprise feat(ee): Review Notes for CSAT Reports (#13289) 2026-01-15 19:53:57 -08:00
account_saml_settings_policy.rb feat: add saml model & controller [CW-2958] (#12289) 2025-09-03 13:30:42 -07:00
agent_capacity_policy_policy.rb feat: Add agent capacity controllers (#12200) 2025-08-26 19:12:58 -07:00
company_policy.rb feat: Backend - Companies API endpoint with pagination and search (#12840) 2025-11-18 14:28:56 +05:30
custom_role_policy.rb feat: Add APIs to manage custom roles in Chatwoot (#9995) 2024-08-23 17:18:28 +05:30
sla_policy_policy.rb feat: SLA CRUD APIs (EE) (#7027) 2023-05-11 22:42:56 +05:30