iachat/swagger/definitions/resource
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
..
extension feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
integrations Fix: Make swagger doc compliant to OpenAPI (#3394) 2021-11-17 18:55:15 +05:30
internal_chat feat(internal-chat): implement internal chat system for agents (#247) 2026-04-11 13:50:15 -03:00
public docs(swagger): fix public API schema definitions to match jbuilder responses (#13693) 2026-03-19 00:03:37 -07:00
reports feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
account_detail.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
account_show_response.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
account_user.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11374) 2025-05-22 14:26:44 +07:00
account.yml chore: Update API docs (#1153) 2020-08-18 12:14:37 +05:30
agent_bot.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
agent.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
article.yml fix: Help center api doc (#7189) 2023-05-25 18:50:00 +05:30
audit_log.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
automation_rule_item.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
automation_rule.yml feat: Add automation rule event conversation resolved (#9669) 2025-08-13 12:57:14 +05:30
canned_response.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
category.yml fix: Help center api doc (#7189) 2023-05-25 18:50:00 +05:30
contact_conversation_message.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
contact_conversations_response.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
contact_detail.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
contact_inbox.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
contact_inboxes.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
contact_list_item.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
contact_meta.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
contact_show_response.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
contact.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
contactable_inboxes_response.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
contactable_inboxes.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11374) 2025-05-22 14:26:44 +07:00
contacts_list_response.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
conversation_messages.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
conversation_meta.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
conversation.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
custom_attribute.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
custom_filter.yml Fix: Make swagger doc compliant to OpenAPI (#3394) 2021-11-17 18:55:15 +05:30
group_member.yml feat: group conversations (#228) 2026-03-19 21:56:58 -03:00
inbox_contact.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
inbox.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
label.yml docs(swagger): document account label endpoints (#13760) 2026-03-10 22:24:16 -07:00
message_detailed.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
message.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
platform_account.yml chore: Add Swagger docs for Platform APIs (#2349) 2021-05-31 10:58:43 +05:30
portal_config.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
portal_item.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
portal_logo.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
portal_meta.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
portal_single.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
portal.yml feat: Update swagger to openapi 3.0.4, update request payloads with examples (#11533) 2025-05-22 17:57:12 +07:00
reporting_event_meta.yml feat: allow querying reporting events via the API (#12832) 2025-11-13 12:46:55 +05:30
reporting_event.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
reporting_events_list_response.yml feat: allow querying reporting events via the API (#12832) 2025-11-13 12:46:55 +05:30
scheduled_message.yml feat: mensagens agendadas (#198) 2026-01-30 22:08:16 -03:00
team.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
user.yml feat: validate OpenAPI spec using Skooma (#13623) 2026-03-10 18:33:55 -07:00
webhook.yml feat(whatsapp): show contact typing and recording indicators via baileys presence (#264) 2026-04-13 11:38:11 -03:00