Repository navigation
Conversation
- Runner/FFI: decode SmPointClassificationType and SmTsectCurveType codes exactly (unknown codes are a harness error, no Unknown default); pc_from returns Result. - new_classification applies SmZoneTol3d (fabs, USE_DEFAULT) before the > 0 check, as the C++ constructor does: fixes the 3 fuzz differs of sm_SetEdgeClass with tolerance -1e300. - Surface encoder: empty knot vectors are a harness error, not a panic (fuzz00058, fuzz00396). - CalculateUVDomainFromUVTrimCurves call sites: SmExtent2d::Intersect's SM_ERR_INVALID_INPUT keeps the face domain (upstream's == SM_SUCCESS test). - Lesson-27 audit of p1.rs: full stub signatures, explicit defaults, ignored statuses keep upstream defaults, split_tol re-read. - plan/modules.toml: drop the stale topology.face_p1 stub entry. difftest: PARTIAL 827 cases, 653 pass, 0 fail, 174 deferred (unchanged); SENSITIVE 653/653; --fuzz 2000 FUZZ-PASS; green-par 200/0; valgrind clean. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HBgcxze64BBVRNjGewaEuN
bluecmd
added a commit
to bluecmd/solidcore
that referenced
this pull request
Oct 18, 2026
…into topology.brep_p7 AGENTS.md 4a, following tangency-labs#145/tangency-labs#204's adapter pattern: - IntersectorBrep<O> gains brep_glue_edges_general(k, brep, surviving, relative_orientation, edge_gap, do_region_nesting, to_delete, inside_faceuses) with every upstream argument (pInsideFaceuses NULL passed explicitly); the private UNPORTED(topology.brep_p7) stub is removed and the SmTopologyIntersector.cpp:8338 call site uses it. - face_face_intersect takes the kernel mutably (glue_edges_general needs it for IsInnerShell). - The intersector runner's Two adapter implements it with topology::brep::p7::glue_edges_general on the handle's B-rep. - The intersector_p1 report is byte-identical: no case reaches the glue yet (earlier stubs defer first). COORD.md records the trait addition and its overlap with tangency-labs#145, tangency-labs#204 and tangency-labs#227. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EA8bchjV6Km7PFkmnvYBTA
Merged
…ncy-labs#196) into followup/boolean.topology_intersector_p1 p1.rs: main's IntersectorBrep::brep_edges / brep_vertices (the GetEdges / GetVertices stubs removed) with this branch's MakeVertexLoop signature. modules.toml: main's note kept verbatim (its tangency-labs#145 UPDATE included); this branch's follow-up text appended after it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HBgcxze64BBVRNjGewaEuN
…followup/boolean.topology_intersector_p1 p1.rs: main's IntersectorBrep::brep_glue_edges_general call (this branch's GlueEdgesGeneral stub dropped) with this branch's DeleteFace signature. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HBgcxze64BBVRNjGewaEuN
Collaborator
|
Thanks @bluecmd for these follow-ups. I reviewed head What passed (local run, fresh worktree):
Checked against upstream:
Nits (optional):
🤖 Generated with Claude Code |
Contributor
Author
|
Thank you for the review and the upstream checks. I'll take both nits (the stale 653/174 verification counts and a shorter 🤖 Generated with Claude Code |
Collaborator
|
Landed in batch #259 together with other reviewed PRs; thanks @bluecmd! 🤖 Generated with Claude Code |
bluecmd
added a commit
to bluecmd/solidcore
that referenced
this pull request
Oct 19, 2026
…differs The three --fuzz 2000 differs on main 0cf3e29 (sm_SetEdgeClass with tolerance -1e300; fixed in tangency-labs#227 by passing it through SmZoneTol3d) become value-comparing fixtures. 830 cases, 693 pass, 0 failed, 137 deferred. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HBgcxze64BBVRNjGewaEuN
denelson1-dot
pushed a commit
to denelson1-dot/solidcore
that referenced
this pull request
Oct 20, 2026
… follow-ups (review nit) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HBgcxze64BBVRNjGewaEuN
denelson1-dot
pushed a commit
to denelson1-dot/solidcore
that referenced
this pull request
Oct 20, 2026
…ency-labs#227 follow-ups (notes prefix, fuzz regression fixtures)) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Pfe7dodPG5rpuN9B8QcnuX
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-ups to #146 (
boolean.topology_intersector_p1), as announced in #146 (comment). One commit onmain(a28e0f0). No port claim and no change to the unit's case outcomes.Also fixes
main's current FUZZ-FAIL.--fuzz 2000onmain154853c has 3 differs (sm_SetEdgeClasswith tolerance-1e300, fixed by item 2) and 5 C++-runner subtract-overflow panics atboolean_topology_intersector_p1.rs:406/407(empty knot vectors, fixed by item 3). It passes at this PR's head.What changes
Exact enum decoding (lesson 22). The runner and FFI decode
SmPointClassificationTypeandSmTsectCurveTypecodes exactly.pc_fromno longer falls back toUnknown; an unknown code is a harness error, and the FFI bounds curve types to0..=6.SmZoneTol3dinSetEdgeClass. The runner'snew_classificationpasses the tolerance throughzone_tol3dbefore the> 0check, as the C++ constructor does viaSmZoneTol3d(double)(SmTol.cpp:107/SmTol.h:146:fabs,USE_DEFAULT). This fixes main's 3--fuzzdiffers onsm_SetEdgeClasswith tolerance-1e300(C++ VERTEX, Rust EDGE).Empty knot vectors. The surface encoder's knot counts use
checked_sub. An empty knot vector is now a harness error, where it used to panic (fuzz00058, fuzz00396).CalculateUVDomainFromUVTrimCurvescall sites. At the three sites,SmExtent2d::Intersect'sSM_ERR_INVALID_INPUT(Extent2d::intersect'sInvalidInput) keeps the face domain, as upstream's== SM_SUCCESStest does. Before, it was reported as undefined behaviour. This is latent: no case reaches it untiltopology.face_p3'sCreateUVTrimCurves.Stale stub entry.
plan/modules.tomldrops thetopology.face_p1stub entry (wired since port: topology.face_p1 #148).Lesson-27 audit of
p1.rs:SmBrep.h/SmFace.h);The
brep_edges/brep_verticesstubs are kept exactly as onmainfor port: topology.brep_p1 #145'sIntersectorBrepmethods.Minors from the swarm review
zone_tol3ddefaults from the kernel'szone_tol_3d, which is the Rust equivalent of upstream's thread-locals_ZoneTol3d; the two are equal in the harness.EdgeFaceIntersect.new_verts/new_edgesandSplitTwoEdges.new_edges1/2change fromVec<O>toVec<Option<O>>, a public field type change; port: boolean.topology_intersector_p2 #203 and port: heal.stitch_p2 #205 read these fields.brep_delete_facestub, which port: topology.brep_p3 #204 replaces withIntersectorBrep::brep_delete_face. Whichever merges second resolves it; see COORD.Verification at the head
e14da886(main merged through #155;sc-builder-1):main's report, case by case (port: topology.brep_p1 #145 moved the unit from 653/174 to 690/137 onmainitself).mainhad 3 differs before this PR.include!-ed unit files),cargo check --workspace(plain and withdifftest/cpp), clippy--features cppand wasm32 are clean;cargo test -p solidcorepasses 1378 tests.At the first push (
77f74fd0, before the main merges):--perturbSENSITIVE 653/653,green-par200 units with 0 failed, and valgrind clean on 84 sampled shim programs (about 10 per op family).🤖 Generated with Claude Code
https://claude.ai/code/session_01HBgcxze64BBVRNjGewaEuN
Status (updated 2026-10-19 10:18 UTC)
boolean.topology_intersector_p1).e14da886and includes port: topology.brep_p1 #145, port: heal.stitch_p1 #196 and port: topology.brep_p7 #155. That was a merge only; every case is identical to main's report.e14da886("good to merge once CI is green"). His optional nits go into a follow-up.