Skip to content

fix(cron): support NO_REPLY token for skipping delivery in isolated jobs#10809

Closed
AI-Chef wants to merge 2 commits intoopenclaw:mainfrom
AI-Chef:fix/cron-no-reply-support
Closed

fix(cron): support NO_REPLY token for skipping delivery in isolated jobs#10809
AI-Chef wants to merge 2 commits intoopenclaw:mainfrom
AI-Chef:fix/cron-no-reply-support

Conversation

@AI-Chef
Copy link

@AI-Chef AI-Chef commented Feb 7, 2026

Summary

  • Add support for NO_REPLY (SILENT_REPLY_TOKEN) in cron isolated jobs to skip message delivery
  • Previously only HEARTBEAT_OK was recognized, causing "request ended without sending any chunks" errors when AI responded with NO_REPLY

Problem

Cron isolated jobs with delivery.mode: "announce" would fail when the AI responded with NO_REPLY because:

  1. The isHeartbeatOnlyResponse function only checked for HEARTBEAT_OK
  2. NO_REPLY is the standard silent reply token used elsewhere in the codebase
  3. This inconsistency caused the system to attempt delivery of "NO_REPLY" text, leading to errors

Changes

  • src/cron/isolated-agent/helpers.ts: Import and check for SILENT_REPLY_TOKEN in isHeartbeatOnlyResponse
  • src/cron/isolated-agent.delivers-response-has-heartbeat-ok-but-includes.test.ts: Add tests for NO_REPLY handling

Testing

  • Added test: "skips delivery when response is NO_REPLY"
  • Added test: "delivers when response has NO_REPLY but includes media"
  • All existing tests pass

Related

This makes cron job behavior consistent with other parts of the system that already support NO_REPLY via isSilentReplyText().

Greptile Overview

Greptile Summary

  • Updates cron isolated-agent delivery suppression to treat NO_REPLY (silent reply token) the same as HEARTBEAT_OK for text-only responses.
  • Adds regression tests ensuring NO_REPLY skips delivery while still delivering when media is present.
  • Keeps existing heartbeat/ackMaxChars behavior unchanged, aligning cron isolated jobs with the rest of the auto-reply pipeline’s silent-reply handling.

Confidence Score: 5/5

  • This PR is safe to merge with minimal risk.
  • The change is narrowly scoped (adds an additional skip condition for a known token), preserves existing heartbeat behavior, and includes deterministic tests covering the new NO_REPLY cases (with and without media). No other call paths are affected beyond the intended cron isolated-agent delivery gating.
  • No files require special attention

(3/5) Reply to the agent's comments like "Can you suggest a fix for this @greptileai?" or ask follow-up questions!

Context used:

  • Context from dashboard - CLAUDE.md (source)
  • Context from dashboard - AGENTS.md (source)

AI-Chef and others added 2 commits February 7, 2026 09:32
Previously, cron isolated jobs only recognized HEARTBEAT_OK as a signal
to skip message delivery. This caused issues when AI responded with
NO_REPLY (the standard silent reply token used elsewhere in the codebase),
resulting in 'request ended without sending any chunks' errors.

This change adds support for NO_REPLY/SILENT_REPLY_TOKEN in the
isHeartbeatOnlyResponse function, making cron jobs consistent with
other parts of the system.

Changes:
- Import isSilentReplyText and SILENT_REPLY_TOKEN in helpers.ts
- Check for NO_REPLY before checking HEARTBEAT_OK in isHeartbeatOnlyResponse
- Add tests for NO_REPLY handling (skip delivery, deliver with media)
@tyler6204
Copy link
Member

Superseded by #11641 (merge commit: 8fae55e). Closing to reduce duplicate PR noise. Please open a new PR only if there is additional scope beyond this fix.

@tyler6204 tyler6204 closed this Feb 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants