Drop the shim's is_rejected_flush and the runner's flush_rejected: the C++
does not misbehave on non-increasing knots (N_IgesValidate inside
CreateCanonical returns SM_ERR for decreasing knots, accepts equal ones), so
every Flush now runs and the sm_FlushCrv error path is compared. Add 105
review adversarial fixtures, drop the stale EvaluateNormal deferral note, and
record the classify-guard width, the unreachable Tangent/Coincident
classifications and the step-7 deferrals in plan/findings.md.
difftest: 1660 cases, 1508 pass, 0 fail, 152 deferred, max_rel_err 0.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
Finish the SmSurfaceIntersector part 2 port: the shim, ffi and runner now
also build SmCurveBoundedSurface (over a plane or B-spline basis), the
generator wraps surfaces in it, and planar-section fixtures come from
prog_test my_test_planar_section on shovel.srf. Difftest: 1517 cases,
1314 pass, 203 deferred (surface.surface_p3/p5/p7, blend.fillet_executive_p1).
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MNGVDsEXPdxtFSUKma3wKs