Root Cause
The observer mode prompts instruct the model to return an empty response when there is nothing to record, but the output parser only accepts <skip_summary reason="..."/> as a valid skip signal. Any empty, idle, or prose response increments consecutiveInvalidOutputs and at threshold 3 kills and respawns the SDK session, creating an infinite poison loop on low-signal sessions. This affects both the Claude provider (SDKAgent) and OpenRouter/Gemini providers.
Tracked Items
Issues
PRs
Resolution
This is the canonical tracking issue for this root cause. Individual issues and PRs listed above will be closed in favor of this one.
Root Cause
The observer mode prompts instruct the model to return an empty response when there is nothing to record, but the output parser only accepts
<skip_summary reason="..."/>as a valid skip signal. Any empty, idle, or prose response incrementsconsecutiveInvalidOutputsand at threshold 3 kills and respawns the SDK session, creating an infinite poison loop on low-signal sessions. This affects both the Claude provider (SDKAgent) and OpenRouter/Gemini providers.Tracked Items
Issues
PRs
Resolution
This is the canonical tracking issue for this root cause. Individual issues and PRs listed above will be closed in favor of this one.