- difftest: serde_json float_roundtrip, so inputs parse correctly rounded like strtod
(1610 corpus numbers were 1 ULP off); regenerated reports/ssi-corpus.json and the five
difftest reports whose values_compared counts moved (all still pass; --green 0 failed)
- ATTRIBUTION.md: ssi-corpus copyright line from its LICENSE-MIT
- surface.plane_p1/p2: record that natural_uv_domain does not cache the NURB as
upstream GetNaturalUVDomain does, which changes IntersectWithPlane's parallel branch;
findings entry moved under surface.plane_p1, follow-up in modules.toml notes
- engine: Rust side rejects what the C++ encoder rejects; torus deferrals name
surface.surface_p2 (owner of SurfaceKind); shim degree bound NL_MAXDEG
- fetch script: refuse an existing checkout with local changes
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm
- scripts/fetch-ssi-corpus.sh pins b04c8a6093a8b3505d865d1dd874ec3879ccb1f9, checks
the existing checkout's origin URL and requires HEAD to equal the pin
- plan/upstream-issues.md: the 38 C++ misses on the corpus, grouped (WR-74..WR-80)
- plan/findings.md: scorer agreement and the plane NURB state note
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BY8UpXKuMci15rAWGXsbsm