Repository navigation
v1.37.0-rc2: agent-to-viewport selection bridge (#189/#190), docs site fix
Pre-releaseEverything merged since v1.37.0-rc1: the agent-to-viewport selection bridge, two dependency floor bumps, and a fix that gets the docs site building again.
This is a prerelease because two of its dependencies still are. OCCTSwiftInteraction is pinned at 2.0.0-rc2 and OCCTSwiftScripts at 1.7.0-rc1, both release candidates upstream. Prerelease versions are named exactly, since SwiftPM does not select one unless asked. The stable v1.37.0 follows OCCTSwiftInteraction 2.0.0, when both floors move to final versions. OCCTSwiftInteraction 2.0.0-rc3 is already out upstream; this release does not adopt or test it, and Package.resolved stays on rc2.
New: get_selection and highlight_selection (#189, #190, PR #191)
The read and write halves of the agent-to-viewport-host selection bridge. 79 tools, up from 77. Neither tool calls into a live viewport: OCCTMCP is a stdio process with no persistent link to an app's InteractiveContext, so both speak the sidecar-file wire format from OCCTSwiftInteraction#17 in the resolved output directory.
get_selectionreadsselection.jsonandhost.lock. The result is one of three states:noHost,hostRunningwith an emptyselectionsarray, orhostRunningwith N selections. It never collapses those into a boolean. Each selection resolves against this server's scene the wayselect_topologydoes, so the mintedselectionIdcomposes withremap_selection,measure_distanceand the rest. A per-entry failure (badbodyId, out-of-rangeindex) is reported inline without failing the response. A running host whoseselection.jsonis missing or malformed is an explicit tool error.highlight_selectionwriteshighlight_requests/<id>.jsonatomically and pollshandled/<id>.jsonfor the host's real outcome (applied,rejected,superseded), an explicittimeout, or an immediatenoHostwith no request written.kindandschemeare validated against the wire-format enums before writing.bodyIdandindexare written through unvalidated, so a bad reference comes back as the host's ownrejected.
The tests in this repo play the host against fixture files (15 new tests in SelectionBridgeToolsTests). They do not exercise a live host. The host side, OCCTSwiftInteraction#16 and ACADStudio#16, is closed upstream, but nothing here has been run against it end to end.
Docs: docs/reference/selection.md and the README tool table.
Dependencies
OCCTSwiftIOfloor 1.8.0.OCCTSwiftViewportfloor 1.2.0. This one carries a fix: a Swift 6 concurrency crash where unannotatedMTLCommandBufferHandlerclosures inherited@MainActoron Xcode 16.4, producing a SIGTRAP after every test had already reported green. It is masked on Xcode 26.x, so the floor is what protects an affected machine.Package.resolvedgains 16 pins (async-http-client,swift-nio-ssl,swift-crypto,swift-certificates,swift-service-lifecycleand others). The macos-15 runner image updated after the last green run, and its SwiftPM now records dependencies of disabled package traits. The change is purely additive: no existing pin moved andoriginHashis unchanged. These are the HTTP-transport side of the MCP swift-sdk, which this repo does not enable or build.
Fixed
serverVersionnow reports the release tag. rc1 left it at1.36.0, so a client connecting to that build was told it was talking to 1.36.0.- The docs site builds again.
docs/_config.ymlhad an unquoted:in its description, a YAML syntax error at line 9. Every "pages build and deployment" run onmainfailed from v1.32.0 until this release, so no docs change reached the site in that time. The build and deploy succeeded on the merge commit. - Em-dashes cleared from the docs this release adds, and
CLAUDE.md's dependency section brought current (it had no entry forOCCTSwiftInteraction).
Verification
swift buildandswift teston the macos-15 runner, resolving the real published dependency graph: 234 tests passed.code-style(swift-format and swiftlint, strict): clean.- "Check Package.resolved is current": clean.
- Docs site: build and deploy succeeded;
get_selectionandhighlight_selectionare on the live reference page.
Known, not changed here
- The docs homepage links to
reference/, but the Tool Reference index is served atreference/README.html, so that link returns 404. ExecuteScriptTool.scriptsPinis1.4.2, thoughCLAUDE.mdsays it must track theOCCTSwiftScriptspin inPackage.swift. Changing it alters which versionexecute_scriptcompiles user scripts against, so it needs its own decision.