OpenClaw merged PR #100456, "fix(auto-reply): surface empty interactive completions", a P1 message-delivery fix for successful agent turns that finish without a visible reply.
The failure mode is subtle but painful. An interactive turn can complete successfully in the runtime while directive stripping, reasoning/commentary filtering, model-fallback exhaustion, queued follow-up routing, or block-stream deduplication leaves no final message that should be shown to the user.
Before this fix, the user could see a completed turn and still receive no explanation.
What Changed
The PR moves the policy to the reply-delivery owner boundary. Instead of teaching every provider, TUI path, or streaming implementation how to decide whether silence is acceptable, OpenClaw now makes the delivery layer responsible for distinguishing intentional silence from an empty failed result.
Direct replies and queued follow-up paths now share safe failure copy and the same conversation-silence policy. The implementation also separates terminal delivery evidence from reasoning, commentary, status notices, and empty voice markers.
That distinction matters because OpenClaw still has legitimate no-reply cases. The PR explicitly preserves silence for NO_REPLY, heartbeats, pending continuations, message-tool-only runs, room or internal events, and committed side effects.
Why It Matters
OpenClaw users do not care whether an empty result came from model fallback, stream block handling, directive filtering, or a channel-specific follow-up path. If an interactive request was supposed to produce a visible answer and did not, the system should say so in a controlled way.
This fix improves trust without making agents noisier. It does not convert deliberate silence into chatter. It only catches the case where a turn completed, had no deliverable reply, and would otherwise leave the user guessing.
The change is especially relevant for channel users. A chat surface makes absence feel like a routing or reliability bug. A sanitized terminal failure gives the user something actionable while protecting internal details.
Validation
The PR reports focused Testbox coverage with 236 passing tests across direct reply, queued follow-up, and block-stream suites. It also links an exact changed gate covering typecheck, lint, focused tests, and changed-surface checks.
Hosted CI passed at the exact head, and the author included source-blind real Gateway plus TUI PTY proof. That proof covered a visible failure, absence of the raw directive, a successful next turn, and a clean exit.
The PR also checked upstream Codex contract behavior, noting that completed turns can legitimately emit an empty item list and that NotLoaded is intentionally empty.
Bottom Line
OpenClaw now handles empty interactive completions at the boundary users actually experience: reply delivery. When a completed turn cannot produce a visible answer, users get a safe failure instead of unexplained silence.
