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 amax_turns=1,allowed_tools=[]single-shot text generation but never boundedClaudeAgentOptions.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 boundingmax_thinking_tokensso headroom for the actual FILE-block answer always remains, regardless ofmax_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.