• Week 34

    Week 34
    WEEK34

    v3.24.1

    • Add new hook useMutableStorage() to get direct access to the mutable Storage root. See docs.
    • Fix thread resolved/unresolved status being reverted under some conditions. Thank you for the contribution @VihaanAgarwal!

    v3.24.0

    This release introduces LiveText (beta), a collaborative rich-text data structure for plain text with optional inline formatting.

    • Storage updates delivered to deep subscribers now carry a source field, saying whether the change was made by this client ({ origin: "local", via: "edit" | "undo" | "redo" }) or by another one ({ origin: "remote" }), see docs.

    • Add LiveText for collaborative text editing with concurrent inserts, deletes, and formatting changes.

    • Introduce packages for integrating CodeMirror, Lexical, and ProseMirror editors with Liveblocks Storage and LiveText.

    • Fix useIsEditorReady() so it correctly reports when the Tiptap editor is ready. Thank you for the fix @danilowoz!

    Website

    • New solutions pages, accessible by the top menu dropdown, detailing how Liveblocks can be used in various industries, by various different users.

    Contributors

    Contributors include:jrownynvienimeshnayajumarcbouchenoireVihaanAgarwaldanilowozstacyschmitzctnicholas

    8 authors

  • Week 33

    Week 33
    WEEK33

    Examples

    • Add dev server command to run relevant examples locally.

    Contributors

    Contributors include:ctnicholas

    1 authors

  • Week 32

    Week 32
    WEEK32

    v3.23.1

    • Improve version history components for versions without authors, which can occur with server-only changes. Add HISTORY_VERSION_SUMMARY_AUTHORS_LIST and update HISTORY_VERSION_PREVIEW_AUTHORS_LIST overrides to reflect this.

    Liveblocks dev server (v1.8.0)

    • Add full support for LiveFile.

    Examples

    • Add version history to advanced React Flow examples.

    Website

    Contributors

    Contributors include:nviectnicholasmarcbouchenoire

    3 authors

  • Week 31

    Week 31
    WEEK31

    Website

    Examples

    • Added a skill that can create examples, including images and code.

    Contributors

    Contributors include:ctnicholas

    1 authors

  • Week 30

    Week 30
    WEEK30

    v3.23.0

    This release introduces LiveFile: a new data structure to store files such as images and videos in a room's Storage tree.

    • Add room.uploadFile() to upload a file and return a LiveFile.

    • Add room.getFileUrl() to get access to a LiveFile.

    • Add useUploadFile() to upload a file and return a LiveFile.

    • Add useFileUrl() to get access to a LiveFile.

    • Add uploadFile() to upload a file and return a LiveFile.

    • Add getFileUrl() to get access to a LiveFile.

    • Add uploadAttachment() to upload comment attachments, combined with attachmentIds params in createThread(), createComment(), and editComment().

    • Add methods to upload Storage files for LiveFile, retrieve their download URLs, and handle multipart uploads.

    • Add methods to upload comment attachments, including multipart uploads.

    Examples

    Contributors

    Contributors include:ofoucherotmarcbouchenoire

    2 authors

  • Week 29

    Week 29
    WEEK29

    Examples

    • Updated the AI Slideshow Generator example to support multiple slides, drag-and-drop, and double-click to edit text.

    Documentation

    • Added links to examples at the top of relevant get started guides.
    • Added links to guides in overview pages.
    • Added more info on comments metadata throughout.

    Website

    New blog post: Comments: private threads and a natural home for AI.

    Dashboard

    • Added a button to download a room's Liveblocks Storage as JSON from the dashboard's room detail view.

    Contributors

    Contributors include:ctnicholasofoucherotpierrelevaillant

    3 authors

  • Week 28

    Week 28
    WEEK28

    v3.22.0

    This release adds version history support for Storage: a version now snapshots both the room's Storage and Yjs documents (previously Yjs only).

    • Creating a version now also snapshots Storage, not just Yjs, see docs.

    • useHistoryVersions() lists the room's versions. Each has a vh_xxx id, see docs.

    • useHistoryVersionStorageData("vh_xxx") returns that version's Storage as a read-only LiveObject so you can visualize or diff it manually, see docs.

    • useRestoreToStorageVersion("vh_xxx") restores the room's Storage to that version, as a single undoable change, see docs.

    • useDeleteHistoryVersion() returns deleteHistoryVersion("vh_xxx") to permanently delete a version, see docs.

    • Add methods for version history to list room versions, create a version snapshot, and delete a version.

    Examples

    Documentation

    Contributors

    Contributors include:nviemarcbouchenoirectnicholasstacyschmitz

    4 authors

  • Week 27

    Week 27
    WEEK27

    v3.21.0

    • Add support for public and private threads. Threads now have a visibility property that is "public" by default but can be set to "private" when created. Permissions can be used to decide which threads a user has access to, and threads can also be queried by their visibility to create filtered views.

    • Add scoped comments permissions such as comments:public:write and comments:private:none.

    • Breaking: Remove type and kind fields from HistoryVersion type. The backend no longer returns these.

    • Add visibility to createThread.

    • Support querying by visibility in getThreads.

    • Add visibility to useCreateThread.

    • Support querying by visibility in useThreads.

    • Add useHistoryVersionYjsData() hook to retrieve raw Yjs binary data for a given version. Deprecate useHistoryVersionData() in its favor.

    • Add visibility to createThread.

    • Support querying by visibility in getThreads.

    • Add a visibility prop to Composer.

    • Prevent Composer from collapsing after focusing and blurring unless it was explicitly meant to support a collapsed state.

    Documentation

    Examples

    Website

    Contributors

    Contributors include:ctnicholasofoucherotmarcbouchenoirenvie

    4 authors

  • Week 26

    Week 26
    WEEK26

    v3.20.1

    • Fix a bug where sending a too large WebSocket message could sometimes overwrite a room's top-level storage key with initialStorage, causing data loss. Thanks for reporting @watemerald!

    Dashboard

    • Added support for manual and automatic re-ingestion of (web) knowledge sources at specified interval.
    • Streamlined display of knowledge sources and linking/unlinking of knowledge sources and copilots.

    Contributors

    Contributors include:nimeshnayajupierrelevaillantnvie

    3 authors

  • Week 25

    Week 25
    WEEK25

    v3.20.0

    • Add support for new resource-specific permissions. You can now start from a *:read or *:write base, then grant or deny access per resource (storage, comments, feeds) using new permission strings like storage:none or comments:read.

    • Deprecate session.FULL_ACCESS and session.READ_ACCESS in favor of ["*:write"] and ["*:read"] respectively.

    • Deprecate room.getStorageSnapshot() in favor of room.getStorageOrNull().

    Examples

    Contributors

    Contributors include:ofoucherotnviemarcbouchenoirectnicholas

    4 authors

Next