fix(heartbeat): suppress no-op system event replies#73785
fix(heartbeat): suppress no-op system event replies#73785pfrederiksen wants to merge 1 commit intoopenclaw:mainfrom
Conversation
Greptile SummaryThis PR refactors heartbeat reply suppression by centralizing no-op token detection into Confidence Score: 5/5Safe to merge — logic is straightforward, well-tested, and the behavioral change is intentional and correctly implemented. No P0 or P1 issues found. The sentinel detection is correctly gated, the early-return path in normalizeHeartbeatReply is sound, the removal of the old execFallbackText workaround is clean, and three new test cases validate all key scenarios. No files require special attention. Reviews (1): Last reviewed commit: "fix(heartbeat): suppress no-op system ev..." | Re-trigger Greptile |
7d4d936 to
4483377
Compare
|
Codex review: needs changes before merge. Summary Reproducibility: yes. source-level. Current main only suppresses heartbeat acks and the standard NO_REPLY path, so exact NO_NEW_AUDIO or SESSION_WATCHDOG_OK heartbeat replies remain ordinary deliverable text; the PR adds focused runHeartbeatOnce coverage for those cases. Next step before merge Security Review findings
Review detailsBest possible solution: Land a rebased narrow exact-sentinel suppression with a changelog entry while preserving structured heartbeat_respond and relayable exec-output behavior; leave broader job-defined no-reply contracts to the canonical follow-up discussion. Do we have a high-confidence way to reproduce the issue? Yes, source-level. Current main only suppresses heartbeat acks and the standard NO_REPLY path, so exact NO_NEW_AUDIO or SESSION_WATCHDOG_OK heartbeat replies remain ordinary deliverable text; the PR adds focused runHeartbeatOnce coverage for those cases. Is this the best way to solve the issue? Yes for the narrow bug class, if rebased carefully. Central exact-sentinel detection before heartbeat delivery is maintainable, but it must preserve current main's structured heartbeat tool path and relayable exec-completion safeguards. Full review comments:
Overall correctness: patch is correct Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against a4c1c28a1731. |
Suppress exact silent/no-op sentinel outputs from heartbeat and system-event handoffs so HEARTBEAT_OK and NO_REPLY-style responses do not leak as visible messages. Keep meaningful exec completion summaries deliverable.\n\nFixes openclaw#73149.
4483377 to
2116d31
Compare
Summary
HEARTBEAT_OK,NO_REPLY,NO_NEW_AUDIO, andSESSION_WATCHDOG_OKoutputs before deliveryFixes #73149.
Tests
pnpm exec oxlint src/auto-reply/tokens.ts src/infra/heartbeat-runner.ts src/infra/heartbeat-runner.respects-ackmaxchars-heartbeat-acks.test.tspnpm exec vitest run --config test/vitest/vitest.infra.config.ts src/infra/heartbeat-runner.respects-ackmaxchars-heartbeat-acks.test.tspnpm tsgo:core:testNote: attempted full
pnpm lint:core, buttsgolintwas SIGKILLed in this constrained worktree before reporting code findings. Ran the focused lint/type/test gates above successfully after rebasing on currentorigin/main.