Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions gateway/stream_consumer.py
Original file line number Diff line number Diff line change
Expand Up @@ -640,6 +640,7 @@ async def _send_fallback_final(self, text: str) -> None:
safe_limit = max(500, raw_limit - 100)
chunks = self._split_text_chunks(continuation, safe_limit)

stale_message_id = self._message_id # partial message to clean up
last_message_id: Optional[str] = None
last_successful_chunk = ""
sent_any_chunk = False
Expand Down Expand Up @@ -687,6 +688,16 @@ async def _send_fallback_final(self, text: str) -> None:
# so any stale tool-progress bubble gets closed off.
self._notify_new_message()

# Remove the frozen partial message so the user only sees the
# complete fallback response. Best-effort — if the delete fails
# (e.g. flood control still active, or bot lacks permission), the
# partial message remains but at least the full answer was delivered.
if stale_message_id and stale_message_id != last_message_id:
try:
await self.adapter.delete_message(self.chat_id, stale_message_id)
except Exception:
pass

self._message_id = last_message_id
self._already_sent = True
self._final_response_sent = True
Expand Down