Flow: Send Message
Summary
send_message routes through the owner runtime and may produce later update-driven events after the immediate command result.
Sequence
sequenceDiagram
participant UI as Client
participant WS as Gateway
participant OWNER as Owner runtime
participant H as messages handler
participant SVC as MessageCommandService
participant API as MessagesApi
participant TG as TDLib
participant UPD as UpdateRuntimeService
UI->>WS: {"action": "send_message", ...}
WS->>OWNER: publish_command(send_message)
OWNER->>H: dispatch_command_payload(...)
H->>SVC: send_message(...)
SVC->>API: send_message_text(...) or cloud media path
API->>TG: call_method(...)
TG-->>API: ok / error
API-->>H: {ok, result, error}
H-->>UI: send_message or send_message_error
TG-->>UPD: updateNewMessage / updateMessageSendSucceeded / ...
UPD-->>UI: live update events
Notes
- plain text and media-backed sends use different internal branches
- media-backed sends rely on cloud file metadata and generated input file helpers
- the user may observe both the immediate command result and later update events for the same logical send