CampaignCopyableCell is a Client Component; passing formatDisplay as a function from the leaderships RSC page broke serialization in production. Use a preformatted displayValue string at the call sites instead.
- colunas E-mail/Celular (copy-on-click, toast, "—" vazio) + coluna de Ações com WhatsApp (wa.me), no padrão de /campanha/assessores (B19) - shared/CampaignCopyableCell.tsx nasce compartilhado já no 2º call site; AdvisorsTable.tsx migrado no mesmo PR para consumi-lo - whatsAppHrefForPhone promovido a lib/phone.ts - leadershipData.ts: contactSummary (+ email), loadLeadershipDetail deduplicado (reusa row.email) - simplify: remove try/catch morto em whatsAppHrefForPhone, remove casts redundantes em contactSummary, displayEmail retorna string | null direto - docs: nucleos-eleitorais.mdc, roadmap.md, plano B28 marcados entregues