Version: 2026.9.1 (ad6fe23), macOS arm64, node 26.7.0
Summary: An hourly heartbeat job correctly decided NO_REPLY (quiet morning, nothing pending), but the runtime's reasoning-only retry machinery treated the silent turn as a failure and force-generated a visible answer, which was then delivered to the Telegram channel. The user received an unsolicited interactive-sounding message ("…let me know what you'd like to work on or check") at 09:35 despite the heartbeat's own bookkeeping recording deliveryStatus: "not-requested".
Gateway log evidence (2026-09-06, Europe/Zurich):
09:34:36 reasoning-only assistant turn detected: runId=c6ca3d91-… sessionId=454f7473-…
provider=openrouter/deepseek/deepseek-v4-flash — retrying 1/2 with visible-answer continuation
09:35:04 telegram outbound send ok accountId=default chatId=<redacted> messageId=109
operation=sendMessage deliveryKind=text chunkCount=1
Expected: when a heartbeat (or any turn whose outcome is an intentional NO_REPLY / silent result) produces a reasoning-only response, the visible-answer retry should not convert it into a delivered channel message. The retry mechanism and the heartbeat's silence contract currently contradict each other, and the forced message also bypasses the heartbeat's delivery bookkeeping (not-requested was recorded even though a send happened; a query of audit_events for the window returned zero rows).
Notes: the heartbeat model here is a small OpenRouter model (deepseek-v4-flash) which frequently emits reasoning-only turns when the correct answer is "say nothing" — so this combination triggers regularly, not as a one-off.
Version: 2026.9.1 (ad6fe23), macOS arm64, node 26.7.0
Summary: An hourly heartbeat job correctly decided NO_REPLY (quiet morning, nothing pending), but the runtime's reasoning-only retry machinery treated the silent turn as a failure and force-generated a visible answer, which was then delivered to the Telegram channel. The user received an unsolicited interactive-sounding message ("…let me know what you'd like to work on or check") at 09:35 despite the heartbeat's own bookkeeping recording
deliveryStatus: "not-requested".Gateway log evidence (2026-09-06, Europe/Zurich):
Expected: when a heartbeat (or any turn whose outcome is an intentional NO_REPLY / silent result) produces a reasoning-only response, the visible-answer retry should not convert it into a delivered channel message. The retry mechanism and the heartbeat's silence contract currently contradict each other, and the forced message also bypasses the heartbeat's delivery bookkeeping (
not-requestedwas recorded even though a send happened; a query of audit_events for the window returned zero rows).Notes: the heartbeat model here is a small OpenRouter model (deepseek-v4-flash) which frequently emits reasoning-only turns when the correct answer is "say nothing" — so this combination triggers regularly, not as a one-off.