fix: silence heartbeat notify=false fallback replies#100735
Conversation
|
Verification update for head
Known proof gap remains only the live Crabbox/native Telegram scenario, blocked by the local Crabbox binary sanity failure before it could launch a remote run. |
|
Codex review: stale review; fresh review needed. Summary Next step Review history (1 earlier review cycle)
|
|
Thanks, the remaining blocker is understood: this needs real Telegram-visible proof rather than more unit coverage. I don’t have access to the Mantis/native Telegram proof environment from this contributor branch. Could a maintainer please run: @openclaw-mantis telegram desktop proof: verify that a heartbeat fallback ending in notify=false sends no visible marker and capture evidence of the silent delivery path. The PR head is 496436a. Existing CI and focused tests are green; the missing proof is specifically the Telegram-visible marker/silent-delivery path. |
Mantis Telegram Desktop ProofSummary: Mantis captured native Telegram Desktop before/after GIF evidence for heartbeat fallback replies.
Motion-trimmed clips: |
|
Mantis native Telegram Desktop proof is now included in the PR body. @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
78a37a5 to
ba16b82
Compare
|
Head moved to ba16b82 with Vincent's follow-up commit, and the new head checks are green. Mantis proof remains linked in the PR body for the previous candidate; please re-review the current head and call out if fresh Mantis proof is required for the follow-up change. @clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
ba16b82 to
bbfd1c7
Compare
bbfd1c7 to
f9da050
Compare
|
Maintainer validation is complete for head
The maintainer fix also covers the marker-only |
* fix(heartbeat): consume trailing notify=false fallback marker * fix(heartbeat): keep notify=false marker fully silent --------- Co-authored-by: martin <[email protected]> Co-authored-by: Vincent Koc <[email protected]>
* fix(heartbeat): consume trailing notify=false fallback marker * fix(heartbeat): keep notify=false marker fully silent --------- Co-authored-by: martin <[email protected]> Co-authored-by: Vincent Koc <[email protected]>




Closes #80569
What Problem This Solves
Fixes an issue where Telegram heartbeat fallback replies could expose a trailing standalone
notify=falsecontrol marker as user-visible message text and still deliver the message as a normal notification.Why This Change Was Made
This keeps the fix at the heartbeat fallback boundary instead of parsing Telegram transport text. Plain fallback replies now consume only a final standalone
notify=falseline, forward the existing durable-sendsilentmetadata, suppress marker-only replies, and preserve inlinenotify=falsetext.User Impact
Users no longer see
notify=falseappended to Telegram heartbeat fallback replies. When a fallback reply includes that final control marker, OpenClaw sends the remaining message silently through the existing Telegramdisable_notificationpath.Evidence
496436a93b18cfa540e38adbcb53e1445306dc4e: https://github.com/openclaw/openclaw/actions/runs/28779391086node scripts/run-vitest.mjs src/infra/heartbeat-runner.tool-response.test.ts src/infra/heartbeat-runner.ghost-reminder.test.ts src/infra/heartbeat-events-filter.test.ts extensions/telegram/src/outbound-adapter.test.ts src/channels/message/send.test.tsPassed: 4 Vitest shards, 130 tests.
node scripts/run-vitest.mjs src/infra/outbound/payloads.test.ts extensions/telegram/src/bot/delivery.test.tsPassed: 2 Vitest shards, 102 tests.
node scripts/run-vitest.mjs src/infra/heartbeat-runner.tool-response.test.tsPassed after formatting: 1 Vitest shard, 21 tests.
node_modules/.bin/oxfmt --check --threads=1 src/infra/heartbeat-runner.ts src/infra/heartbeat-runner.tool-response.test.ts test/helpers/infra/heartbeat-runner-channel-plugins.tspassed.git diff --checkpassed..agents/skills/autoreview/scripts/autoreview --mode localpassed clean: no accepted/actionable findings.Earlier remote/Testbox local-launch gap is now covered by the Mantis native Telegram Desktop proof above. The local Crabbox wrapper in this checkout still fails basic version/help sanity checks before project code, but the required Telegram-visible behavior proof exists in the hosted Mantis run.