diff --git a/gateway/stream_consumer.py b/gateway/stream_consumer.py index 16d1cecd3..33910c7b4 100644 --- a/gateway/stream_consumer.py +++ b/gateway/stream_consumer.py @@ -530,7 +530,19 @@ class GatewayStreamConsumer: if split_at < _safe_limit // 2: split_at = _safe_limit chunk = self._accumulated[:split_at] - ok = await self._send_or_edit(chunk) + # finalize=True so the adapter applies platform-specific + # rich-text markup (e.g. Telegram MarkdownV2). This + # sealed chunk will never be edited again — _message_id + # is reset to None right below — so it must receive its + # final formatting pass now, or early split messages + # render raw markdown while only the last chunk renders. + # is_turn_final=False: this is the first of several split + # messages, NOT the turn-final answer, so the fresh-final + # path (opt-in fresh_final_after_seconds) must not mark + # the turn delivered on it (#29346 semantics). + ok = await self._send_or_edit( + chunk, finalize=True, is_turn_final=False, + ) if self._fallback_final_send or not ok: # Edit failed (or backed off due to flood control) # while attempting to split an oversized message. diff --git a/scripts/release.py b/scripts/release.py index 6fa874afd..adf20ceaa 100755 --- a/scripts/release.py +++ b/scripts/release.py @@ -48,6 +48,7 @@ AUTHOR_MAP = { "zhaolei.vc@bytedance.com": "zhaoleibd", "jeffrobodie@gmail.com": "jeffrobodie-glitch", "kyssta-exe@users.noreply.github.com": "kyssta-exe", + "ali.zakaee.1997@gmail.com": "ITheEqualizer", "copii.list@gmail.com": "stremtec", "solaiagent@gmail.com": "solaitken", "cryptoworlldz@gmail.com": "worlldz",