On --resume, a background task stopped by the previous restart is replayed
as its own zero-turn turn with an empty result, before the real turn.
consume_stream took it as the answer -> empty Discord message (400) ->
"Sorry, something went wrong", while the real turn ran orphaned.
- stream_json: skip result with num_turns=0, empty, non-error
- router: empty Claude response becomes a visible notice, not an adapter crash
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014y1sJNe6mkWwFMwkWmCg8J