3250020b34
Fold the three re-arm helpers (_typing_retrigger_state, _clear_typing_retrigger, _send_typing_quietly) into _retrigger_typing itself; the semantic change from #111886 is unchanged: schedule sendChatAction as a tracked background task instead of awaiting it on the send path, one in-flight re-arm per chat, at most one per typing_retrigger_min_interval_seconds (2s default, matching _keep_typing), and honour typing_indicator: false, which previously only gated the refresh loop. Tests: keep the two invariants that are red on origin/main — an intermediate send() returns while sendChatAction is stalled, and a 20-chunk stream costs one sendChatAction per chat — and drop the eight change-detector variants. Co-authored-by: aurel282 <aurelien.gek@gmail.com>