Summary
When the assistant runs a long task in chat surfaces (e.g., QQ, Telegram), users often cannot tell whether it is still running or unresponsive.
I’d like OpenClaw to support a built-in fixed-interval progress heartbeat during a single long-running turn, so users can reliably see that
execution is still alive in chat surfaces (QQ/Telegram/Discord/etc.).
Current streaming/heartbeat visibility is helpful, but it does not guarantee a strict “every 60 seconds” status update while a task is still
running.
Problem to solve
In chat UX, when a task takes several minutes, users can’t always distinguish:
- still running,
- blocked/stuck,
- or silently failed.
This is especially problematic on channels where typing indicators or partial streaming are inconsistent.
Proposed solution
For long-running tasks, OpenClaw should optionally emit periodic progress updates at a fixed interval (e.g., every 60s), with a simple lifecycle:
- started
- running (every N seconds)
- done / failed
Please consider adding global config options like:
progressHeartbeat:
enabled: true
intervalMs: 60000
minTaskDurationMs: 30000
channels:
default: true
qqbot: true
telegram: true
discord: true
templates:
started: "Received. Starting now. ETA: {eta}"
running: "Still running... {progress}"
done: "Completed."
failed: "Failed: {error}"
Alternatives considered
No response
Acceptance criteria
- When a single turn runs longer than minTaskDurationMs, the user receives:
- one start message,
- one running update every intervalMs,
- one final completion/failure message.
- Works consistently across supported channels (with graceful degradation if platform limits apply).
- Per-channel override is supported.
- If a channel rate-limit prevents strict cadence, OpenClaw reports fallback behavior explicitly (instead of silent gaps).
Impact
Why this matters
- Improves trust during long operations
- Reduces “are you stuck?” follow-up messages
- Makes agent behavior predictable across messaging platforms
- Better UX for mobile chat clients where task state is otherwise opaque
Nice-to-have
- Channel-level override of heartbeat interval
- Auto-throttling (avoid noisy updates if meaningful progress already posted)
- Optional “status on demand” command (e.g., user sends “status?”)
Evidence/examples
No response
Additional information
No response
Summary
When the assistant runs a long task in chat surfaces (e.g., QQ, Telegram), users often cannot tell whether it is still running or unresponsive.
I’d like OpenClaw to support a built-in fixed-interval progress heartbeat during a single long-running turn, so users can reliably see that
execution is still alive in chat surfaces (QQ/Telegram/Discord/etc.).
Current streaming/heartbeat visibility is helpful, but it does not guarantee a strict “every 60 seconds” status update while a task is still
running.
Problem to solve
In chat UX, when a task takes several minutes, users can’t always distinguish:
This is especially problematic on channels where typing indicators or partial streaming are inconsistent.
Proposed solution
For long-running tasks, OpenClaw should optionally emit periodic progress updates at a fixed interval (e.g., every 60s), with a simple lifecycle:
Please consider adding global config options like:
Alternatives considered
No response
Acceptance criteria
Impact
Why this matters
Nice-to-have
Evidence/examples
No response
Additional information
No response