What's Fixed
Empty turn responses now trigger model fallback
Problem: Under the eco profile (and sometimes auto), agentic clients like Roo Code would receive silent empty responses — the model returned HTTP 200 with no content and no tool calls, just finish_reason: stop. The proxy treated this as success and forwarded the empty turn to the client, causing the agent to loop or stall.
Root cause: Models like gemini-3.1-flash-lite sometimes refuse complex agentic requests (large Roo Code tool schemas) by producing a zero-output response instead of an error. ClawRouter's degraded-response detector didn't catch this pattern, so it never fell back to the next model.
Fix: detectDegradedSuccessResponse now flags responses where:
choices[0].message.contentis empty and- no
tool_callsand finish_reason === "stop"
These are treated as degraded response: empty turn → fallback fires → next model in chain is tried automatically.
Upgrade
npm i -g @blockrun/clawrouter@latest