-
-
Notifications
You must be signed in to change notification settings - Fork 52.6k
Description
Description
When cron job announcements with HEARTBEAT_OK results are delivered to the main agent session while the agent is actively replying to the user, the HEARTBEAT_OK token leaks into user-visible messages instead of being silently suppressed.
Steps to Reproduce
- Have multiple cron jobs running with announce delivery (e.g.
meeting-reminderevery 5 minutes) - When those jobs return
HEARTBEAT_OK(nothing to report), the system queues them as announce messages to the main session - If the agent is mid-reply to the user, the
HEARTBEAT_OKgets appended to the actual user-facing response - User sees
HEARTBEAT_OKat the end of otherwise normal messages
Expected Behavior
Cron announce results that are HEARTBEAT_OK should be silently discarded before reaching the agent session. The agent should never need to handle or suppress these — they should be filtered at the delivery layer.
Actual Behavior
HEARTBEAT_OK tokens from cron announce deliveries leak into user-visible replies, appearing appended to normal assistant messages on Telegram (and likely other surfaces).
Environment
- OpenClaw version: 2026.3.1
- Channel: Telegram (direct chat)
- Cron jobs:
meeting-reminder(every 5 min),tennis-live(every 30 min), etc. - Multiple cron jobs returning HEARTBEAT_OK queued as announce messages
Additional Context
The NO_REPLY stripping fix in 2026.3.1 (Auto-reply/NO_REPLY: strip NO_REPLY token from mixed-content messages) addresses a similar class of issue for NO_REPLY, but HEARTBEAT_OK from cron announce paths is not similarly handled.
A potential fix would be to filter HEARTBEAT_OK results at the cron delivery layer before they reach the agent session, similar to how the system already handles delivery.mode: "none" jobs.