=== Teste E2E: planos_acao (contexto 659) === ✅ retorno é JSON válido ✅ total_planos bate com o banco — tool=0 banco=0 ✅ total_acoes_propostas bate com o banco — tool=0 banco=0 ✅ planos inativos (status 0) não entram ✅ os 5 status SEMPRE presentes, na ordem da tela — ["Cadastrado","Em andamento","Concluído","Homologado","Recusado"] ✅ quantidade por status bate com o banco — [0,0,0,0,0] vs [0,0,0,0,0] ✅ cores lidas de PlanoAcao::STATUS_*_COR (não copiadas) ✅ soma dos status = total_planos (determinismo) ✅ soma das ações da lista = total_acoes_propostas ❌ responsável do plano 498 = "Resp Fictício Plano A" — null ❌ responsável do plano 499 = "Resp Fictício Plano B" — null ✅ grafico_pronto.tipo = plano_acao ✅ título/subtítulo da pizza iguais à tela — Total: 0 Planos de Ação ✅ título/subtítulo das barras iguais à tela — Total: 0 Ações Propostas ❌ barras: uma linha por plano, chave "plano"/"qtde" — ✅ interceptação de Agent.php aceita o payload (ambos) ✅ modo status: só a pizza (barras = null) ✅ modo acoes: só as barras (pizza = null) ✅ modo inválido cai em "ambos" ✅ contexto 257 confere com o banco — total=1 ✅ não-Ceon sem escopo: acesso negado — Acesso negado: o contexto 659 não pertence ao escopo de acesso deste usuário. === RESULTADO: 18 passaram, 3 falharam ===