[Bug]: Telegram progress bubble remains above subsequent assistant messages in progress streaming mode#92842
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 14, 2026, 8:24 AM ET / 12:24 UTC. Summary PR surface: Source +4, Tests +54. Total +58 across 2 files. Reproducibility: yes. from source and regression modeling: current main can keep an active progress draft while a later tool payload is delivered, and the PR adds failing-before ordering tests for text and artifact tool outputs. I did not run a live current-main Telegram repro in this read-only review. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the narrow Telegram ordering fix only after current-head Telegram Desktop or equivalent live transport proof shows the progress bubble clearing before visible tool text/artifacts and the final reply. Do we have a high-confidence way to reproduce the issue? Yes from source and regression modeling: current main can keep an active progress draft while a later tool payload is delivered, and the PR adds failing-before ordering tests for text and artifact tool outputs. I did not run a live current-main Telegram repro in this read-only review. Is this the best way to solve the issue? Likely yes as code direction: the PR reuses the existing answer-lane clear/rotate lifecycle at the visible tool-output boundary instead of adding a new transport path or config option. The unresolved blocker is current-head live visual proof, not a concrete wrong-layer code defect. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 4644e0c10256. Label changesLabel justifications:
Evidence reviewedPR surface: Source +4, Tests +54. Total +58 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Mantis Telegram Desktop ProofSummary: Mantis captured native Telegram Desktop before/after GIFs for Telegram progress message ordering.
Motion-trimmed clips: |
|
Superseded by #92998 with the same Telegram dispatch fix and a focused PR body. |




Summary
extensions/telegram/src/bot-message-dispatch.ts.Linked context
Closes #90753
Related #77727, #80862, #79804, #82089
Was this requested by a maintainer or owner?
Real behavior proof (required for external PRs)
channels.telegram.streaming.mode = "progress"could leave the progress/status draft above later assistant-visible output when visible tool output or artifacts were sent.48bea40, real Telegram Desktop/App private chat with real bot@moongpbot, local OpenClaw gateway, and deterministic local OpenAI Responses mock provider.Mock OpenAI provider request chain confirmed the real Telegram prompt drove an
exectool-call turn:Agent session output confirmed the tool and final model text were non-empty:
exectool call, and two Telegram outbound sends. However, the local Telegram Desktop visual capture showed blank bot bubbles, so I am not attaching it and I am not claiming this as clean Mantis-quality visual proof.expected 13 to be less than 12, showing the draft clear happened after the Telegram send.Tests and validation
Which commands did you run?
node scripts/run-vitest.mjs extensions/telegram/src/bot-message-dispatch.test.ts -t "clears progress drafts before durable verbose tool output"node scripts/run-vitest.mjs extensions/telegram/src/bot-message-dispatch.test.ts -t "clears progress drafts before visible tool artifacts"node scripts/run-vitest.mjs extensions/telegram/src/bot-message-dispatch.test.ts src/channels/progress-draft-compositor.test.tsFresh regression output after live proof:
What regression coverage was added or updated?
clears progress drafts before durable verbose tool outputinextensions/telegram/src/bot-message-dispatch.test.ts.clears progress drafts before visible tool artifactsinextensions/telegram/src/bot-message-dispatch.test.ts.What failed before this fix, if known?
answerDraftStream.clear()was invoked after the first durabledeliverReplies()call.answerDraftStream.clear()was also invoked after the first visible artifactdeliverReplies()call.If no test was added, why not?
Risk checklist
Did user-visible behavior change? (
Yes/No)Did config, environment, or migration behavior change? (
Yes/No)Did security, auth, secrets, network, or tool execution behavior change? (
Yes/No)What is the highest-risk area?
How is that risk mitigated?
Current review state
What is the next action?
What is still waiting on author, maintainer, CI, or external proof?
Which bot or reviewer comments were addressed?