@tiptap-pro/extension-tracked-changes changelog

Changelog for @tiptap-pro/extension-tracked-changes

0.11.2

Patch Changes

  • Fix a bug where collab transactions could be handled by tracked changes when multiple yjs plugins were loaded and plugin keys would overlap.

0.11.1

Patch Changes

  • Fix misplaced deletion marks when one transaction contains multiple replacements. Each deletion mark now stays on the text it replaced and no replacements are dropped.

0.11.0

Minor Changes

  • Support nested / stacked tracked-changes suggestions for cross-author edits. When one user edits inside another user's suggestion, the edit now creates a new suggestion layered on top, attributed to the editing user, instead of mutating or silently dropping the original. Works inline for additions, deletions, and replacements. Accepting or rejecting an inner suggestion leaves the outer one intact; rejecting an outer suggestion discards its nested edits along with its content. Same-author edits are unchanged and still merge into one mark. Block-level nested suggestions are out of scope.

0.10.4

Patch Changes

  • Fix a crash when a transaction carries a null meta value (e.g. tr.setMeta(key, null))

0.10.3

Patch Changes

  • Fix empty paragraph artifacts left behind after accepting or rejecting tracked-change suggestions that span block boundaries (including replace pairs and block-level deletes). The post-deletion cleanup pass now removes empty textblocks alongside empty container blocks, while preserving leaf blocks and nodes that carry a node-level suggestion. A safety net restores a default block if the cleanup would otherwise empty the document
  • Add REPLACE to the SUGGESTION_TYPES constant so consumers can validate the replace suggestion type emitted for paired changes (e.g. atom node attribute updates).

0.10.2

Patch Changes

  • Typing or deleting characters one by one no longer creates a separate span for each keystroke. Consecutive insertions and deletions within the same suggestion are now merged into a single mark.
  • Typing inside an existing suggestion mark with tracked changes disabled no longer inherits the suggestion mark. New text is inserted as plain, untracked content and the surrounding suggestion mark is split correctly.

0.10.1

Patch Changes

  • Fix getSuggestionHTMLAttributes so it stays reactive inside a NodeView. It now takes the live ProseMirror node and returns up-to-date data-suggestion-* attributes when node.attrs change.

0.10.0

Minor Changes

  • Add getSuggestionHTMLAttributes helper for atom node views. Spread the result onto a NodeViewWrapper to apply suggestion attributes (e.g. data-suggestion-id, data-suggestion-type) without leaking the node's own schema attributes.

0.9.0

Minor Changes

  • Allows typing inside a pending deletion suggestion. The deletion is converted into a replacement, with the new content as the inserted half and the surrounding deleted content as the deleted half.

0.8.1

Patch Changes

  • Fix dead-key composition (e.g. macOS ç) breaking replacement suggestions by creating a stray add suggestion instead of extending the existing replaceInsertion one.

0.8.0

Minor Changes

  • Replace time-based suggestion grouping with adjacency-based grouping. Typing words containing diacritics no longer splits into multiple suggestions when composition takes longer than the previous grouping window. The suggestionGroupingTimeout option has been removed; suggestions now group purely by adjacency, author, and operation type.
  • Add an updatedAt timestamp to suggestions. The field reflects the most recent edit anywhere in a suggestion and is exposed through the suggestion query API. For legacy data without the field it falls back to createdAt.

0.7.0

Minor Changes

  • Add trackedChanges:suggestionChanged event that fires whenever any aspect of a suggestion changes, including mark attribute changes on the same range. Previously, trackedChanges:suggestionRangeChanged only fired when the range positions shifted, leaving mark toggle changes undetected.

0.6.0

Minor Changes

  • Add table-aware tracked changes support for selected cell and column operations, including grouped column suggestions and table-safe accept/reject handling.
  • Suggestions now expose deletedNodes and insertedNodes (as JSONContent[]) so you can inspect the full node structure of block-level changes. The text field now always contains the actual text content of the affected nodes instead of [nodeName] placeholders.

0.5.0

Minor Changes

  • Expand tracked changes support to cover inserted and deleted nodes, node splits and joins, sinks and lifts, and non-atom content while reoptimizing the tracking pipeline.

Patch Changes

  • Fix accepting tracked deletions so empty-block cleanup does not loop on valid block leaf content such as figure images.

0.4.4

Patch Changes

  • Minor bugfixes & improvements

0.4.3

Patch Changes

  • Fixed minor issues and bugs

0.4.2

Patch Changes

  • Fix accepting deleted captions from removing their parent figure when other valid sibling content remains.

0.4.1

Patch Changes

  • Support treating delete-then-type edits as tracked replacements, including repeated Backspace/Delete deletions followed by typing at the same location.

0.4.0

Minor Changes

  • Add an option to skip trailing-node handling for programmatic tracked insertion commands.

    addTrackedInsertion and addTrackedReplacement now accept skipTrailingNode, which sets skipTrailingNode: true on the emitted tracked transaction so downstream trailing-node logic can be skipped when needed.

0.3.0

Minor Changes

  • Add tracked mark-change suggestions for formatting changes on existing text.

    This adds markChange suggestions for supported mark add/remove operations on pre-existing content, including nested and overlapping mark changes, programmatic tracked mark commands (addTrackedMark, removeTrackedMark, and toggleTrackedMark), and the ignoredTrackingMarks option for excluding additional marks from mark-change tracking.

    It also improves reconciliation for tracked mark changes so toggling a tracked mark back off cancels the suggestion cleanly, overlapping mark-change suggestions are preserved during accept/reject, and multi-user updates on the same tracked mark range cancel or transfer ownership to the last user who changed that suggestion.

Patch Changes

  • Fix a TypeScript return value mismatch in delete mark range analysis.

0.2.1

Patch Changes

  • Fix SuggestionNodeAttributes node detection in bundled builds so tracked-change node attributes continue to apply correctly in production.

0.2.0

Minor Changes

  • Add new programmatic tracked-changes commands:

    • addTrackedInsertion to insert inline content as a tracked insertion at a specific position.
    • addTrackedDeletion to convert an existing range into a tracked deletion.
    • addTrackedReplacement to replace an existing range with tracked replacement content.

0.1.2

Patch Changes

  • Fix deleting content inside a replacementDeletion mark overwriting the mark type

0.1.1

Patch Changes

  • Fix deleting content inside a replacementDeletion mark overwriting the mark type

0.1.0

Minor Changes

  • New Track Changes extension for suggesting edits and tracking document changes with support for insertions, deletions, and formatting modifications. Integrates seamlessly with the Comments extension to enable discussions on suggestions.