Found while size-budgeting a real logo, then reproduced on the corpus. Ask for a 120 KB SVG of a photograph and it returned 72 KB — and every budget from 80 KB down returned that same 72 KB, unable to get smaller. A budget that pays 0.11 SSIM to land at 72 KB when 120 KB was asked is spending accuracy the target never demanded.
Two causes, both fixed.
The relaxation function had a cliff. The structural levers (drop specks, trim palette) are discontinuous — on a photograph, minArea reaching ~20 took the byte count from 319 KB straight to 62 KB with nothing in between, so any target landing in that gap was unreachable and the bisection settled on the far side and called it a fit. Coordinate precision is now a lever, running after fit tolerance and before any structural cut: rounding path coordinates shrinks bytes smoothly (~15–25% per dropped decimal) while deleting no structure, which fills the gap.
The search wasted its steps. It expanded through a fixed ladder and only then bisected. Now that the curve is monotone and cliff-free it is a plain bisection on [0, 1], and the step budget went 4 → 8 (each step only measures bytes; only the baseline and the settled result render, so it stays cheap).
Measured on parrots:
| target | before | after |
|---|---|---|
| 200 KB | 127 KB (−40%) | 173 KB (−14%) |
| 120 KB | 72 KB (−40%) | 114 KB (−5%) |
| 80 KB | 72 KB | 80 KB (0%) |
| 40 KB | 72 KB | honestly reports the ~46 KB lever floor as unreached |
Before, three different targets returned one wrong number. After, each lands close or says plainly it cannot be reached.
523 tests · smoke clean · corpus problems: 0