chore(deps): update all non-major dependencies#120
Merged
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
commit: |
54f82bf to
3303ba5
Compare
3303ba5 to
e3bc736
Compare
e3bc736 to
4288041
Compare
4288041 to
fe00bb7
Compare
fe00bb7 to
0308f7f
Compare
0308f7f to
47a73e6
Compare
47a73e6 to
19e2d8f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^1.0.18→^1.0.19^1.2.87→^1.2.89^1.2.69→^1.2.70^1.25.3→^1.26.0^1.13.0→^1.15.1>=0.3.6→>=0.4.0^0.31.8→^0.31.9^1.10.2→^1.10.3^1.3.0→^1.3.110.28.2→10.29.210.28.2→10.29.2^2.8.1→^2.8.3Release Notes
vercel/ai (@ai-sdk/mcp)
v1.0.19Compare Source
Patch Changes
7168375]modelcontextprotocol/typescript-sdk (@modelcontextprotocol/sdk)
v1.26.0Compare Source
Addresses "Sharing server/transport instances can leak cross-client response data" in this GHSA GHSA-345p-7cg4-v4c7
What's Changed
New Contributors
Full Changelog: modelcontextprotocol/typescript-sdk@v1.25.3...v1.26.0
nuxt/eslint (@nuxt/eslint-config)
v1.15.1🐞 Bug Fixes
@eslint/js, fix #647 - by @antfu in #647 (2c1c1)View changes on GitHub
v1.15.0Compare Source
🚀 Features
View changes on GitHub
v1.14.0Compare Source
🚀 Features
no-page-meta-runtime-values- by @danielroe in #641 (b74a0)View changes on GitHub
cloudflare/agents (agents)
v0.4.0Compare Source
Minor Changes
#848
a167344Thanks @mattzcarey! - Upgrade MCP SDK to 1.26.0 to prevent cross-client response leakage. Updated examples for stateless MCP Servers create newMcpServerinstance per request instead of sharing a single instance. A guard is added in this version of the MCP SDK which will prevent connection to a Server instance that has already been connected to a transport. Developers will need to modify their code if they declare theirMcpServerinstance as a global variable.#298
27f4e3eThanks @jaredhanson! - AddcreateMcpOAuthProvidermethod to theAgentclass, allowing subclasses to override the default OAuth provider used when connecting to MCP servers. This enables custom authentication strategies such as pre-registered client credentials or mTLS, beyond the built-in dynamic client registration.#610
f59f305Thanks @threepointone! - DeprecateonStateUpdateserver-side hook in favor ofonStateChangedonStateChangedis a drop-in rename ofonStateUpdate(same signature, same behavior)onStateUpdatestill works but emits a one-time console warning per classvalidateStateChangerejections now propagate aCF_AGENT_STATE_ERRORmessage back to the client#871
27f8f75Thanks @threepointone! - Migrate x402 MCP integration from legacyx402package to@x402/coreand@x402/evmv2Breaking changes for x402 users:
x402with@x402/coreand@x402/evmPaymentRequirementstype now uses v2 fields (e.g.amountinstead ofmaxAmountRequired)X402ClientConfig.accounttype changed fromviem.AccounttoClientEvmSigner(structurally compatible withprivateKeyToAccount())Migration guide:
Update dependencies:
Update network identifiers — both legacy names and CAIP-2 format are accepted:
If you access
PaymentRequirementsfields in callbacks, update to v2 field names (see@x402/coredocs).The
versionfield onX402ConfigandX402ClientConfigis now deprecated and ignored — the protocol version is determined automatically.Other changes:
X402ClientConfig.networkis now optional — the client auto-selects from available payment requirementsPAYMENT-SIGNATURE) and v1 (X-PAYMENT) HTTP headersnormalizeNetworkexport for converting legacy network names to CAIP-2 formatPaymentRequirements,PaymentRequired,Network,FacilitatorConfig, andClientEvmSignerfromagents/x402Patch Changes
#610
f59f305Thanks @threepointone! - Add readonly connections: restrict WebSocket clients from modifying agent stateshouldConnectionBeReadonly,setConnectionReadonly,isConnectionReadonlysetState()and mutating@callable()methods for readonly connections_cf_readonly), surviving hibernation without extra SQLconnection.setState()callsonStateUpdateErrorcallback for handling rejected state updates#855
271a3cfThanks @threepointone! - FixuseAgentandAgentClientcrashing when usingbasePathrouting.#868
b3e2dc1Thanks @threepointone! - Fix MCP OAuth callback URL leaking instance nameAdd
callbackPathoption toaddMcpServerto prevent instance name leakage in MCP OAuth callback URLs. WhensendIdentityOnConnectisfalse,callbackPathis now required — the default callback URL would expose the instance name, undermining the security intent. Also fixes callback request detection to match via thestateparameter instead of a loose/callbackURL substring check, enabling custom callback paths.#872
de71f9eThanks @threepointone! - update dependencies8893fbeThanks @threepointone! - partykit releasesv0.3.10Compare Source
Patch Changes
#839
68916bfThanks @whoiskatrin! - Invalidate query cache on disconnect to fix stale auth tokens#841
3f490d0Thanks @mattzcarey! - Escape authError to prevent XSS attacks and store it in the connection state to avoid needing script tags to display error.Updated dependencies [
83f137f]:v0.3.9Compare Source
Patch Changes
#837
b11b9ddThanks @threepointone! - Fix AgentWorkflow run() method not being called in productionThe
run()method wrapper was being set as an instance property in the constructor, but Cloudflare's RPC system invokes methods from the prototype chain. This caused the initialization wrapper to be bypassed in production, resulting in_initAgentnever being called.Changed to wrap the subclass prototype's
runmethod directly with proper safeguards:Object.hasOwn()to only wrap prototypes that define their ownrunmethod (prevents double-wrapping inherited methods)WeakSetto track wrapped prototypes (prevents re-wrapping on subsequent instantiations)__agentInitCalledflag to prevent double initialization ifsuper.run()is called from a subclassv0.3.8Compare Source
Patch Changes
#833
6c80022Thanks @tarushnagpal! - On invalid OAuth state, clear auth_url in storage and set the MCP connection state to FAILED ready for reconnection.#834
2b4aecdThanks @threepointone! - Fix AgentClient.close() to immediately reject pending RPC calls instead of waiting for WebSocket close handshake timeout.Previously, calling
client.close()would not reject pending RPC calls until the WebSocket close handshake completed (which could take 15+ seconds in some environments). Now pending calls are rejected immediately whenclose()is called, providing faster feedback on intentional disconnects.v0.3.7Compare Source
This release introduces Cloudflare Workflows integration for durable multi-step processing, secure email reply routing with HMAC-SHA256 signatures, 15+ new documentation files, and significant improvements to state management, the callable RPC system, and scheduling.
Highlights
setState()- State updates are now synchronous with a newvalidateStateChange()validation hookscheduleEvery()Method - Fixed-interval recurring tasks with overlap preventionCloudflare Workflows Integration
Agents excel at real-time communication and state management. Workflows excel at durable execution. Together, they enable powerful patterns where Agents handle WebSocket connections while Workflows handle long-running tasks, retries, and human-in-the-loop flows.
AgentWorkflow Base Class
Extend
AgentWorkflowinstead ofWorkflowEntrypointto get typed access to the originating Agent:Agent Methods for Workflows
runWorkflow(workflowName, params, options?)- Start workflow with optional metadatasendWorkflowEvent(workflowName, workflowId, event)- Send events to waiting workflowsgetWorkflow(workflowId)/getWorkflows(criteria?)- Query workflows with cursor-based paginationdeleteWorkflow(workflowId)/deleteWorkflows(criteria?)- Delete workflows by ID or criteriaapproveWorkflow(workflowId)/rejectWorkflow(workflowId)- Human-in-the-loop approval flowsterminateWorkflow(),pauseWorkflow(),resumeWorkflow(),restartWorkflow()- Workflow controlLifecycle Callbacks
See
docs/workflows.mdfor full documentation.Secure Email Reply Routing
Prevents unauthorized routing of emails to arbitrary agent instances using HMAC-SHA256 signed headers.
New Resolver
Automatic Signing on Reply
Breaking Changes
agents/emailsubpathcreateHeaderBasedEmailResolverremoved (security vulnerability)onNoRoutecallback for handling unmatched emailsNew Documentation
getting-started.mdadding-to-existing-project.mdstate.mdvalidateStateChange(), persistence, client syncrouting.mdbasePath, server-sent identityhttp-websockets.mdcallable-methods.md@callabledecorator, RPC over WebSocket, streaming responsesmcp-client.mdscheduling.mdscheduleEvery), and cron-based schedulingworkflows.mdState Management Improvements
Synchronous
setState()setState()is now synchronous. Existingawait this.setState(...)code continues to work.validateStateChange()HookNew synchronous validation hook that runs before state is persisted:
Execution Order
validateStateChange(nextState, source)- validation (sync, gating)onStateUpdate(nextState, source)- notifications (async viactx.waitUntil, non-gating)Scheduling:
scheduleEvery()Fixed-interval recurring tasks with overlap prevention and error resilience:
hungScheduleTimeoutSeconds)Callable System Improvements
Client-side RPC Timeout
New Features
StreamingResponse.error(message)- Graceful stream error signalinggetCallableMethods()- Introspection API for callable methodscrypto.randomUUID()for more robust RPC IDsMCP Server API
Options-based
addMcpServer()overload for cleaner configuration:Routing & Identity Enhancements
basePath- Bypass default URL construction for custom routingnameandagenttype on connectonIdentity/onIdentityChangecallbacks on the clientstatic options = { sendIdentityOnConnect }for server-side controlEmail Utilities
isAutoReplyEmail(headers)- Detect auto-reply emails using standard RFC headersBug Fixes
getAITools(#781)useReftype errorinitialStateon corrupted stateMigration Notes
Email Imports
Workflow Imports
OpenAI Provider Options
When using
scheduleSchemawith OpenAI models via the AI SDK, passproviderOptions:Patch Changes
#825
0c3c9bbThanks @threepointone! - Add cursor-based pagination togetWorkflows(). Returns aWorkflowPagewith workflows, total count, and cursor for next page. Default limit is 50 (max 100).#825
0c3c9bbThanks @threepointone! - Add workflow control methods:terminateWorkflow(),pauseWorkflow(),resumeWorkflow(), andrestartWorkflow().#799
d1a0c2bThanks @threepointone! - feat: Add Cloudflare Workflows integration for AgentsAdds seamless integration between Cloudflare Agents and Cloudflare Workflows for durable, multi-step background processing.
Why use Workflows with Agents?
Agents excel at real-time communication and state management, while Workflows excel at durable execution. Together:
AgentWorkflow Base Class
Extend
AgentWorkflowinstead ofWorkflowEntrypointto get typed access to the originating Agent:Agent Methods
runWorkflow(workflowName, params, options?)- Start workflow with optional metadata for queryingsendWorkflowEvent(workflowName, workflowId, event)- Send events to waiting workflowsgetWorkflow(workflowId)- Get tracked workflow by IDgetWorkflows(criteria?)- Query by status, workflowName, or metadata with paginationdeleteWorkflow(workflowId)- Delete a workflow tracking recorddeleteWorkflows(criteria?)- Delete workflows by criteria (status, workflowName, metadata, createdBefore)approveWorkflow(workflowId, data?)- Approve a waiting workflowrejectWorkflow(workflowId, data?)- Reject a waiting workflowAgentWorkflow Methods
On
this(non-durable, lightweight):reportProgress(progress)- Report typed progress object to AgentbroadcastToClients(message)- Broadcast to WebSocket clientswaitForApproval(step, opts?)- Wait for approval (throws on rejection)On
step(durable, idempotent):step.reportComplete(result?)- Report successful completionstep.reportError(error)- Report an errorstep.sendEvent(event)- Send custom event to Agentstep.updateAgentState(state)- Replace Agent state (broadcasts to clients)step.mergeAgentState(partial)- Merge into Agent state (broadcasts to clients)step.resetAgentState()- Reset Agent state to initialState (broadcasts to clients)Lifecycle Callbacks
Override these methods to handle workflow events (workflowName is first for easy differentiation):
Workflow Tracking
Workflows are automatically tracked in
cf_agents_workflowsSQLite table:metadatafield for queryable key-value dataSee
docs/workflows.mdfor full documentation.#812
6218541Thanks @threepointone! - # Bug FixesThis release includes three bug fixes:
1. Hung Callback Detection in scheduleEvery()
Fixed a deadlock where if an interval callback hung indefinitely, all future interval executions would be skipped forever.
Fix: Track execution start time and force reset after 30 seconds of inactivity. If a previous execution appears hung (started more than 30s ago), it is force-reset and re-executed.
2. Corrupted State Recovery
Fixed a crash when the database contains malformed JSON state.
Fix: Wrapped
JSON.parsein try-catch with fallback toinitialState. If parsing fails, the agent logs an error and recovers gracefully.3. getCallableMethods() Prototype Chain Traversal
Fixed
getCallableMethods()to find@callablemethods from parent classes, not just the immediate class.Fix: Walk the full prototype chain using
Object.getPrototypeOf()loop.#812
6218541Thanks @threepointone! - # Callable System ImprovementsThis release includes several improvements to the
@callabledecorator and RPC system:New Features
Client-side RPC Timeout
You can now specify a timeout for RPC calls that will reject if the call doesn't complete in time:
StreamingResponse.error()
New method to gracefully signal an error during streaming and close the stream:
getCallableMethods() API
New method on the Agent class to introspect all callable methods and their metadata:
Connection Close Handling
Pending RPC calls are now automatically rejected with a "Connection closed" error when the WebSocket connection closes unexpectedly.
Internal Improvements
callableMetadatafromMaptoWeakMapto prevent memory leaks when function references are garbage collected.Math.random().toString(36)withcrypto.randomUUID()for more robust and unique RPC call identifiers.API Enhancements
The
agent.call()method now accepts a unifiedCallOptionsobject with timeout support:Both formats work seamlessly - the client auto-detects which format you're using.
#812
6218541Thanks @threepointone! - feat: AddscheduleEverymethod for fixed-interval schedulingAdds a new
scheduleEvery(intervalSeconds, callback, payload?)method to the Agent class for scheduling recurring tasks at fixed intervals.Features
cancelSchedule(id)to stop the recurring scheduleUsage
Querying interval schedules
Schema changes
Adds
intervalSecondsandrunningcolumns tocf_agents_schedulestable (auto-migrated for existing agents).#812
6218541Thanks @threepointone! - AddisAutoReplyEmail()utility to detect auto-reply emailsDetects auto-reply emails based on standard RFC 3834 headers (
Auto-Submitted,X-Auto-Response-Suppress,Precedence). Use this to avoid mail loops when sending automated replies.#781
fd79481Thanks @HueCodes! - fix: properly type tool error content in getAITools#812
6218541Thanks @threepointone! - fix: improve type inference for RPC methods returning custom interfacesPreviously,
RPCMethodused{ [key: string]: SerializableValue }to check if return types were serializable. This didn't work with TypeScript interfaces that have named properties (likeinterface CoreState { counter: number; name: string; }), causing those methods to be incorrectly excluded from typed RPC calls.Now uses a recursive
CanSerialize<T>type that checks if all properties of an object are serializable, properly supporting:Also expanded
NonSerializableto explicitly exclude non-JSON-serializable types likeDate,RegExp,Map,Set,Error, and typed arrays.#825
0c3c9bbThanks @threepointone! - Fix workflow tracking table not being updated by AgentWorkflow callbacks.Previously, when a workflow reported progress, completion, or errors via callbacks, the
cf_agents_workflowstracking table was not updated. This causedgetWorkflow()andgetWorkflows()to return stale status (e.g., "queued" instead of "running" or "complete").Now,
onWorkflowCallback()automatically updates the tracking table:completed_attimestampFixes #821.
#812
6218541Thanks @threepointone! - feat: Add options-based API foraddMcpServerAdds a cleaner options-based overload for
addMcpServer()that avoids passingundefinedfor unused positional parameters.Before (still works)
After (preferred)
Options
The legacy 5-parameter signature remains fully supported for backward compatibility.
6218541Thanks @threepointone! - Add custom URL routing withbasePathand server-sent identityCustom URL Routing with
basePathNew
basePathoption bypasses default/agents/{agent}/{name}URL construction, enabling custom routing patterns:Server handles routing manually with
getAgentByName:Server-Sent Identity
Agents now send their identity (
nameandagentclass) to clients on connect:onIdentitycallback - called when server sends identityagent.nameandagent.agentare updated from server (authoritative)Identity State & Ready Promise
identified: boolean- whether identity has been receivedready: Promise<void>- resolves when identity is receivedname,agent, andidentifiedare reactive stateIdentity Change Detection
onIdentityChangecallback - fires when identity differs on reconnectSub-Paths with
pathOptionAppend additional path segments:
Server-Side Identity Control
Disable identity sending for security-sensitive instance names:
#827
e20da53Thanks @threepointone! - Move workflow exports toagents/workflowssubpath for better separation of concerns.#811
f604008Thanks @threepointone! - ### Secure Email Reply RoutingThis release introduces secure email reply routing with HMAC-SHA256 signed headers, preventing unauthorized routing of emails to arbitrary agent instances.
Breaking Changes
Email utilities moved to
agents/emailsubpath: Email-specific resolvers and utilities have been moved to a dedicated subpath for better organization.The following remain in root:
routeAgentEmail,createHeaderBasedEmailResolver(deprecated).createHeaderBasedEmailResolverremoved: This function now throws an error with migration guidance. It was removed because it trusted attacker-controlled email headers for routing.Migration:
createAddressBasedEmailResolver(agentName)createSecureReplyEmailResolver(secret)with signed headersSee https://github.com/cloudflare/agents/blob/main/docs/email.md for details.
EmailSendOptionstype removed: This type was unused and has been removed.New Features
createSecureReplyEmailResolver: A new resolver that verifies HMAC-SHA256 signatures on incoming emails before routing. Signatures include a timestamp and expire after 30 days by default.signAgentHeaders: Helper function to manually sign agent routing headers for use with external email services.replyToEmailsigning: ThereplyToEmailmethod now accepts asecretoption to automatically sign outbound email headers.If an email was routed via
createSecureReplyEmailResolver, callingreplyToEmailwithout a secret will throw an error (pass explicitnullto opt-out).onNoRoutecallback:routeAgentEmailnow accepts anonNoRoutecallback for handling emails that don't match any routing rule.#813
7aebab3Thanks @threepointone! - update dependencies#800
a54edf5Thanks @threepointone! - Update dependencies#818
7c74336Thanks @threepointone! - update dependencies#812
6218541Thanks @threepointone! - # SynchronoussetStatewith validation hooksetState()is now synchronous instead of async. This improves ergonomics and aligns with the expected mental model for state updates.Breaking Changes
setState()returnsvoidinstead ofPromise<void>Existing code that uses
await this.setState(...)will continue to work without changes.onStateUpdate()no longer gates state broadcastsPreviously, if
onStateUpdate()threw an error, the state update would be aborted. Now,onStateUpdate()runs asynchronously viactx.waitUntil()after the state is persisted and broadcast. Errors inonStateUpdate()are routed toonError()but do not prevent the state from being saved or broadcast.If you were using
onStateUpdate()for validation, migrate tovalidateStateChange().New Features
validateStateChange()validation hookA new synchronous hook that runs before state is persisted or broadcast. Use this for validation:
Execution order
validateStateChange(nextState, source)- validation (sync, gating)onStateUpdate(nextState, source)- notifications (async viactx.waitUntil, non-gating)#815
ded8d3eThanks @threepointone! - docs: add OpenAI provider options documentation to scheduleSchemaWhen using
scheduleSchemawith OpenAI models via the AI SDK, users must now passproviderOptions: { openai: { strictJsonSchema: false } }togenerateObject. This is documented in the JSDoc forscheduleSchema.This is required because
@ai-sdk/openainow defaultsstrictJsonSchematotrue, which requires all schema properties to be in therequiredarray. ThescheduleSchemauses optional fields which are not compatible with this strict mode.Updated dependencies [
7aebab3,77be4f8,a54edf5,7c74336,99cbca0]:0.3.6
Patch Changes
#786
395f461Thanks @deathbyknowledge! - fix: allow callable methods to return this.state#783
f27e62cThanks @Muhammad-Bin-Ali! - fix saving initialize params for stateless MCP server (effects eliciations and other optional features)Updated dependencies [
93c613e]:0.3.5
Patch Changes
473e53cThanks @mattzcarey! - bump mcp sdk version to 1.25.2. changes error handling for not found see: https://redirect.github.com/cloudflare/agents/pull/752/changes#diff-176ef2d2154e76a8eb7862efb323210f8f1b434f6a9ff3f06abc87d8616855c9R25-R310.3.4
Patch Changes
#768
cf8a1e7Thanks @whoiskatrin! - pipe SQL errors into the existing onError method using a new SqlError class#771
87dc96dThanks [@threepointone](https://redirect.githuConfiguration
📅 Schedule: Branch creation - "on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.