Back to changelog index

12.0.0

Jun 07, 2026 · 6 packages · 9 unique changes · 4 release entries

bundlesintegrationslibsBreaking 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

  • contractspec-form-operation-marketing-components

    Form-like marketing/BillingOS UI renders through ContractSpec FormSpec/OperationSpec bindings as the primary path; bespoke design-system form/pricing control APIs are removed.

    maintainer

    contracts-spec adds marketing/billing FormSpecs (MarketingLeadCaptureFormSpec, MarketingEstimateInputFormSpec, BillingEstimateIntakeFormSpec) and side-effect-free operations (marketing.lead.capture, marketing.estimate.calculate, billing.estimate.prepare), plus formRef/hostExecutionBoundary on marketing presentation bindings. The validation issue code missing_presentation_operation_ref is renamed to missing_operation_ref_for_executable_binding, and missing_form_ref_for_form_primitive / invalid_host_execution_boundary are now emitted.

    integrator

    MarketingLeadCapture and MarketingPricingCalculator render form-like UI through the FormSpec renderer. MarketingPricingCalculator no longer accepts estimate/renderTotal/onEstimate and no longer computes pricing; callers pass formSpec plus a host/operation-owned total node. Hosts retain ownership of submission, pricing math, persistence, and provider execution.

    customer

    Security/safety boundary: no production provider, payment, CRM, PA, e-invoicing, or credentialed runtime path is added. Lead-capture declares PII metadata; estimate/billing queries are read-only and side-effect-free. BillingOS-adjacent estimate/quote vocabulary is fixture/example only.

  • marketing-contract-component-mapping

    Introduce ContractSpec-first semantic marketing presentation primitives, serializable runtime descriptors, a design-system renderer registry, and Managed CompanyOS proof adoption.

    integrator

    Marketing presentation bindings now use semantic primitive IDs and optional render target hints. Consumers with arbitrary component-name primitives must migrate to the supported primitive IDs and required payload shapes before relying on descriptor normalization or the design-system renderer.

    agent

    Author marketing contracts semantically first. Keep React component names as render hints only, keep descriptor normalization serializable, and route product proof pages through the shared design-system renderer registry instead of bundle-local component assembly.

  • reviewready-app-submission-readiness-contracts

    Add the ReviewReady app-submission-readiness contract and event surface to contracts-spec.

    maintainer

    contracts-spec now ships an app-submission-readiness domain with 27 typed operation contracts, 3 domain events, keyed operation/event registries, shared domain constants, and additive subpaths. Contracts are secret-ref-only and rule contracts require official source provenance.

    integrator

    Downstream runtime, module, and app lanes can resolve ReviewReady operations and events through appSubmissionReadinessOperationRegistry and appSubmissionReadinessEventRegistry instead of reaching into individual contract files.

    customer

    ReviewReady gains an explicit, auditable contract layer for mobile submission readiness that never stores raw credentials and traces rule guidance to official store sources.

  • reviewready-store-integrations

    Add the ReviewReady provider capability registry and read-first App Store Connect / Google Play integration packages.

    maintainer

    contracts-spec adds an additive provider-capabilities subpath with a typed capability registry and lookup helper. Two new integration packages expose read-first, write-disabled App Store Connect and Google Play Android Publisher clients with deterministic mocks and secret-ref-only auth.

    integrator

    Downstream lanes can map provider results to canonical capability states via getProviderCapability, run audits with deterministic mock clients in CI, and only enable live store reads by supplying resolved secret refs. Fields the official APIs do not expose surface as manual-required, unsupported, or degraded capability results, never fake data.

    customer

    ReviewReady gains honest, source-cited store integrations that never store raw credentials and clearly mark which submission fields must be completed manually in the store console.

Migration guide

  • Render marketing form-like UI through FormSpec/OperationSpec bindings

    Required

    MarketingLeadCapture and MarketingPricingCalculator now render form-like UI through the design-system FormSpec renderer as the primary path. Bespoke control/pricing prop APIs are removed; the design system no longer owns business pricing, submission, or provider execution.

    1. Replace bespoke MarketingLeadCapture `fields`/raw control props with a `formSpec` (e.g. `MarketingLeadCaptureFormSpec`) and host-owned operation execution.
    2. Replace MarketingPricingCalculator `estimate`/`renderTotal`/`onEstimate` with `formSpec` (e.g. `MarketingEstimateInputFormSpec`) plus an operation-owned `total` ReactNode rendered in the aria-live region; `sliders` remains an optional legacy visual path only.
    3. Update marketing presentation bindings that declare form-like primitives to include a `formRef`, and executable bindings to include an `operationRef` with a non-`render-only` `hostExecutionBoundary`.
    4. Update consumers matching the removed validation issue code `missing_presentation_operation_ref` to `missing_operation_ref_for_executable_binding`, and handle the new `missing_form_ref_for_form_primitive` and `invalid_host_execution_boundary` codes.
    5. Re-run contracts-spec and design-system marketing tests after migration.
  • Migrate marketing presentation bindings to semantic primitive IDs

    Required

    Replace arbitrary primitive strings with supported semantic IDs and move direct React component names into render target hints.

    1. Replace `primitive: 'MarketingHero'` with `primitive: 'hero'` and `renderTargetHint: 'MarketingHero'`.
    2. Use supported primitive IDs: `announcement-bar`, `hero`, `icon-grid`, `cta-band`, `prose`, `feature-tabs`, `lead-capture`, `timeline`, `trust-badges`, and `video`.
    3. Add `section.presentation.payload` for structured primitives such as feature tabs, lead capture, timeline, trust badges, announcement bars, and video.
    4. Add CTA refs for CTA-oriented primitives and `accessibleLabel` plus `transcriptHref` for video payloads.
    5. Re-run marketing contract validation and descriptor/render tests after migration.

Upgrade steps

  • Adopt FormSpec-driven marketing form/pricing components

    manual

    Move marketing form-like UI onto FormSpec/OperationSpec bindings and host-owned execution.

    Packages: @lssm-tech/lib.contracts-spec, @lssm-tech/lib.design-system

    1. Review the paired changeset summary in .changeset/contractspec-form-operation-marketing-components.md before promotion.
    2. Migrate MarketingLeadCapture and MarketingPricingCalculator usage to FormSpec props per the migration instructions.
    3. Refresh integrated-branch verification after all worker lane commits are merged.
  • Consume the ReviewReady app-submission-readiness contract surface

    assisted

    Import the new contracts, registries, and constants additively; existing app-submission-readiness fixtures/runtime/types subpaths are unchanged.

    Packages: @lssm-tech/lib.contracts-spec

    1. Resolve operations via appSubmissionReadinessOperationRegistry keyed by meta.key.
    2. Resolve events via appSubmissionReadinessEventRegistry.
    3. Pass reviewer/provider credentials only as secretRefId references, never raw values.
    4. Provide sourceUrl, retrievedAt, effectiveDate, and reviewState when creating rules.
  • Adopt the ReviewReady provider capability registry and store integrations

    assisted

    Use the additive provider-capabilities registry and the new read-first integration packages with secret-ref-only auth and deterministic mocks.

    Packages: @lssm-tech/lib.contracts-spec, @lssm-tech/integration.app-store-connect, @lssm-tech/integration.google-play-developer

    1. Resolve capability metadata via getProviderCapability(store, fieldId).
    2. Use createMockAppStoreConnectClient / createMockGooglePlayDeveloperClient in tests and CI.
    3. Provide store credentials only as secret refs (privateKeySecretRefId / serviceAccountSecretRefId).
    4. Enable live calls only after wiring a host secret resolver; default behavior makes no network calls.
    5. Treat manual-required / unsupported / degraded capability results as explicit gaps, never as failures to retry blindly.

Unique release changes

  • - Introduce ContractSpec-first semantic marketing presentation primitives, serializable runtime descriptors, a design-system renderer registry, and Managed CompanyOS proof adoption.

    4 packages · 4 occurrences

  • - Replace arbitrary primitive strings with supported semantic IDs and move direct React component names into render target hints.

    4 packages · 4 occurrences

  • - Add the ReviewReady provider capability registry and read-first App Store Connect / Google Play integration packages.

    3 packages · 3 occurrences

  • - Use the additive provider-capabilities registry and the new read-first integration packages with secret-ref-only auth and deterministic mocks.

    3 packages · 3 occurrences

  • - Form-like marketing/BillingOS UI renders through ContractSpec FormSpec/OperationSpec bindings as the primary path; bespoke design-system form/pricing control APIs are removed.

    2 packages · 2 occurrences

  • - MarketingLeadCapture and MarketingPricingCalculator now render form-like UI through the design-system FormSpec renderer as the primary path. Bespoke control/pricing prop APIs are removed; the design system no longer owns business pricing, submission, or provider execution.

    2 packages · 2 occurrences

  • - Move marketing form-like UI onto FormSpec/OperationSpec bindings and host-owned execution.

    2 packages · 2 occurrences

  • - Add the ReviewReady app-submission-readiness contract and event surface to contracts-spec.

    1 packages · 1 occurrences

  • - Import the new contracts, registries, and constants additively; existing app-submission-readiness fixtures/runtime/types subpaths are unchanged.

    1 packages · 1 occurrences

Impacted packages

  • @lssm-tech/bundle.managed-companyos

    Layer: bundles · 2 changes

  • @lssm-tech/integration.app-store-connect

    Layer: integrations · 2 changes

  • @lssm-tech/integration.google-play-developer

    Layer: integrations · 2 changes

  • @lssm-tech/lib.contracts-spec

    Layer: libs · 2 changes

  • @lssm-tech/lib.design-system

    Layer: libs · 2 changes

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

    Layer: libs · 2 changes