- Nome exibido: contact.name (agenda) → verifiedName/notify (nome do WhatsApp)
→ pushName da última msg, em vez de cair direto no número quando não há
nome salvo na agenda.
- ThinSidebar: ícone (BrainCircuit) que direciona para /secretaria.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Título e textos da página /baileys ficam genéricos ("Monitor de Eventos")
para usuários comuns; "Baileys Engine"/"servidor Baileys" só p/ admin ou
ruibto@gmail.com.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Os rótulos técnicos das engines só aparecem para admin ou ruibto@gmail.com:
- usuário comum vê "API estável" e "API com botões";
- admin/ruibto vê "API estável (Baileys 7)" e "InfinityAPI".
(O item 'Baileys' na Sidebar e a página /baileys já são admin-only.)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Detecta WhatsApp Business (app) via getBusinessProfile no pós-conexão e
persiste em instances.isBusiness; painel mostra "Conta Business: sim/não"
(com nota Business App ≠ Business API).
- Painel avisa que trocar de API desconecta e exige escanear o QR novamente,
com confirmação antes de aplicar a troca.
- sendRichMessage agora monitora e loga erros especificamente quando a mensagem
tem botões/lista/carrossel (diagnóstico de rejeição de interativos por engine).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Ajuste: o painel de configurações lista as DUAS engines selecionáveis —
"API estável" (baileys7) e "InfinityAPI" (infinite) — além da versão.
Apenas a 'official' (Baileys 6, que dá 401) fica de fora da UI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
O ícone de configurações deixa de abrir popover flutuante e passa a abrir um
painel grande na área central (no lugar das mensagens). O painel mostra apenas:
- "API estável" (= engine Baileys 7 oficial/baileys7, a que conecta), com ação
de ativar na instância;
- a versão do sistema (lida de /version.json).
ThinSidebar simplificada (sem o seletor flutuante); as engines seguem
selecionáveis no backend para teste.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Instala baileys@7.0.0-rc13 sob alias 'baileys-official' (coexiste com a
'infinite' = baileys 7.0.0-rc.9 e a 'official' = @whiskeysockets/baileys 6.x).
Nova engine 'baileys7' (LID/username, app-state moderno) selecionável por
instância; validação do PATCH /engine e rich-message (botões nativos v7)
atualizados; opção adicionada ao seletor da ThinSidebar.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
BotOff não é exportado pelo lucide-react e gerava "Attempted import error"
no build. O indicador de "bot pausado" no ChatListItem agora usa Bot —
o title e a cor âmbar já comunicam o estado.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
O avatar da instância na ThinSidebar caía no fallback
activeInstance.avatar/profilePictureUrl — URL do CDN pps.whatsapp.net que
expira e responde 403 (hotlink) no navegador. Agora usa só o proxy do
backend (/proxy-avatar → /api/inbox/avatar, que baixa server-side); sem
proxy resolvível, mostra o ícone em vez da URL crua.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>