Skip to content

chore: upgrade Lexical from 0.31.0 to 0.44.0 #1054

@sw-factory-automations

Description

@sw-factory-automations

Description

Lexical is 13 minor versions behind (0.31.0 → 0.44.0). Minor versions in Lexical frequently include bug fixes, performance improvements, and new APIs. Staying current reduces the risk of a painful large-jump upgrade later and ensures the editor benefits from upstream fixes.

Approval Required

This is a HIGH risk change:

  • 13 minor version jump across the editor framework that powers the core product
  • Lexical has had breaking changes in node serialization, plugin APIs, and event handling across minor versions
  • All 16 editor E2E specs (64 tests) and 18 editor unit test files (162 tests) must pass after upgrade
  • Custom nodes (CalloutNode, CollapsibleNode, ImageNode, DatabaseNode) may need API updates
  • Markdown import/export transforms may have changed
  • Stored Lexical JSON in the database must remain compatible (or a migration strategy is needed)

Comment "approved" to release this to the automation queue.

Acceptance Criteria

  • All lexical and @lexical/* packages updated to 0.44.0 (or latest stable)
  • All custom Lexical nodes compile without errors: CalloutNode, CollapsibleContainerNode, CollapsibleContentNode, CollapsibleTitleNode, ImageNode, DatabaseNode, PageLinkNode
  • All custom plugins compile and function: slash commands, floating toolbar, floating link editor, drag-and-drop, image upload, auto-link, local persistence, auto-save
  • Existing Lexical JSON stored in the database loads correctly in the upgraded editor (backward compatibility)
  • All 16 editor E2E specs pass (64 tests)
  • All 18 editor unit test files pass (162 tests)
  • Markdown import/export works correctly
  • pnpm lint && pnpm typecheck && pnpm test pass

Dependencies

None

Technical Notes

  • Packages to update: lexical, @lexical/clipboard, @lexical/code, @lexical/headless, @lexical/link, @lexical/list, @lexical/markdown, @lexical/react, @lexical/rich-text, @lexical/selection, @lexical/table, @lexical/utils
  • Check the Lexical changelog for breaking changes between 0.31.0 and 0.44.0
  • Custom nodes are in src/components/editor/nodes/ and src/components/editor/plugins/
  • The @lexical/table package has had significant API changes — table support may need the most attention
  • Test with existing page content to verify backward compatibility of stored JSON
  • Consider upgrading incrementally (e.g., 0.31 → 0.35 → 0.40 → 0.44) if the jump is too large

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions