chore(deps): update all non-major dependencies#288
Merged
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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:
^2.0.10→^2.0.15^2.31.0→^2.31.1^1.2.116→^1.2.118^1.2.89→^1.2.901.2.91^4.9.0→^4.10.0^0.10.7→^0.10.8^6.0.7→^6.0.8^6.0.7→^6.0.8^3.5.38→^3.5.40^3.5.39→^3.5.40>=0.16.0→>=0.17.4^7.0.22→^7.0.31^2.20.0→^2.22.0^2.20.0→^2.22.022→22.23.111.6.0→11.15.011.15.110.34.3→10.34.5^2.10.4→^2.10.5^8.1.4→^8.1.5^3.5.38→^3.5.40^3.5.39→^3.5.40Release Notes
vercel/ai (@ai-sdk/mcp)
v2.0.15Compare Source
Patch Changes
d84ea43: fix(mcp): accept OAuth metadata without code challenge methodscd06458]v2.0.14Compare Source
Patch Changes
48e7e78: Harden MCP Apps handling of server-supplied resource metadata and the host/iframe bridge:_meta.uiand drop malformed or non-string fields.sandbox.allowedPermissionsallowlist.postMessagetarget origin and validate inbound message origins.resources/readtoui://resources and allow onlyhttps/http/mailtoinui/open-link.fingerprintMCPAppResource/detectMCPAppResourceDriftfor pinning and comparing app resources.v2.0.13Compare Source
Patch Changes
31c7be8]v2.0.12Compare Source
Patch Changes
4be62c1]7805e4a]cd12954]changesets/changesets (@changesets/cli)
v2.31.1Compare Source
Patch Changes
15cf592Thanks @ingvaldlorentzen! - Fixed already-published version detection with npm 12, which always wraps successfulnpm info --jsonoutput in an array. The unwrapped output madechangeset publishtreat every package as unpublished and fail attempting to republish existing versions.nuxt/ui (@nuxt/ui)
v4.10.0Compare Source
Features
actionsprop for tool approval (#6694) (1a3a9dc)unmountOnHideprop (#6523) (f03f98b)closeandcloseIconprops (#6669) (53e88a4)loadingandloadingIconprops (#6707) (86cd25c)unmountOnHideprop (#6626) (4deb61b), closes #5839 #3605@nuxt/iconclient bundle (#6633) (8d46034)enableTouchprop (#6626) (54125f3), closes #2346claudeaction (#6693) (7bdcb13)getScrollElementvirtualize option (#6650) (a84de85)getScrollElementvirtualize option (#6657) (7e6d0f7)Bug Fixes
$attrsto root element whentoprop is absent (#6628) (d3b5f1d)data-slotto component root (#6643) (c9c5232)prefers-reduced-motionin animations (#6723) (f951529)arrowdownto shiftable keys (#6702) (2128414)aria-disabledattribute when disabled (#6653) (c3b2996)useRoute().fullPathreactive across navigations (#6696) (c256997)relprop to internal links (#6677) (276302e)localePathfails (#6637) (906e8fd)hookOncein colors plugin (#6658) (e4ca579)create-item(#6689) (a71dece)defaultVariantsoverridewithDefaults(#6686) (f5e58fb)Performance Improvements
sideEffectsfor barrel tree-shaking (#6729) (2cc2849)useComponentPropsfrom the component-types barrel (#6648) (6576fb8)nuxt-hub/core (@nuxthub/core)
v0.10.8Compare Source
compare changes
🩹 Fixes
📖 Documentation
🤖 CI
❤️ Contributors
vitejs/vite-plugin-vue (@vitejs/plugin-vue)
v6.0.8Features
Bug Fixes
vuejs/core (@vue/compiler-sfc)
v3.5.40Compare Source
Bug Fixes
v3.5.39Compare Source
Bug Fixes
cloudflare/agents (agents)
v0.17.4Compare Source
Patch Changes
#1902
a9d78c0Thanks @mattzcarey! - Always apply the Worker-safeCfWorkerJsonSchemaValidatorto MCP client connections by default.MCPClientConnectionnow owns the default (merged in its constructor), so every construction path uses the Worker-safe validator unless the caller supplies their own — including the RPCaddMcpServer(name, namespace)path viaMCPClientManager.connect(), which previously skipped it. Without the default, the MCP SDK fell back to its AJV validator when a server exposed tools withoutputSchema; AJV compiles schemas withnew Function, which Workers disallows, failing discovery with "Code generation from strings disallowed for this context".connect()now builds connections throughcreateConnection()instead of duplicating construction, so the two paths can no longer drift. Caller-suppliedclient.jsonSchemaValidatoroverrides are respected on the live connection; because validator instances cannot survive JSON serialization, they are no longer persisted, and a previously persisted, serialization-degraded validator is ignored on restore — after hibernation the connection falls back to the Worker-safe default instead of failing discovery.#1903
3ba6a78Thanks @mattzcarey! - MCP client: url-mode elicitation support with a real elicitation handlerelicitation/createrequests bycalling
this.mcp.configureElicitationHandlers({ form, url }), typically inonStart(). The advertised modes are persisted with each MCP server, soconnections restored after Durable Object hibernation re-advertise them at
the handshake and the handlers re-attach when onStart runs.
handled: they advertise exactly the modes with configured handlers at the
initialize handshake; without handlers they advertise no elicitation
capability. An explicit
client.capabilities.elicitation(e.g. viaaddMcpServer) always wins,is persisted with the server options, and survives hibernation — it is no
longer clobbered by a hardcoded value.
#1925
762998dThanks @mattzcarey! - MCP client: consume the persisted capability seed at first use instead of at restore-time readThe capability stamp persisted on each MCP server row (used to re-advertise elicitation modes at the handshake after Durable Object hibernation) was read-and-cleared when the connection object was created, before any connection attempt. Wakes that never reached a handshake burned it: a restore that parked on a pending OAuth flow, or a wake interrupted between restore and
onStartre-stamping the rows, left the next wake's connections negotiating without the elicitation capability until some later reconnect.The stamp is now read without clearing and only cleared once a seeded handshake actually completes in a session that has not configured handlers, preserving the one-successful-restore semantics: after the seed is used in a completed handshake it no longer re-advertises stale modes, and any
configureElicitationHandlerscall still re-stamps every row. Sessions with handlers configured own their row stamps, so a handshake there (e.g. re-adding a server under a stable id) keeps the fresh stamp in place for the next wake.#1910
9e1b733Thanks @mattzcarey! - MCP client: advertise no elicitation capability when no handler is configuredConnections without an elicitation handler previously advertised form-mode
elicitation while rejecting every elicitation request that arrived, so
spec-compliant servers chose elicitation over their fallback flows and the
tool call failed mid-flight. Connections now advertise the elicitation
capability only when it can be handled: form mode, URL mode, or both, based on
handlers configured via
this.mcp.configureElicitationHandlers({ form, url }).Connections without handlers advertise no elicitation capability, letting
servers fall back gracefully.
An explicit
client.capabilities.elicitationdeclaration remains authoritative.Only advertise modes your Agent can handle.
#1869
f274903Thanks @mattzcarey! - FixaddMcpServer()reportingreadyfor an HTTP MCP connection that was restored while OAuth is still in progress.For an existing
AUTHENTICATINGconnection,addMcpServer()now prefers the live authorization URL, otherwise returns a persisted absolute HTTP(S) authorization URL. If neither is available, it reconnects the existing connection without re-registering it: a new authorization URL is returned and persisted, a connected result is discovered before returningready, and failed or incomplete OAuth results throw instead of falling through toready.v0.17.3Compare Source
Patch Changes
58eea18Thanks @threepointone! - trigger a releasev0.17.1Compare Source
Patch Changes
#1826
1bbd9bcThanks @threepointone! - Add a tight, OOM-specific retry budget to chat recovery so a memory-limit crash loop seals fast and attributably (#1825).When a recovery turn hits a Durable Object memory-limit reset (the isolate exceeded its 128 MB limit), recovery now classifies it as a distinct, deterministic failure rather than a deploy-style transient. A memory reset re-OOMs on re-run (the turn's working set, not the platform, is the cause), so it must NOT be deferred and retried forever like a code-update/connection-lost transient. Each such crash bumps a durable per-incident
oomAttemptscounter; recovery retries a small number of times (newchatRecovery.maxOomRetries, default3) — in case the OOM was a transient spike — then seals withreason="out_of_memory". This is far tighter than the genericmaxRecoveryWorkbackstop because an OOM is attributable and each re-run re-runs the model.This complements the finite
maxRecoveryWorkdefault: the OOM budget is the fast path for memory resets that surface as catchable errors thrown from recovery bookkeeping (e.g. storage/SQL rejections after the reset), whilemaxRecoveryWorkremains a backstop for the hard-kill case where no in-isolate code runs to record the OOM.Adds an alarm-boundary circuit breaker (
agents) as the universal backstop for the case the in-DO budgets can't catch (#1825): a memory-limit reset that bypasses them entirely — thrown before the budget code runs (e.g. boot-time state hydration OOMs), or whose own small writes also OOM under memory pressure. Left unhandled, such an error propagates out ofalarm()and the platform auto-retries the alarm forever, re-running the doomed, billable turn each cycle.Agent.alarm()now intercepts ONLY Durable Object memory-limit resets at the outermost frame — where the heavy turn has unwound and GC has reclaimed its footprint, so the seal/purge writes can land where mid-turn ones OOMed. A durable strike counter tolerates a few resets (newstatic options.maxAlarmMemoryLimitStrikes, default3) — backing off the looping rows so the retry is not a hot loop — then seals the recovery (out_of_memory) and surgically purges only the looping schedule rows, leaving unrelated scheduled tasks intact. A newalarm:memory_limit_resetobservability event is emitted. Everything except memory-limit resets re-throws exactly as before.Also broadens and exports the
isDurableObjectMemoryLimitReset(error)predicate fromagents(a sibling toisDurableObjectCodeUpdateReset/isPlatformTransientError): it now matches the shared"exceeded its memory limit"fragment so truncated/reworded surfacings (observed in real #1825 logs) still classify.#1826
1bbd9bcThanks @threepointone! - Fix neverending chat-recovery retries when a Durable Object isolate runs out of memory mid-turn (#1825).chatRecovery.maxRecoveryWorknow defaults to a generous finite backstop (1000) instead ofInfinity. An isolate that exceeds its memory limit and is reset mid-stream has usually already streamed a little content, which bumps the durable progress counter. On the next wake recovery reads that as forward progress and resets both progress-keyed bounds — the attempt cap (maxAttempts) and the no-progress window (noProgressTimeoutMs) — and because each crash lands inside the alarm-debounce window the attempt counter is pinned too. With the work budget disabled (Infinity), no instrument could ever seal the turn, so recovery re-ran the turn (and its LLM calls) forever. The work meter is the one signal that keeps climbing across such a loop, so a finite default seals a runaway withreason="work_budget_exceeded"instead of looping.Work only accrues from the first interruption until the turn completes, so a normal interrupted turn never approaches the cap. A very long agentic turn that legitimately produces a large amount of content under heavy interruption can raise
maxRecoveryWork(or set it toInfinityto restore the previous fully-unbounded behavior, ideally paired with ashouldKeepRecoveringpredicate that bounds the runaway via real token/cost accounting).v0.17.0Compare Source
Minor Changes
#1758
6b46b04Thanks @threepointone! - Add progress signalling and durable milestones for agent-tool sub-agents(#1758, rfc-detached-agent-tools §progress, phases 4a + 4b).
A sub-agent running as an agent tool (awaited or detached/background) can now
report mid-run progress:
These signals ride the child's own turn stream as a transient
data-agent-progresspart, so they re-broadcast to the parent's connectedclients and surface on
AgentToolRunState.progressviauseAgentToolEvents— abackground-runs tray can render a live bar / phase / status line without drilling
in. Highlights:
reportProgress({ fraction?, message?, phase?, data? }, { persist? })onchat agents (
@cloudflare/think,AIChatAgent); a no-op with a dev warning onthe base
Agentand when called outside an active agent-tool run. The frameworkresolves the run id from the active turn — no threading required. Bursts are
coalesced (latest-wins; a
fraction >= 1"done" frame always flushes).datais live-only unless
{ persist: true }.onProgress(run, progress)parent hook, fired best-effort from the tailfor both awaited and detached runs.
progress_json+last_signal_aton its run row and surfaces it throughinspectAgentToolRun().progress, so a rehydrated parent reconstructs progressafter eviction.
reported at least one signal, the backbone gives up if it then goes silent for
detachedNoProgressBudgetMs(default 1h; per-run override viadetached: { noProgressBudgetMs }), surfaced asinterruptedwith theno-progressreason. A child that never reports is bounded only by the absolutedetachedMaxBudgetMsceiling — we never give up on a run merely for being slow.v0.16.2Compare Source
Patch Changes
#1767
f03dee6Thanks @threepointone! - Reduce Think Durable Object SQLite reads during normal wakes and text-only turns.Think now avoids automatic media-eviction scans until hydration has been windowed or an oversized appended message has been observed. The shared resumable stream buffer also avoids per-wake metadata-column introspection by creating new tables with the current columns and lazily migrating legacy tables only when a stream write needs it.
#1722
9f8e14bThanks @mattzcarey! - Fix two MCP client OAuth bugs found by the new conformance suite, and add MCP conformance testing.MCPClientConnectionnow finishes OAuth on the transport that received the 401. A fresh transport loses the resource metadata URL from theWWW-Authenticateheader, so token exchange fell back to the default/tokenpath and failed against authorization servers at non-default locations.MCPClientConnection.init()detaches the previous transport before reconnecting. Re-authorizing after a mid-session 401 (scope step-up, token revocation) previously failed permanently with "Already connected to a transport".@modelcontextprotocol/conformancesuite (as used by the MCP TypeScript SDK) running against the MCP client (Agent+MCPClientManager),McpAgent, andcreateMcpHandler+WorkerTransport— all hosted in workerd viawrangler dev. Seepackages/agents/conformance/README.md.#1767
f03dee6Thanks @threepointone! - Cache the active branch tip inAgentSessionProviderso finding the latest leaf no longer scans the whole session on every read and append.latestLeafRow()previously ran an anti-join over every message row (O(rows)) to locate the branch tip — on each hydration AND each auto-parent append, so on long transcripts it dominated a wake's read cost. The tip is now maintained in place on append/delete/clear; a cached tip is re-validated on read with an O(1) existence + still-childless check (so it self-heals if another writer deletes the tip or gives it a child), and the full scan only runs when that check fails or the cache is cold. Per-hydration and per-append tip lookups drop from O(rows) to O(1), and the full scan never runs more often than before.v0.16.1Compare Source
Patch Changes
#1757
92a5ba1Thanks @threepointone! - Bump thepartyserverdependency to^0.5.8, which base64-encodes thex-partykit-propsheader so props containing non-ASCII characters (e.g.accented names) no longer trigger workerd's "header value contains non-ASCII
characters" warning (which throws a
TypeErrorin browser fetchimplementations). The header is decoded back to the original Unicode payload on
the server, and raw-JSON values from older callers are still accepted for
backwards compatibility.
#1754
151d457Thanks @threepointone! - Pin accepted WebSocket connections tobinaryType = "arraybuffer". On Workercompatibility_dates>= 2026-03-17the runtime defaults a server WebSocket'sbinaryTypeto"blob"(thewebsocket_standard_binary_typeflag), so binaryframes arrive as
Blobinstead ofArrayBuffer. The Agent protocol and everydownstream consumer (e.g.
@cloudflare/voiceaudio frames, useronMessagehandlers that check
message instanceof ArrayBuffer) have always relied onArrayBuffer. The Agent now setsconnection.binaryType = "arraybuffer"when aconnection is established, restoring the historical contract regardless of
compatibility date without requiring the
no_websocket_standard_binary_typeflag. (The hibernatable
webSocketMessagehandler always deliversArrayBuffer, so this only affects non-hibernating agents.)Also bumps the
partyserverdependency to^0.5.7, which pinsbinaryTypeatthe connection layer (
accept()), accepts non-hibernating connections inhalf-open mode, and suppresses retryable transport-teardown errors on
already-closing/closed connections. With partyserver now pinning
binaryTypeitself, the Agent's own pin becomes defense-in-depth (kept for older partyserver
versions and custom connections) and runs once per connection per isolate
lifetime instead of on every state access.
#1754
151d457Thanks @threepointone! - Add Browser Run Live View support to the browser tools. Thecdpconnectorgains a
getLiveViewUrl({ targetId?, mode? })tool that returns a link a humancan open to watch and control a session in real time — the building block for
human-in-the-loop handoffs (login, MFA, CAPTCHA, sensitive input), paired with
the runtime's durable approval pause.
BrowserConnectoralso exposes ahost-side
liveView()helper for surfacing the shared session's Live View URLsin your own UI; each
BrowserLiveViewTargetincludes the tab's currentpageUrlso you can label tabs and filter out blank/internal pages. NewLiveViewMode,BrowserLiveView,BrowserLiveViewTarget, andBrowserLiveViewUrltypes are exported fromagents/browser.#1754
151d457Thanks @threepointone! - Add Browser Run Quick Actions to the browser tools: stateless, one-shotbrowsing that needs only the
browserbinding — no Durable Object, loader, orsandbox. New primitives in
agents/browser(browserMarkdown,browserExtract,browserLinks,browserScrape,browserContent,browserSnapshot,browserScreenshot,browserPdf, plusrunQuickAction)wrap the
quickAction()binding and unwrap its{ success, result }envelope.A new
createQuickActionTools({ browser })(fromagents/browser/ai) returnsAI SDK tools (
browser_markdown,browser_extract,browser_links,browser_scrape, opt-inbrowser_content) so an agent can read a pageConfiguration
📅 Schedule: (UTC)
🚦 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.