Skip to content

Feature: Telegram temporary tool-progress previews with final native quote replies #82089

Description

@alexph-dev

Summary

Please support Telegram tool-progress previews during turns that will finish with a native Telegram quote reply.

Desired behavior:

  1. When channels.telegram.replyToMode: "first" is enabled and the inbound Telegram message has selected quote context, OpenClaw should still show a temporary tool-progress/status preview while the turn is running.
  2. When the turn finishes, OpenClaw should send the final answer through Telegram's native quote-reply path, preserving the selected quote UX.
  3. The temporary preview should then disappear or resolve cleanly, so the chat history only keeps final messages that the model explicitly sends.

Current behavior

As documented after #73487 / #73495, selected/native Telegram quote replies currently skip the answer draft preview stream. Because answerLane.stream is not created in that path, streaming.preview.toolProgress cannot render the short Working... / tool-progress lines for those turns.

This is now documented and warned about by openclaw doctor, but the runtime limitation remains.

Why this matters

For Telegram operator workflows, both behaviors are valuable:

  • Native quote replies preserve the exact message or selected quote being answered, which is important in busy groups/topics.
  • Temporary tool-progress previews make long Codex/tool-heavy turns observable while work is happening.

The current trade-off forces users to choose one: either keep native quote replies or get visible tool-progress previews.

Proposed product behavior

A possible implementation shape:

  • Keep the final answer path unchanged: selected quote turns still finish via Telegram native quote reply.
  • Add a separate temporary progress lane/message for selected quote turns when preview streaming/tool-progress is enabled.
  • Edit that temporary message as tool progress changes.
  • On successful final delivery, delete the temporary progress message or edit it into a short resolved state and then delete it if Telegram constraints require.
  • On failure/error/approval/media cases, preserve enough status for recovery and avoid deleting useful error context.

Acceptance criteria

  • With channels.telegram.replyToMode: "first" and streaming.preview.toolProgress enabled, selected quote turns show visible in-chat progress while tools run.
  • The final assistant answer is sent as a native Telegram quote reply to the selected/replied message.
  • Successful turns do not leave stale Working... or tool-progress messages in chat history.
  • Existing behavior for non-selected current-message replies remains unchanged.
  • Existing streaming.preview.toolProgress: false continues to suppress these temporary progress messages.
  • Doctor/docs are updated to describe the new supported behavior and any remaining edge cases.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low-priority cleanup, docs, polish, ergonomics, or speculative work.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions