Libraries
@veltdev/react@veltdev/client@veltdev/sdk@veltdev/types
July 20, 2026
New Features
-
[Suggestions]:
enableSuggestionMode()now works with zero configuration — a newautoCommitoption (defaulttrue) turns every detected edit on a tagged target into a suggestion comment automatically, no handler required. PassautoCommit: falsefor detect-only mode. Learn more → -
[Suggestions]: Suggestions now support rich HTML summaries via a new
summaryHtmlfield oncommitSuggestion()and theonTargetEditCommitreturn value. When omitted, the SDK renders a default color-coded diff (removed values in red, additions in green). HTML is sanitized at render time. Learn more → - [Suggestions]: Human-authored suggestion comments now render the full Suggestion card — header, diff body, and accept/reject actions — just like agent-generated suggestions. Reviewers can propose value changes as a first-class workflow.
Bug Fixes
-
[Comments]: Fixed a set of stale-state issues in the Comment Dialog caused by virtual-scroll row recycling. Drafts, edits, replies, assignees, mentions, and
velt-classconditions now stay correctly bound to their own annotation across scroll, collapse/expand, and group toggles — in both the standard dialog and custom wireframes. - [Comments]: The reply composer now closes on deselect and no longer stays open on the wrong annotation after the dialog is recycled.
-
[Suggestions]: A failed auto-commit can now be retried through the
targetEditCommitevent builder — the double-commit guard only trips on a successful commit.
Breaking Changes
-
[Comments]: The
AgentSuggestioncard component tree was renamed toSuggestion— the card now renders human-authored suggestions too, so theAgentqualifier no longer fit. Update your React imports (e.g.VeltCommentDialogAgentSuggestion→VeltCommentDialogSuggestion), wireframe dot-notation references, and HTML custom-element tags (velt-comment-dialog-agent-suggestion-*→velt-comment-dialog-suggestion-*). Also update any CSS overrides targeting the oldvelt-suggestion*classes. Learn more → -
[Comments]: The standalone accept/reject action row was renamed from
SuggestionActiontoLegacySuggestionAction(React exports, wireframe dot-notation, and HTML tags including-wireframevariants). The newSuggestioncard supersedes this row inside the standard dialog; theLegacy…names remain for standalone custom-element usage only. Learn more →
July 14, 2026
New Features
- [Core]: New
setUnstyledMode()method turns off Velt’s built-in visual styling for headless use, keeping layout and positioning intact by default. Pass{ keepFunctionalStyles: false }to strip down to browser defaults, or call withfalseto restore styling.
Improvements
- [Self-Hosting]: New optional
dataRegionsfield on the self-hosted config declares which regional data endpoints you provisioned — writes routed to an unprovisioned region now fall back to the base endpoint instead of failing. AddsasiaNorthEast1(Tokyo) to the known regions. Learn more →
Bug Fixes
-
[Comments]: Comment Sidebar (V1) filters no longer reset unexpectedly — they survive the Reset button, persist across
setLocation()changes, and are no longer wiped whensessionStorageis full. - [Self-Hosting]: The React SDK now applies the self-hosted data config reliably on first load.
July 10, 2026
New Features
- [Comments]: The Comment Sidebar V2 fullscreen toggle now emits a
fullscreenClickevent — subscribe viacommentElement.on('fullscreenClick')oruseCommentEventCallback('fullscreenClick'); the payload’sfullScreenfield holds the new state. Learn more →
Bug Fixes
-
[Comments]: The
sidebarCloseevent now fires exactly once on every close — close button, outside click, or thecloseCommentSidebar()/toggleCommentSidebar()APIs. Learn more → - [Comments]: Reopening the V2 sidebar now starts fresh with no comment selected, while preserving expanded/collapsed groups. Learn more →
- [Comments]: The Resolved quick filter is now additive — it reveals resolved comments on top of the visible statuses instead of switching to resolved-only. Learn more →
-
[Comments]: With
dialog-selection="false", clicking a comment in the list emitscommentClickonly — no selection, inline expansion, or focused-thread view. Learn more → -
[Comments]:
embed-mode="false"now correctly means “not embedded” — previously any non-empty value enabled embed mode. Learn more → -
[Core]:
removeLocation()with no arguments now clears the current location instead of doing nothing. -
[Comments]: Unknown filter keys passed to
setCommentSidebarFilters()are now ignored instead of emptying the whole list. - [Comments]: The header funnel dropdown no longer renders when it has no sections to show. Learn more →
-
[Comments]: With client-provided data, quick-filter, category-filter, and data changes now emit
commentSidebarDataUpdatewith the filtered list. Learn more → - [Comments]: Selecting a comment whose pin is on a different page now navigates there, opens the sidebar, selects the comment, and scrolls to its pin. Learn more →
- [Comments]: Restored filter state now syncs page pins immediately on load, so filtered-out comments no longer show pins. Learn more →
- [Comments]: Comment dialog actions (reply, edit, delete, resolve, assign, attachments) now always act on the comment the dialog is currently showing, fixing stale-id actions in virtualized lists.
July 8, 2026
Bug Fixes
- [Core]: When you configure an auth proxy via
proxyConfig.authHostininitConfig, Velt’s boot-time auth request now routes through your proxy host instead of bypassing it on page reload. No API or configuration changes are required. Learn more →
July 3, 2026
Bug Fixes
-
[Comments]: With
page-mode="true",setLocation()now keeps every location group visible in the V2 sidebar (current expanded, others collapsed), and header Status counts reflect all comments. Learn more → -
[Comments]:
setLocation()now always re-expands the current location’s group in the V2 sidebar, while preserving other groups’ remembered collapse state. - [Comments]: The V2 sidebar navigation button now opens the correct comment in long, virtualized lists.
July 03, 2026
Bug Fixes
- [Comments]: In Comment Sidebar V2 custom-actions mode, grouped rows now match V1 — the current page’s group shows the “(This page)” suffix, toggling a group flips only that group, and navigating between pages preserves rows and expansion state. Learn more →
-
[Comments]: The
count-type='filter'badge andfilterCommentsOnDompin gate now reflect the filtered list from the sidebar’s first load, instead of briefly counting all annotations. -
[Comments]: Sidebar free-text search now matches every comment and reply (not just the first comment) by text or author name, adds exact
#Ncomment-number search, and no longer matches hidden HTML markup. -
[Comments]: The sidebar Comment Type (Public/Private) filter now detects new-style private comments (
visibilityConfig.typeofrestrictedororganizationPrivate) in addition to legacyiam.accessMode: 'private', so Private/Public counts are correct. - [Comments]: Global hotkeys no longer fire while you type in the sidebar search input.
July 02, 2026
This release brings the Comment Sidebar V2 to parity with V1 across grouping, filtering, and counting.
Improvements
- [Comments]: When grouped by location or document, the V2 sidebar now starts with only the current group expanded; explicit expand/collapse choices persist across reloads. Learn more →
-
[Comments]: The Status filter now starts with Open and In Progress statuses pre-selected on first load, matching V1’s
setDefaultStatuses. Learn more → -
[Comments]:
setCommentSidebarFilters()now renders client filters as checked options in the filter panel, cleared by Reset. Learn more →
Bug Fixes
-
[Comments]: Name-only locations (
setLocation({ locationName: 'Home' })) now scope sidebar grouping, filtering, page mode, and client filters. -
[Comments]: People, Involved, Assigned, and Tagged filter options are now keyed by
userId, so a person referenced by bothuserIdand email no longer appears as two options. -
[Comments]: With
setSidebarButtonCountType('filter'), the sidebar-button badge now counts the actual filtered list, and the same list gates on-page pins whenfilterCommentsOnDomis enabled. Learn more → - [Comments]: Selecting “All” on the Status field or hitting Reset now reveals resolved comments, matching V1.
- [Comments]: The default Priority section now shows a “Not set” bucket for comments with no priority, matching V1.
-
[Comments]: Client filters set via
setCommentSidebarFilters()for fields not shown in the Main Filter panel (e.g.version) now filter the list. -
[Comments]: The cross-field
system-filters-operator(AND/OR) is now applied to the sidebar filter engine, including values set before initialization. - [Comments]: The V2 sidebar virtual-scroll list now clips wide rows instead of scrolling horizontally, matching V1’s layout.
June 30, 2026
New Features
- [Comments]: New
restrictTextSearchToAnchorprop andenableRestrictTextSearchToAnchor()/disableRestrictTextSearchToAnchor()methods to restrict a text comment’s highlight search to its original anchor element, with no wider fallback. Learn more →
Improvements
-
[Self-Hosting]: The
fieldsToRemoveallowlist now applies to reaction annotations, recorder annotations, and all activity feature types (previously only comments andcustomactivities). Learn more → - [Comments]: Explicitly selecting “Resolved” (or any terminal status) in the V2 sidebar status filter now surfaces those comments instead of hiding them by default. Learn more →
Bug Fixes
- [Comments]: Text comments whose anchor text went stale now re-highlight via a wider fallback search instead of silently ghosting. Learn more →
- [Comments]: V2 sidebar facet counts are now computed against the same boundaries as the visible list, so a non-zero count no longer filters the list to nothing when selected. Learn more →
-
[Types]: The
@veltdev/typespublished entry chain is now type-only, so type-only symbols can no longer be accidentally imported as runtime values that resolve toundefined. - [Types]: Published element-model declarations are re-synced with the runtime SDK — corrected return types, removed stale aliases, and added missing Presence, Notification, Rewriter, and Recorder method declarations.
June 24, 2026
V2 comment sidebar events now flow through the unified
commentElement.on() event bus, plus correctness fixes for comments, reactions, and notifications.New Features
- [Comments]: Four new comment events on the
on()bus —sidebarOpen,sidebarClose,commentClick, andcommentNavigationButtonClick. Subscribe viacommentElement.on(...)oruseCommentEventCallback(...). Learn more →
Improvements
- [Comments]: V2 sidebar filter option counts are now absolute — they no longer shift as you apply search text or other filters. Learn more →
- [Comments]: Visual fixes to the V2 sidebar filter dropdown — dark-mode icon color, checkbox alignment, and selected-row accent color. Learn more →
Bug Fixes
-
[Comments]: Recipients granted via
enablePrivateMode({ type: 'restricted', userIds: [...] })are no longer dropped when a new pin is submitted. - [Comments]: The reaction pin and reaction tool render correctly again inside the comment dialog thread card.
- [Comments]: The default-mode V2 comment sidebar no longer reserves an invisible full-height block at its tag location.
- [Notifications]: Custom notification data now resolves correctly for self-hosted data providers when document paths don’t carry an organization id.
June 23, 2026
First beta of the modular SDK. The public
Velt browser API is fully backward compatible — existing browser integrations work unchanged.New Features
-
[Core]: Modular SDK — each feature now loads as its own on-demand chunk. Pass
featureAllowListat init (e.g.['comment', 'presence']) to preload only the features you use; omit it to keep the existing behavior of preloading everything. Learn more → -
[Core]: New
preload<Feature>()methods (e.g.preloadComment()) to warm a feature chunk ahead of use, or to load tag-only features (userInvite,userRequest,videoPlayer). Learn more →

