github assistant-ui/assistant-ui @assistant-ui/store@0.3.12

Patch Changes

  • #6547 6bd1570 - fix: drop zustand from core (@okisdev)

    core declared zustand as an optional peer while importing create and useShallow unconditionally. pnpm keys a package instance on its resolved peers, so two dependency branches landing on different zustand patches (5.0.14 under one, 5.0.15 under the other) produced two physical copies of core. React context is per copy, so a RuntimeAdapterProvider rendered by one copy was invisible to a runtime hook imported from the other: unstable_Provider supplied a history adapter, useAISDKRuntime read undefined, withFormat() never fired, and every thread loaded with no messages and no error.

    core no longer uses zustand at all, so the peer is gone rather than reclassified. the four internal stores now use WritableSubscribable, a mutable cell built on the existing BaseSubscribable and read through useSubscribable. the two useShallow call sites wrapped selectors passed to useAuiState, aui's own store, so they now use useShallowSelector from @assistant-ui/store/internal, which memoizes a selector against the shallowEqual that already lived there.

    WritableSubscribable reports a server snapshot and useSubscribable forwards one when the subscribable offers it, so the components reading these stores render under SSR the way the zustand hook did. Subscribables without one, including every existing runtime client, keep their current behaviour.

    @assistant-ui/react-native and @assistant-ui/react-ink declared zustand only to satisfy core's optional peer and never imported it, so they no longer declare it. @assistant-ui/react and @assistant-ui/ui keep theirs because they import it directly, and @assistant-ui/react additionally exposes StoreApi through ReadonlyStore in its published types.

  • #6586 9f08bdc - chore: deduplicate the internal development flag (@okisdev)

  • #6528 152a35d - chore: update dependencies (@okisdev)

  • #6688 8135d16 - fix: peer ranges on the packages this workspace releases now track the release train (@okisdev)

    changesets rewrites a peer range only when the new version falls outside it, so the hand-written floors had drifted below the code they describe. core declared @assistant-ui/store: ^0.3.0 while importing @assistant-ui/store/internal, a subpath store did not export until 0.3.10, and react-lexical declared *. these peers are now workspace:^, which publishes as the version released alongside them.

  • #6495 fa9c0dc - feat: allow string ids in the stale scope reporter (@okisdev)

  • #6498 65d449b - feat: export useAssistantContextValue from the client entry (@okisdev)

    The framework-neutral client subpath now carries the ambient-client read, so store entries can stay off the React-coupled barrel.

  • #6348 49e727b - chore: expose shallowEqual from the internal entry (@rupic-app)

  • #6563 8206d8f - feat: accept a content inset in the shared viewport scroll helpers (@okisdev)

Don't miss a new assistant-ui release

NewReleases is sending notifications on new releases.