Back to changelog index

5.0.6

May 25, 2026 · 12 packages · 19 unique changes · 8 release entries

appsintegrationslibsBreaking changes

This release affects the contracts, integrations, sharedLibs, solutions familyies.

Run contractspec connect adoption resolve --family contracts to see how it impacts your project.

Release summaries

  • dependency-bundle-size-reduction

    Reduce published install and bundle size by optionalizing heavy runtime families and adding a repo dependency audit.

    integrator

    Library consumers no longer install large optional UI, provider, sandbox, and video runtime stacks unless they use the matching subpaths/features.

    maintainer

    The repo now includes `bun run deps:audit` to report dependency sections, duplicate declarations, missing runtime import signals, heavy dependency families, and largest dist outputs.

  • graph-m4-quality-gate

    M4 quality gate — WCAG 2.2 AA, SR usability, security hardening, and test isolation.

    maintainer

    bun:test isolation hardened — superset mock pattern applied to all 7 native test files; 220 pass, 0 fail across both isolated and shared-worker runs. SSE and Yjs endpoints now enforce HMAC origin validation and rate-limit headers. AI cost-guard events scrub PII.

    integrator

    No API surface changes. Security hardening on server-side graph subscription and multiplayer endpoints is additive (new headers/validation). Test suite reliability improved in CI shared-worker mode.

    customer

    WCAG 2.2 AA compliance verified across all 5 graph templates × 2 variants. VoiceOver and TalkBack narration flows confirmed end-to-end.

  • graph-m4-stability-beta

    Promote M3-shipped graph contracts from experimental to beta.

    maintainer

    Stability promoted from `experimental` to `beta` for all M3-shipped graph surfaces that have passed the full M4 quality gate (WCAG 2.2 AA, SR narration, security hardening, and bun:test isolation). Affected symbols: UiKitFeature, UiKitCoreFeature, AGENT_STABILITY (contracts-spec), ContractsRuntimeServerRestFeature. No API surface changes — pure metadata promotion.

    integrator

    No breaking changes. Graph contracts that shipped in M3 (LayoutSpec, GraphFilterSpec, SavedView, Annotation, StorySlide, GraphExport, GraphAccessibilityProvider, useGraphFilter, useSavedViewRestore, useAnnotations, useGraphLayout, useGraphDiff, useAiCostGuard, graphOps LLM tools, SSE GraphSubscription, Yjs MultiplayerTransport) are now at beta stability. Integrators relying on these contracts can treat them as stable for the M4–M5 release window.

    customer

    Graph features (filters, saved views, annotations, layout, collaboration, AI tools) are now at beta quality. WCAG 2.2 AA compliance verified; VoiceOver and TalkBack narration confirmed end-to-end. Note: voice input on Expo (expo-av) remains experimental and requires a custom Expo dev client.

  • m3-ui-kit-native-parity

    M3 — Hard 2k node cap enforcement (breaking) + native primitive parity with web (gestures, keyboard, SR narration, analysis, time, collaboration).

    maintainer

    Nodes beyond 2,000 are now silently dropped with a dev-warn. Guard node arrays upstream with slice(0, 2000) if you currently pass larger arrays.

    integrator

    Native GraphCanvas now enforces a hard 2,000 node cap. Applications passing more than 2,000 nodes will see excess nodes dropped. Add a guard upstream or paginate the graph.

  • native-data-table-reanimated-resize

    Replace the native UI-kit data table resize handle's gesture-handler dependency with a Reanimated responder boundary.

    maintainer

    The data table resize handle now uses Reanimated and native responder events instead of importing `react-native-gesture-handler`.

    integrator

    Native UI-kit consumers can render data tables without pulling in `react-native-gesture-handler` solely for column resizing.

    customer

    Native data table resizing keeps the same visible behavior while reducing gesture runtime coupling.

  • native-pagination-stack-hardening

    Harden native Pagination layout with shared stack primitives, safer page math, and accessible control labels.

    maintainer

    The native Pagination atom now relies on UI-kit stack primitives instead of raw View layout wrappers and keeps its visible page-window calculation typed outside render.

    integrator

    Consumers keep the same Pagination props while receiving more defensive item range display behavior when page or page-size inputs drift out of bounds.

    customer

    Pagination controls retain the same visual behavior with clearer accessibility labels for first, previous, numbered, next, and last page actions.

  • native-ui-kit-metro-aliases

    Add native UI-kit subpaths for Metro's ui-kit-web alias surface so Expo builds can resolve shared design-system form controls.

    maintainer

    Native UI-kit now exposes the subpaths Metro rewrites from ui-kit-web for shared design-system form controls.

    integrator

    Expo consumers can import shared design-system form controls without Metro failing on missing native ui-kit subpaths.

    customer

    Mobile demo and native product surfaces can render shared form controls without bundler resolution errors.

  • ui-kit-react-native-svg-bump

    Bump react-native-svg optional peer dep to 15.15.5 in ui-kit for native graph primitive support.

    maintainer

    react-native-svg bumped from 15.15.3 to 15.15.5 in devDependencies and peerDependencies. The optional peer constraint is preserved; no consumer install is forced.

    integrator

    react-native-svg 15.15.5 is now the declared peer minimum. Consumers already on 15.15.x are unaffected; upgrade from 15.15.3 is transparent.

Deprecations

  • - Do not import `react-native-gesture-handler` for the native UI-kit data table resize handle; use the Reanimated-backed implementation.
  • - id: native-uncapped-nodes; name: Unbounded native node rendering; reason: Performance and memory safety on mobile — undefined behavior above 2k nodes is replaced with a hard cap and dev-warn; migration: Slice or paginate node arrays to stay under 2,000 nodes before passing to GraphCanvas

Migration guide

  • Guard node arrays to ≤2,000 before passing to native GraphCanvas

    Required

    Add an upstream slice or pagination to ensure node count stays within the cap.

    1. Find all native GraphCanvas usages that may receive more than 2,000 nodes.
    2. Add const safeNodes = nodes.slice(0, 2000) or equivalent upstream pagination.
    3. Consider adding a user-facing indicator when the graph is truncated.
  • Install optional runtime peers for used feature subpaths

    Required

    Consumers using native UI, provider implementations, sandbox database/runtime, example runtime UI, or Remotion video subpaths should add the corresponding optional peer packages directly to their app/package dependencies.

  • Import provider implementations from explicit subpaths

    Required

    Replace broad `@lssm-tech/integration.providers-impls/impls` imports with provider-specific subpaths such as `@lssm-tech/integration.providers-impls/impls/linear`.

  • Track dependency and bundle-size drift

    Required

    Run `bun run deps:audit --json` before and after dependency changes to compare runtime edges, heavy dependency families, and package dist sizes.

Upgrade steps

  • Add node cap guard upstream

    manual

    Prevent silent truncation in production by capping node arrays before rendering.

    Packages: @lssm-tech/lib.ui-kit

    1. grep -r "GraphCanvas" packages/*/src --include="*.native.tsx" to find native usages.
    2. Add slice guard at each call site.
  • No action required — bump is patch-compatible

    manual

    Update react-native-svg in your app to 15.15.5 if you need the latest patch fixes. The peer is optional; the package works with any 15.x install.

    Packages: @lssm-tech/lib.ui-kit

    1. Run `bun add react-native-svg@15.15.5` in your Expo/RN app if you want to match the latest declared peer.
  • Revalidate native data table resizing

    assisted

    Confirm table column resize handles still update widths in Expo or React Native surfaces after upgrading.

    Packages: @lssm-tech/lib.ui-kit

    1. Run the native UI-kit data table smoke test.
    2. Run ui-kit lint and typecheck.
    3. Re-open any Expo screen that exposes resizable native data table columns.
  • Revalidate native paginated views

    manual

    Confirm table and list surfaces that render native Pagination still display the expected controls and item ranges.

    Packages: @lssm-tech/lib.ui-kit

    1. Open native data table and list surfaces that use `@lssm-tech/lib.ui-kit/ui/atoms/Pagination`.
    2. Check first, previous, numbered, next, last, and page-size controls.
    3. Confirm empty or out-of-range pagination state does not show negative or invalid item ranges.
  • Restart Expo Metro after updating the UI kit

    manual

    Metro may cache failed subpath resolutions from before these native exports existed.

    Packages: @lssm-tech/lib.ui-kit

    1. Stop the Expo dev server.
    2. Restart with a clean Metro cache when a previous run failed on ui-kit-web form-control subpaths.

Unique release changes

  • - Consumers using native UI, provider implementations, sandbox database/runtime, example runtime UI, or Remotion video subpaths should add the corresponding optional peer packages directly to their app/package dependencies.

    9 packages · 9 occurrences

  • - Reduce published install and bundle size by optionalizing heavy runtime families and adding a repo dependency audit.

    9 packages · 9 occurrences

  • - Replace broad `@lssm-tech/integration.providers-impls/impls` imports with provider-specific subpaths such as `@lssm-tech/integration.providers-impls/impls/linear`.

    9 packages · 9 occurrences

  • - Run `bun run deps:audit --json` before and after dependency changes to compare runtime edges, heavy dependency families, and package dist sizes.

    9 packages · 9 occurrences

  • - Promote M3-shipped graph contracts from experimental to beta.

    4 packages · 4 occurrences

  • - M4 quality gate — WCAG 2.2 AA, SR usability, security hardening, and test isolation.

    3 packages · 3 occurrences

  • - Add an upstream slice or pagination to ensure node count stays within the cap.

    1 packages · 1 occurrences

  • - Add native UI-kit subpaths for Metro's ui-kit-web alias surface so Expo builds can resolve shared design-system form controls.

    1 packages · 1 occurrences

  • - Bump react-native-svg optional peer dep to 15.15.5 in ui-kit for native graph primitive support.

    1 packages · 1 occurrences

  • - Confirm table and list surfaces that render native Pagination still display the expected controls and item ranges.

    1 packages · 1 occurrences

  • - Confirm table column resize handles still update widths in Expo or React Native surfaces after upgrading.

    1 packages · 1 occurrences

  • - Do not import `react-native-gesture-handler` for the native UI-kit data table resize handle; use the Reanimated-backed implementation.

    1 packages · 1 occurrences

  • - Harden native Pagination layout with shared stack primitives, safer page math, and accessible control labels.

    1 packages · 1 occurrences

  • - id: native-uncapped-nodes; name: Unbounded native node rendering; reason: Performance and memory safety on mobile — undefined behavior above 2k nodes is replaced with a hard cap and dev-warn; migration: Slice or paginate node arrays to stay under 2,000 nodes before passing to GraphCanvas

    1 packages · 1 occurrences

  • - M3 — Hard 2k node cap enforcement (breaking) + native primitive parity with web (gestures, keyboard, SR narration, analysis, time, collaboration).

    1 packages · 1 occurrences

  • - Metro may cache failed subpath resolutions from before these native exports existed.

    1 packages · 1 occurrences

  • - Prevent silent truncation in production by capping node arrays before rendering.

    1 packages · 1 occurrences

  • - Replace the native UI-kit data table resize handle's gesture-handler dependency with a Reanimated responder boundary.

    1 packages · 1 occurrences

  • - Update react-native-svg in your app to 15.15.5 if you need the latest patch fixes. The peer is optional; the package works with any 15.x install.

    1 packages · 1 occurrences

Impacted packages

  • @lssm-tech/app.api-library

    Layer: apps · 4 changes

  • @lssm-tech/app.cli-contractspec

    Layer: apps · 4 changes

  • @lssm-tech/app.registry-packs

    Layer: apps · 4 changes

  • @lssm-tech/integration.providers-impls

    Layer: integrations · 4 changes

  • @lssm-tech/lib.contracts-runtime-server-rest

    Layer: libs · 1 changes

  • @lssm-tech/lib.contracts-spec

    Layer: libs · 1 changes

  • @lssm-tech/lib.example-shared-ui

    Layer: libs · 4 changes

  • @lssm-tech/lib.runtime-sandbox

    Layer: libs · 4 changes

  • @lssm-tech/lib.ui-kit

    Layer: libs · 2 changes

  • @lssm-tech/lib.ui-kit-core

    Layer: libs · 1 changes

  • @lssm-tech/lib.ui-kit-web

    Layer: libs · 4 changes

  • @lssm-tech/lib.video-gen

    Layer: libs · 4 changes