Skip to main content
4.5.9-beta.4
November 25, 2025

New Features

  • [Core]: Added getHeartbeat() method to subscribe to user-specific heartbeat data. You can retrieve heartbeat data for the current user or specify a userId to get heartbeats for any user, providing better visibility into active sessions per user.
  • React / Next.js
  • Other Frameworks
// Using Hooks
import { useHeartbeat } from "@veltdev/react";
import { useEffect } from "react";

const { data: heartbeatData } = useHeartbeat();
useEffect(() => {
  console.log("Heartbeat data: ", heartbeatData);
}, [heartbeatData]);

// Using API methods
client.getHeartbeat().subscribe((heartbeatData) => {
  console.log("Heartbeat data: ", heartbeatData);
});
Heartbeat Interfaces:
export interface HeartbeatConfig {
  userId?: string;
}

export interface GetHeartbeatResponse {
  data: Heartbeat[] | null;
}

Improvements

  • [Comments]: Added location removal logic when video plays in Timeline Player. Comment pins are now properly removed as the video plays, ensuring accurate timeline visualization.
  • [Comments]: Added change detection in Timeline Player. The timeline bar now moves correctly when hovering over the play button or timeline, ensuring responsive playback controls.

Bug Fixes

  • [Core]: Fixed disconnect errors in the heartbeat feature. The SDK now handles network issues at the client side without triggering server disconnect errors.
  • [Core]: Fixed user color and text color persistence during auto-login. Colors passed during identify() now persist correctly in auto-login scenarios, ensuring consistent user identification.
  • [Presence]: Fixed multipleUsersOnline event firing when only a single user is present. The presence feature now correctly identifies single-user scenarios, preventing unwanted analytics events.
4.5.9-beta.3
November 19, 2025

Bug Fixes

  • [Comments]: Fixed race condition errors in Player Timeline by adding proper lifecycle management. The player timeline now properly handles component destruction, preventing “undefined” errors that could occur when the component was destroyed during asynchronous operations.
  • [Notifications]: Fixed error handling for document notifications by adding metadata validation. The SDK now checks if notification metadata exists before processing document notifications, preventing unnecessary errors in analytics tracking when notifications are missing required data.
4.5.9-beta.2
November 18, 2025

Bug Fixes

  • [Core]: Fixed user resolution for tagged and assigned users in contact lists. Users added via updateContactList() are now properly cached, ensuring that tagged and assigned users resolve correctly from cached data instead of failing to load.
4.5.9-beta.1
November 18, 2025

Bug Fixes

  • [Core]: Improved updateContactList() method behavior by removing unnecessary validation checks. The method now directly applies user-provided contact list data without additional validation, giving you more control over contact list management.
4.5.9
November 15, 2025

Bug Fixes

  • [Recorder]: Fixed an issue where zoom was not applied unless the zoom section in the timeline was modified directly.
4.5.8
November 14, 2025

Bug Fixes

  • [Recorder]: Fixed an issue where the zoom animation in the editor preview had a curve in the transition. The editor preview now displays smooth transitions to the correct coordinates instead of curved transitions.
  • [Recorder]: Fixed an issue where VeltIf was throwing an error when evaluating MediaStream object.
  • [Comments]: Fixed sanitization of target attributes in comment HTML content. The DomPurifier now preserves target attributes in comment HTML fields, allowing users to include links with target specifications (such as target="_blank") in their comments.
4.5.8-beta.7
November 13, 2025

Improvements

  • [Core]: Optimized the initialization module and significantly reduced the SDK initialization time.
4.5.8-beta.6
November 10, 2025

New Features

  • [Core]: Added fetchDebugInfo() and getDebugInfo() methods to retrieve debugging information about your Velt implementation. Use fetchDebugInfo() to get a one-time snapshot or getDebugInfo() to subscribe to real-time updates of key setup info like sdk version, apikey, user, organizationId, documentId, folderID version, locations etc. You can also get this info from Velt’s Chrome devtools
  • React / Next.js
  • Other Frameworks

// Using API methods - One-time fetch
await client.fetchDebugInfo();

// Using API methods - Subscribe to updates
client.getDebugInfo().subscribe((debugInfo) => {
  console.log("Debug info: ", debugInfo);
});
Debug Info Interface:
export interface VeltDebugInfo {
  veltVersion?: string;
  apiKey?: string;
  serverMap?: {
    organization?: OrganizationMetadata;
    documents?: DocumentMetadata[];
    locations?: Location[];
    folder?: FolderMetadata;
    user?: User;
  };
  clientMap?: {
    organization?: OrganizationMetadata;
    documents?: DocumentMetadata[];
    locations?: Location[];
    folder?: FolderMetadata;
    user?: User;
  };
}

Improvements

  • [Access Control]: Prevent users from adding comments, reactions, recorders, and area comments through the SDK when access context is used and the user doesn’t have access to the specific context.
4.5.8-beta.5
November 5, 2025

New Features

  • [Comments]: Added preliminary infra required to capture screenshots in comments.
4.5.8-beta.4
November 4, 2025

Improvements

  • [Access Control]: Now you can set feature level permissions using Access Context. Access Context allows you to set granular, feature-level permissions using custom metadata. When configured, new feature data is added and existing feature data is fetched only for the access context values the current user has access to. Learn more →
4.5.8-beta.3
October 30, 2025

Improvements

  • [Recorder]: Updated video editor timeline picture mode design for improved visual clarity. The unselected portion of timeline pictures now displays with a cleaner design that better distinguishes selected from unselected frames.
  • [Recorder]: Fixed audio merging in screen recording to combine microphone and tab audio. When recording with both microphone and tab audio enabled, both audio sources are now properly merged into the final recording.

Bug Fixes

  • [Comments]: Fixed type definition for selectCommentByAnnotationId() and made annotationId parameter optional.
  • [Comments]: Fixed embed mode logic in comments sidebar to support multiple embedded sidebars.
4.5.8-beta.2
October 30, 2025

New Features

  • [Access Control]: Added the new Permission Provider feature. With this approach, Velt pings your defined endpoint to verify whether a user should be granted access to a resource (organization, folder, or document). This ensures that your backend is still the source of truth and you don’t have to sync the permissions into Velt directly. Learn more →
  • [Access Control]: Added a config to automatically revoke permissions, including revoking access to documents, folders, and optionally organizations when users log out or when documents are unset. This ensures immediate permission removal without requiring manual cleanup. Learn more →
  • [Access Control]: Added various Permission Provider events to monitor the sequence of permission check events for debugging and tracking purposes. Learn more →

Improvements

  • [Access Control]: Simplified Permission Provider implementation by removing onResourceAccessRequired call and signature handling from client SDK. Permission handling is now fully managed internally by the SDK. You no longer need to handle signatures or make onResourceAccessRequired calls. The SDK automatically handles permission caching, validation, and synchronization with the backend. Learn more →
4.5.8-beta.1
October 29, 2025

New Features

  • [Recorder]: Added video editor timeline image preview to display frame snapshots in the timeline. This helps you quickly navigate to specific scenes without scrubbing through the entire video.
  • React / Next.js
  • Other Frameworks
<VeltRecorderNotes videoEditorTimelinePreview={true} />
<VeltRecorderControlPanel videoEditorTimelinePreview={true} />
The timeline preview only works when both videoEditorTimelinePreview and videoEditor are set to true.

Improvements

  • [Comments]: Enhanced selectCommentByAnnotationId() to close the selected comment annotation when called with no arguments or an invalid ID.
  • React / Next.js
  • Other Frameworks
// Using Hooks
const commentElement = useCommentUtils();

// Close the currently selected annotation
commentElement.selectCommentByAnnotationId();
commentElement.selectCommentByAnnotationId('invalid-id');

// Using API methods
const commentElement = client.getCommentElement();

// Close the currently selected annotation
commentElement.selectCommentByAnnotationId();
commentElement.selectCommentByAnnotationId('invalid-id');
4.5.7
October 28, 2025

New Features

  • [Access Control]: Added early version of feature level permissions using Access Context. Access Context allows you to set granular, feature-level permissions using custom metadata. When configured, new feature data is added and existing feature data is fetched only for the access context values the current user has access to. Learn more →
4.5.6
October 27, 2025

Improvements

  • [Access Control]: Added source field to Permission Provider requests to identify which method triggered the request. The source field helps you debug and trace which SDK method initiated the permission check. Learn more →
  • [Access Control]: Added various Permission Provider events to monitor the sequence of permission check events for debugging and tracking purposes. Learn more →

Bug Fixes

  • [Notifications]: Fixed notification fetching with Permission Provider when document IDs needed mapping to client document IDs.