Releases: VoltAgent/voltagent
@voltagent/[email protected]
Patch Changes
-
#688
5b9484fThanks @omeraplak! - feat: add guardrails - #677Guardrails overview
- streamText/generateText now run guardrails through a dedicated pipeline
- streaming handlers can redact or drop chunks in-flight
- final handlers see the original and sanitized text + provider metadata
- guardrail spans inherit the guardrail name so VoltOps shows human-readable labels
- helper factories: createSensitiveNumberGuardrail, createEmailRedactorGuardrail, createPhoneNumberGuardrail, createProfanityGuardrail, createMaxLengthGuardrail, createDefaultPIIGuardrails, createDefaultSafetyGuardrails
Usage
import { Agent } from "@voltagent/core"; import { openai } from "@ai-sdk/openai"; import { createSensitiveNumberGuardrail, createDefaultSafetyGuardrails } from "@voltagent/core"; const agent = new Agent({ name: "Guarded Assistant", instructions: "Answer without leaking PII.", model: openai("gpt-4o-mini"), outputGuardrails: [ createSensitiveNumberGuardrail(), createDefaultSafetyGuardrails({ maxLength: { maxCharacters: 400 } }), ], }); const response = await agent.streamText("Customer card 4242 4242 1234 5678"); console.log(await response.text); // Sanitized output with digits redacted + length capped
- streamText/generateText now run guardrails through a dedicated pipeline
@voltagent/[email protected]
Patch Changes
-
#674
5aa84b5Thanks @omeraplak! - ## What ChangedRemoved automatic message pruning functionality from all storage adapters (PostgreSQL, Supabase, LibSQL, and InMemory). Previously, messages were automatically deleted when the count exceeded
storageLimit(default: 100 messages per conversation).Why This Change
Users reported unexpected data loss when their conversation history exceeded the storage limit. Many users expect their conversation history to be preserved indefinitely rather than automatically deleted. This change gives users full control over their data retention policies.
Migration Guide
Before
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, storageLimit: 200, // Messages auto-deleted after 200 }), });
After
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, // No storageLimit - all messages preserved }), });
If You Need Message Cleanup
Implement your own cleanup logic using the
clearMessages()method:// Clear all messages for a conversation await memory.clearMessages(userId, conversationId); // Clear all messages for a user await memory.clearMessages(userId);
Affected Packages
@voltagent/core- RemovedstorageLimitfrom types@voltagent/postgres- Removed from PostgreSQL adapter@voltagent/supabase- Removed from Supabase adapter@voltagent/libsql- Removed from LibSQL adapter
Impact
- ✅ No more unexpected data loss
- ✅ Users have full control over message retention
⚠️ Databases may grow larger over time (consider implementing manual cleanup)⚠️ Breaking change:storageLimitparameter no longer accepted
@voltagent/[email protected]
Major Changes
- #674
5aa84b5Thanks @omeraplak! - feat: add dataset/evals/experiments functions
Patch Changes
- Updated dependencies [
5aa84b5,5aa84b5]:- @voltagent/[email protected]
@voltagent/[email protected]
Major Changes
- #674
5aa84b5Thanks @omeraplak! - feat: initial release
Patch Changes
- Updated dependencies [
5aa84b5,5aa84b5]:- @voltagent/[email protected]
@voltagent/[email protected]
Patch Changes
-
#674
5aa84b5Thanks @omeraplak! - ## What ChangedRemoved automatic message pruning functionality from all storage adapters (PostgreSQL, Supabase, LibSQL, and InMemory). Previously, messages were automatically deleted when the count exceeded
storageLimit(default: 100 messages per conversation).Why This Change
Users reported unexpected data loss when their conversation history exceeded the storage limit. Many users expect their conversation history to be preserved indefinitely rather than automatically deleted. This change gives users full control over their data retention policies.
Migration Guide
Before
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, storageLimit: 200, // Messages auto-deleted after 200 }), });
After
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, // No storageLimit - all messages preserved }), });
If You Need Message Cleanup
Implement your own cleanup logic using the
clearMessages()method:// Clear all messages for a conversation await memory.clearMessages(userId, conversationId); // Clear all messages for a user await memory.clearMessages(userId);
Affected Packages
@voltagent/core- RemovedstorageLimitfrom types@voltagent/postgres- Removed from PostgreSQL adapter@voltagent/supabase- Removed from Supabase adapter@voltagent/libsql- Removed from LibSQL adapter
Impact
- ✅ No more unexpected data loss
- ✅ Users have full control over message retention
⚠️ Databases may grow larger over time (consider implementing manual cleanup)⚠️ Breaking change:storageLimitparameter no longer accepted
@voltagent/[email protected]
Patch Changes
-
#674
5aa84b5Thanks @omeraplak! - ## What ChangedRemoved automatic message pruning functionality from all storage adapters (PostgreSQL, Supabase, LibSQL, and InMemory). Previously, messages were automatically deleted when the count exceeded
storageLimit(default: 100 messages per conversation).Why This Change
Users reported unexpected data loss when their conversation history exceeded the storage limit. Many users expect their conversation history to be preserved indefinitely rather than automatically deleted. This change gives users full control over their data retention policies.
Migration Guide
Before
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, storageLimit: 200, // Messages auto-deleted after 200 }), });
After
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, // No storageLimit - all messages preserved }), });
If You Need Message Cleanup
Implement your own cleanup logic using the
clearMessages()method:// Clear all messages for a conversation await memory.clearMessages(userId, conversationId); // Clear all messages for a user await memory.clearMessages(userId);
Affected Packages
@voltagent/core- RemovedstorageLimitfrom types@voltagent/postgres- Removed from PostgreSQL adapter@voltagent/supabase- Removed from Supabase adapter@voltagent/libsql- Removed from LibSQL adapter
Impact
- ✅ No more unexpected data loss
- ✅ Users have full control over message retention
⚠️ Databases may grow larger over time (consider implementing manual cleanup)⚠️ Breaking change:storageLimitparameter no longer accepted
@voltagent/[email protected]
Major Changes
- #674
5aa84b5Thanks @omeraplak! - feat: initial release
Patch Changes
- Updated dependencies [
5aa84b5,5aa84b5]:- @voltagent/[email protected]
- @voltagent/[email protected]
@voltagent/[email protected]
Patch Changes
-
#674
5aa84b5Thanks @omeraplak! - feat: add live evals -
#674
5aa84b5Thanks @omeraplak! - ## What ChangedRemoved automatic message pruning functionality from all storage adapters (PostgreSQL, Supabase, LibSQL, and InMemory). Previously, messages were automatically deleted when the count exceeded
storageLimit(default: 100 messages per conversation).Why This Change
Users reported unexpected data loss when their conversation history exceeded the storage limit. Many users expect their conversation history to be preserved indefinitely rather than automatically deleted. This change gives users full control over their data retention policies.
Migration Guide
Before
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, storageLimit: 200, // Messages auto-deleted after 200 }), });
After
const memory = new Memory({ storage: new PostgreSQLMemoryAdapter({ connection: process.env.DATABASE_URL, // No storageLimit - all messages preserved }), });
If You Need Message Cleanup
Implement your own cleanup logic using the
clearMessages()method:// Clear all messages for a conversation await memory.clearMessages(userId, conversationId); // Clear all messages for a user await memory.clearMessages(userId);
Affected Packages
@voltagent/core- RemovedstorageLimitfrom types@voltagent/postgres- Removed from PostgreSQL adapter@voltagent/supabase- Removed from Supabase adapter@voltagent/libsql- Removed from LibSQL adapter
Impact
- ✅ No more unexpected data loss
- ✅ Users have full control over message retention
⚠️ Databases may grow larger over time (consider implementing manual cleanup)⚠️ Breaking change:storageLimitparameter no longer accepted
@voltagent/[email protected]
Patch Changes
-
#674
5aa84b5Thanks @omeraplak! - feat: add eval commands -
Updated dependencies [
5aa84b5,5aa84b5]:- @voltagent/[email protected]
- @voltagent/[email protected]
@voltagent/[email protected]
Patch Changes
-
#676
8781956Thanks @venatir! - fix(auth-context): retain context in response body and options for user authentication -
Updated dependencies [
78b9727,6d00793,7fef3a7,c4d13f2]:- @voltagent/[email protected]
- @voltagent/[email protected]