Skip to content

Synapse v2.1.4 — "room to think"

Patch release fixing a live-observed CLI-provider non-convergence mode. No schema migrations.

Fixed

  • CLI provider could emit zero visible text on a reasoning-heavy generation turn: live evidence — a run on the CLI provider stopped non-convergent after all 3 iterations, with "generation produced no FILE blocks (0 parsed)" as the terminal validation error every time (~43k/60k tokens spent). CliAgentProvider.complete() runs a max_turns=1, allowed_tools=[] single-shot text generation but never bounded ClaudeAgentOptions.max_thinking_tokens — the installed SDK does expose this field (a stale code comment had claimed otherwise). A reasoning-heavy turn (a long/complex source, or a retry whose prompt has grown with prior validation errors) could spend the ENTIRE turn's budget on internal thinking and emit zero visible text; the SDK reports no error for this, so it was indistinguishable from a genuine clean no-op, and because each retry's prompt only grows (augmented with the prior "0 FILE blocks" error), the failure never self-corrected across iterations. Fixed by bounding max_thinking_tokens so headroom for the actual FILE-block answer always remains, regardless of max_turns.

Upgrade notes

No schema migrations. If you had an ingest run on the CLI provider stuck at "Non convergito" with "generation produced no FILE blocks (0 parsed)" as the last validation error, retry it — it should now have a much lower chance of repeating that specific failure.