Floor-pin bump of OCCTSwift from 1.15.2 to 1.17.0, picking up Pass 1a of the
OCCTSwift#377 duplication audit
(OCCTSwift#380), plus the API-reference and lockfile currency work that bump exposed.
No behaviour change in this server's own 77 tools. PR #167.
OCCTSwift 1.17.0: what reaches this repo
Two documented source breaks, neither reaching this repo (audited, zero call sites):
Surface.drawMesh/Surface.evaluateGridreturn aSurfaceGridstruct instead of
[[SIMD3<Double>]](OCCTSwift#404). No shim is possible, Swift cannot overload on return type
alone. Their two old nestings were opposite ([u][v]vs[v][u]), so a mechanical rewrite
of anevaluateGridcaller transposes its data.- The no-
toleranceCurve3D.interpolate(points:startTangent:endTangent:)overload is removed
(OCCTSwift#400): it shadowed its tolerance-aware sibling, sotolerance:was unreachable and
pinned at1e-6.
Source-compatible: nine overlapping continuity enums consolidated into SurfaceContinuity +
ParametricContinuity (OCCTSwift#398), every retired name kept as a deprecated alias. This
build emits zero warnings, which confirms nothing here uses one.
Eleven silent behaviour changes (no compiler diagnostic). The headline is an accuracy fix on
the ordinary path, not a failure-path sentinel: Curve3D.length / arcLength* now integrate
per GeomAbs_CN span instead of a single Gauss quadrature across the whole domain
(OCCTSwift#477, measured up to 5% wrong on a multi-span BSpline). Also Surface.approximated()
no-arg defaults, Surface.curvatures(u:v:) resolution, Point2D.distance(to: Curve2D)
returning .infinity instead of -1 when there is no projection (which flips the sense of any
distance < tolerance test), arcLength failure sentinels 0.0 to -1.0, Surface.normal(u:v:)
at a near-degenerate point, zero-radius circle/conic factories, BRepGraph.sampleFaceUVGrid.
Audited against this repo: none reach its own code. There are no arcLength calls on OCCT
curves (ZoneSweepTool's arcLengthDeltaMm is polyline-based, via ProfileMath.polylineLength
over mesh cross-sections), no Curve2D / Point2D / approximated / curvatures /
sampleFaceUVGrid / interpolate call sites at all, and the two normal(atU:v:) call sites are
on the spelling OCCTSwift#401 left unchanged. Every sibling package now compiles against 1.17.0
though (all floor OCCTSwift with from:, so the whole cohort resolves), so the test suite is the
net for anything arriving transitively.
Bridge ABI: v1.17.0 changed OCCTBridge's C ABI. A build with OCCTSWIFT_BRIDGE_PREBUILT=1
must take that release's OCCTBridge.xcframework; a v1.16.1 bridge binary mismatches the Swift
layer and surfaces as missing bridge symbols. OCCT.xcframework is unchanged and stays pinned at
its v1.15.18 asset, so this carries no kernel patch changes.
Fixed: the LLM-facing API reference was stale
src/api-reference.ts is what get_api_reference feeds an LLM before it writes execute_script
code, and it is generated from the OCCTSwift sources. Regenerated against v1.17.0: it had been
advertising the removed interpolate overload, both old [[SIMD3<Double>]] return types, and the
retired ContinuityOrder spelling, so an LLM would have generated code that no longer compiles.
Regenerating also exposed an older rot, pre-dating this release: OCCTSwift v1.15.0 renamed
TopologyGraph to BRepGraph, keeping the old name only as a deprecated typealias. A typealias
declares no methods, so scripts/generate-api-reference.mjs's editorial category rule matched
nothing and the entire topology_graph category (249 lines) would have silently dropped out of
the reference. Fixed to match the real type name; the category now carries 149 declarations. The
key values are untouched because they are the wire values of get_api_reference's category
argument.
Also
Package.resolvedre-resolved on the remote path. It had been left pinningocctswift 1.15.3,
below the new floor, satisfying no resolution: an automatic build silently re-resolved and
rewrote it, and a--disable-automatic-resolutionbuild failed outright.CLAUDE.mdandokf/index.mdcarry the new floor and the detail above, per the docs-current
policy.
Verification
Run on the fresh-clone path (OCCTSwift resolved from its published v1.17.0 tag, not a local
sibling checkout):
swift build: clean, zero warningsswift test: 209 tests in 36 suites, 0 failurestsc: clean;npm test: 31/31