Back to changelog index

6.1.6

May 25, 2026 · 21 packages · 80 unique changes · 28 release entries

appsbundlesintegrationslibsmodulesBreaking 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

  • adaptive-object-reference-panel

    Promote object-reference detail panels to a reusable adaptive sheet/drawer surface.

    maintainer

    Design-system now exposes AdaptivePanel as the shared responsive sheet/drawer primitive and wires object-reference details through it.

    integrator

    ObjectReferenceHandler supports same-page vs new-page detail opening, rich nested properties, and configurable sheet/drawer behavior with responsive defaults.

    customer

    Reference interactions can show richer details in a desktop sheet or mobile drawer without custom per-screen logic.

  • adaptive-panel-menu-migration

    Route design-system mobile menu overlays through the shared AdaptivePanel primitive.

    maintainer

    Header and marketing header mobile menus now use AdaptivePanel instead of direct sheet composition, leaving sheet/drawer primitives behind the shared overlay adapter.

    integrator

    Design-system overlay behavior is more consistent because mobile menu panels and object references share the AdaptivePanel boundary.

    customer

    Mobile menus keep the same behavior while using the shared responsive panel implementation.

  • agent-workflow-ui-enhancements

    Enhanced agent-workflow-command-center with comprehensive UI interactions

    maintainer

    Enhanced agent-workflow-command-center with comprehensive UI interactions including CRUD operations, workflow builder, review queue, and real-time dashboard.

    customer

    Users get enhanced UI with full CRUD operations for agents, workflow builder with templates, review queue with actions, and real-time dashboard with widgets.

  • application-shell-navigation

    Add design-system application shell primitives with typed navigation, command search, breadcrumbs, native bottom-tab adaptation, and PageOutline support.

    maintainer

    Design-system maintainers now have a focused shell API for application frames, navigation sections, breadcrumbs, commands, and page outlines.

    integrator

    Web and Expo app developers can adopt AppShell and PageOutline from the shell subpath while existing AppLayout, AppSidebar, AppHeader, NavLink, and NavSection imports remain supported.

    customer

    Documentation readers get public library docs with copy-ready AI prompts for fresh application shell implementation and existing-app refactors.

  • appshell-notification-layout

    Fix AppShell desktop sidebar collapse/layout and web notification dismissal behavior.

    integrator

    AppShell now keeps the desktop topbar inset beside the sidebar, exposes a shared sidebar collapse trigger, and dismisses the web notification panel on outside click, Escape, or trigger toggle.

  • billing-os-ui-uplift

    Add BillingOS UI uplift — Cluster A + B ports, presenter seam, atoms, molecules, and templates.

    maintainer

    Seven new DS atoms (MoneyInput, PercentInput, AutocompleteCombobox, FieldLabel, FieldHint, FieldError, UndoToast) are exported from the lib.design-system root. billing-spec gains a ./contracts subpath with two search query contracts and a registry (8 entries total after Phase 3 status-transition contracts: InvoiceStatusTransitionContract, PaymentReconcileContract, ReviewDecisionContract). billing-runtime gains a ./fixtures-rich subpath with rich test fixtures. billing-os gains ports interfaces, a PortsProvider/usePorts React API, a spec→view-model presenter seam with documented losses, money/validator utilities, 6 new molecules, 4 new templates, atomic-layer barrel re-exports, QuoteEditor uplift (Phase 2), and Phase 3 other-surfaces uplift: 3 new state hooks (useInvoiceCard, usePaymentCard, useReviewItemCard), 2 new JSX-only organisms (InvoiceLineItemsSection, PaymentReconciliationPanel), refactored JSX-only organisms (InvoiceCard, PaymentCard, ReviewItemCard), all 6 workspace screens wrapped in BillingPageShell + WorkspaceHeader, and extended presenter losses for invoice and payment surfaces.

    integrator

    All existing consumer imports continue to resolve unchanged. New molecules, templates, hooks, and organisms are additive. The presenter seam documents which spec fields are dropped (losses array) so integrators can decide whether to map them in a later phase. Port interfaces must be wired through PortsProvider before the new autocomplete pickers operate. Status-transition actions (invoice, payment, review) are now contract-backed via billingContracts.

  • comm-os-cross-surface-consolidation

    Move CommunicationOS composite presentational components from lib.design-system to module.communication-os (CommOsLegacyComposites).

    maintainer

    The design-system no longer owns CommunicationOS composite components. They live in the module layer where they have domain context. CI lint now enforces the old path is not re-imported.

    integrator

    Import CommunicationWorkQueue, CommunicationThreadTimeline, SourceEvidenceList, ReplyDraftReviewPanel, PolicyDecisionBanner, HandoffPacketCard, ActionCandidateList, IdentityLinkReviewCard, and ChannelCapabilityMatrixView from @lssm-tech/module.communication-os/ui instead of @lssm-tech/lib.design-system/components/communication-os.

  • commos-design-system-overlap

    Migrate CommOS composite components out of lib.design-system into module.communication-os/ui (G010)

    maintainer

    The nine CommOS composite components previously under @lssm-tech/lib.design-system/components/communication-os are migrating to their canonical home in @lssm-tech/module.communication-os/ui. This changeset records the library-level impact. The G010 changeset records the module-level additions. Import from @lssm-tech/module.communication-os/ui for all new and migrated consumers. PENDING: If G010 removes the design-system subpath without a shim, this changeset must be reclassified as major/breaking and this release.yaml updated (isBreaking: true, releaseType: major) before the release is cut.

    customer

    CommOS UI components should be imported from @lssm-tech/module.communication-os/ui. The @lssm-tech/lib.design-system/components/communication-os import path is being deprecated and will be removed in an upcoming release.

  • data-table-ux-stability-upgrade

    Harden the shared data-table stack and add a first-class composed toolbar for search, filter chips, selection summary, and hidden-column recovery.

    maintainer

    The shared table controller now sanitizes stale row and column state, and the design-system exports `DataTableToolbar` as the preferred composed UX layer above the primitive tables.

    integrator

    Integrators can adopt `DataTableToolbar` without changing the underlying `DataTable` or `useContractTable` API, and server-paginated tables now behave more defensively when data, columns, or totals change.

    customer

    The CRM and canonical data-grid examples now expose search, filter chips, selection summaries, safer column recovery, and less failure-prone table interactions across web and native paths.

  • dataview-renderer-split

    Split DataViewRenderer.tsx into per-kind modules for extensibility.

    maintainer

    DataViewRenderer.tsx (809 lines) and DataViewRenderer.native.tsx (776 lines) are replaced by 13 focused modules. All public exports, props, and runtime behavior are preserved. New DataViewRendererSwitch with fallback prop enables adding graph/timeline kinds in Phase 3 without touching the orchestrator files.

    integrator

    No API changes. DataViewRenderer still exports the same props interface and renders the same output. Import paths from @lssm-tech/lib.design-system are unchanged.

  • design-system-codeblock-actions

    Add an opt-in download action and grouped action toolbar to the design-system CodeBlock.

    maintainer

    CodeBlock actions are now grouped in a token-aware toolbar, with copy preserved and an additive opt-in download action.

    integrator

    Consumers can enable code downloads with `showDownloadButton`, customize the saved filename with `downloadFilename`, and observe initiated downloads through `onDownload`.

  • design-system-codeblock-dual-theme

    Consolidate CodeBlock syntax highlighting on the design-system molecule with Shiki dual-theme support.

    maintainer

    The shared CodeBlock molecule now owns Shiki dual-theme rendering and ContractSpec/Tailwind token framing; web landing no longer carries a duplicate CodeBlock implementation.

    integrator

    Apps can use the design-system CodeBlock for syntax highlighting that follows the standard `.dark` application theme and can override the light/dark Shiki theme pair through props.

  • design-system-codeblock-metadata

    Add optional description and comment metadata slots to the design-system CodeBlock.

    maintainer

    CodeBlock can now carry filename-adjacent descriptions and footer comments without app-local wrapper text.

    integrator

    Use `description` to explain what a snippet is and `comment` to attach provenance, replay, safety, or interpretation notes.

    customer

    Evidence receipt code samples now include their replay context directly in the code block.

  • design-system-core-hardening

    Add focused design-system subpaths and harden ThemeSpec runtime, Tailwind bridge, form-control helpers, and form renderer internals without changing root-import compatibility.

    maintainer

    Maintainers now have smaller internal design-system modules and focused subpaths for theme, controls, forms, layout, and renderers.

    integrator

    Integrators can keep root imports or adopt focused subpaths such as `@lssm-tech/lib.design-system/theme` and `@lssm-tech/lib.design-system/forms`.

    customer

    Contract-rendered forms and themed controls keep the same behavior while the design-system internals become easier to maintain.

  • design-system-diffblock

    Add a ContractSpec-owned DiffBlock molecule for web and native diff review surfaces.

    maintainer

    DiffBlock is now owned by the design-system package, exposing a shared diff review primitive for web and native surfaces.

    integrator

    Consumers can import DiffBlock from the design system instead of reimplementing diff layout per surface.

  • design-system-select-groups

    Add grouped option support to design-system Select controls across web and native.

    maintainer

    The design-system Select wrappers now share grouped-option normalization and expose a typed grouped Select API.

    integrator

    Existing flat Select options keep working, while callers can opt into translated grouped option sections on web and native.

    customer

    Select controls can now present options in labelled groups consistently across web and native surfaces.

  • design-system-themed-controls

    Add a ThemeSpec-aware and TranslationSpec-aware design-system form/control layer with stack primitives, exported control wrappers, and FormSpec renderer alignment.

    maintainer

    Maintainers now have a shared design-system control boundary for forms, stacks, themes, translations, and FormSpec rendering.

    integrator

    Integrators can import themed and translated controls from `@lssm-tech/lib.design-system` instead of reaching into web or native UI kit primitives directly.

    customer

    Product surfaces and contract-rendered forms can now share the same ThemeSpec-aware and TranslationSpec-aware design-system controls across web and React Native.

  • design-system-token-backed-entity-primitives

    Add token-backed neutral EntityWorkspace metric and evidence primitive paths and align entity-surface docs.

    integrator

    Product shells can import neutral EntityMetricStrip and EntityEvidenceBlock subpaths with native-paired entrypoints while keeping domain copy in adapters.

    agent

    Entity-surface docs now recommend EntityWorkspace for product shells and keep DataViewRenderer positioned as the lower-level renderer path.

  • forms-option-surface-aliases

    Add ThemeSpec Tailwind aliases for FormSpec option surface backgrounds.

    maintainer

    The ThemeSpec Tailwind bridge now emits shadcn-compatible color aliases for popover, card, and input surfaces.

    integrator

    Apps using generated design-system theme CSS get the color aliases expected by Radix/shadcn select and combobox primitives.

    customer

    Contract-rendered select and combobox option panels keep a proper themed surface instead of falling back to transparency when the app relies on ThemeSpec CSS.

  • forms-password-visibility-toggle

    Fix FormSpec password visibility toggles so rendered password fields can reveal and re-mask values.

    maintainer

    The web password primitive now keeps its computed `type` authoritative over upstream input props from FormSpec renderers.

    integrator

    Design-system FormSpec renderers can pass legacy `type: "password"` hints without disabling the visibility toggle.

    customer

    Contract-driven password fields now reveal the password when the visibility toggle changes from closed eye to open eye.

  • forms-phone-ux-regression

    Fix FormSpec phone country-select rendering to remove duplicated country adornments.

    customer

    Split FormSpec phone fields now show one clear country selector instead of duplicating the flag and calling code beside the select.

    integrator

    Design-system phone country options now honor the configured flag/calling-code display parts, while the selected country control owns those adornments in select mode.

  • m3-design-system-template-prop-shapes

    M3 — Breaking template prop shape changes across all 5 graph templates (remove onAction/isLive/time-scrub M2 props; add onDrilldown(node), p6, p7 tunnels). Density-state auto-shift. M3 engineer/manager signature treatments.

    maintainer

    All five graph templates have updated prop shapes. Remove M2 props (onAction, isLive, liveLabel, onRestoreView, steps, snapshotCursor, snapshotTimestamps, onScrub) and add M3 equivalents (onDrilldown, p6, p7).

    integrator

    Any code rendering WorkflowDagView, AgentTreeView, ConversationGraphView, EngineeringLoopView, or PersonActivityView must be updated to the M3 prop surface. onAction is removed; use onDrilldown(node). Time-scrub props replaced by TimeScrubber component.

    customer

    Graph template surfaces now support export, annotation, story-mode (via p6) and AI interaction (via p7). Analysis-mode triggers a visual density shift for richer exploration.

  • native-design-system-platform-suffix

    Migrate design-system platform implementation suffixes from `.mobile` to `.native`.

    integrator

    Design-system platform variants now use Metro's standard `.native` suffix and no longer publish `.mobile` subpaths.

    maintainer

    Package exports, registry metadata, and cross-platform UI docs now describe `.tsx` / `.native.tsx` renderer pairs.

  • native-form-renderer

    Add a React Native FormSpec renderer variant for contract-driven mobile screens.

    maintainer

    The design-system form-contract renderer now has native conditional exports and native slot wiring while preserving the existing web renderer.

    integrator

    React Native hosts can import the form-contract renderer through native package conditions or explicit `.native` subpaths to render FormSpec screens with design-system native controls.

    customer

    Contract-driven forms can now appear in mobile/native screens using the same FormSpec surface as web forms.

  • notion-page-outline

    Improve PageOutline desktop behavior with a Notion-like floating rail, and hide the AppShell page outline on small web screens to preserve layout stability.

    integrator

    AppShell consumers get a floating desktop PageOutline that no longer reserves a right content column, while small web screens hide the outline instead of rendering a compact dialog.

    maintainer

    Design-system maintainers can opt PageOutline into a floating variant while preserving existing rail and compact variants for direct component usage.

  • object-reference-handler

    Add an extensible design-system object reference handler for actionable references.

    maintainer

    The design-system package now exposes a public object-reference component group with schema-friendly descriptors, runtime action handlers, and paired web/native implementations.

    integrator

    Product surfaces can replace inert addresses, phone numbers, users, customers, files, URLs, and custom references with one extensible interaction surface.

    customer

    Reference text can now offer quick actions such as copy, open, call, or maps navigation from a consistent interaction surface.

  • rich-reference-breaking-release

    Rich-reference foundation — single coordinated release across 11 packages (S-0..S-13). See MIGRATION.md at the repo root.

    maintainer

    11-package coordinated release lands the rich-reference foundation. AC-17 release gate enforced via `.github/workflows/rich-reference-migration-gate.yml`.

    integrator

    Downstream consumers must run the bundled codemods (`@lssm-tech/tools.contractspec-codemods`) before bumping the 11 listed packages in lockstep. Chrome props (`filename`, `description`, `showDownloadButton`) are dropped on migrated `<CodeBlock>`/`<DiffBlock>` callsites — re-add per the patterns in `packages/tools/contractspec-codemods/MIGRATION.md`.

  • unified-design-system-tabs

    Add a unified design-system Tabs primitive and migrate local tab consumers away from ui-kit leaf imports.

    maintainer

    Maintainers can expose tabbed product surfaces through the design-system root instead of choosing between web and native UI-kit tab APIs.

    integrator

    Integrators can use one `Tabs` API with optional `value`, `defaultValue`, and `onValueChange` props across web and native surfaces.

    customer

    Example dashboards and execution consoles keep their existing tabbed UX while using the cross-platform design-system primitive.

Deprecations

  • - @lssm-tech/module.billing-os: BillingInvoice → InvoiceViewModel (@deprecated alias retained for backward compatibility; migrate to InvoiceViewModel.)
  • - @lssm-tech/module.billing-os: BillingLineItem → LineItemViewModel (@deprecated alias retained for backward compatibility; migrate to LineItemViewModel.)
  • - @lssm-tech/module.billing-os: BillingPayment → PaymentViewModel (@deprecated alias retained for backward compatibility; migrate to PaymentViewModel.)
  • - @lssm-tech/module.billing-os: BillingQuote → QuoteViewModel (@deprecated alias retained for backward compatibility; migrate to QuoteViewModel.)
  • - @lssm-tech/module.billing-os: BillingReadinessCheck → ReadinessCheckViewModel (@deprecated alias retained for backward compatibility; migrate to ReadinessCheckViewModel.)
  • - @lssm-tech/module.billing-os: BillingReadinessPacket → ReadinessPacketViewModel (@deprecated alias retained for backward compatibility; migrate to ReadinessPacketViewModel.)
  • - @lssm-tech/module.billing-os: BillingReviewItem → ReviewItemViewModel (@deprecated alias retained for backward compatibility; migrate to ReviewItemViewModel.)
  • - design-system: legacy `<CodeBlock>` molecule removed; use `<RichRef kind="code-symbol">` + per-kind layouts.
  • - design-system: legacy `<DiffBlock>` molecule removed; use `<RichRef kind="code-symbol" variant="diff">`.
  • - design-system: legacy `<ObjectReferenceHandler>` / `<ObjectReferencePanel>` removed; use `<RichRef>` + per-kind layouts.
  • - Direct imports such as `@lssm-tech/lib.design-system/components/molecules/Tabs.mobile` have been replaced by `.native` subpaths.
  • - id: design-system-communication-os-subpath; name: @lssm-tech/lib.design-system/components/communication-os; reason: Components belong in the module layer. Domain-specific composites should not live in the shared design-system.; removedIn: this release; replacement: @lssm-tech/module.communication-os/ui (CommOsLegacyComposites)
  • - id: template-islive; name: isLive and liveLabel props; reason: Live status is now managed internally via subscribeStatus badge; migration: Remove isLive and liveLabel props; use GraphSubscription SSE adapter to push live events
  • - id: template-onaction; name: onAction(id string) on all 5 graph templates; reason: Replaced by onDrilldown(node GraphNode) — receives full node object; migration: Replace onAction={(id) => fn(id)} with onDrilldown={(node) => fn(node.id)}
  • - id: template-onrestoreview; name: onRestoreView prop; reason: View restore is now handled internally by useSavedViewRestore; migration: Remove onRestoreView prop; saved view state is automatically persisted and restored
  • - id: template-time-scrub-props; name: steps, snapshotCursor, snapshotTimestamps, onScrub props; reason: Replaced by standalone TimeScrubber component from ui-kit-web; migration: Replace inline time-scrub prop cluster with <TimeScrubber> component; wire timestamps and cursor separately
  • - personalization: `@lssm-tech/lib.personalization/rich-code-preferences` removed; use `@lssm-tech/lib.personalization/rich-reference/preferences`.
  • - surface: @lssm-tech/lib.design-system/components/communication-os; symbol: entire subpath; reason: CommOS composite components belong in module.communication-os/ui (the canonical module boundary). Having them in lib.design-system violated the package architecture rule that foundational libs must not contain module-specific UI. ; removalVersion: pending G010 outcome; migrationSummary: Replace all imports from @lssm-tech/lib.design-system/components/communication-os with imports from @lssm-tech/module.communication-os/ui.

Migration guide

  • Update imports from design-system to module

    Required

    Any code importing from @lssm-tech/lib.design-system/components/communication-os must be updated to import from @lssm-tech/module.communication-os/ui.

    1. Search codebase for "@lssm-tech/lib.design-system/components/communication-os".
    2. Replace with "@lssm-tech/module.communication-os/ui".
    3. The exported names are identical; no other changes are needed.
    4. Remove CommunicationDesignSystemContracts usage — it was dead code and is not re-exported.
  • Search for `from '@lssm-tech/lib.design-system/components/communication-os'` acr

    Required

    Search for `from '@lssm-tech/lib.design-system/components/communication-os'` across your codebase and replace with `from '@lssm-tech/module.communication-os/ui'`.

    1. Search for `from '@lssm-tech/lib.design-system/components/communication-os'` across your codebase and replace with `from '@lssm-tech/module.communication-os/ui'`.
  • All nine migrated composites are re-exported from the /ui entry point under the

    Required

    All nine migrated composites are re-exported from the /ui entry point under the same names. No prop changes required unless the component was also updated as part of G003–G009.

    1. All nine migrated composites are re-exported from the /ui entry point under the same names. No prop changes required unless the component was also updated as part of G003–G009.
  • Remove M2 props from all 5 graph template usages

    Required

    Find and remove onAction, isLive, liveLabel, onRestoreView, steps, snapshotCursor, snapshotTimestamps, onScrub from every template call site.

    1. Run grep -r "onAction\|isLive\|liveLabel\|onRestoreView\|snapshotCursor\|snapshotTimestamps\|onScrub" packages/ --include="*.tsx" to find all occurrences.
    2. Remove each prop from the JSX call site.
    3. Replace onAction with onDrilldown accepting GraphNode.
    4. If time-scrub was used, extract a standalone TimeScrubber component above the template.
  • Optionally add p6 and p7 tunnel props

    Wire P6 (export/annotation/story) and P7 (AI) features via the new tunnel props.

    1. Import GraphTemplateP6Props and GraphTemplateP7Props from ui-kit-web/ui/graph.
    2. Construct p6 config with ExportBar, AnnotationOverlay, and optionally PresenterSequence.
    3. Construct p7 config behind a feature flag; wire AiInputSlot and AiSuggestionConfirm.
    4. Pass p6 and/or p7 to the template as optional tunnel props.
  • Replace app-local CodeBlock with the design-system molecule

    Required

    Web landing and other apps should consume CodeBlock from the design system.

    1. Replace app-local CodeBlock implementations with `CodeBlock` from `@lssm-tech/lib.design-system`.
  • Run rich-reference codemods first

    Required

    Mechanical migration via the bundled codemod batch.

    1. bun packages/tools/contractspec-codemods/scripts/apply.ts --roots packages
  • Verify zero legacy-symbol hits

    Required

    AC-17 release-gated import-graph scan.

    1. bun packages/tools/contractspec-codemods/scripts/scan.ts --mode release --roots packages
  • Bump all 11 packages in lockstep

    Required

    Partial upgrade is unsupported; the packages share a registry, ports, and runtime invariants.

    1. Update package.json to bump all 11 packages to their new versions in a single commit.
  • Adopt the focused application shell subpath

    Existing shell-related imports keep working, but new application frames should use the focused shell entrypoint.

    When: When creating a new app shell or refactoring an existing navigation frame.

    1. Import AppShell and PageOutline from "@lssm-tech/lib.design-system/shell".
    2. Keep existing AppLayout, AppSidebar, AppHeader, NavLink, and NavSection imports where no refactor is needed.
    3. Use the public library docs prompts when migrating existing app frame structure.
  • Move high-level table UX into `DataTableToolbar`

    Keep the primitive `DataTable` lean and compose richer UX through the existing `toolbar` slot.

    When: When a table needs search, active chips, selection summary, or hidden-column recovery.

    1. Import `DataTableToolbar` from `@lssm-tech/lib.design-system`.
    2. Pass the existing table controller into `DataTableToolbar`.
    3. Keep product-specific buttons or filter toggles in `actionsStart` or `actionsEnd`.
  • Reset page-level UI state when server filters change

    The examples now reset page index when search or status filters change so server-mode tables stay aligned with remote pagination.

    When: When composing server-paginated tables with external search or filter state.

    1. Reset `pageIndex` whenever remote search or filter inputs change.
    2. Continue passing sorting and pagination through the shared controller state.
  • Prefer EntityWorkspace for product-shell entity surfaces

    Use EntityWorkspace and its neutral metric/evidence primitives when a surface needs workspace chrome; keep DataViewRenderer for renderer-focused examples.

    1. Import product-shell composition from `@lssm-tech/lib.design-system` or the focused `components/entity-workspace` subpaths.
    2. Keep domain-specific labels and policy copy in the caller adapter before passing neutral metrics or evidence rows.
    3. Verify web and React Native import paths when adding public entity-surface primitives.
  • Replace direct `.mobile` design-system imports

    Required

    Move direct design-system platform imports from `.mobile` to `.native`.

    1. Replace imports ending in `.mobile` with the matching `.native` subpath.
    2. Prefer unsuffixed design-system imports when the same call site should run on both web and native.
    3. Restart Metro after upgrading so stale package export maps are cleared.
  • Prefer design-system Tabs for shared product surfaces

    Consumers should import tabs from `@lssm-tech/lib.design-system` instead of lower-level UI-kit tab modules.

    When: When building or updating tabbed React or React Native UI.

    1. Replace `@lssm-tech/lib.ui-kit-web/ui/tabs` or `@lssm-tech/lib.ui-kit/ui/tabs` imports with `@lssm-tech/lib.design-system`.
    2. Use `defaultValue` for uncontrolled tabs, or `value` plus `onValueChange` for controlled tabs.
    3. Keep existing `TabsList`, `TabsTrigger`, and `TabsContent` structure.

Upgrade steps

  • Use the native form-contract renderer in React Native screens

    manual

    Import `formRenderer` from `@lssm-tech/lib.design-system/renderers/form-contract` under React Native conditions, or import the explicit `.native` subpath when needed.

    Packages: @lssm-tech/lib.design-system

    1. Use `@lssm-tech/lib.design-system/renderers/form-contract` from Metro/React Native so package conditions resolve to the native renderer.
    2. Use `@lssm-tech/lib.design-system/renderers/form-contract.native` only when an explicit native subpath is preferred.
    3. Keep web screens on the existing default/browser renderer.
  • Run check-package-layer-boundaries after migration

    manual

    The CI lint guard will fail if any old import remains.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/module.communication-os

    1. Run "bun run scripts/check-package-layer-boundaries.ts" to verify no old path survives.
  • Update CommOS imports from design-system to module

    manual

    Replace design-system subpath imports with module.communication-os/ui

    Packages: @lssm-tech/lib.design-system

    1. Find all imports from @lssm-tech/lib.design-system/components/communication-os
    2. Replace with imports from @lssm-tech/module.communication-os/ui
    3. Run typecheck to confirm no regressions
  • Run the full M2-to-M3 prop migration

    manual

    Use the grep commands above, update each template usage, and verify type-checking passes.

    Packages: @lssm-tech/lib.design-system

    1. Address onAction → onDrilldown at every call site.
    2. Remove all deprecated time-scrub props.
    3. Run bun run typecheck in each affected package.
    4. Verify all 5 templates render correctly in engineer and manager role variants.
  • Wire PortsProvider with concrete port implementations

    assisted

    The new molecules (CustomerPicker, PriceBookItemPicker) call port methods at runtime. Wrap your BillingOS UI tree with PortsProvider and supply concrete SearchCustomersPort and SearchSellableItemsPort implementations.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.billing-spec, @lssm-tech/lib.billing-runtime, @lssm-tech/module.billing-os

    1. Import PortsProvider and the port interfaces from '@lssm-tech/module.billing-os'.
    2. Implement SearchCustomersPort.searchCustomers and SearchSellableItemsPort.searchSellableItems against your data layer.
    3. Wrap your billing page tree with <PortsProvider ports={...}>.
  • Migrate from deprecated Billing* type aliases to *ViewModel names

    assisted

    The pre-existing BillingQuote, BillingLineItem, etc. type aliases are soft-deprecated. Existing code continues to compile; update at your convenience.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.billing-spec, @lssm-tech/lib.billing-runtime, @lssm-tech/module.billing-os

    1. Search for BillingQuote, BillingLineItem, BillingInvoice, BillingPayment, BillingReviewItem, BillingReadinessCheck, BillingReadinessPacket in your codebase.
    2. Replace each with its *ViewModel counterpart from '@lssm-tech/module.billing-os'.
  • Enable CodeBlock downloads where useful

    assisted

    Pass `showDownloadButton` and optionally `downloadFilename` on design-system CodeBlock instances.

    Packages: @lssm-tech/lib.design-system

    1. Keep `showCopyButton` unchanged unless a surface intentionally hides copying.
    2. Use `downloadFilename` for user-facing snippets that should save with a specific extension.
  • Attach CodeBlock metadata where wrapper text was only explaining the snippet

    assisted

    Move filename-adjacent explanations into `description` and short captions into `comment`.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/example.companyos-ai-os-proofs

    1. Keep `filename` for artifact identity.
    2. Use `description` for the purpose of the code block.
    3. Use `comment` for provenance, safety, replay, or interpretation notes.
  • Read MIGRATION.md at the repo root

    manual

    Architecture, ports, canonical RichReference, markdown envelope, agent surface.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.personalization, @lssm-tech/lib.contracts-spec, @lssm-tech/lib.surface-runtime, @lssm-tech/lib.authos-runtime, @lssm-tech/lib.ui-kit, @lssm-tech/lib.ui-kit-web, @lssm-tech/lib.ui-kit-core, @lssm-tech/integration.runtime, @lssm-tech/tools.eslint-plugin-no-implicit-sensitivefields, @lssm-tech/tools.contractspec-codemods

    1. Open the repo-root MIGRATION.md and review the per-package compatibility intent.
    2. Cross-reference the detailed codemods MIGRATION.md for chrome-prop re-add recipes.
  • Re-add chrome props on call-sites that need them

    assisted

    Chrome-prop TODOs from the codemods are intentionally not auto-fixed.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.personalization, @lssm-tech/lib.contracts-spec, @lssm-tech/lib.surface-runtime, @lssm-tech/lib.authos-runtime, @lssm-tech/lib.ui-kit, @lssm-tech/lib.ui-kit-web, @lssm-tech/lib.ui-kit-core, @lssm-tech/integration.runtime, @lssm-tech/tools.eslint-plugin-no-implicit-sensitivefields, @lssm-tech/tools.contractspec-codemods

    1. Audit `TODO(rich-ref migration): re-add chrome` anchors using grep.
    2. Apply the wrapper or per-kind-layout pattern documented in `packages/tools/contractspec-codemods/MIGRATION.md`.
  • Reuse AdaptivePanel for responsive overlay choices

    assisted

    Replace one-off sheet/drawer branching with AdaptivePanel when a surface should use sheets on desktop and drawers on mobile.

    Packages: @lssm-tech/lib.design-system

    1. Import `AdaptivePanel` from `@lssm-tech/lib.design-system`.
    2. Use the default responsive mode, or force `mode="sheet"` / `mode="drawer"` when product requirements need one presentation.
  • Explore enhanced agent workflow UI

    auto

    New screens provide full CRUD operations for agents, workflow builder with templates, review queue with feedback, and real-time dashboard.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.contracts-spec, @lssm-tech/lib.schema, @lssm-tech/app.web-landing

    1. Navigate to the agent workflow command center to see the enhanced UI.
    2. Try creating, editing, and cloning agents.
    3. Explore the workflow builder with template gallery.
    4. Use the review queue with action buttons and feedback.
    5. Customize the real-time dashboard with widgets.
  • Use AppShell and PageOutline for new application frames

    assisted

    New application shells should compose the focused shell primitives instead of rebuilding frame, navigation, breadcrumb, command, and outline behavior locally.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/bundle.library, @lssm-tech/bundle.marketing

    1. Import AppShell and PageOutline from "@lssm-tech/lib.design-system/shell".
    2. Keep legacy imports for existing AppLayout, AppSidebar, AppHeader, NavLink, and NavSection consumers.
    3. Re-run design-system and affected docs or app typechecks after adopting the shell subpath.
  • Re-run focused table verification after upgrading

    assisted

    The web, native, design-system, and example surfaces should be validated together because the UX and stability changes span all four layers.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.presentation-runtime-react, @lssm-tech/lib.ui-kit-web, @lssm-tech/lib.ui-kit, @lssm-tech/example.crm-pipeline, @lssm-tech/example.data-grid-showcase

    1. Run the focused table test suites in `presentation-runtime-react`, `ui-kit-web`, `ui-kit`, `design-system`, `example.crm-pipeline`, and `example.data-grid-showcase`.
    2. Re-run package typechecks and lint checks for the touched libraries and examples.
    3. Spot-check server-paginated and client-side examples to confirm search, chips, loading, empty states, and column recovery behave as expected.
  • Prefer focused subpaths for new imports

    assisted

    Existing root imports stay supported, but new code can import from focused design-system surfaces.

    Packages: @lssm-tech/lib.design-system

    1. Use `@lssm-tech/lib.design-system/theme` for ThemeSpec runtime and Tailwind helpers.
    2. Use `@lssm-tech/lib.design-system/controls` for themed and translated controls.
    3. Use `@lssm-tech/lib.design-system/forms` for form layouts, controls, and `ZodForm`.
    4. Use `@lssm-tech/lib.design-system/layout` for stack primitives.
  • Prefer design-system controls for themed and translated forms

    manual

    Use the design-system form and stack exports before dropping to platform-specific UI kit primitives.

    Packages: @lssm-tech/lib.design-system

    1. Wrap surfaces in `DesignSystemThemeProvider` when ThemeSpec or scoped theme overrides are available.
    2. Wrap surfaces in `DesignSystemTranslationProvider` when TranslationSpec messages should resolve labels or placeholders.
    3. Import controls such as `Select`, `Autocomplete`, `DatePicker`, `TimePicker`, `DateTimePicker`, `Box`, `HStack`, and `VStack` from `@lssm-tech/lib.design-system`.
  • Regenerate design-system exports

    manual

    Keep package exports and registry metadata aligned with `.native` source files.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.presentation-runtime-core, @lssm-tech/bundle.library

    1. Run `cd packages/libs/design-system && bun run prebuild && bun run registry:build`.
    2. Verify no `*.mobile.tsx` platform files remain in `packages/libs/design-system/src`.
  • Use the floating PageOutline variant for wide desktop shells

    auto

    AppShell now uses the floating outline automatically on wide desktop and hides it on smaller web layouts; direct PageOutline consumers can still opt in with `variant="floating"` or `variant="compact"`.

    Packages: @lssm-tech/lib.design-system

    1. Use `variant="floating"` for direct web PageOutline usage that should reduce when inactive.
    2. Keep `variant="rail"` or `variant="compact"` where a static inline outline is still preferred.
    3. Place any custom small-screen outline UI outside AppShell if a product needs one.
  • Migrate direct tab imports

    manual

    Move tabbed product surfaces to the design-system root export.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/example.agent-console, @lssm-tech/example.crm-pipeline, @lssm-tech/example.data-grid-showcase, @lssm-tech/module.builder-workbench, @lssm-tech/module.execution-console

    1. Import `Tabs`, `TabsList`, `TabsTrigger`, and `TabsContent` from `@lssm-tech/lib.design-system`.
    2. Add `@lssm-tech/lib.design-system` as a package dependency if the consumer package did not already depend on it.
    3. Re-run typecheck for the migrated package.

Unique release changes

  • - AC-17 release-gated import-graph scan.

    9 packages · 9 occurrences

  • - Architecture, ports, canonical RichReference, markdown envelope, agent surface.

    9 packages · 9 occurrences

  • - Chrome-prop TODOs from the codemods are intentionally not auto-fixed.

    9 packages · 9 occurrences

  • - design-system: legacy `<CodeBlock>` molecule removed; use `<RichRef kind="code-symbol">` + per-kind layouts.

    9 packages · 9 occurrences

  • - design-system: legacy `<DiffBlock>` molecule removed; use `<RichRef kind="code-symbol" variant="diff">`.

    9 packages · 9 occurrences

  • - design-system: legacy `<ObjectReferenceHandler>` / `<ObjectReferencePanel>` removed; use `<RichRef>` + per-kind layouts.

    9 packages · 9 occurrences

  • - Mechanical migration via the bundled codemod batch.

    9 packages · 9 occurrences

  • - Partial upgrade is unsupported; the packages share a registry, ports, and runtime invariants.

    9 packages · 9 occurrences

  • - personalization: `@lssm-tech/lib.personalization/rich-code-preferences` removed; use `@lssm-tech/lib.personalization/rich-reference/preferences`.

    9 packages · 9 occurrences

  • - Rich-reference foundation — single coordinated release across 11 packages (S-0..S-13). See MIGRATION.md at the repo root.

    9 packages · 9 occurrences

  • - @lssm-tech/module.billing-os: BillingInvoice → InvoiceViewModel (@deprecated alias retained for backward compatibility; migrate to InvoiceViewModel.)

    4 packages · 4 occurrences

  • - @lssm-tech/module.billing-os: BillingLineItem → LineItemViewModel (@deprecated alias retained for backward compatibility; migrate to LineItemViewModel.)

    4 packages · 4 occurrences

  • - @lssm-tech/module.billing-os: BillingPayment → PaymentViewModel (@deprecated alias retained for backward compatibility; migrate to PaymentViewModel.)

    4 packages · 4 occurrences

  • - @lssm-tech/module.billing-os: BillingQuote → QuoteViewModel (@deprecated alias retained for backward compatibility; migrate to QuoteViewModel.)

    4 packages · 4 occurrences

  • - @lssm-tech/module.billing-os: BillingReadinessCheck → ReadinessCheckViewModel (@deprecated alias retained for backward compatibility; migrate to ReadinessCheckViewModel.)

    4 packages · 4 occurrences

  • - @lssm-tech/module.billing-os: BillingReadinessPacket → ReadinessPacketViewModel (@deprecated alias retained for backward compatibility; migrate to ReadinessPacketViewModel.)

    4 packages · 4 occurrences

  • - @lssm-tech/module.billing-os: BillingReviewItem → ReviewItemViewModel (@deprecated alias retained for backward compatibility; migrate to ReviewItemViewModel.)

    4 packages · 4 occurrences

  • - Add BillingOS UI uplift — Cluster A + B ports, presenter seam, atoms, molecules, and templates.

    4 packages · 4 occurrences

  • - Enhanced agent-workflow-command-center with comprehensive UI interactions

    4 packages · 4 occurrences

  • - Harden the shared data-table stack and add a first-class composed toolbar for search, filter chips, selection summary, and hidden-column recovery.

    4 packages · 4 occurrences

  • - Keep the primitive `DataTable` lean and compose richer UX through the existing `toolbar` slot.

    4 packages · 4 occurrences

  • - New screens provide full CRUD operations for agents, workflow builder with templates, review queue with feedback, and real-time dashboard.

    4 packages · 4 occurrences

  • - The examples now reset page index when search or status filters change so server-mode tables stay aligned with remote pagination.

    4 packages · 4 occurrences

  • - The new molecules (CustomerPicker, PriceBookItemPicker) call port methods at runtime. Wrap your BillingOS UI tree with PortsProvider and supply concrete SearchCustomersPort and SearchSellableItemsPort implementations.

    4 packages · 4 occurrences

  • - The pre-existing BillingQuote, BillingLineItem, etc. type aliases are soft-deprecated. Existing code continues to compile; update at your convenience.

    4 packages · 4 occurrences

  • - The web, native, design-system, and example surfaces should be validated together because the UX and stability changes span all four layers.

    4 packages · 4 occurrences

  • - Add a unified design-system Tabs primitive and migrate local tab consumers away from ui-kit leaf imports.

    3 packages · 3 occurrences

  • - Add design-system application shell primitives with typed navigation, command search, breadcrumbs, native bottom-tab adaptation, and PageOutline support.

    3 packages · 3 occurrences

  • - Consumers should import tabs from `@lssm-tech/lib.design-system` instead of lower-level UI-kit tab modules.

    3 packages · 3 occurrences

  • - Direct imports such as `@lssm-tech/lib.design-system/components/molecules/Tabs.mobile` have been replaced by `.native` subpaths.

    3 packages · 3 occurrences

  • - Existing shell-related imports keep working, but new application frames should use the focused shell entrypoint.

    3 packages · 3 occurrences

  • - Keep package exports and registry metadata aligned with `.native` source files.

    3 packages · 3 occurrences

  • - Migrate design-system platform implementation suffixes from `.mobile` to `.native`.

    3 packages · 3 occurrences

  • - Move direct design-system platform imports from `.mobile` to `.native`.

    3 packages · 3 occurrences

  • - Move tabbed product surfaces to the design-system root export.

    3 packages · 3 occurrences

  • - New application shells should compose the focused shell primitives instead of rebuilding frame, navigation, breadcrumb, command, and outline behavior locally.

    3 packages · 3 occurrences

  • - Add token-backed neutral EntityWorkspace metric and evidence primitive paths and align entity-surface docs.

    2 packages · 2 occurrences

  • - Any code importing from @lssm-tech/lib.design-system/components/communication-os must be updated to import from @lssm-tech/module.communication-os/ui.

    2 packages · 2 occurrences

  • - Fix FormSpec password visibility toggles so rendered password fields can reveal and re-mask values.

    2 packages · 2 occurrences

  • - id: design-system-communication-os-subpath; name: @lssm-tech/lib.design-system/components/communication-os; reason: Components belong in the module layer. Domain-specific composites should not live in the shared design-system.; removedIn: this release; replacement: @lssm-tech/module.communication-os/ui (CommOsLegacyComposites)

    2 packages · 2 occurrences

  • - Move CommunicationOS composite presentational components from lib.design-system to module.communication-os (CommOsLegacyComposites).

    2 packages · 2 occurrences

  • - The CI lint guard will fail if any old import remains.

    2 packages · 2 occurrences

  • - Use EntityWorkspace and its neutral metric/evidence primitives when a surface needs workspace chrome; keep DataViewRenderer for renderer-focused examples.

    2 packages · 2 occurrences

  • - Add a ContractSpec-owned DiffBlock molecule for web and native diff review surfaces.

    1 packages · 1 occurrences

  • - Add a React Native FormSpec renderer variant for contract-driven mobile screens.

    1 packages · 1 occurrences

  • - Add a ThemeSpec-aware and TranslationSpec-aware design-system form/control layer with stack primitives, exported control wrappers, and FormSpec renderer alignment.

    1 packages · 1 occurrences

  • - Add an extensible design-system object reference handler for actionable references.

    1 packages · 1 occurrences

  • - Add an opt-in download action and grouped action toolbar to the design-system CodeBlock.

    1 packages · 1 occurrences

  • - Add focused design-system subpaths and harden ThemeSpec runtime, Tailwind bridge, form-control helpers, and form renderer internals without changing root-import compatibility.

    1 packages · 1 occurrences

  • - Add grouped option support to design-system Select controls across web and native.

    1 packages · 1 occurrences

  • - Add optional description and comment metadata slots to the design-system CodeBlock.

    1 packages · 1 occurrences

  • - Add ThemeSpec Tailwind aliases for FormSpec option surface backgrounds.

    1 packages · 1 occurrences

  • - All nine migrated composites are re-exported from the /ui entry point under the same names. No prop changes required unless the component was also updated as part of G003–G009.

    1 packages · 1 occurrences

  • - AppShell now uses the floating outline automatically on wide desktop and hides it on smaller web layouts; direct PageOutline consumers can still opt in with `variant="floating"` or `variant="compact"`.

    1 packages · 1 occurrences

  • - Consolidate CodeBlock syntax highlighting on the design-system molecule with Shiki dual-theme support.

    1 packages · 1 occurrences

  • - Existing root imports stay supported, but new code can import from focused design-system surfaces.

    1 packages · 1 occurrences

  • - Find and remove onAction, isLive, liveLabel, onRestoreView, steps, snapshotCursor, snapshotTimestamps, onScrub from every template call site.

    1 packages · 1 occurrences

  • - Fix AppShell desktop sidebar collapse/layout and web notification dismissal behavior.

    1 packages · 1 occurrences

  • - Fix FormSpec phone country-select rendering to remove duplicated country adornments.

    1 packages · 1 occurrences

  • - id: template-islive; name: isLive and liveLabel props; reason: Live status is now managed internally via subscribeStatus badge; migration: Remove isLive and liveLabel props; use GraphSubscription SSE adapter to push live events

    1 packages · 1 occurrences

  • - id: template-onaction; name: onAction(id string) on all 5 graph templates; reason: Replaced by onDrilldown(node GraphNode) — receives full node object; migration: Replace onAction={(id) => fn(id)} with onDrilldown={(node) => fn(node.id)}

    1 packages · 1 occurrences

  • - id: template-onrestoreview; name: onRestoreView prop; reason: View restore is now handled internally by useSavedViewRestore; migration: Remove onRestoreView prop; saved view state is automatically persisted and restored

    1 packages · 1 occurrences

  • - id: template-time-scrub-props; name: steps, snapshotCursor, snapshotTimestamps, onScrub props; reason: Replaced by standalone TimeScrubber component from ui-kit-web; migration: Replace inline time-scrub prop cluster with <TimeScrubber> component; wire timestamps and cursor separately

    1 packages · 1 occurrences

  • - Import `formRenderer` from `@lssm-tech/lib.design-system/renderers/form-contract` under React Native conditions, or import the explicit `.native` subpath when needed.

    1 packages · 1 occurrences

  • - Improve PageOutline desktop behavior with a Notion-like floating rail, and hide the AppShell page outline on small web screens to preserve layout stability.

    1 packages · 1 occurrences

  • - M3 — Breaking template prop shape changes across all 5 graph templates (remove onAction/isLive/time-scrub M2 props; add onDrilldown(node), p6, p7 tunnels). Density-state auto-shift. M3 engineer/manager signature treatments.

    1 packages · 1 occurrences

  • - Migrate CommOS composite components out of lib.design-system into module.communication-os/ui (G010)

    1 packages · 1 occurrences

  • - Move filename-adjacent explanations into `description` and short captions into `comment`.

    1 packages · 1 occurrences

  • - Pass `showDownloadButton` and optionally `downloadFilename` on design-system CodeBlock instances.

    1 packages · 1 occurrences

  • - Promote object-reference detail panels to a reusable adaptive sheet/drawer surface.

    1 packages · 1 occurrences

  • - Replace design-system subpath imports with module.communication-os/ui

    1 packages · 1 occurrences

  • - Replace one-off sheet/drawer branching with AdaptivePanel when a surface should use sheets on desktop and drawers on mobile.

    1 packages · 1 occurrences

  • - Route design-system mobile menu overlays through the shared AdaptivePanel primitive.

    1 packages · 1 occurrences

  • - Search for `from '@lssm-tech/lib.design-system/components/communication-os'` across your codebase and replace with `from '@lssm-tech/module.communication-os/ui'`.

    1 packages · 1 occurrences

  • - Split DataViewRenderer.tsx into per-kind modules for extensibility.

    1 packages · 1 occurrences

  • - surface: @lssm-tech/lib.design-system/components/communication-os; symbol: entire subpath; reason: CommOS composite components belong in module.communication-os/ui (the canonical module boundary). Having them in lib.design-system violated the package architecture rule that foundational libs must not contain module-specific UI. ; removalVersion: pending G010 outcome; migrationSummary: Replace all imports from @lssm-tech/lib.design-system/components/communication-os with imports from @lssm-tech/module.communication-os/ui.

    1 packages · 1 occurrences

  • - Use the design-system form and stack exports before dropping to platform-specific UI kit primitives.

    1 packages · 1 occurrences

  • - Use the grep commands above, update each template usage, and verify type-checking passes.

    1 packages · 1 occurrences

  • - Web landing and other apps should consume CodeBlock from the design system.

    1 packages · 1 occurrences

  • - Wire P6 (export/annotation/story) and P7 (AI) features via the new tunnel props.

    1 packages · 1 occurrences

Impacted packages

  • @lssm-tech/app.web-landing

    Layer: apps · 2 changes

  • @lssm-tech/bundle.library

    Layer: bundles · 4 changes

  • @lssm-tech/bundle.marketing

    Layer: bundles · 3 changes

  • @lssm-tech/integration.runtime

    Layer: integrations · 10 changes

  • @lssm-tech/lib.authos-runtime

    Layer: libs · 10 changes

  • @lssm-tech/lib.billing-runtime

    Layer: libs · 10 changes

  • @lssm-tech/lib.billing-spec

    Layer: libs · 10 changes

  • @lssm-tech/lib.contracts-spec

    Layer: libs · 2 changes

  • @lssm-tech/lib.design-system

    Layer: libs · 3 changes

  • @lssm-tech/lib.personalization

    Layer: libs · 10 changes

  • @lssm-tech/lib.presentation-runtime-core

    Layer: libs · 4 changes

  • @lssm-tech/lib.presentation-runtime-react

    Layer: libs · 4 changes

  • @lssm-tech/lib.schema

    Layer: libs · 2 changes

  • @lssm-tech/lib.surface-runtime

    Layer: libs · 10 changes

  • @lssm-tech/lib.ui-kit

    Layer: libs · 4 changes

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

    Layer: libs · 10 changes

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

    Layer: libs · 1 changes

  • @lssm-tech/module.billing-os

    Layer: modules · 10 changes

  • @lssm-tech/module.builder-workbench

    Layer: modules · 3 changes

  • @lssm-tech/module.communication-os

    Layer: modules · 4 changes

  • @lssm-tech/module.execution-console

    Layer: modules · 3 changes