2643 Commits

Author SHA1 Message Date
Alexandre Martins
930d32df3a fix(events): guard extra spread and prevent core field override
- Use (extra ?? {}) to handle undefined extra safely
- Spread extra first to prevent overriding core fields like event, instance, data
- Applied fix to all 7 event controllers

Addresses Sourcery AI review feedback.
2025-11-26 15:48:53 -03:00
Alexandre Martins
fa6b5c28a6 feat(events): add isLatest and progress to messages.set event
- Add extra field to EmitData type for additional payload properties
- Update EventManager and sendDataWebhook to support extra parameters
- Update all event controllers (webhook, rabbitmq, sqs, websocket, pusher, kafka, nats) to include extra fields in payload
- Pass isLatest and progress from Baileys messaging-history.set to messages.set webhook

This allows consumers to know when the history sync is complete (isLatest=true) and track sync progress percentage.
2025-11-26 15:44:18 -03:00
Murilo Leal
8e7f348c12 fix(baileys): prevent message loss from WhatsApp stub placeholders
Mensagens do WhatsApp estavam sendo perdidas e não eram salvas no banco de dados, especialmente mensagens de canais/newsletters (@lid) e mensagens com criptografia complexa.

O WhatsApp/Baileys envia mensagens criptografadas em duas etapas:

1. Primeiro: Envia um stub (placeholder) com messageStubParameters: ['Message absent from node'] enquanto descriptografa a mensagem

2. Depois: Envia a mensagem real com o conteúdo descriptografado

O problema ocorria porque:

- O stub chegava primeiro e era adicionado ao cache de mensagens duplicadas

- O stub era descartado (corretamente) por não ter conteúdo (!received?.message)

- A mensagem real chegava depois, mas era ignorada como duplicata porque o ID já estava no cache

- Resultado: mensagem nunca era salva no banco de dados

Solução:

- Detectar stubs do WhatsApp através de messageStubParameters contendo 'Message absent from node'

- Não adicionar stubs ao cache de mensagens duplicadas

- Permitir que a mensagem real seja processada quando chegar

- Manter o descarte do stub para evitar salvar placeholders vazios
2025-11-26 13:29:31 -03:00
Jeferson Ramos
5c58cb7eae lint 2025-11-24 14:19:48 -03:00
Jeferson Ramos
879bee962b lint 2025-11-24 14:17:27 -03:00
Jeferson Ramos
af47b859e4 socks5 update 2025-11-24 13:59:50 -03:00
Jeferson Ramos
1c61116a3e Merge remote-tracking branch 'upstream/develop' into bugfix/media-upload-failed-on-all-hosts
# Conflicts:
#	package-lock.json
#	src/utils/makeProxyAgent.ts
2025-11-24 13:58:25 -03:00
Davidson Gomes
13f96a366b chore(dependencies): update baileys and AWS SDK packages to latest versions
Some checks failed
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
- Upgraded baileys to version 7.0.0-rc.9 in package.json and package-lock.json.
- Updated AWS SDK packages to version 3.936.0 for improved functionality and compatibility.
- Adjusted various dependencies to ensure stability and performance enhancements.
2025-11-24 12:02:09 -03:00
Gabriel Mouallem
08a4795016 fix: respect DATABASE_SAVE_DATA_CONTACTS in contact updates
- Added missing conditional checks for `DATABASE_SAVE_DATA_CONTACTS` in `contacts.upsert` and `contacts.update` handlers.
- Fixed an issue where profile picture updates were attempting to save to the database even when disabled.
- Fixed an unawaited promise in `contacts.upsert` to ensure database operations complete correctly.
2025-11-23 23:09:42 -03:00
Gabriel Mouallem
53a94af3f7 fix: respect DATABASE_SAVE_DATA_CONTACTS in contact updates 2025-11-23 22:59:18 -03:00
Rodrigo da Silva
302e219f7f fix: unify remoteJid filtering using OR with remoteJidAlt 2025-11-23 18:46:06 -03:00
Jader Santos
1e036ba3ae fix(migration): add deduplication step before creating index 2025-11-21 22:09:15 -03:00
Jader Santos
377993e4b0 fix(prisma): add unique constraint to Chat model in Postgres
Generated migration to add unique index on instanceId and remoteJid.
2025-11-21 21:40:27 -03:00
Davidson Gomes
689f347457 Merge pull request #2241 from victoreduardo/evo/main
Some checks failed
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
Fix: Using all IPs including x-forwarded-for when checking if the requester has access to metrics
2025-11-19 17:47:10 -03:00
Davidson Gomes
7743063439 Merge pull request #2220 from victoreduardo/evo/feature-pix
feature: handle with interactive button message for pix
2025-11-19 17:45:02 -03:00
Davidson Gomes
f5e43a3b3f chore(dependencies): update baileys and AWS SDK packages
Some checks are pending
Check Code Quality / check-lint-and-build (push) Waiting to run
Build Docker image / Build and Deploy (push) Waiting to run
Security Scan / CodeQL Analysis (javascript) (push) Waiting to run
Security Scan / Dependency Review (push) Waiting to run
- Updated baileys to version 7.0.0-rc.8 in package.json and package-lock.json.
- Downgraded AWS SDK packages to specific versions for compatibility.
- Adjusted various dependencies to maintain stability and performance.
2025-11-19 16:52:33 -03:00
Jeferson Ramos
ea88edd512 socks 2025-11-19 16:51:59 -03:00
Victor Eduardo
e6a9ed92ce Fix: Using all IPs including x-forwarded-for when checking if the requester has access to metrics 2025-11-19 16:20:54 -03:00
Victor Eduardo
8707520a3e lint 2025-11-19 16:12:16 -03:00
Jeferson Ramos
d3e3c458a0 lint 2025-11-19 14:09:07 -03:00
Jeferson Ramos
067f0999b5 lint 2025-11-19 14:07:23 -03:00
Jeferson Ramos
179af3f41c lint 2025-11-19 14:02:52 -03:00
Jeferson Ramos
31a6f2d92e ; 2025-11-19 14:00:17 -03:00
Jeferson Ramos
dc72f01625 Merge remote-tracking branch 'upstream/main' into bugfix/media-upload-failed-on-all-hosts 2025-11-19 13:34:47 -03:00
Jeferson Ramos
3b139078c3 Removendo uso do undici com proxy socks 2025-11-19 13:34:33 -03:00
Jonatas
f2c2a6a64a refactor: improve formatting and consistency in makeProxyAgent functions 2025-11-18 23:58:18 -03:00
Jonatas
e5a249109c feat: add quotedMessage to payload in sendMessageToBot on N8N 2025-11-18 23:52:36 -03:00
Davidson Gomes
73fb376602 Merge pull request #2219 from victoreduardo/evo/main
Some checks failed
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Fix: Chatwoot service fails when processing read message
2025-11-13 14:03:09 -03:00
Victor Eduardo
27633aad53 feature: handle with interactive button message for pix 2025-11-13 09:47:53 -03:00
Victor Eduardo
06543e89e5 fix: await chatwootRequest in update_last_seen method for proper asynchronous handling 2025-11-12 22:47:05 -03:00
Davidson Gomes
90640b7cee Merge pull request #2203 from RaFaeL-Cunha/patch-1
Some checks failed
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
fix(chatwoot): corrige erro de duplicação na importação de contatos
2025-11-11 08:45:00 -03:00
Rafael Freire Cunha
da8774caa2 fix(chatwoot): corrige erro de duplicação na importação de contatos
Resolve o erro 'ON CONFLICT DO UPDATE command cannot affect row a second time' que ocorria ao importar histórico de contatos duplicados.

A correção remove a tentativa de atualizar o campo 'identifier' no ON CONFLICT, já que este campo faz parte da constraint de conflito e não pode ser atualizado.

Erro original:
- identifier = EXCLUDED.identifier

Correção:
- updated_at = NOW()

Isso permite que contatos duplicados sejam atualizados corretamente sem causar erro.
2025-11-09 14:56:53 -04:00
Davidson Gomes
4ae3139163 chore(changelog): update to version 2.3.7 with new features and fixes
Some checks failed
Check Code Quality / check-lint-and-build (push) Has been cancelled
Build Docker image / Build and Deploy (push) Has been cancelled
Security Scan / CodeQL Analysis (javascript) (push) Has been cancelled
Security Scan / Dependency Review (push) Has been cancelled
- Added update and delete endpoints for WhatsApp Business Meta templates.
- Fixed issues with incoming message events and authentication states after reconnection.
- Resolved unique constraint errors in OnWhatsapp cache and optimized database writes.
- Improved proxy integration for media uploads and fixed handling of base64, filename, and caption in the WhatsApp Business API.
- Enhanced chat service reliability and contact filtering capabilities.
- Made multiple integration improvements between Chatwoot and Baileys.
- Refactored code for better quality and consistency.
2025-11-07 14:45:38 -03:00
Davidson Gomes
f4043a9141 fix(whatsapp-cache): improve error logging in save function
Updated the error handling in the saveOnWhatsappCache function to log the error message separately, improving clarity on issues encountered during item processing.
2025-11-07 14:41:40 -03:00
Davidson Gomes
139ad9b3cb Merge pull request #2186 from muriloleal13/fix/baileys-message-processor-reconnection
fix(baileys): resolve incoming message events not working after reconnection
2025-11-07 14:39:26 -03:00
Davidson Gomes
fca39a2b34 Merge pull request #2191 from JefersonRamos/bugfix/waiting-for-message
Durante o processo de logout de uma instância, as chaves associadas a…
2025-11-07 14:38:36 -03:00
Davidson Gomes
1e3a23588e Merge pull request #2163 from ricaelchiquetti/feat/update_delete_meta_templates
Feat/update and delete meta templates
2025-11-07 14:36:14 -03:00
Davidson Gomes
27be03ea95 Merge pull request #2162 from moothz/fix/saveOnWhatsappCache-remoteJid-failed-constraint
fix: Erro ao enviar mensagem para grupos (remoteJid failed constraint)
2025-11-07 14:35:23 -03:00
Davidson Gomes
9b73252f35 Merge branch 'develop' into fix/saveOnWhatsappCache-remoteJid-failed-constraint 2025-11-07 14:33:58 -03:00
Davidson Gomes
71322cd8f6 Merge pull request #2161 from ricaelchiquetti/main
feat(whatsapp): corrigir Business (base64/filename/caption), remoteJid
2025-11-07 14:32:37 -03:00
Davidson Gomes
263854db47 Merge pull request #2160 from moothz/fix/fetchChats-cleanMessageData-errors
fix: fetchChats e chat - Painel de mensagens no Manager
2025-11-07 14:27:25 -03:00
Davidson Gomes
400b6291a2 Merge pull request #2158 from KokeroO/develop
fix: Integration Chatwoot and Baileys services
2025-11-07 14:26:32 -03:00
Jeferson Ramos
feff038446 lint ajustes 2025-11-05 16:30:32 -03:00
Jeferson Ramos
4d2a189905 lint ajustes 2025-11-05 16:29:09 -03:00
Jeferson Ramos
48625a739c Merge branch 'main' into bugfix/waiting-for-message 2025-11-05 16:27:22 -03:00
Jeferson Ramos
b6620d2bd6 responde in log 2025-11-05 16:26:55 -03:00
Jeferson Ramos
45e461e757 lint 2025-11-05 16:03:09 -03:00
Jeferson Ramos
be5760905e Durante o processo de logout de uma instância, as chaves associadas ao estado criptográfico não estavam sendo removidas corretamente do Redis.
Dessa forma, quando uma nova conexão era estabelecida reutilizando o mesmo instanceName, o Baileys carregava chaves antigas e inválidas, incompatíveis com o novo conjunto de credenciais (creds) gerado na reconexão.

Essa inconsistência gerava o seguinte sintoma prático:

A instância autenticava com sucesso;

Contudo, ao tentar enviar mensagens, entrava em estado de bloqueio, exibindo o status “aguardando mensagem” indefinidamente.
2025-11-05 15:39:21 -03:00
Murilo Leal
92626fa559 fix(baileys): resolve incoming message events not working after reconnection
- Add cleanup logic in mount() to prevent memory leaks from multiple subscriptions

- Recreate messageSubject if it was completed during logout

- Remount messageProcessor in connectToWhatsapp() to ensure subscription is active after reconnection

This fixes the issue where incoming message events stop working after logout and reconnect, while outgoing message events continue to work normally.

The root cause was that onDestroy() calls complete() on the RxJS Subject, making it permanently closed. When reconnecting, the Subject would silently ignore all new messages.

The fix ensures that:

1. Old subscriptions are properly cleaned up before creating new ones

2. If the Subject is closed, a new one is created automatically

3. The messageProcessor is remounted on every connection to ensure active subscription
2025-11-04 13:49:38 -03:00
ricael
1aaad541ad chore(dto): remove unused template edit/delete DTOs 2025-10-30 16:59:30 -03:00