iachat/app/javascript/dashboard/i18n/locale/pt_BR
Gabriel Jablonski 11e9932e9b
feat(whatsapp): show contact typing and recording indicators via baileys presence (#264)
* feat(whatsapp): show contact typing and recording indicators via baileys presence

Subscribe to WhatsApp presence updates via the baileys-api provider to
display real-time typing and recording indicators in the dashboard.

- Handle presence.update webhook events (composing, recording, paused,
  available) and broadcast via ActionCable
- Add conversation.recording event to ActionCable, webhook, and channel
  listeners for parity with typing_on/typing_off
- Show "typing..." / "recording..." in green text on the chat list,
  replacing the message preview
- Show "X is typing" / "X is recording audio" in the conversation view
- Add presence_subscribe provider config option (default off) to gate
  all subscription calls to the baileys-api
- Subscribe to presence on conversation open and periodically (1 min)
  for the top 10 chat list conversations
- Consolidate contact LID from presence.update jidAlt payload
- Prevent echo-back of contact typing events to the channel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address review feedback

- Filter chat list typing indicator to contact-only events
- Add dedupe to presence subscribe bulk calls
- Use strong parameters for conversation_ids
- Remove redundant YAML quotes in swagger webhook enum

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address review feedback

- Extract phone from data[:id] when JID is @s.whatsapp.net (fallback
  when jidAlt is absent)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address review feedback

- Filter recording users in getTypingUsersText to show correct names
- Add 10s timeout to presence_subscribe HTTP request

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: scope typing timer per user instead of per conversation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: make presence subscribe best-effort with rescue per channel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: address review feedback

- Add messagePreviewClass to typing preview for consistent padding
- Fix specs to use WebMock assertions instead of instance spying

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 11:38:11 -03:00
..
advancedFilters.json feat: group conversations (#228) 2026-03-19 21:56:58 -03:00
agentBots.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
agentMgmt.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
attributesMgmt.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
auditLogs.json chore: Update translations (#13832) 2026-03-17 16:02:40 -07:00
automation.json Merge branch 'chatwoot/develop' into chore/merge-upstream-4.12.0 2026-03-20 00:27:45 -03:00
bulkActions.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
campaign.json Chore/merge upstream 4.8.0 (#150) 2025-11-19 16:25:58 -03:00
cannedMgmt.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
chatlist.json feat(whatsapp): show contact typing and recording indicators via baileys presence (#264) 2026-04-13 11:38:11 -03:00
companies.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
components.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
contact.json Merge branch 'chatwoot/develop' into chore/merge-upstream-4.12.0 2026-03-20 00:27:45 -03:00
contactFilters.json chore: Update translations (#12311) 2025-09-04 11:02:44 +05:30
contentTemplates.json chore: Update translations (#13109) 2026-01-09 16:11:44 -08:00
conversation.json feat(whatsapp): show contact typing and recording indicators via baileys presence (#264) 2026-04-13 11:38:11 -03:00
csatMgmt.json chore: Update translations (#7728) 2023-08-15 13:47:38 -07:00
customRole.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
datePicker.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
emoji.json chore: Update translations (#8161) 2023-10-25 19:20:30 -07:00
general.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
generalSettings.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
groups.json fix(groups): restrict enable CTA to superadmin users (#248) 2026-03-21 13:01:02 -03:00
helpCenter.json Merge branch 'chatwoot/develop' into chore/merge-upstream-4.12.0 2026-03-20 00:27:45 -03:00
inbox.json chore: Update translations (#12208) 2025-08-19 12:27:13 +05:30
inboxMgmt.json feat(whatsapp): show contact typing and recording indicators via baileys presence (#264) 2026-04-13 11:38:11 -03:00
index.js feat(internal-chat): implement internal chat system for agents (#247) 2026-04-11 13:50:15 -03:00
integrationApps.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
integrations.json feat(whatsapp): show contact typing and recording indicators via baileys presence (#264) 2026-04-13 11:38:11 -03:00
internalChat.json feat(internal-chat): implement internal chat system for agents (#247) 2026-04-11 13:50:15 -03:00
kanban.json feat: add kanban feature promotion with upgrade banner (#235) 2026-03-12 15:31:53 -03:00
labelsMgmt.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
login.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
macros.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
mfa.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
report.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
resetPassword.json chore: Update translations from Crowdin (#9835) 2024-07-25 11:58:22 -07:00
search.json Merge branch 'chatwoot/develop' into chore/merge-upstream-4.12.0 2026-03-20 00:27:45 -03:00
setNewPassword.json chore: Update translations (#7033) 2023-05-06 15:10:50 +05:30
settings.json feat(internal-chat): implement internal chat system for agents (#247) 2026-04-11 13:50:15 -03:00
signup.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
sla.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
snooze.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
teamsSettings.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
webhooks.json Chore: Add pt and pt_BR translations (#813) 2020-05-04 17:33:55 +05:30
whatsappTemplates.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00
yearInReview.json chore: Update translations (#13227) 2026-03-16 15:44:32 -07:00