Back to changelog index

3.7.18

Apr 22, 2026 · 17 packages · 9 unique changes · 3 release entries

bundleslibsmodules

Release summaries

  • fresh-toes-build

    Pass Bun transpile paths through production JSX mode so published browser bundles stop emitting the dev runtime.

    maintainer

    Shared Bun transpile paths now force production JSX mode, and the affected published browser bundles were rebuilt against that fix.

    integrator

    Browser-facing Contractspec packages no longer publish `react/jsx-dev-runtime` imports in their production JS artifacts.

    customer

    Production React bundles built from the affected Contractspec packages stop depending on the development JSX runtime.

  • native-publish-closure

    Harden published cross-platform UI packages around precise public subpath imports and closed native dist graphs.

    maintainer

    Native builds now include generic shared entries in dist/native so native public exports have a resolvable helper closure.

    integrator

    Cross-package UI imports should use precise public subpaths instead of root design-system imports when published packages may be consumed through platform conditions.

  • platform-suffix-bun-build

    Support ios, android, native, and web platform suffixes in the shared Bun build tool and Metro presentation helper.

    maintainer

    contractspec-bun-build now treats ios and android as native-family platform variants while keeping web and native export behavior stable.

    integrator

    Packages can publish .ios, .android, .native, and .web source variants with matching conditional exports and build outputs.

    customer

    Cross-platform UI packages can resolve platform-specific variants more reliably in Expo, React Native, and Next.js projects.

Migration guide

  • Upgrade to the rebuilt package versions

    Pull the patch releases for the affected Contractspec React/browser packages.

    When: When a downstream Next or React production bundle was failing on `jsxDEV` paths from published Contractspec packages.

    1. Upgrade the affected Contractspec package versions after this release is published.
    2. Rebuild the downstream production bundle so it picks up the republished artifacts.
  • Prefer precise design-system subpaths for published UI packages

    Required

    Replace root design-system imports in published UI modules with exact public component subpaths.

  • Regenerate package exports for platform variants

    Required

    Run contractspec-bun-build prebuild in packages that add or rename .ios, .android, .native, or .web source entries.

Upgrade steps

  • Verify production bundles no longer import the dev JSX runtime

    manual

    Check released JS artifacts for `react/jsx-dev-runtime` imports or `jsxDEV(` call sites.

    Packages: @contractspec/tool.bun, @contractspec/bundle.marketing, @contractspec/lib.accessibility, @contractspec/lib.contracts-runtime-client-react, @contractspec/lib.design-system, @contractspec/lib.example-shared-ui, @contractspec/lib.presentation-runtime-react, @contractspec/lib.surface-runtime, @contractspec/lib.ui-kit, @contractspec/lib.ui-kit-web, @contractspec/lib.ui-link, @contractspec/lib.video-gen, @contractspec/module.builder-workbench, @contractspec/module.examples, @contractspec/module.execution-console, @contractspec/module.mobile-review

    1. Rebuild the affected package set with the updated `@contractspec/tool.bun`.
    2. Scan `dist/` output for `react/jsx-dev-runtime` imports and `jsxDEV(` call sites before publishing.
  • Rebuild packages with native-family entries

    manual

    Run contractspec-bun-build prebuild and build so dist/native includes shared generic helper files.

    Packages: @contractspec/tool.bun, @contractspec/lib.design-system, @contractspec/module.ai-chat

    1. Rebuild packages that publish .native, .ios, or .android source variants.
    2. Restart Metro after upgrading packages with changed native publish artifacts.
  • Restart Metro after platform export changes

    manual

    Metro may cache previous package export maps and should be restarted after upgrading packages that add platform variant exports.

    Packages: @contractspec/tool.bun, @contractspec/lib.presentation-runtime-core

    1. Stop the Expo or React Native dev server.
    2. Restart Metro after package exports have been regenerated and rebuilt.

Unique release changes

  • - Check released JS artifacts for `react/jsx-dev-runtime` imports or `jsxDEV(` call sites.

    15 packages · 15 occurrences

  • - Pass Bun transpile paths through production JSX mode so published browser bundles stop emitting the dev runtime.

    15 packages · 15 occurrences

  • - Pull the patch releases for the affected Contractspec React/browser packages.

    15 packages · 15 occurrences

  • - Harden published cross-platform UI packages around precise public subpath imports and closed native dist graphs.

    2 packages · 2 occurrences

  • - Replace root design-system imports in published UI modules with exact public component subpaths.

    2 packages · 2 occurrences

  • - Run contractspec-bun-build prebuild and build so dist/native includes shared generic helper files.

    2 packages · 2 occurrences

  • - Metro may cache previous package export maps and should be restarted after upgrading packages that add platform variant exports.

    1 packages · 1 occurrences

  • - Run contractspec-bun-build prebuild in packages that add or rename .ios, .android, .native, or .web source entries.

    1 packages · 1 occurrences

  • - Support ios, android, native, and web platform suffixes in the shared Bun build tool and Metro presentation helper.

    1 packages · 1 occurrences

Impacted packages

  • @contractspec/bundle.marketing

    Layer: bundles · 3 changes

  • @contractspec/lib.accessibility

    Layer: libs · 3 changes

  • @contractspec/lib.contracts-runtime-client-react

    Layer: libs · 3 changes

  • @contractspec/lib.design-system

    Layer: libs · 3 changes

  • @contractspec/lib.example-shared-ui

    Layer: libs · 3 changes

  • @contractspec/lib.presentation-runtime-core

    Layer: libs · 3 changes

  • @contractspec/lib.presentation-runtime-react

    Layer: libs · 3 changes

  • @contractspec/lib.surface-runtime

    Layer: libs · 3 changes

  • @contractspec/lib.ui-kit

    Layer: libs · 3 changes

  • @contractspec/lib.ui-kit-web

    Layer: libs · 3 changes

  • @contractspec/lib.ui-link

    Layer: libs · 3 changes

  • @contractspec/lib.video-gen

    Layer: libs · 3 changes

  • @contractspec/module.ai-chat

    Layer: modules · 3 changes

  • @contractspec/module.builder-workbench

    Layer: modules · 3 changes

  • @contractspec/module.examples

    Layer: modules · 3 changes

  • @contractspec/module.execution-console

    Layer: modules · 3 changes

  • @contractspec/module.mobile-review

    Layer: modules · 3 changes