Back to changelog index

2.0.2

May 26, 2026 · 5 packages · 11 unique changes · 5 release entries

libsmodules

This release affects the sharedLibs, solutions familyies.

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

Release summaries

  • m2-personalized-presentation

    Additive: M2 new lib @lssm-tech/lib.personalized-presentation — client-side React provider + hook bridging RoleMorph × Personalization preferences → cva variant props; minimum schema bridge (density + expansion only) with 5 stub-protected dimensions (Phase 0 scaffold).

    maintainer

    Closes the (cva × roleMorph × personalization) composition gap. Provides a client-side React provider + typed hook that resolves preference dimensions to cva variant prop names. Density and Expansion literal types are imported FROM @lssm-tech/lib.cockpit-kit/variants (dependency direction enforced; cockpit-kit owns the vocabulary, personalized-presentation owns the mapping). 5 unwired personalization dimensions are stub-protected — each throws at runtime if accidentally invoked, preventing scope creep beyond the locked density+expansion schema bridge.

    integrator

    Wrap your cockpit-class screens with PersonalizedSurfaceProvider (passing viewer role + resolved preferences). Inside variant-aware components, call usePersonalizedVariants<TVariants>(componentKey) to get a typed variant prop bag. Phase 0 ships skeletons only — runtime resolution lands in Phase 3. Until then, the hook returns defaults; do not depend on resolved variants for production behavior.

  • m2-surface-runtime-rolemorph

    Additive: M2 surface-runtime — RoleMorph resolver for viewer-role-driven layout adaptation across graph templates.

    maintainer

    Additive: RoleMorph resolver in surface-runtime. resolveRoleMorph(role, spec) accepts a viewer role ('engineer' | 'manager') and a RoleMorphSpec, returning a RoleMorphResult with the resolved layout kind, header-panel fields, and available action ids. Used internally by all five M2 design-system graph templates.

    integrator

    New additive API. Import resolveRoleMorph and RoleMorphSpec from @lssm-tech/lib.surface-runtime to build custom role-adaptive surfaces following the same pattern as the M2 graph templates.

  • m3-surface-runtime-graph-template-registry

    M3 — RoleMorph graph template registry (5 templates × 2 variants = 10 surface specs) + createSSEGraphAdapter reference implementation.

    maintainer

    New registry exports are additive. ROLE_LAYOUT map enforces layout consistency across template variants. registerGraphTemplateVariant and createSSEGraphAdapter are new opt-in utilities.

    integrator

    Use registerGraphTemplateVariant to register custom graph template surface specs. Use createSSEGraphAdapter as a reference for building production SSE graph transports.

  • rolemorph-gap-closure

    Close the RoleMorph hardening slice with additional fixtures, Builder packets, Workbench panels, CompanyOS policy projection, and assurance/audit evidence refs.

    maintainer

    RoleMorph now has non-AirDesk fixtures, fail-closed CompanyOS projections, and evidence-backed Builder packet contracts for review and replay.

    integrator

    Hosts can render RoleMorph Workbench packet views and wire their own durable preference stores, assurance logs, and production authorization adapters without library side effects.

  • rolemorph-implementation-closure

    Add the first canonical RoleMorph runtime and Builder preview/inspection contract slice.

    maintainer

    RoleMorph now has a UI-agnostic surface runtime, AirDesk fixtures, Builder preview contracts, and backend-neutral preview helpers.

    integrator

    Hosts can preview role-specific operating surfaces and policy changes without generated UI code or provider side effects.

Upgrade steps

  • Wrap cockpit screens with PersonalizedSurfaceProvider

    assisted

    Single-source provider that gets RoleMorph's surface kind + user preferences and exposes them to nested cockpit-kit primitives via usePersonalizedVariants.

    Packages: @lssm-tech/lib.personalized-presentation

    1. Import: `import { PersonalizedSurfaceProvider } from '@lssm-tech/lib.personalized-presentation'`
    2. Wrap your cockpit shell: `<PersonalizedSurfaceProvider role={role} prefs={prefs}>...</PersonalizedSurfaceProvider>`
    3. Inside variant-aware components: `const variants = usePersonalizedVariants<MyVariants>('MyComponent')`
    4. Note: Phase 0 skeleton returns default variant props; live resolution lands in Phase 3.
  • Use resolveRoleMorph for viewer-role-driven layout adaptation

    assisted

    resolveRoleMorph is the canonical way to derive layout, header, and actions from a viewer role. Replaces ad-hoc `role === 'engineer' ? dag : radial` conditionals in surface code.

    Packages: @lssm-tech/lib.surface-runtime

    1. Import resolveRoleMorph, RoleMorphSpec from @lssm-tech/lib.surface-runtime.
    2. Define a RoleMorphSpec with engineer and manager entries.
    3. Call resolveRoleMorph(viewerRole, spec) to get layout, headerFields, and actionIds.
    4. Pass resolved layout to GraphCanvas layout prop.
  • Use ROLE_LAYOUT map for engineer/manager layout enforcement

    manual

    Import ROLE_LAYOUT and use it in template variants instead of hard-coding layout strings.

    Packages: @lssm-tech/lib.surface-runtime

    1. Import ROLE_LAYOUT from surface-runtime.
    2. Replace hard-coded 'dag' / 'radial' layout strings with ROLE_LAYOUT[role].
  • Use createSSEGraphAdapter as a reference implementation

    manual

    For production SSE transports, copy or extend the reference adapter; do not use the reference directly in production.

    Packages: @lssm-tech/lib.surface-runtime

    1. Import createSSEGraphAdapter from surface-runtime.
    2. Use it as a starting point for a production SSE transport.
    3. Override the reconnect and event delivery logic with production-grade transport.
  • Wire RoleMorph packet helpers before host persistence

    auto

    Build RoleMorph Workbench packets and assurance evidence refs in Builder runtime, then pass serializable packets into host-owned storage and UI shells.

    Packages: @lssm-tech/lib.surface-runtime, @lssm-tech/lib.builder-spec, @lssm-tech/lib.builder-runtime, @lssm-tech/module.builder-workbench

    1. Import packet/evidence contracts from `@lssm-tech/lib.builder-spec`.
    2. Use `@lssm-tech/lib.builder-runtime/rolemorph-preview` helpers to create packets, authorization summaries, preference snapshots, replay bundles, and evidence readiness checks.
    3. Keep durable storage, provider calls, and production authorization enforcement in host/integration layers.
  • Preview RoleMorph surfaces from canonical contracts

    assisted

    Use surface-runtime RoleMorph contexts and Builder preview helpers to inspect actor-specific components, action boundaries, hidden-data explanations, and policy diffs.

    Packages: @lssm-tech/lib.surface-runtime, @lssm-tech/lib.builder-spec, @lssm-tech/lib.builder-runtime

    1. Import serializable RoleMorph contracts from @lssm-tech/lib.surface-runtime/rolemorph.
    2. Use Builder RoleMorph preview contracts for selector, inspection, diff, and repair artifacts.
    3. Keep rendering, storage, provider execution, and authorization enforcement in host layers.

Unique release changes

  • - Build RoleMorph Workbench packets and assurance evidence refs in Builder runtime, then pass serializable packets into host-owned storage and UI shells.

    4 packages · 4 occurrences

  • - Close the RoleMorph hardening slice with additional fixtures, Builder packets, Workbench panels, CompanyOS policy projection, and assurance/audit evidence refs.

    4 packages · 4 occurrences

  • - Add the first canonical RoleMorph runtime and Builder preview/inspection contract slice.

    3 packages · 3 occurrences

  • - Use surface-runtime RoleMorph contexts and Builder preview helpers to inspect actor-specific components, action boundaries, hidden-data explanations, and policy diffs.

    3 packages · 3 occurrences

  • - Additive: M2 new lib @lssm-tech/lib.personalized-presentation — client-side React provider + hook bridging RoleMorph × Personalization preferences → cva variant props; minimum schema bridge (density + expansion only) with 5 stub-protected dimensions (Phase 0 scaffold).

    1 packages · 1 occurrences

  • - Additive: M2 surface-runtime — RoleMorph resolver for viewer-role-driven layout adaptation across graph templates.

    1 packages · 1 occurrences

  • - For production SSE transports, copy or extend the reference adapter; do not use the reference directly in production.

    1 packages · 1 occurrences

  • - Import ROLE_LAYOUT and use it in template variants instead of hard-coding layout strings.

    1 packages · 1 occurrences

  • - M3 — RoleMorph graph template registry (5 templates × 2 variants = 10 surface specs) + createSSEGraphAdapter reference implementation.

    1 packages · 1 occurrences

  • - resolveRoleMorph is the canonical way to derive layout, header, and actions from a viewer role. Replaces ad-hoc `role === 'engineer' ? dag : radial` conditionals in surface code.

    1 packages · 1 occurrences

  • - Single-source provider that gets RoleMorph's surface kind + user preferences and exposes them to nested cockpit-kit primitives via usePersonalizedVariants.

    1 packages · 1 occurrences

Impacted packages

  • @lssm-tech/lib.builder-runtime

    Layer: libs · 2 changes

  • @lssm-tech/lib.builder-spec

    Layer: libs · 2 changes

  • @lssm-tech/lib.personalized-presentation

    Layer: libs · 2 changes

  • @lssm-tech/lib.surface-runtime

    Layer: libs · 2 changes

  • @lssm-tech/module.builder-workbench

    Layer: modules · 2 changes