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> |
||
|---|---|---|
| .. | ||
| app | ||
| config | ||
| lib | ||
| LICENSE | ||
| tasks_railtie.rb | ||