Back to changelog index

3.10.2

Apr 20, 2026 · 2 packages · 3 unique changes · 1 release entry

libs

Release summaries

  • mobile-form-render-polyfill

    Keep design-system FormRender mobile-safe by preserving shared renderer imports for Metro aliases and hardening generated package artifacts.

    maintainer

    Form rendering now supports host-provided layout slots and button-driven submission while design-system builds no-bundle artifacts that keep package imports visible to platform aliasing.

    integrator

    Expo apps can import `@contractspec/lib.design-system/renderers` and rely on `withPresentationMetroAliases` to remap shared ui-kit-web imports instead of using a separate native renderer.

Migration guide

  • Import FormRender from the shared renderers subpath on mobile

    Avoid broad root-barrel imports for mobile FormSpec rendering while keeping one shared design-system renderer.

    When: When an Expo or React Native app renders ContractSpec forms.

    1. Import `formRenderer` from `@contractspec/lib.design-system/renderers`.
    2. Keep `withPresentationMetroAliases` enabled in the Expo Metro config.
    3. Do not introduce a native-only design-system FormRender path.

Upgrade steps

  • Rebuild and syntax-check design-system artifacts

    assisted

    The generated package output should remain parseable and preserve imports for Metro aliasing.

    Packages: @contractspec/lib.contracts-runtime-client-react, @contractspec/lib.design-system, @contractspec/tool.bun

    1. Run `bun run --cwd packages/libs/design-system build`.
    2. Run `bun run --cwd packages/libs/design-system test:build-artifacts`.
    3. Run `bun run --cwd packages/apps/mobile-demo typecheck`.

Unique release changes

  • - Avoid broad root-barrel imports for mobile FormSpec rendering while keeping one shared design-system renderer.

    2 packages · 2 occurrences

  • - Keep design-system FormRender mobile-safe by preserving shared renderer imports for Metro aliases and hardening generated package artifacts.

    2 packages · 2 occurrences

  • - The generated package output should remain parseable and preserve imports for Metro aliasing.

    2 packages · 2 occurrences

Impacted packages

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

    Layer: libs · 3 changes

  • @contractspec/lib.design-system

    Layer: libs · 3 changes