Libraries
@veltdev/node
New Features
-
CommentResolverSaveEventenum: New enum with 14 additional non-core comment save events (status change, priority change, assign, approve, comment-level reactions, subscribe/unsubscribe, and more) that the Velt frontend can opt into sending to the save resolver endpoint viaResolverConfig.additionalSaveEvents. Theeventfield onSaveCommentResolverRequestis widened fromResolverActionstoResolverActions | CommentResolverSaveEvent | string— fully additive, so every existing value remains assignable. New export from@veltdev/node. Learn more → -
targetCommentonSaveCommentResolverRequest: New optionaltargetComment?: PartialCommentfield carrying the comment the action occurred on, resolved by the frontend fromcommentId. It is request context for your handler only and is never persisted bysaveComments. Learn more → -
Resolver token verify helper (
sdk.selfHosting.verifyToken): New fail-closed helper that verifies the auth credential the Velt frontend forwards to endpoint-based resolvers. The helper itself does not open or query MongoDB; in@veltdev/node@1.0.7,VeltSDK.initializestill validates the top-leveldatabaseconfig before you can accesssdk.selfHosting. Supports built-in JWT/JWKS verification (via the optionaljosepeer dependency, pinned to^5for Node 18) and custom callbacks, and is authentication only — it never makes an authorization decision. Configured via the new optionalresolverAuthonVeltConfig. New exports:VerifyTokenResult,RESOLVER_AUTH_ERROR_CODES,ResolverAuthErrorCode,ResolverAuthConfig,ResolverAuthJwtConfig,ResolverAuthVerifyCallback,ResolverAuthService. Learn more →
Breaking Changes
PartialReactionAnnotation.userrenamed tofrom: The reacting-user field onPartialReactionAnnotationis renamed fromusertofrom, matching the Velt frontend SDK’sPartialReactionAnnotation.from(andReactionAnnotation.from). This affects self-hosting reaction resolvers (sdk.selfHosting.getReactions()):saveReactions()now persists the reacting user underfrom, and resolved reactions exposefrom. Code that reads or writes the reacting user must usefrominstead ofuser. Learn more →
New Features
-
Opt-in field allowlist for REST add/update methods: The add/update methods on
activities,commentAnnotations(including comment-level add/update), andnotificationsnow accept an optionalFieldFilterOptionssecond argument. Passing{ filterUnknownFields: true }narrows the request to exactly the fields the backend endpoint accepts and silently drops unknown keys. It is off by default, fail-open (a filter error never blocks a write), and top-level scoped, so nested open-typed objects likeactionUserandcontextpass through whole. Learn more → -
New field-allowlist exports: A new field-allowlist module exported from
@veltdev/nodeexposes the filter primitives (filterRequest,pickKnownFields), theFilterSpecandFieldFilterOptionstypes, and the per-method specs (ADD_ACTIVITIES_SPEC,UPDATE_ACTIVITIES_SPEC,ADD_COMMENT_ANNOTATIONS_SPEC,UPDATE_COMMENT_ANNOTATIONS_SPEC,ADD_COMMENTS_SPEC,UPDATE_COMMENTS_SPEC,ADD_NOTIFICATIONS_SPEC,UPDATE_NOTIFICATIONS_SPEC) so advanced callers can reuse the same fail-open filtering logic. Learn more →
New Features
-
AI Agents API (
sdk.api.agents): NewAgentsServicefor managing AI agents, versioned config, agent groups, executions, analytics, and prompt tooling (24 methods). Also exported directly from@veltdev/node. Learn more → -
Memory API (
sdk.api.memory): NewMemoryServicefor semantic search over judgments, knowledge-base ingestion/management, reviewer profiles, patterns/stats, alerting, and maintenance jobs (24 methods, all typesMemory-prefixed). Also exported from@veltdev/node. Learn more → -
Approval Workflows API (
sdk.api.approval): NewApprovalServicefor defining approval/review workflows (graphs of agent, human, and webhook nodes) and dispatching/resolving executions and steps (14 methods, routes under/v2/workflow/*, all typesApproval-prefixed). Also exported from@veltdev/node. Learn more → -
CRDT —
deleteCrdtData:sdk.api.crdtgainsdeleteCrdtDatato delete CRDT editor data for a document (omiteditorIdsto delete all editors). Learn more → -
Documents —
getDocumentsCount:sdk.api.documentsgainsgetDocumentsCountto return a document count for an organization, with optional folder scoping. Learn more → -
Users — counts, document users & invites:
sdk.api.usersgains 7 methods:getUsersCount,getDocUsers,addUserInvite,respondToUserInvite,getUserInvites,getUserInvitations, andgetInvitedPendingUsersCount. Learn more → -
Workspace — domain requests, key config, service configs & advanced webhooks:
sdk.api.workspacegains 19 methods spanning additional-URL/domain requests, API key copy + config, notification/permission-provider/activity service configs, and the advanced (Svix) webhook endpoint suite. Learn more →
Improvements
getApiKeyMetadatanow targets theapikeyconfigendpoint:sdk.api.workspace.getApiKeyMetadata()now posts to/v2/workspace/apikeyconfig/get(was/v2/workspace/apikeymetadata/get). The method name and signature are unchanged, so no caller changes are required. Learn more →
New Features
-
PartialCommentAnnotationtyped fields:PartialCommentAnnotationgains four new typed fields —from,assignedTo,targetTextRange, andresolvedByUserId.resolvedByUserIduses three-state semantics (absent / explicitnull/ string) to correctly round-trip unresolve actions without droppingnull. Learn more → -
PartialTargetTextRangeinterface: NewPartialTargetTextRangeinterface withpartialTargetTextRangeFromDict/partialTargetTextRangeToDictserializers for structured text-range data. Learn more → -
PartialCommentround-trip helpers:PartialCommentgainspartialCommentFromDict/partialCommentToDicthelpers that pass through unknown keys, preserving forward compatibility. Learn more → -
sdkVersiononBaseMetadata:BaseMetadatanow includes ansdkVersionfield.baseMetadataFromDict/baseMetadataToDictserializers are exposed on the public package surface. Learn more →

