c7614d78b6
out_budget sizes the token budget to the OUTPUT file — it can't see reasoning tokens coming. A reasoning model (kimi-k2.6) then spent the ENTIRE budget thinking and returned zero content: 6498 reasoning_tokens of a 6518 budget. The retry doubled the budget, creeping up one starved iteration at a time. Now, once we KNOW it hit the length cap with no content, go straight to OUT_CEIL — reasoning headroom plus the file on top — in one decisive retry. This is why the sic read-error grind looked like a Kimi capability wall: Kimi never got to emit a fix, it just reasoning-burned to empty. (The test itself was also unsatisfiable in Go — separate commit in marfrit/sic — so no budget would have helped there, but the starvation is a real ladder bug that would silently kneecap every future reasoning-model escalation.)