Changelog

Week 15

Week 15
WEEK15

v3.18.0

For full upgrade instructions, see the 3.18 upgrade guide.

@liveblocks/client

  • Breaking: useStorage now returns plain objects for LiveMap values instead of Map instances. Legacy APIs have been removed: .toImmutable(), .toObject(), .toArray().
  • New .toJSON() on all Live structures, returning a cached JSON-compatible snapshot. JSON.stringify(root) now just works.
  • New LiveObject.from(obj) to create a LiveObject from plain JSON, recursively converting nested objects/arrays to Live structures.
  • New .reconcile(obj) to efficiently reconcile a LiveObject tree to match a JSON snapshot, only mutating what changed.
  • initialStorage accepts LiveObject.from() result directly.

@liveblocks/react-flow/node

  • New mutateFlow() API for reading and mutating React Flow data from a Node.js backend. Install via npm i @liveblocks/react-flow, import from @liveblocks/react-flow/node.

@liveblocks/react-ui

  • Add standalone Avatar component to complement AvatarStack for more fine-grained customization.
  • Add variant prop to AvatarStack to support outlined avatars.

@liveblocks/zustand and @liveblocks/redux

  • Fix: Initial storage seeding no longer creates an undo frame.
  • Fix: Presence updates are now batched with storage updates.

Liveblocks dev server (v1.4.0)

  • Add support for client.mutateStorage() (from @liveblocks/node)

Website

Documentation

  • Mention missing updatedAt field in updateFeedMessage reference.

Contributors

Contributors include:nviectnicholasstevenfabremarcbouchenoire

4 authors