VPS 4 Deploy Agent 2b9b855fc9 perf(inbox): cache de avatares no Wasabi e IndexedDB
Solução 3 — Wasabi:
- Após download do CDN do WhatsApp, faz upload fire-and-forget para
  Wasabi com path determinístico (avatars/{tenant}/{instance}/{jid}.jpg)
- Armazena o path relativo em contact.avatarUrl no banco
- Na próxima requisição, serve bytes direto do Wasabi sem tocar no CDN do WA
- Adiciona customPath em StorageUploadPayload e getBuffer() na interface
  StorageProviderInterface/StorageProviderRegistry e plugin

Solução 4 — IndexedDB:
- Backend expõe avatarVersion (MD5 curto do avatarUrl) no response /api/chats
- Campo propagado por chatStore → chatToLegacy → NewWhatsChat
- Hook useAvatarCache (IndexedDB nativo, sem deps) armazena dataUrl do avatar
  com chave jid:version — invalida automaticamente quando o avatar muda no banco
- Avatar.tsx serve do IndexedDB antes de disparar qualquer request HTTP;
  converte via canvas e persiste no IndexedDB na primeira carga bem-sucedida

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 16:02:08 +02:00
S
Description
Puxe as últimas atualizações do repositório clube67_newwhats.local no Gitea http://10.99.0.3:3000/, analise a Issue #3(trocar) e siga o nosso protocolo_agentes.md para concluir o deploy https://git.clube67.com/ruicesar/clube67_newwhats.local Usuário: ruicesar Senha: h$tg@g5aga$ra1E3$C-yHW$-BA@DF2@Grfa!3# Regra: antes de COMENTAR NO ISSUE, liste sugestões em code block no chat para o Admin autorizar o comentário!
13 MiB
Languages
TypeScript 76.1%
JavaScript 22.1%
Shell 1.4%
Python 0.2%
CSS 0.1%