forked from 1b-agent/opencadstudio-upstream
Two faults met on the same command, both of them older than the move to cadkernel and both hidden until ellipse previews started rendering truthfully. The survivor came back in two pieces. `trim_ellipse` handed its cuts to `trim_intervals`, which is the open-curve routine: it anchors on bounds at 0.0 and 1.0, so a closed ellipse gained invented cuts at the parameter seam and the surviving arc arrived split either side of it. Worse, a click in the wrapping piece landed in one of those two halves, so the wrong span disappeared. A closed ellipse now takes the cyclic route circles already used — find the cut-to-cut gap holding the click, keep everything else, and let end < start signal the wrap. The cut span was also short. That came from `line_ellipse`, fixed upstream in cadkernel 46e76cc: it returned the geometric angle at the centre rather than the ellipse parameter, which are the same thing only on a circle. On anything eccentric the cuts sat tens of degrees off where the line actually crossed, so the removed piece was consistently too small. The lock bump brings that fix in. Elliptical arcs, lines, rays, xlines and open splines keep using `trim_intervals`; nothing about the open-curve path changes. Co-Authored-By: Claude Opus 5 <[email protected]>