fix: suppress Telegram fallback after message-tool-only turns#90080
fix: suppress Telegram fallback after message-tool-only turns#90080pfrederiksen wants to merge 1 commit into
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed June 3, 2026, 8:57 PM ET / 00:57 UTC. Summary PR surface: Source +1, Tests +38. Total +39 across 2 files. Reproducibility: yes. from source inspection: current main can mark a non-silent skipped automatic final payload, return Review metrics: none identified. 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 fallback guard after live Telegram proof or maintainer acceptance confirms a message-tool-only group turn sends only the intended message-tool reply and no generic fallback. Do we have a high-confidence way to reproduce the issue? Yes from source inspection: current main can mark a non-silent skipped automatic final payload, return Is this the best way to solve the issue? Yes, the proposed fix is the best small owner-boundary fix: Telegram already tracks AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 392af2e61201. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +1, Tests +38. Total +39 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
|
|
Closing at the reporter's request. |
Summary
message_tool_only.Fixes #90076.
Before/After Proof
Before:
extensions/telegram/src/bot-message-dispatch.tstreated any non-silent skipped/failed Telegram delivery lane payload as eligible forNo response generated. Please try again., even whensourceReplyDeliveryModewasmessage_tool_onlyand the visible reply was expected to happen through the message tool.After: the empty-response fallback path now respects the existing
suppressSilentReplyFallbackguard for message-tool-only turns, so skipped automatic final text does not create a second fallback reply.Real Behavior Proof
Behavior addressed: Telegram group turns that send visible output through the message tool and finish with
NO_REPLYno longer emit the empty-response fallback when the automatic Telegram final-delivery lane records a skipped non-silent payload.Real environment tested: local OpenClaw source checkout on Linux, hydrated with
pnpm install --frozen-lockfile, running the patched Telegram dispatch path from this branch.Exact steps or command run after this patch:
node scripts/run-vitest.mjs extensions/telegram/src/bot-message-dispatch.test.tsEvidence after fix: terminal capture from the patched OpenClaw checkout:
Observed result after fix: the new Telegram dispatch case keeps
deliverReplies,editMessageTelegram, andsendMessageTelegramuncalled for the message-tool-only empty-response fallback path, so noNo response generated. Please try again.fallback is emitted.What was not tested: live Telegram API delivery; this change is covered at the Telegram dispatch level in a local OpenClaw checkout.
Verification
pnpm install --frozen-lockfilenode scripts/run-vitest.mjs extensions/telegram/src/bot-message-dispatch.test.tsgit diff --check