Back to changelog index

10.2.1

Aug 02, 2026 · 24 packages · 125 unique changes · 50 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.

  • atomic-marketing-design-components

    Add design-system-owned marketing CTA, hero, prose, icon-grid, proof, CTA-band, and landing-page section sequence components; keep bundle.marketing section subpaths as compatibility shims.

    integrator

    Consumers can import full-page marketing composition primitives from the design-system root or focused marketing subpaths. Existing bundle.marketing section subpaths continue to render via thin wrappers.

    agent

    Marketing story/copy stays in bundle.marketing; generic atoms, molecules, sections, and the closed landing-page section union now belong in lib.design-system. Do not add runtime personalization or bundle imports to DS marketing components.

  • atomic-marketing-design-foundation

    Add design-system-owned full-page marketing sections and route CompanyOS landing composition through bundle compatibility shims.

    maintainer

    Generic marketing page primitives, sections, and a typed landing-page renderer now live in the design system while bundle.marketing retains content ownership.

    integrator

    Existing bundle marketing section subpaths remain compatible while new pages can compose design-system MarketingPageSection objects.

  • atomic-marketing-design-system-foundation

    Add a design-system-owned full-page marketing component foundation and keep bundle.marketing CompanyOS section imports compatible through thin adapters.

    maintainer

    lib.design-system now owns generic marketing CTA, hero, prose, icon-grid, proof-strip, CTA-band, and typed landing page section composition exports. bundle.marketing keeps public section subpaths available as compatibility adapters from LandingCta/content models into generic DS models.

    integrator

    Existing bundle.marketing section imports continue to resolve. New DS marketing exports are additive and should be used for product-neutral full marketing page composition.

  • 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.

  • companyos-marketing-narrative-atomic

    Improve the CompanyOS marketing surface with clearer governed-execution positioning and a reusable atomic, prop-driven section component set for hero, CTA, button row, and prose sections. CompanyOsLandingPage now composes those shared sections and renders the previously hidden built-on/studio block with Vision and Platform up-links.

    maintainer

    design-system owns the prop-driven marketing section primitives: CtaButtonRow, MarketingHero, MarketingCtaBand, ProseSection, and IconGridSection. bundle.marketing keeps compatibility subpath re-exports from @lssm-tech/bundle.marketing/components/marketing/sections. CompanyOsLandingPage is recomposed from the shared sections and external CTAs render with target="_blank" rel="noopener noreferrer".

    integrator

    The change is additive. Existing bundle.marketing imports continue to resolve; the preferred neutral imports now come from @lssm-tech/lib.design-system and the bundle subpaths remain optional compatibility shims and intended for composing CompanyOS marketing surfaces with the refreshed governed-execution narrative.

  • 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-entity-workspace-uiux-uplift

    Token-correct, animated, skeleton-aware UI/UX uplift for DataViewRenderer and entity-workspace, plus a native worklet build fix.

    maintainer

    New theme-aware semantic status tokens (success, warning, info, each with a -foreground) are added to ContractSpecEditorialTheme in lib.contracts-spec — across the ThemeSpec light/dark token maps and all four CSS-var export objects (hex Css, dark Css, HSL, dark HSL) — and registered in the design-system v3 Tailwind config plus the web-landing, web-application-monolith (hex/@theme inline), and mobile-monolith (HSL triplet/@theme) app globals. The theme-contract tests in both monoliths enforce parity. danger continues to map to the existing destructive token. Light-mode warning (#905a18) and info (#2b6688) values are tuned to clear WCAG AA 4.5:1 on tinted (bg-*/12) card surfaces. Design-system components are migrated off raw Tailwind palette colors (emerald/amber/sky/zinc) onto these tokens: EntityEvidenceBlock, EntityMetricStrip, CopyButton, and the entity workbench-strip (web + native). CopyButton now emits an emitActionFeedback success/error toast via the canonical feedback infra. DataViewRenderer gains a view-aware loading skeleton (list/grid/table/detail, derived from the resolved view mode) on web and native; EntityMetricStrip gains an additive loading prop with placeholder cards, wired through EntityWorkspace's effectiveLoading. Motion is motion-safe/motion-reduce gated throughout (result-card hover lift, staggered skeleton entrance, copy zoom-in).

    integrator

    All existing imports and prop contracts resolve unchanged; the work is additive (new EntityMetricStrip `loading` prop, new DataViewLoadingState `variant`) plus a default visual restyle. Consumers using the design-system status tones inherit the new theme-aware colors automatically. Apps that maintain their own copy of the editorial CSS variables must mirror the new --success/--warning/--info (+ -foreground) vars to render the tones correctly (already applied to the three in-repo app globals). The tool.bun change makes the `native` build target ship unminified so reanimated `'worklet'` directives are preserved; rebuild any package that ships react-native worklets to benefit.

    customer

    Data views and entity workspaces look more consistent and polished: status colors adapt to light/dark themes with accessible contrast, copying a value shows a confirmation toast, lists/grids/tables/detail panels show shape-matched loading skeletons instead of blank space, and subtle motion respects reduced-motion preferences. On native, gesture-driven panels (swipe-to-dismiss detail panel) run smoothly on the UI thread again.

  • 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-adaptive-panel-native-behavior

    Native AdaptivePanel now honors mode/side/direction props, adds gesture swipe-to-dismiss, focus trap + accessibilityViewIsModal + dialog role, tokenized styles, and reduced-motion-gated spring/slide. Previously these props were declared but ignored.

    integrator

    BREAKING (native only) — the native AdaptivePanel previously ignored mode/mobileMode/desktopMode/breakpoint/sheetSide/drawerDirection (no-ops) and rendered a fixed bottom sheet with a stray always-visible, inert trigger. It now resolves the mode via useResponsive.native, slides from the resolved side/direction, supports react-native-gesture-handler swipe-to-dismiss (fires onOpenChange(false)), traps focus with accessibilityViewIsModal + a dialog role and returns focus on close, tokenizes the scrim/radius/max-height, and gates motion on reduced-motion. The `trigger` prop is now optional and, when provided, is rendered as a button that calls onOpenChange(true) on press (web Radix Sheet/Drawer parity) instead of an inert sibling; omit it for fully host-controlled panels. Any native consumer that passed these props will now see active behavior.

    agent

    Web AdaptivePanel is unchanged in behavior (Radix Sheet/Drawer) aside from tokenized max-height. The breaking change is scoped to the React Native lane.

  • 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-dataview-native-uplift

    Restore silently-dropped native DataView render props, replace Unicode mode-switcher glyphs with real icons, honor native field actions, add renderer-level empty/loading defaults with skeletons, and route FiltersToolbar copy through i18n.

    integrator

    Native DataViewRenderer now forwards renderFieldValue / getFieldClassName / getFieldLabelClassName / row-selection props (previously dropped at the native switch), renders real lucide-react-native mode icons (LayoutGrid/Table/List) instead of Unicode glyphs, honors intelligent field actions via the shared resolveFieldActionsPolicy (no longer hardcoded "hidden"), and provides renderer-level empty/loading defaults with animated skeletons. FiltersToolbar search/clear/remove copy is routed through resolveTranslationString (default English, localizable) instead of hardcoded French.

    agent

    fieldActions.shared.ts exposes the pure resolveFieldActionsPolicy(field,value,density,hostPolicy) resolver (guard precedence hidden->blocked->destructive->approval->auto; compact density trims copy) consumed read-only by both web and native field-action paths.

  • 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-entity-workspace-uplift

    Split EntityWorkspace web+native into internal modules, close native tone/feature parity, unify field rendering through a shared descriptor, add reduced-motion-gated micro-interactions, and render the detail empty-state inline in the master-detail pane.

    integrator

    EntityWorkspace public entries are unchanged; native now reaches parity — EntityMetricStrip/EntityEvidenceBlock gain tone coloring + useThemedPrimitive, the native results toolbar (search/filters/sort), toolbarActions, personalization, and renderDetail are wired, and native cards gain a reduced-motion-gated press micro-interaction. The web detail "select a record" empty-state now renders inline beside the list (no longer hidden behind a closed drawer when nothing is selected).

    agent

    Web and native field rendering are unified through internal/field-render.shared resolveEntityFieldDescriptor (descriptors, not JSX); the native NativeEntityDetail/NativeDetailField/formatNativeFieldValue reimplementation is removed. denial-token/redaction handling is shared across platforms.

  • 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.

  • design-system-ux-uplift-foundation

    Add motion/elevation/density token scales, wire CVA tone/density variants, animate native skeletons, add useMotion(.native), and declare lane-split animation peer deps.

    integrator

    New motion (duration/easing), structured elevation (web box-shadow + native shadow object), and density token scales flow tokens.ts -> web CSS vars (--ds-motion/-elevation/-density-*) and native tokenBridge. New ./platform/useMotion(.native) hook returns reduced-motion-gated transition config. dsBaseVariants tone/density now emit token-backed classes.

    agent

    Animation libraries are declared as split-by-lane peers — framer-motion is a non-optional web peer (resolves via @lssm-tech/lib.ui-kit-web); react-native-reanimated/-gesture-handler/-svg are OPTIONAL native peers so web-only consumers are not required to install them.

  • entity-workspace-appshell-explicitness

    Require explicit EntityWorkspace and AppShell contracts across web and native design-system surfaces.

    maintainer

    EntityWorkspace and AppShell public props now enforce explicit host-owned state, callbacks, shell slots, and customization contracts at the type level.

    integrator

    Consumers must pass explicit nulls, empty collections, and no-op callbacks instead of relying on optional defaults for EntityWorkspace and AppShell.

  • entity-workspace-detail-navigation

    Add standardized EntityWorkspace detail-page navigation action props.

    maintainer

    EntityWorkspace now has first-class detail-page navigation props and tests covering web/native detail panel rendering.

    integrator

    Hosts can pass `buildDetailPageLink` and `onNavigateToDetailPage` to render a standard full-page navigation action inside the detail panel without coupling design-system to a router.

    customer

    Entity detail panels can now include a consistent full-page open action across web and native apps.

  • entity-workspace-listing-workbench

    Add cross-platform EntityWorkspace listing workbench controls with contract-aware intent resolution and host-owned side effects.

    maintainer

    Maintainers get additive public types and tests for EntityWorkspace workbench intent resolution without provider/runtime coupling.

    integrator

    App teams can use built-in EntityWorkspace create, refresh, force-sync, and cache status controls while executing concrete side effects in host adapters.

  • entity-workspace-native-fixes

    Fix React Native EntityWorkspace open actions, collection mode rendering, icon switcher affordances, and scrollable panels.

    maintainer

    Native EntityWorkspace now has regression coverage for Open row actions, native collection renderer resolution, icon switcher affordances, and scrollable AdaptivePanel content.

    integrator

    React Native and Expo hosts get working Open buttons on result cards/rows, distinct list/grid/table modes, accessible icon mode switching, and scrollable detail/edit panels.

    customer

    Native entity workspaces now open records from the Open button, show different list/grid/table views, and allow long detail or edit sheets to scroll.

  • entity-workspace-ux

    rendering and duplicate text within the entity workspace

  • field-label-nested-control-compat

    Restore native nested-control association compatibility for FieldLabel.

    integrator

    FieldLabel continues to support explicit htmlFor/id bindings and again accepts controls nested directly in the label through native implicit association.

  • 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.

  • managed-companyos-responsive-ux-hardening

    Harden Managed CompanyOS mobile/desktop theming, localization, touch targets, accessible naming, reduced motion, production-only tooling isolation, and smart-meeting browser proof.

    customer

    Personal and multi-company users receive a touch-safe, localized, light/dark CompanyOS planning flow from context selection through an approved Google Meet.

    integrator

    Existing design-system and web UI-kit APIs remain compatible while buttons, selects, narrow shell headers, and destructive states gain safer accessibility defaults.

    maintainer

    A deterministic Playwright matrix covers en/fr/es, light/dark, 320/375/768/1280px, 1/3/4/20 contexts, team choices, Axe checks, target sizes, overflow, and approval-to-Meet scheduling. A production-binary suite adds keyboard-only completion, visible focus, reduced motion, and a 200%-reflow proxy through the real Better Auth branch.

  • marketing-rich-components

    Add prop-driven marketing components (pricing calculator, pricing table, FAQ, testimonial, lead-capture, feature tabs, timeline, trust badges, video, announcement bar) with documented marketing subpath exports.

    integrator

    The design system exposes new prop-driven marketing components — pricing calculator, pricing table, FAQ, testimonial, lead-capture, feature tabs, timeline, trust badges, video, and announcement bar — through documented marketing subpath exports for composition in marketing and product surfaces.

    maintainer

    Additive, prop-driven components composed from existing design-system primitives. No existing exports change; the new surfaces are reachable via the documented marketing subpath.

  • mega-menu-duplicate-link-keys

    Prevent duplicate React keys in design-system mega-menu panels with repeated link destinations.

    maintainer

    MegaMenuPanel now keys repeated destination links by column, position, href, and label fallback instead of href alone.

    integrator

    Marketing navigation menus can include multiple entries that intentionally route to the same page without React duplicate-key warnings.

    customer

    Marketing menu rendering is more stable when several solution cards link to the same page.

  • mobile-appshell-native-uplift

    Native AppShell renders a single Expo Router NativeTabs navigator, removes the native header/notifications/menu chrome, and sources tab-bar colors from the active design-system theme.

    integrator

    BREAKING (native only) — AppShell.native now renders ONLY the `expo-router/unstable-native-tabs` navigator. The native header (`AppHeader`), the notification bell, the overflow menu, and the `children`/`aiPanel` slots are no longer rendered on native; this also removes the prior double-navigator mount (NativeTabs + a sibling Stack). `AppShellProps` is unchanged and all props remain accepted and crash-free, but `brand`/`logo`/`title`/`notifications`/`commands`/`userMenu`/`children`/ `aiPanel` now render nothing on native. Mount AppShell.native from an Expo Router layout whose direct child route files match the primary tab triggers, and wrap the app in `DesignSystemThemeProvider` + `SafeAreaProvider`.

    maintainer

    AppShell.native is reduced to a header-less single-navigator component; tab triggers come from the governed `buildNativeTabDescriptors` mapping with `{sf, md}` native icons. Tab colors derive from `useDesignSystemTheme()` (falling back to `defaultTokens`): `iconColor`/`labelStyle` use `{default: mutedForeground, selected: primary}`, Android `tintColor`/ `indicatorColor` = primary, badge colors from primary/primaryForeground. `rippleColor` was removed because the editorial `muted` token is a `color-mix()` CSS string that React Native cannot parse. Web AppShell and `AppShellProps` are untouched.

    customer

    The mobile app no longer shows an empty bar at the top; primary navigation is a themed bottom tab bar with visible icons and a clear active/inactive state that respects safe-area insets.

  • native-appshell-tabs

    Replace native AppShell custom bottom tabs with Expo Router NativeTabs layout-adapter behavior as a breaking native-shell behavior change.

    integrator

    Native AppShell now expects Expo Router layout usage and renders primary navigation through `expo-router/unstable-native-tabs` instead of the design-system custom BottomTabs row.

    maintainer

    AppShell native tab mapping is governed by `AppShell.native-helpers.ts`; unsafe primary tab hrefs fail fast and the public BottomTabs export remains available for non-shell consumers.

  • 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-entity-workspace-private-build

    Emit private EntityWorkspace implementation files for Expo/React Native bundles without exposing internal package subpaths.

    maintainer

    Design-system internal split modules now build into dist for relative imports while the build tool can filter private files from generated exports.

    integrator

    Expo consumers resolving @lssm-tech/lib.design-system/components/entity-workspace no longer fail on missing native internal hook files.

  • 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`.

  • studio-rsc-i18n-boundary

    Fix the CompanyOS /autonomous-company-studio production SSR failure by making i18n hook consumers explicit client boundaries and adding a provider-free global error fallback for App Router production rendering.

    maintainer

    The Autonomous Company Studio route now renders through production SSR without invoking LocaleContext hooks from a Server Component graph.

    integrator

    Design-system i18n hooks and marketing components that consume them now carry explicit client boundaries, making RSC misuse fail closed instead of producing a production-only useContext runtime error.

  • 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

  • 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.
  • Existing bundle section subpaths continue to work

    CtaButtonRow, MarketingHero, MarketingCtaBand, ProseSection, and IconGridSection remain available from bundle.marketing and delegate to design-system components.

    1. Existing imports may remain unchanged.
    2. New generic marketing UI should prefer @lssm-tech/lib.design-system.
  • Compose generic landing pages with design-system marketing sections

    Keep product copy and content mapping in bundles/apps, then pass generic CTA, icon-grid, prose, summary, hero, and CTA-band sections to the design-system renderer.

    1. Import `MarketingLandingPage` and `MarketingPageSection` from `@lssm-tech/lib.design-system` for new generic marketing pages.
    2. Keep bundle-local compatibility wrappers in place for public `@lssm-tech/bundle.marketing/components/marketing/sections/*` subpaths.
    3. Do not import bundle content, app modules, or personalization runtime APIs from design-system marketing components.
  • 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.
  • 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.
  • Native AdaptivePanel props are now active — audit side/direction/mode

    Required

    Props that were previously no-ops now drive rendered behavior. Audit native AdaptivePanel usages and confirm the intended sheetSide / drawerDirection / mode.

    1. In-repo affected consumers (both pass sheetSide="right", previously a no-op, now active) — EntityDetailPanel.native.tsx and EntityEditPanel.native.tsx. Both also pass a trigger Button that was previously inert decoration; it now opens the panel on press. Behavior change recorded; on-device §5b smoke gate pending (not yet verified on device).
    2. Downstream grep performed (DS-OQ-6) — native AdaptivePanel consumers are within design-system (EntityDetailPanel.native, EntityEditPanel.native). Web consumers (organisms Header/MarketingHeader, auth-os UI) use the unchanged web AdaptivePanel.
    3. Native apps must have react-native-gesture-handler + react-native-reanimated installed (optional peers) for swipe-to-dismiss and slide animation; without them the panel falls back to a static modal.
  • 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`.
  • FiltersToolbar default copy is now English keys

    FiltersToolbar (web + native, and via DataTableToolbar) now renders English defaults ("Search"/"Clear filters"/"Remove filter") routed through the translation resolver; previously the copy was hardcoded French. Provide translations through the design-system translation provider to localize.

    1. Wire a translation resolver (useDesignSystemTranslation) to localize the default English keys.
    2. Tests asserting the previous French literals were updated to the English defaults.
  • Detail empty-state renders inline when no record is selected

    On the master-detail layout, the empty "select a record" placeholder now renders inline in the detail pane (web and native) when no item is selected; the drawer/AdaptivePanel is reserved for selected content on small screens.

    1. No API change. If a host asserted the empty placeholder was absent until a drawer opened, update to expect the inline placeholder.
  • 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.
  • Install native animation peers only for native apps

    Native (Expo/React Native) consumers must have react-native-reanimated, react-native-gesture-handler, and react-native-svg installed (they are optional peers). Web-only consumers are unaffected.

    1. Web consumers — no action; framer-motion resolves via @lssm-tech/lib.ui-kit-web.
    2. Native consumers — ensure reanimated/gesture-handler/svg are present (catalog:native versions) so animated skeletons and motion hooks run.
  • Internal split modules are excluded from the public export map

    Build-config/structure change — tsdown.config.js now excludes "!src/**/internal/**" from the entry glob so file-split implementation modules are not auto-published as public subpaths. No public subpath was added or removed by the split.

    1. No consumer action; do not import from design-system internal/ paths.
  • Pass every EntityWorkspace and AppShell contract prop explicitly

    Required

    Replace omitted props with an intentional value so ownership is visible in call sites.

    When: Upgrading any code that renders EntityWorkspace, AppShell, or their exported subcomponents.

    1. Pass explicit data state values such as items, selected item/id, selected ids, query source, filters, sort, pagination, density, data depth, and view mode.
    2. Pass explicit interaction callbacks, using no-op callbacks only when the host intentionally ignores an interaction.
    3. Pass explicit shell structure and customization slots, using null for absent slots and [] or {} for empty collections.
    4. Keep native and web props semantically aligned; do not add compatibility adapters or overload shims.
  • Use EntityWorkspace workbench controls for listing screens

    Replace bespoke list-page create/refresh/cache chrome with EntityWorkspace callbacks or sideEffectAdapter wiring.

    1. Pass onCreateNew/onRefresh/onForceSync for simple host-owned behavior.
    2. Pass cacheStatus for fresh/stale/syncing/offline/error visibility.
    3. Use sideEffectAdapter for contract-resolved intents and keep provider, TanStack, storage, and offline replay types out of EntityWorkspace props.
  • 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.
  • AppShell.native is header-less and is the sole navigator in its layout

    Required

    Render AppShell.native from an Expo Router layout whose direct child routes match the primary tab triggers, and stop relying on the native header / notifications / menu / children slots.

    1. Mount AppShell.native from an Expo Router layout (e.g. a `(tabs)/_layout.tsx`) whose direct child route files exactly match the primary tab trigger names (use `/` for the index tab and single-segment hrefs such as `/cockpit`). Untriggered sibling routes become phantom tabs, so keep non-tab screens in a parent stack.
    2. Do not pass routed page content via `children` on native — NativeTabs owns routed tab content; `children` and `aiPanel` are ignored on native.
    3. The native header, notification bell, and overflow menu are no longer rendered. If a host needs notifications/menu on native, surface them inside a tab screen or a future dedicated surface; the `notifications`/`userMenu`/`commands` props are still accepted but render nothing on native.
    4. Build tab presence from a static, route-accurate list (do not gate tab presence on per-user/role-filtered data) so every tab route file always has a matching trigger; apply role/persona gating to in-screen content instead.
  • Provide DesignSystemThemeProvider and SafeAreaProvider at the native app root

    Required

    The tab bar colors come from the resolved design-system theme; without a provider it falls back to light defaultTokens that will not match a themed app.

    1. Wrap the native app root in `SafeAreaProvider` (from react-native-safe-area-context) so the tab bar and tab content respect safe-area insets.
    2. Wrap the app in `DesignSystemThemeProvider platform="native" theme={<yourThemeSpec>} mode="light"` so `useDesignSystemTheme()` resolves the same tokens the rest of the UI uses; otherwise AppShell.native falls back to light `defaultTokens`.
    3. Ensure no `color-mix()`/CSS-string theme tokens are fed to React Native color props.
  • Mount native AppShell from an Expo Router layout

    Required

    Use AppShell.native at an Expo Router layout boundary so NativeTabs owns routed tab content.

    1. Render native AppShell from `app/_layout.tsx` or an equivalent Expo Router layout boundary.
    2. Use `/` for the index tab and single-segment hrefs such as `/settings` for primary tab routes.
    3. Keep nested, external, dynamic, disabled, or denied routes in overflow/menu surfaces instead of primary native tabs.
    4. Treat `children` as an overlay or utility slot outside the NativeTabs navigator, not as routed tab content.
    5. Primary native tab triggers intentionally map only labels and string/number badges; keep arbitrary ReactNode icons in overflow/menu surfaces until a governed native-safe icon descriptor exists.
  • 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.
  • Upgrade and rebuild design-system for native EntityWorkspace consumers

    Install the patched design-system package so Metro can resolve EntityWorkspace.native.js relative internal imports.

    1. Upgrade @lssm-tech/lib.design-system to the patch release containing the private build-entry fix.
    2. Restart Metro after reinstalling node_modules or refreshing the workspace package build.
  • 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.
  • 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

  • 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.
  • Adopt design-system marketing components for generic landing pages

    manual

    Use the new @lssm-tech/lib.design-system marketing exports for generic full-page marketing structure while keeping story/content mapping in host bundles or applications.

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

    1. Import MarketingLandingPage and MarketingPageSection when rendering a known, typed sequence of marketing sections.
    2. Keep product-specific content, icon mapping, and LandingCta conversion outside lib.design-system; DS must not import bundle.marketing or app runtime personalization modules.
  • 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'.
  • 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
  • Adopt the shared CompanyOS marketing section components

    manual

    Use the exported section primitives when composing new CompanyOS marketing pages so narrative, CTA behavior, and layout stay consistent.

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

    1. Import CtaButtonRow, MarketingHero, MarketingCtaBand, ProseSection, and IconGridSection from @lssm-tech/lib.design-system for new surfaces. Existing @lssm-tech/bundle.marketing/components/marketing/sections imports remain valid.
    2. Keep the refreshed "AI proposes, your team approves" governed-execution narrative in content tokens rather than duplicating old AI-hype copy in components.
  • 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.
  • Mirror the new status CSS variables in app themes

    assisted

    Apps that hand-maintain a copy of the editorial CSS variables must add the new --success/--warning/--info tokens (and their -foreground) so design-system status tones render. The three in-repo app globals are already updated.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.contracts-spec, @lssm-tech/tool.bun, @lssm-tech/app.web-landing, @lssm-tech/app.web-application-monolith, @lssm-tech/app.mobile-monolith

    1. For Tailwind v4 hex themes (web), add --success/--warning/--info (+ -foreground) to :root and .dark, and register --color-* in @theme inline, mirroring ContractSpecEditorialThemeCssVariables / DarkCssVariables.
    2. For NativeWind HSL themes (native), add the HSL-triplet vars from ContractSpecEditorialThemeHslVariables and register --color-* via hsl(var(--*)) in @theme.
  • Rebuild native packages that ship reanimated worklets

    assisted

    The native build target is now unminified so 'worklet' directives survive. Rebuild any library that ships react-native gesture/animation worklets, then clear the Metro cache in the consuming app.

    Packages: @lssm-tech/lib.design-system, @lssm-tech/lib.contracts-spec, @lssm-tech/tool.bun, @lssm-tech/app.web-landing, @lssm-tech/app.web-application-monolith, @lssm-tech/app.mobile-monolith

    1. Run `bun run build:bundle` in each affected native-shipping package (e.g. lib.design-system, lib.ui-kit).
    2. Restart the Expo app with a cleared transform cache (`expo start -c`).
  • Re-verify native AdaptivePanel behavior on device

    manual

    Confirm native open/close, resolved side/direction, swipe-to-dismiss, and reduced-motion behavior after previously ignored props became active.

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

    1. Confirm open and close behavior on each native AdaptivePanel usage.
    2. Confirm the resolved side or direction matches the intended mode, sheetSide, and drawerDirection props.
    3. Confirm swipe-to-dismiss calls onOpenChange(false).
    4. Confirm OS reduce-motion produces an instant show or hide instead of spring or slide animation.
  • 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.
  • 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`.
  • Update host call sites for maximal explicitness

    manual

    Audit every EntityWorkspace and AppShell render site and make absence explicit.

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

    1. Use null for intentionally absent React slots.
    2. Use [] for intentionally empty lists and {} for intentionally empty state maps.
    3. Use no-op callbacks only when the action is intentionally host-inert.
    4. Re-run typecheck so missing ownership decisions surface as compiler errors.
  • Add full-page navigation from EntityWorkspace detail panels

    assisted

    Use `buildDetailPageLink` for route construction and `onNavigateToDetailPage` for app-owned router calls.

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

    1. Provide `buildDetailPageLink={({ itemId }) => `/entities/${itemId}`}` when route construction should be standardized.
    2. Provide `onNavigateToDetailPage={(event) => router.push(event.detailPageHref ?? `/entities/${event.itemId}`)}` from the host app.
    3. Override `detailPageActionLabel` when the default "Open full page" copy is not appropriate.
  • Verify native EntityWorkspace result actions and modes

    manual

    Apps using EntityWorkspace on React Native should smoke-test Open actions, list/grid/table mode changes, and long detail/edit panel content after upgrading.

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

    1. Open a native EntityWorkspace with row actions enabled.
    2. Press a result card or row and then press its Open/View action; both should open the same detail panel path.
    3. Switch between list, grid, and table modes and confirm each mode has a distinct native layout.
    4. Open a long detail or edit panel and confirm the panel content scrolls.
  • 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.
  • Compose the new marketing components

    manual

    Import the new marketing components from the design-system marketing subpath and pass their props to render pricing, FAQ, testimonial, lead-capture, and related surfaces.

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

    1. Import the desired component from the design-system marketing subpath export.
    2. Provide the documented props; no global configuration is required.
  • Re-verify the native AppShell tab bar on device

    manual

    Tab rendering, icon glyphs, active/inactive contrast, safe-area, exact tab count, and boot landing are native-runtime behaviors that must be confirmed on an Android dev build (and an iOS simulator for parity).

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

    1. Confirm no header strip renders at the top and the bottom tab bar is the only chrome.
    2. Confirm exactly the intended tabs render (no phantom/iconless tabs) for every persona/role, including roles whose surfaces are gated.
    3. Confirm each tab shows its icon (Material `md` on Android, SF Symbol `sf` on iOS) and that active vs inactive is clearly distinguishable.
    4. Confirm tab-bar colors match the app theme (editorial tokens), not light defaults.
    5. Confirm the tab bar and tab content respect safe-area insets on a notched device.
    6. Confirm the app boots onto the intended landing tab with no redirect loop, and that non-tab routes still push over the tab shell.
  • 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 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.
  • 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.
  • 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`.
  • 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

  • - Apps that hand-maintain a copy of the editorial CSS variables must add the new --success/--warning/--info tokens (and their -foreground) so design-system status tones render. The three in-repo app globals are already updated.

    5 packages · 5 occurrences

  • - The native build target is now unminified so 'worklet' directives survive. Rebuild any library that ships react-native gesture/animation worklets, then clear the Metro cache in the consuming app.

    5 packages · 5 occurrences

  • - Token-correct, animated, skeleton-aware UI/UX uplift for DataViewRenderer and entity-workspace, plus a native worklet build fix.

    5 packages · 5 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 Managed CompanyOS mobile/desktop theming, localization, touch targets, accessible naming, reduced motion, production-only tooling isolation, and smart-meeting browser proof.

    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

  • - rendering and duplicate text within the entity workspace

    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

  • - Add design-system-owned full-page marketing sections and route CompanyOS landing composition through bundle compatibility shims.

    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

  • - Fix the CompanyOS /autonomous-company-studio production SSR failure by making i18n hook consumers explicit client boundaries and adding a provider-free global error fallback for App Router production rendering.

    3 packages · 3 occurrences

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

    3 packages · 3 occurrences

  • - Keep product copy and content mapping in bundles/apps, then pass generic CTA, icon-grid, prose, summary, hero, and CTA-band sections to the design-system renderer.

    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 a design-system-owned full-page marketing component foundation and keep bundle.marketing CompanyOS section imports compatible through thin adapters.

    2 packages · 2 occurrences

  • - Add design-system-owned marketing CTA, hero, prose, icon-grid, proof, CTA-band, and landing-page section sequence components; keep bundle.marketing section subpaths as compatibility shims.

    2 packages · 2 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

  • - CtaButtonRow, MarketingHero, MarketingCtaBand, ProseSection, and IconGridSection remain available from bundle.marketing and delegate to design-system components.

    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

  • - Improve the CompanyOS marketing surface with clearer governed-execution positioning and a reusable atomic, prop-driven section component set for hero, CTA, button row, and prose sections. CompanyOsLandingPage now composes those shared sections and renders the previously hidden built-on/studio block with Vision and Platform up-links.

    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

  • - Use the exported section primitives when composing new CompanyOS marketing pages so narrative, CTA behavior, and layout stay consistent.

    2 packages · 2 occurrences

  • - Use the new @lssm-tech/lib.design-system marketing exports for generic full-page marketing structure while keeping story/content mapping in host bundles or applications.

    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 cross-platform EntityWorkspace listing workbench controls with contract-aware intent resolution and host-owned side effects.

    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 motion/elevation/density token scales, wire CVA tone/density variants, animate native skeletons, add useMotion(.native), and declare lane-split animation peer deps.

    1 packages · 1 occurrences

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

    1 packages · 1 occurrences

  • - Add prop-driven marketing components (pricing calculator, pricing table, FAQ, testimonial, lead-capture, feature tabs, timeline, trust badges, video, announcement bar) with documented marketing subpath exports.

    1 packages · 1 occurrences

  • - Add standardized EntityWorkspace detail-page navigation action props.

    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

  • - Apps using EntityWorkspace on React Native should smoke-test Open actions, list/grid/table mode changes, and long detail/edit panel content after upgrading.

    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

  • - Audit every EntityWorkspace and AppShell render site and make absence explicit.

    1 packages · 1 occurrences

  • - Build-config/structure change — tsdown.config.js now excludes "!src/**/internal/**" from the entry glob so file-split implementation modules are not auto-published as public subpaths. No public subpath was added or removed by the split.

    1 packages · 1 occurrences

  • - Confirm native open/close, resolved side/direction, swipe-to-dismiss, and reduced-motion behavior after previously ignored props became active.

    1 packages · 1 occurrences

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

    1 packages · 1 occurrences

  • - Emit private EntityWorkspace implementation files for Expo/React Native bundles without exposing internal package subpaths.

    1 packages · 1 occurrences

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

    1 packages · 1 occurrences

  • - FiltersToolbar (web + native, and via DataTableToolbar) now renders English defaults ("Search"/"Clear filters"/"Remove filter") routed through the translation resolver; previously the copy was hardcoded French. Provide translations through the design-system translation provider to localize.

    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

  • - Fix React Native EntityWorkspace open actions, collection mode rendering, icon switcher affordances, and scrollable panels.

    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

  • - Import the new marketing components from the design-system marketing subpath and pass their props to render pricing, FAQ, testimonial, lead-capture, and related surfaces.

    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

  • - Install the patched design-system package so Metro can resolve EntityWorkspace.native.js relative internal imports.

    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

  • - Native (Expo/React Native) consumers must have react-native-reanimated, react-native-gesture-handler, and react-native-svg installed (they are optional peers). Web-only consumers are unaffected.

    1 packages · 1 occurrences

  • - Native AdaptivePanel now honors mode/side/direction props, adds gesture swipe-to-dismiss, focus trap + accessibilityViewIsModal + dialog role, tokenized styles, and reduced-motion-gated spring/slide. Previously these props were declared but ignored.

    1 packages · 1 occurrences

  • - Native AppShell renders a single Expo Router NativeTabs navigator, removes the native header/notifications/menu chrome, and sources tab-bar colors from the active design-system theme.

    1 packages · 1 occurrences

  • - On the master-detail layout, the empty "select a record" placeholder now renders inline in the detail pane (web and native) when no item is selected; the drawer/AdaptivePanel is reserved for selected content on small screens.

    1 packages · 1 occurrences

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

    1 packages · 1 occurrences

  • - Prevent duplicate React keys in design-system mega-menu panels with repeated link destinations.

    1 packages · 1 occurrences

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

    1 packages · 1 occurrences

  • - Props that were previously no-ops now drive rendered behavior. Audit native AdaptivePanel usages and confirm the intended sheetSide / drawerDirection / mode.

    1 packages · 1 occurrences

  • - Render AppShell.native from an Expo Router layout whose direct child routes match the primary tab triggers, and stop relying on the native header / notifications / menu / children slots.

    1 packages · 1 occurrences

  • - Replace bespoke list-page create/refresh/cache chrome with EntityWorkspace callbacks or sideEffectAdapter wiring.

    1 packages · 1 occurrences

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

    1 packages · 1 occurrences

  • - Replace native AppShell custom bottom tabs with Expo Router NativeTabs layout-adapter behavior as a breaking native-shell behavior change.

    1 packages · 1 occurrences

  • - Replace omitted props with an intentional value so ownership is visible in call sites.

    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

  • - Require explicit EntityWorkspace and AppShell contracts across web and native design-system surfaces.

    1 packages · 1 occurrences

  • - Restore native nested-control association compatibility for FieldLabel.

    1 packages · 1 occurrences

  • - Restore silently-dropped native DataView render props, replace Unicode mode-switcher glyphs with real icons, honor native field actions, add renderer-level empty/loading defaults with skeletons, and route FiltersToolbar copy through i18n.

    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

  • - Split EntityWorkspace web+native into internal modules, close native tone/feature parity, unify field rendering through a shared descriptor, add reduced-motion-gated micro-interactions, and render the detail empty-state inline in the master-detail pane.

    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

  • - Tab rendering, icon glyphs, active/inactive contrast, safe-area, exact tab count, and boot landing are native-runtime behaviors that must be confirmed on an Android dev build (and an iOS simulator for parity).

    1 packages · 1 occurrences

  • - The tab bar colors come from the resolved design-system theme; without a provider it falls back to light defaultTokens that will not match a themed app.

    1 packages · 1 occurrences

  • - Use `buildDetailPageLink` for route construction and `onNavigateToDetailPage` for app-owned router calls.

    1 packages · 1 occurrences

  • - Use AppShell.native at an Expo Router layout boundary so NativeTabs owns routed tab content.

    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.mobile-monolith

    Layer: apps · 3 changes

  • @lssm-tech/app.web-application-monolith

    Layer: apps · 1 changes

  • @lssm-tech/app.web-landing

    Layer: apps · 3 changes

  • @lssm-tech/bundle.library

    Layer: bundles · 4 changes

  • @lssm-tech/bundle.managed-companyos

    Layer: bundles · 1 changes

  • @lssm-tech/bundle.marketing

    Layer: bundles · 1 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 · 10 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 · 10 changes

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

    Layer: libs · 10 changes

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

    Layer: libs · 10 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