Repository navigation
CAD Cardinal Mirror 1962
Issue1962, normal PR1964. Source base is the adopted cardinal rotation #1949, develop 5b420f842687fa06ef4a47b13e4a4f8c80a950ea.
shape.mirror({plane:'xy'|'xz'|'yz'}) actively reflects authored XYZ across a plane through the world origin. It supports a directly owned affine extrusion, including explicit from, or its complete one/two-chamfer prefix. The copy is terminal; the six-node envelope and existing native numerical/provider limits remain unchanged.
The signed coefficient map has determinant−1. All Surface/Line poles are staged before target Face construction. Basis, weights, increasing native domains and pole order are preserved. Each Face orientation flips once. The actual native builder regenerates pcurves and reverses use traversal, directed intervals and endpoints. Complete pairs and local/global lineage are remapped, followed by whole native Convex Solid qualification. Actual reversed Face/link cycles, rational support/origin/normal/interior maps, paired parameters and unchanged positive occupied volume are checked. No mirrored certificate or mesh transform supplies native authority.
Node22.22.0/TypeScript5.9.3: build/lint, source117/117 and emitted106/106 zero-native/inventory controls, source/emitted type contracts and16 documentation examples passed. All six existing exact native-binding trap inventories were updated. The public API inventory matched the immutable source pin; historical inventory stayed unchanged.
The finite actual campaign spent exactly seven public model evaluations and two genuine20-triangle previews in4.513s under600s/1536MiB heap/free500MiB limits. Source six-model/two-preview flow passed: baseline6064, edit5984, expected pre-provider selection refusal preserving accepted state, recovery6064, placedfrom3 rectangle6144 and constrained gusset6912.
The seventh call returned the real fresh emitted cold result. Its recursive freeze and recomputation checks passed. A later fixture assertion incorrectly required insertion order of output names, while canonical save sorts them. The fixture now compares the sorted keyset, and source/emitted15-test regressions passed. No native call was repeated. The original failed cold-flow/process-group/error records remain unchanged.
A separately reviewed zero-native retained-data completion proved the entire cold snapshot byte-identical to the already-validated source baseline, SHA256 07bf31212377ae60c4e0a63a559cc98fa49aa615b2a6113d67a5727571a456a8. Full authored/body/evidence parity and report totals passed. Parsed replay proves data equality only; it supplies no fresh object identity/freeze observation. The genuine pre-failure cold work remains the freeze evidence. An initial data-only accounting replay used JSON key order instead of declared ledger order; that error is preserved and corrected without geometry work.
Known source-derived work402 compilations/4896 binding observations/14688D1; returned ledgers354/4320/12960. Hidden transitive work remains NOT_MEASURED. No tolerance/provider change or native retry.
Receipt and reproducible data-only completion.
Normal PR #1964 merged into develop at cd5a75aeca1a11269881d00b93e9eee590567d51 on2026-10-14. Final head 25421e09663a28d4a1c594f48dee2658dbf69362 passed full CI run38503626746, including the aggregate. Issue #1962 is closed. Native-data acceptance is complete with the original fixture failure retained and zero-native completion separately recorded.
General PART-08/#534, patterns and feature graph #551 remain open. This does not certify arbitrary planes/pivots, chained transforms, assembly semantics, curved/general Solid transformations, mass/STL exports, physical Editor/GPU/Viewer/browser acceptance or manufacturing/release readiness. No editor, GPU, Viewer, Loader, Physics or renderer implementation changed.