mirror of
https://github.com/melgarafael/DeskcommCRM.git
synced 2026-10-02 09:34:46 +08:00
O que o commit `wip` deixou pronto nunca foi medido — este é o passe que mede. Quatro coisas mudaram: **O número.** A migration nascera `0208` no cabeçalho e virara `0212` no nome do arquivo, e o `0212` já é do PR #553 (`o_email_do_convidado`), como o `0208` é do #565 e do #569, o `0209` da extração `418-lote`, o `0210` do #546 e o `0211` do #548. Conferido varrendo os NOMES de arquivo de TODAS as refs remotas, não só as da `main` — com controle positivo (a mesma sonda acha o `0212` em duas branches). Sobra `0215`, e o carimbo `20260904193000` não colide com nenhum outro em nenhuma branch. **O teste de isolamento que o cabeçalho da migration já prometia** e que não existia: `tests/invariants/relatorio-de-atividades.test.ts`. O caso que ele mede não é a pessoa de UMA organização — para essa, a RLS sozinha zera qualquer `p_org` forjado, e apagar o filtro de dentro da função passaria despercebido. É a pessoa das DUAS (`user_organizations` é N:N): a RLS abre as duas para ela, e o único a decidir qual o relatório soma é o `organization_id = p_org`. Sem ele, "o que a equipe fez esta semana" na organização A vem com o trabalho da B dentro, sem erro na tela. **O `organization_id` escrito na consulta de `ai_agents`** da rota. Era a única consulta do relatório que terceirizava o recorte à RLS — mesma classe do parágrafo acima, e a doutrina manda dizer o inquilino em voz alta. **O espanhol das 16 frases da tela nova**, que `i18n-espanhol-cobre-a-tela` cobrava: sem elas a tela abria metade em português para quem escolheu espanhol. Extraído da contribuição de James, da Clínica Centro do Sorriso (@clinicacentrodosorrisosc-code), PR #418. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017DC6uq5V26S13UxfaBaYKQ