New send shortcut, Cancel that clears the draft, and a discard action for failed comments
Published: October 29, 2026
This release refines how the comment input sends, cancels and recovers from a failed post. Some of these change the behavior of @beta components.
Behavior changes
- Send shortcut:
CommentInputand the other comment inputs send on Cmd+Enter, or Ctrl+Enter outside Apple platforms. Enter starts a new paragraph and Shift+Enter a new line. Neither sends while the mention menu is open or while an input method is composing text. - Cancel:
CommentInputalways shows Cancel beside the submit control. Cancel empties the draft, including its stored copy, releases focus, so a composer withexpandOnFocusfolds back, and then callsonDiscard. Escape still callsonDiscardand keeps the draft, and so does an input unmounting, for example when the user switches threads. WithconfirmDiscard, both ask first. This applies to the reply box, the panel's new-thread composer,InlineCommentInputand the edit box inComment, where Cancel drops the edited text and keeps the saved message. - Failed comments: a comment that failed to post (
state.type === 'createError') no longer gets the actions menu. Its only action is a discard button that callsonDeletewithout asking for confirmation. The new optionallabels.actions.discardnames it and defaults to "Discard". The notice's "Try again" still retries.
Improvements
- Sending a message drops empty lines at either end, and the input clears to one empty line.
- The submit control shows a spinner while
busyis set or while a submit is in flight. - A selected
CommentBadgeuses the inline highlight's yellow instead of the gray button fill. In dark mode it uses the selected highlight's solid yellow with white text. - Inline comment highlights fill exactly the line box at any text size and line height, so the bands of a wrapped run meet without overlapping.
- The list's loading text and empty text sit at the same height.
Related documentation
Translate the UI text
Replace every string the comment components render with the labels on the provider and on each component.
Customize comment actions
Add, remove, and reorder the actions on a comment with commentActions and CommentActionBar.
Threads and comments
How comment threads are shaped: one field of one document, a first comment plus replies, and no separate thread record.
Show comment counts
Show a comment count next to a field or row with CommentBadge, read the counts efficiently, and open a thread from the badge.