Back to changelog index

9.1.0

May 25, 2026 · 4 packages · 4 unique changes · 1 release entry

integrationslibs

This release affects the contracts, integrations, sharedLibs familyies.

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

Release summaries

  • unified-query-stack-cursor-read

    Add the first unified query stack across contracts, runtime client cache boundaries, governed provider reads, and EntityWorkspace local-vs-remote query ownership.

    maintainer

    Maintainers get a canonical contract-owned query envelope and DataView cursor descriptor that package surfaces can share instead of reimplementing search, filter, sort, pagination, and offline policy shapes.

    integrator

    Integrators can execute governed cursor reads through provider-database while using runtime client cache helpers without binding public APIs to TanStack implementation types.

    customer

    EntityWorkspace hosts can opt into remote query ownership so server-filtered results are not double-filtered locally on web or native.

Migration guide

  • Adopt canonical query envelopes for list-style operations

    Use @lssm-tech/lib.contracts-spec/query to normalize search, filters, sort, offset pagination, cursor pagination, cache hints, and result page metadata before wiring UI or database adapters.

    1. Keep operation-specific legacy inputs at module boundaries when needed.
    2. Add a canonical wrapper beside the legacy operation, following the agent.list wrapper pattern.
    3. Keep TanStack Query, TanStack Store, or other client-cache implementation details behind runtime adapters rather than in contract types.
  • Declare local or remote EntityWorkspace query ownership

    Pass remote query-source semantics when items are already filtered, sorted, or paginated by a server/provider so EntityWorkspace does not apply local controls twice.

    1. Use local mode for in-memory lists where EntityWorkspace owns filtering and sorting.
    2. Use remote mode for server/provider-backed lists.
    3. Opt into client post-filtering only when the host deliberately wants a second local projection.

Upgrade steps

  • Validate governed read field mappings before enabling cursor reads

    manual

    Cursor reads are fail-closed and require selected, allowlisted cursor/sort/filter fields.

    Packages: @lssm-tech/lib.contracts-spec, @lssm-tech/lib.contracts-runtime-client-react, @lssm-tech/integration.provider-database, @lssm-tech/lib.design-system

    1. Ensure DataView database bindings map only selectable fields.
    2. Provide stable cursor sort metadata or a cursor field that is included in the selected field allowlist.
    3. Treat malformed cursor payloads as invalid input rather than falling back to raw SQL interpolation.

Unique release changes

  • - Add the first unified query stack across contracts, runtime client cache boundaries, governed provider reads, and EntityWorkspace local-vs-remote query ownership.

    4 packages · 4 occurrences

  • - Cursor reads are fail-closed and require selected, allowlisted cursor/sort/filter fields.

    4 packages · 4 occurrences

  • - Pass remote query-source semantics when items are already filtered, sorted, or paginated by a server/provider so EntityWorkspace does not apply local controls twice.

    4 packages · 4 occurrences

  • - Use @lssm-tech/lib.contracts-spec/query to normalize search, filters, sort, offset pagination, cursor pagination, cache hints, and result page metadata before wiring UI or database adapters.

    4 packages · 4 occurrences

Impacted packages

  • @lssm-tech/integration.provider-database

    Layer: integrations · 4 changes

  • @lssm-tech/lib.contracts-runtime-client-react

    Layer: libs · 4 changes

  • @lssm-tech/lib.contracts-spec

    Layer: libs · 4 changes

  • @lssm-tech/lib.design-system

    Layer: libs · 4 changes