Parser no longer fails on paths with spaces; slots expose connected instances
v1.4.9
3 features1 enhancement3 fixesThis release3 featuresNew capabilities1 enhancementImprovements to existing features3 fixesBug fixesAI-tallied from the release notes
From the original release noteView original ↗
Fixed
General
- Fixed parser invocation failing when a path or argument contained a space. This affected the Swift parser (Xcode project / Swift package paths), the Compose parser (Gradle wrapper paths), and the custom parser (any user-provided
parserCommandreferencing a path with spaces).
Template files
- Fixed template-only projects unnecessarily building and running a native parser. When every Code Connect file is a parserless template (
.figma.ts/.figma.js), the CLI no longer invokes the Swift or Compose parser — which is slow at best and can fail outright (for example a Swift package targeting macOS 12 whoseFigmadependency requires macOS 13, producing "the library '...' requires macos 12.0, but depends on the product 'Figma' which requires macos 13.0"). Projects that also contain native source files are unaffected and still run the parser.
Swift
- Raised the supported
swift-syntaxupper bound to allow the 603.x release. Previously the cap below 603 could silently downgradeswift-syntaxin projects that depend on both Code Connect andswift-syntax(directly or transitively) on a Swift 6.3 toolchain. Older toolchains remain supported.
Features
General
- Added
@figma/code-connect/figma-types-no-require, a variant of the template type definitions for projects that have@types/nodeinstalled. The default@figma/code-connect/figma-typesentry declares a globalrequire(soconst figma = require('figma')works without@types/node), but that declaration overrides Node's ownrequiretype and causes errors likeProperty 'resolve' does not existonrequire.resolve(...)elsewhere in projects that use@types/node. Such projects can now use"@figma/code-connect/figma-types-no-require"in theirtypesarray instead, adding it to their maintsconfig.jsonwithout a separate config. The default entry is unchanged, so no existing setup needs to change.
Template files
- Augmented the
getSlotAPI:getSlot('SlotName')still renders the same way, and the returned value now also exposesconnectedInstances(the connected instances directly in the slot). This lets you render a slot's connected children inline. For examplegetSlot('body').connectedInstances.map((c) => c.executeTemplate().example).
React & HTML
- Augmented the
figma.slotAPI:figma.slot('SlotName')still maps the slot the same way, and you can now also writefigma.slot('SlotName').connectedInstancesin apropsobject to render the slot's code-connected instances inline. For exampleprops: { content: figma.slot('Content').connectedInstances }.
Fetched July 7, 2026

