Conversation
This comment has been minimized.
This comment has been minimized.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (87)
📝 WalkthroughWalkthroughRemoved a changeset doc and bumped package versions across the monorepo (core, server-core, resumable-streams, examples). Changelogs were added/updated to document a runtime memory envelope (options.memory); no public API code was changed in this diff. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Tools execution failed with the following error: Failed to run tools: 13 INTERNAL: Received RST_STREAM with code 2 (Internal server error) Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 6
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@packages/core/CHANGELOG.md`:
- Line 16: Update the deprecation note in the CHANGELOG entry so the phrase
"type/docs" is corrected to "types/docs"; locate the sentence "Legacy fields are
now marked deprecated in type/docs, and envelope values are preferred when both
are provided." and replace "type/docs" with "types/docs" to match the
surrounding terminology and consistency.
In `@packages/resumable-streams/CHANGELOG.md`:
- Around line 40-58: The example showing agent.generateText with an
options.memory payload is non-functional because GenerateOptionsSchema does not
include a memory field and stream resolvers don't consume it; update the
changelog so users aren't misled by either removing the example block or
annotating it as "coming soon / not yet implemented", and if you prefer to keep
it, add a clear NOTE referencing GenerateOptionsSchema and stream resolver
behavior so it's not presented as a working example.
- Around line 61-62: Update the changelog to accurately state that while the
schema now accepts options.memory, the resolver logic has not been
changed—specifically note that defaultResolveConversationId and
defaultResolveUserId still read from options.conversationId/options.userId and
do not yet consult options.memory; modify the lines describing resolvable
identity to reflect that the fallback behavior is documented but not implemented
in the resolvers.
In `@packages/resumable-streams/package.json`:
- Around line 4-7: The package.json advertises a
peerDependencies["@voltagent/core"] range that is too old (currently ^2.0.0)
while the code and dependencies require features from 2.6.6; update the
peerDependencies entry for "@voltagent/core" to "^2.6.6" so it matches the
dependency and minimum supported core release (also re-run install/CI to verify
no peer warnings). Ensure you update the peerDependencies field in package.json
where "@voltagent/core" is declared.
In `@packages/server-core/CHANGELOG.md`:
- Around line 60-65: The changelog entry titled "Server and Resumable Stream
Alignment" incorrectly attributes resumable-stream behavior to
`@voltagent/server-core`; edit this entry to scope it to `@voltagent/server-core` by
keeping the schema/docs bullet and the server-schema test bullet (leave the
`options.memory` acceptance and the server-schema test), then remove the two
bullets referencing "Resumable stream identity resolution" and the
resumable-stream tests and add those exact bullets to the
`@voltagent/resumable-streams` package changelog instead; ensure the wording and
test references are preserved when moving and update the package-specific
headings so each package's changelog only describes its own changes.
In `@packages/server-core/package.json`:
- Around line 4-7: Update the package manifest so the peer dependency floor for
`@voltagent/core` matches the runtime dependency floor: change the peerDependency
entry for "@voltagent/core" from allowing "^2.0.0" to require at least "^2.6.6"
(same as the runtime dependency) to avoid compatibility mismatches or duplicate
installs; locate the peerDependencies block in package.json and update the
"@voltagent/core" version specifier accordingly.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: f1643f2c-490b-4e38-86cb-e069ce3f7e5d
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (87)
.changeset/runtime-memory-envelope.mdexamples/base/package.jsonexamples/github-repo-analyzer/package.jsonexamples/github-star-stories/package.jsonexamples/next-js-chatbot-starter-template/package.jsonexamples/with-a2a-server/package.jsonexamples/with-agent-tool/package.jsonexamples/with-airtable/package.jsonexamples/with-amazon-bedrock/package.jsonexamples/with-anthropic/package.jsonexamples/with-auth/package.jsonexamples/with-cerbos/package.jsonexamples/with-chat-sdk/package.jsonexamples/with-chroma/package.jsonexamples/with-client-side-tools/package.jsonexamples/with-cloudflare-workers/package.jsonexamples/with-composio-mcp/package.jsonexamples/with-custom-endpoints/package.jsonexamples/with-dynamic-parameters/package.jsonexamples/with-dynamic-prompts/package.jsonexamples/with-feedback/package.jsonexamples/with-google-ai/package.jsonexamples/with-google-drive-mcp/server/package.jsonexamples/with-google-vertex-ai/package.jsonexamples/with-groq-ai/package.jsonexamples/with-guardrails/package.jsonexamples/with-hooks/package.jsonexamples/with-hugging-face-mcp/package.jsonexamples/with-langfuse/package.jsonexamples/with-mcp-elicitation/package.jsonexamples/with-mcp-server/package.jsonexamples/with-mcp/package.jsonexamples/with-memory-rest-api/package.jsonexamples/with-middleware/package.jsonexamples/with-nestjs/package.jsonexamples/with-netlify-functions/package.jsonexamples/with-nextjs-resumable-stream/package.jsonexamples/with-nextjs/package.jsonexamples/with-nuxt/package.jsonexamples/with-offline-evals/package.jsonexamples/with-ollama/package.jsonexamples/with-peaka-mcp/package.jsonexamples/with-pinecone/package.jsonexamples/with-planagents/package.jsonexamples/with-playwright/package.jsonexamples/with-postgres/package.jsonexamples/with-qdrant/package.jsonexamples/with-rag-chatbot/package.jsonexamples/with-recipe-generator/package.jsonexamples/with-research-assistant/package.jsonexamples/with-resumable-streams/package.jsonexamples/with-retries-fallback/package.jsonexamples/with-retrieval/package.jsonexamples/with-slack/package.jsonexamples/with-subagents/package.jsonexamples/with-summarization/package.jsonexamples/with-supabase/package.jsonexamples/with-tavily-search/package.jsonexamples/with-thinking-tool/package.jsonexamples/with-tool-routing/package.jsonexamples/with-tools/package.jsonexamples/with-turso/package.jsonexamples/with-vector-search/package.jsonexamples/with-vercel-ai/package.jsonexamples/with-viteval/package.jsonexamples/with-voice-elevenlabs/package.jsonexamples/with-voice-openai/package.jsonexamples/with-voice-xsai/package.jsonexamples/with-voltagent-actions/package.jsonexamples/with-voltagent-exporter/package.jsonexamples/with-voltagent-managed-memory/package.jsonexamples/with-voltops-resumable-streams/package.jsonexamples/with-voltops-retrieval/package.jsonexamples/with-whatsapp/package.jsonexamples/with-workflow-chain/package.jsonexamples/with-workflow/package.jsonexamples/with-working-memory/package.jsonexamples/with-workspace/package.jsonexamples/with-youtube-to-blog/package.jsonexamples/with-zapier-mcp/package.jsonpackages/core/CHANGELOG.mdpackages/core/package.jsonpackages/e2e/package.jsonpackages/resumable-streams/CHANGELOG.mdpackages/resumable-streams/package.jsonpackages/server-core/CHANGELOG.mdpackages/server-core/package.json
💤 Files with no reviewable changes (1)
- .changeset/runtime-memory-envelope.md
| - `options.memory.options` for memory behavior overrides (`contextLimit`, `semanticMemory`, `conversationPersistence`) | ||
| - Kept legacy top-level fields for backward compatibility: | ||
| - `options.conversationId`, `options.userId`, `options.contextLimit`, `options.semanticMemory`, `options.conversationPersistence` | ||
| - Legacy fields are now marked deprecated in type/docs, and envelope values are preferred when both are provided. |
There was a problem hiding this comment.
Fix the type/docs typo in the deprecation note.
type/docs reads awkwardly here and looks inconsistent with the rest of the release notes. types/docs would be clearer and matches the surrounding terminology.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/core/CHANGELOG.md` at line 16, Update the deprecation note in the
CHANGELOG entry so the phrase "type/docs" is corrected to "types/docs"; locate
the sentence "Legacy fields are now marked deprecated in type/docs, and envelope
values are preferred when both are provided." and replace "type/docs" with
"types/docs" to match the surrounding terminology and consistency.
| "version": "2.0.2", | ||
| "author": "VoltAgent Team", | ||
| "dependencies": { | ||
| "@voltagent/core": "^2.0.7", | ||
| "@voltagent/core": "^2.6.6", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python - <<'PY'
import json
from pathlib import Path
path = Path("packages/resumable-streams/package.json")
data = json.loads(path.read_text())
print("dependency:", data["dependencies"]["@voltagent/core"])
print("peerDependency:", data["peerDependencies"]["@voltagent/core"])
PY
echo
echo "Direct `@voltagent/core` imports in packages/resumable-streams:"
rg -n -C2 '@voltagent/core' packages/resumable-streams
echo
echo "Release notes for packages/resumable-streams:"
sed -n '1,120p' packages/resumable-streams/CHANGELOG.mdRepository: VoltAgent/voltagent
Length of output: 7780
Align the @voltagent/core peer range with the new minimum supported release.
Line 7 now requires @voltagent/core@^2.6.6, but this manifest still advertises peerDependencies["@voltagent/core"] = "^2.0.0". The 2.0.2 release is tied to the memory envelope feature in 2.6.6 (per CHANGELOG), and the source code directly depends on memory envelope resolution introduced in that version. The peer range must be bumped to ^2.6.6 to prevent consumers from installing incompatible core versions.
Suggested manifest change
"peerDependencies": {
- "@voltagent/core": "^2.0.0",
+ "@voltagent/core": "^2.6.6",
"ai": "^6.0.0"
},🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/resumable-streams/package.json` around lines 4 - 7, The package.json
advertises a peerDependencies["@voltagent/core"] range that is too old
(currently ^2.0.0) while the code and dependencies require features from 2.6.6;
update the peerDependencies entry for "@voltagent/core" to "^2.6.6" so it
matches the dependency and minimum supported core release (also re-run
install/CI to verify no peer warnings). Ensure you update the peerDependencies
field in package.json where "@voltagent/core" is declared.
| ### Server and Resumable Stream Alignment | ||
| - `@voltagent/server-core` now accepts/documents the `options.memory` envelope in request schemas. | ||
| - Resumable stream identity resolution now reads `conversationId`/`userId` from `options.memory` first and falls back to legacy fields. | ||
| - Added tests for: | ||
| - parsing `options.memory` in server schemas | ||
| - resolving resumable stream keys from `options.memory` |
There was a problem hiding this comment.
Scope this release note to @voltagent/server-core only.
Lines 62-65 describe resumable-stream key resolution, which is shipped by @voltagent/resumable-streams, not this package. Keeping that here makes @voltagent/server-core@2.1.9 look like it owns behavior it does not. I’d keep the schema/docs bullet and the server-schema test here, then move the stream-specific bullets to the @voltagent/resumable-streams changelog.
✏️ Suggested edit
- ### Server and Resumable Stream Alignment
+ ### Server Alignment
- `@voltagent/server-core` now accepts/documents the `options.memory` envelope in request schemas.
- - Resumable stream identity resolution now reads `conversationId`/`userId` from `options.memory` first and falls back to legacy fields.
- Added tests for:
- parsing `options.memory` in server schemas
- - resolving resumable stream keys from `options.memory`Based on learnings: Follow the monorepo structure - changes may impact multiple packages
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/server-core/CHANGELOG.md` around lines 60 - 65, The changelog entry
titled "Server and Resumable Stream Alignment" incorrectly attributes
resumable-stream behavior to `@voltagent/server-core`; edit this entry to scope it
to `@voltagent/server-core` by keeping the schema/docs bullet and the
server-schema test bullet (leave the `options.memory` acceptance and the
server-schema test), then remove the two bullets referencing "Resumable stream
identity resolution" and the resumable-stream tests and add those exact bullets
to the `@voltagent/resumable-streams` package changelog instead; ensure the
wording and test references are preserved when moving and update the
package-specific headings so each package's changelog only describes its own
changes.
| "version": "2.1.9", | ||
| "dependencies": { | ||
| "@modelcontextprotocol/sdk": "^1.12.1", | ||
| "@voltagent/core": "^2.5.0", | ||
| "@voltagent/core": "^2.6.6", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== packages/server-core/package.json =="
sed -n '1,80p' packages/server-core/package.json
echo
echo "== packages/core/CHANGELOG.md section for 2.6.6 =="
python - <<'PY'
from pathlib import Path
text = Path("packages/core/CHANGELOG.md").read_text()
start = text.find("## 2.6.6")
end = text.find("\n## ", start + 1)
print(text[start:end if end != -1 else None])
PY
echo
echo "== server-core references to core / memory envelope =="
rg -n -C2 'options\.memory|conversationId|userId|from "@voltagent/core"' packages/server-core/srcRepository: VoltAgent/voltagent
Length of output: 50377
Align the @voltagent/core peer floor with the new runtime floor.
The runtime dependency was bumped to ^2.6.6 to support the new memory envelope feature (options.memory), but the peer dependency still allows ^2.0.0. This creates a compatibility mismatch: consumers can satisfy the peer constraint with @voltagent/core@2.0.x, leading to either an incompatible contract (if they have an older version at the top level) or duplicate installations in their dependency graph. Tighten the peer minimum to ^2.6.6 to match the runtime floor.
Suggested manifest fix
"peerDependencies": {
- "@voltagent/core": "^2.0.0",
+ "@voltagent/core": "^2.6.6",
"zod": "^3.25.0 || ^4.0.0"
},🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@packages/server-core/package.json` around lines 4 - 7, Update the package
manifest so the peer dependency floor for `@voltagent/core` matches the runtime
dependency floor: change the peerDependency entry for "@voltagent/core" from
allowing "^2.0.0" to require at least "^2.6.6" (same as the runtime dependency)
to avoid compatibility mismatches or duplicate installs; locate the
peerDependencies block in package.json and update the "@voltagent/core" version
specifier accordingly.
63f2f29 to
119a730
Compare
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@voltagent/core@2.6.6
Patch Changes
99680b1Thanks @omeraplak! - feat: add runtime memory envelope (options.memory) and deprecate legacy top-level memory fieldsWhat's New
options.memory.conversationIdfor conversation-scoped memoryoptions.memory.userIdfor user-scoped memoryoptions.memory.optionsfor memory behavior overrides (contextLimit,semanticMemory,conversationPersistence)options.conversationId,options.userId,options.contextLimit,options.semanticMemory,options.conversationPersistenceUsage Examples
Legacy (still supported, deprecated):
Preferred (new
memoryenvelope):Server and Resumable Stream Alignment
@voltagent/server-corenow accepts/documents theoptions.memoryenvelope in request schemas.conversationId/userIdfromoptions.memoryfirst and falls back to legacy fields.options.memoryin server schemasoptions.memory@voltagent/resumable-streams@2.0.2
Patch Changes
99680b1Thanks @omeraplak! - feat: add runtime memory envelope (options.memory) and deprecate legacy top-level memory fieldsWhat's New
options.memory.conversationIdfor conversation-scoped memoryoptions.memory.userIdfor user-scoped memoryoptions.memory.optionsfor memory behavior overrides (contextLimit,semanticMemory,conversationPersistence)options.conversationId,options.userId,options.contextLimit,options.semanticMemory,options.conversationPersistenceUsage Examples
Legacy (still supported, deprecated):
Preferred (new
memoryenvelope):Server and Resumable Stream Alignment
@voltagent/server-corenow accepts/documents theoptions.memoryenvelope in request schemas.conversationId/userIdfromoptions.memoryfirst and falls back to legacy fields.options.memoryin server schemasoptions.memoryUpdated dependencies [
99680b1]:@voltagent/server-core@2.1.9
Patch Changes
99680b1Thanks @omeraplak! - feat: add runtime memory envelope (options.memory) and deprecate legacy top-level memory fieldsWhat's New
options.memory.conversationIdfor conversation-scoped memoryoptions.memory.userIdfor user-scoped memoryoptions.memory.optionsfor memory behavior overrides (contextLimit,semanticMemory,conversationPersistence)options.conversationId,options.userId,options.contextLimit,options.semanticMemory,options.conversationPersistenceUsage Examples
Legacy (still supported, deprecated):
Preferred (new
memoryenvelope):Server and Resumable Stream Alignment
@voltagent/server-corenow accepts/documents theoptions.memoryenvelope in request schemas.conversationId/userIdfromoptions.memoryfirst and falls back to legacy fields.options.memoryin server schemasoptions.memoryUpdated dependencies [
99680b1]:Summary by CodeRabbit
New Features
Deprecations
Version Updates