chore(deps): update dependency miniflare to v4#63
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
Conversation
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the
Comment |
commit: |
19d429f to
c06c210
Compare
8a83174 to
61fd395
Compare
4706ae6 to
34a4e14
Compare
34a4e14 to
036e539
Compare
c6bfec6 to
3e7b082
Compare
3e7b082 to
86658c2
Compare
fa03fb7 to
8bd532b
Compare
ef59e9b to
68fcc97
Compare
71bacf4 to
e5437b8
Compare
b832efd to
9a6a6a7
Compare
d2ec3b2 to
eb8199a
Compare
b7d4dcb to
5bc2df1
Compare
843796e to
072ddee
Compare
fd2679b to
9af4674
Compare
5c2fc42 to
c9387ec
Compare
b0d9113 to
573b4b5
Compare
cb37494 to
9e73bf1
Compare
5e815e8 to
5f0c14c
Compare
2867454 to
f0d9bb0
Compare
f0d9bb0 to
a11f057
Compare
a11f057 to
4bbc5ad
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:
^3.20250718.3→^4.0.0Release Notes
cloudflare/workers-sdk (miniflare)
v4.20260430.0Compare Source
Minor Changes
#13726
b5ac54bThanks @penalosa! - Hard fail on Node.js < 22Wrangler no longer supports Node.js 20.x, as it reached end-of-life on 2026-04-30. The minimum supported Node.js version is now 22.0.0. See https://github.com/nodejs/release?tab=readme-ov-file#end-of-life-releases.
#13390
0bf64a7Thanks @Ltadrian! - Fix Hyperdrive binding issue where some customers are unable to connect to local databases usingwrangler dev#13565
b04eedfThanks @vaishnav-mk! - Add restart from step support for local Workflows developmentWorkflow instances can now be restarted from a specific step in local development. When restarting from a step, all earlier steps preserve their cached results and replay instantly, while the target step and everything after it re-execute.
The
WorkflowInstance.restart()method now accepts an optional{ from: { name, count?, type? } }parameter to specify which step to restart from.#13618
c07d0cbThanks @jamesopstad! - Support V2 protocol for module fallback serviceWhen the
new_module_registrycompatibility flag is set, requests sent tounsafeModuleFallbackService()use a different protocol. Miniflare now supports both protocols and exports aparseModuleFallbackRequest()utility to ease handling.Patch Changes
#13732
22e1a61Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13754
00523c8Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13723
e653edfThanks @edmundhung! - Exposesend_emailbindings fromgetPlatformProxy()Projects developing in Node can now access
send_emailbindings from the platform proxy. This supports the plain-object MessageBuilder API locally, so calls likeenv.EMAIL.send({ from, to, subject, text })no longer fail because the binding is missing.#12514
e1eff94Thanks @ascorbic! - fix: normalise typed array subclasses in devalue serializationNode.js
BufferextendsUint8Arraybut isn't available in all runtimes. When aBufferwas passed through the proxy serialization bridge (e.g. as a D1 bind parameter viagetPlatformProxy()), the reviver would fail because"Buffer"isn't in the allowed constructor list and may not exist onglobalThisin workerd.The reducer now normalises subclass constructor names to the nearest standard typed array parent before serialization, matching structured clone behaviour.
#13116
e539008Thanks @dario-piotrowicz! - Gracefully handle a missing assets directory by starting with zero assetsPreviously, configuring Miniflare with an
assets.directorythat did not exist on disk would cause the asset services to fail to start. This is a common situation duringwrangler devwhen the assets directory is a build output that hasn't been generated yet.Now, when the configured assets directory does not exist, Miniflare creates an empty temporary directory and starts the asset services with zero assets. Once the real directory is created and
setOptions()is called (e.g. triggered by the file watcher), Miniflare reloads and begins serving the actual assets.#13363
6457fb3Thanks @courtney-sims! - Prepares router-worker for a more gradual rollout by refactoring and separating out the invocation from the business logic. In the future, this will provide space for us to route requests to new versions of router-worker based on their plan, but should make no functional difference today.v4.20260426.0Compare Source
Minor Changes
#13599
21b87b2Thanks @Ltadrian! - Add extended sslmode support for Hyperdrive local dev. This adds support for sslmodes verify-full / verify-ca for Postgres and VERIFY_IDENTITY / VERIFY_CA for MySQL#13617
118027dThanks @roerohan! - Force Flagship bindings to always use remote mode in local devFlagship bindings now always access the remote Flagship service during local development, matching the behavior of AI bindings. Previously, Flagship supported both local and remote modes, but the local stub only returned default values, providing no real functionality and creating a dual source of truth for flag evaluations.
The
remoteconfig field is retained for backward compatibility but only controls whether a warning is displayed. Settingremote: truesuppresses the warning that Flagship bindings always access remote resources and may incur usage charges in local dev.Patch Changes
#13696
62e9f2aThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13652
033d6ecThanks @emily-shen! - fix: allow multiple workers with browser bindings in devYou can now run multiple workers with multiple browser bindings in miniflare. Previously, this would crash with
kj/table.c++:49: failed: inserted row already exists in table.#13649
ae8eae3Thanks @petebacondarwin! - Fix service binding and tail consumerpropsbeing dropped between workers in different local dev instancesWhen a service binding or tail consumer configured with
propstargeted a worker running in a separatewrangler devinstance (via the dev registry), thepropswere silently dropped and the remote entrypoint saw an emptyctx.props. Props are now forwarded correctly across the dev registry boundary, matching the behavior users get when all workers run in a single instance.The target worker's
SessionEntryentrypoint now correctly receives{ tenant: "acme" }onctx.propsregardless of which local dev instance it runs in.#13668
ef24ff2Thanks @for-the-kidz! - FixTypeError: rules is not iterablein the router-worker whenstatic_routingis configured withoutuser_workerrulesThe router-worker's static-routing include-rule evaluation passed
config.static_routing.user_workerdirectly to the matcher, which iterates withfor...of. Whenstatic_routingwas set butuser_workerwas omitted, the matcher threwTypeError: rules is not iterableand failed the request. The adjacentasset_workerbranch already falls back to[]in this case; theuser_workerbranch now does the same.#13654
6d27479Thanks @pombosilva! - fix: Preserve internal counter suffix on workflow step names in local explorer APIStop stripping the
-Nsuffix from step names in the API response so the UI can distinguish duplicate step names. The suffix is now stripped only visually in the UI.v4.20260424.0Compare Source
Minor Changes
#13234
7fc50c1Thanks @natewong1313! - Support serving videos locally, addpublicUrloption for stable stream preview URLs, and add caption upload support via ReadableStreamVideos uploaded while in local mode are now served at
/cdn-cgi/mf/stream/<video-id>/watch. Thepreviewfield inStreamVideois now directly fetchable during development.A new
publicUrloption onMiniflareOptionsallows callers (e.g. Wrangler, the Vite plugin) to advertise a stable, externally-reachable URL for the Miniflare instance. When set, Stream preview URLs use this value instead of the runtime entry URL, so they remain valid across runtime restarts and port changes. The same value is also exposed as a mutableminiflare.publicUrlproperty.The helper functions
buildPublicUrlandgetLocallyAccessibleHostare now exported fromminiflare, enabling consumers to construct client-reachable URLs that correctly handle IPv6 addresses (bracketing) and wildcard listen addresses (0.0.0.0,::,*→127.0.0.1).Caption uploads via
ReadableStreamare now supported in local mode. They no longer throw a "not supported in local mode" error.Patch Changes
#13633
3494842Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13645
7d728fbThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13657
df9319dThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13659
3ceeec3Thanks @petebacondarwin! - Make the dev registry watcher reliable on WindowsThe filesystem-based dev registry used
chokidarwith default settings, which on Windows backs ontofs.watch(ReadDirectoryChangesW). That API is known to drop or delay create events for files added shortly after the watcher attaches, which is especially common under CI virtualization. When this happened, a process that had attached its watcher before another process registered its worker would never be notified of the new entry until the next 30-second heartbeat — long enough to time out cross-process service-binding calls.Switch to chokidar's polling mode on Windows so the dev registry observes cross-process worker registrations reliably. The registry directory is small and a 100ms poll interval has negligible cost. Non-Windows platforms continue to use the more efficient native filesystem-event backend.
#13560
7567ef7Thanks @vaishnav-mk! - Preserve NonRetryableError message and name when theworkflows_preserve_non_retryable_error_messagecompatibility flag is enabled, instead of replacing it with a generic error message.#13644
377715dThanks @MattieTK! - Update@clack/coreand@clack/promptsto v1.2.0Bumps the bundled
@clack/coredependency used internally by@cloudflare/clifrom0.3.xto1.2.0, and the@clack/promptsdependency increate-cloudflarefrom0.6.xto1.2.0. Clack v1 includes a number of API changes, but no user-facing prompt behaviour changes are expected.v4.20260421.0Compare Source
Patch Changes
#13615
8fec8b8Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13613
2f3d7b9Thanks @dario-piotrowicz! - Fix sourcemap warnings caused by references to files outside the package boundaryminiflare's bundled sourcemap contained
sourcesentries pointing intonode_modulesdependencies (zod, capnp-es, chokidar, etc.), which produced dozens of warnings in pnpm monorepos when tools like Vite or Vitest validated the sourcemaps at runtime. The build now inlinessourcesContentand patches any null entries left by upstream dependencies that don't publish their original source filesv4.20260420.0Compare Source
Minor Changes
#13326
4a9ba90Thanks @mattzcarey! - Add Artifacts binding support to wranglerYou can now configure Artifacts bindings in your wrangler configuration:
Type generation produces the correct
Artifactstype reference from the workerd type definitions:#12600
50bf819Thanks @penalosa! - Useworkerd's debug port to power cross-process service bindings, Durable Objects, and tail workers via the dev registry. This enables Durable Object RPC via the dev registry, and is an overall stability improvement.Patch Changes
#13515
b35617bThanks @petebacondarwin! - fix: close all open handles on dispose to prevent process hangsSeveral resources were not being properly cleaned up during
Miniflare.dispose(), which could leave the Node.js event loop alive and cause processes (particularly tests usingnode --test) to hang instead of exiting cleanly:Poolused to dispatch fetch requests to the workerd runtime was not closed. Lingering TCP sockets from this pool could keep the event loop alive indefinitely.WebSocketServerinstances for live reload and WebSocket proxying were never closed, leaving connected clients' sockets open.InspectorProxywas not closing its runtime WebSocket connection, relying on process death to break the connection.HyperdriveProxyController.dispose()had a missingreturnin a.map()callback, causingPromise.allSettledto resolve immediately without waiting fornet.Serverinstances to close.ProxyClientBridgewas not clearing its finalization batchsetTimeoutduring disposal.InspectorProxyController.dispose()was not callingserver.closeAllConnections()beforeserver.close(), so active HTTP keep-alive or WebSocket connections could prevent the close callback from firing.#13557
8ca78bbThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13579
b6e1351Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13604
d8314c6Thanks @petebacondarwin! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#12913
7f50300Thanks @Sigmabrogz! - fix(miniflare): use 127.0.0.1 for internal loopback when localhost is configuredWhen
localhostis configured as the host, Node.js may bind to[::1](IPv6) while workerd resolveslocalhostto127.0.0.1(IPv4) first. This mismatch causes connection refused errors and 100% CPU spins.This fix ensures the internal loopback communication between Node.js and workerd always uses
127.0.0.1whenlocalhostis configured, while preserving the user-facing URL aslocalhost.#13470
4fda685Thanks @penalosa! - fix: prevent remote binding sessions from expiring during long-running dev sessionsPreview tokens for remote bindings expire after one hour. Previously, the first request after expiry would fail before a refresh was triggered. This change proactively refreshes the token at 50 minutes so no request ever sees an expired session.
The reactive recovery path is also improved:
error code: 1031responses (returned by bindings such as Workers AI when their session times out) now correctly trigger a refresh, where previously onlyInvalid Workers Preview configurationHTML responses did.Auth credentials are now resolved lazily when a remote proxy session starts rather than at bundle-complete time. This means that if your OAuth access token has been refreshed since
wrangler devstarted, the new token is used rather than the one captured at startup.#13586
be5e6a0Thanks @petebacondarwin! - Fix resource leaks during config updatesTwo follow-up fixes to the dispose cleanup in #13515:
runtimeDispatcherbehavior. Previously, every config update unconditionally tore down and rebuilt the connection pool, which could cause brief request failures if a registry push was in-flight.InspectorProxyinstances before replacing them duringupdateConnection(). Previously, stale proxies were silently discarded, leaking their runtime WebSocket connections and 10-second keepalive interval timers.#13577
e456952Thanks @connyay! - ReturnEmailSendResultfrom thesend_emailbinding'ssend()in local modeThe binding's
send()used to resolve toundefined. It now returns{ messageId: string }, the same shape as the publicSendEmailtype in production. Workers that read the return value (for logging, or to pass the id downstream) no longer getundefinedunder miniflare.Both branches synthesize an id in the shape production returns —
<{36 alphanumeric chars}@​{sender domain}>, angle brackets included — using the envelopefromfor theEmailMessagepath and the builder'sfromfor theMessageBuilderpath. Production synthesizes its own id rather than echoing anything submitted, so miniflare does the same.#13516
4eb1da9Thanks @jonnyparris! - Rename "Browser Rendering" to "Browser Run" in all user-facing strings, error messages, and CLI output.#13557
8ca78bbThanks @dependabot! - RenameFlagstype toFlagshipto match the upstream rename in@cloudflare/workers-typesThe
Flagstype was renamed toFlagshipin@cloudflare/workers-types. This updates the import and the return type ofgetFlagshipBindingaccordingly.#11849
266c418Thanks @43081j! - Removed unused devDependencies from miniflare package.v4.20260415.0Compare Source
Patch Changes
#13354
854d66cThanks @courtney-sims! - Prepares asset-worker for a more gradual rollout by refactoring and separating out the invocation from the business logic. In the future, this will provide space for us to route requests to new versions of asset-worker based on their plan, but should make no functional difference today.#13450
6f63eaaThanks @petebacondarwin! - Fix POST/PUT requests with non-2xx responses throwing "fetch failed"Previously, sending a POST or PUT request that received a non-2xx response (e.g. 401, 400, 403) would throw a
TypeError: fetch failederror. This was caused by an undici bug whereisTraversableNavigable()incorrectly returnedtrue, causing the 401 credential-retry block to execute in Node.js and fail on stream-backed request bodies. This has been fixed upstream in undici v7.24.8, so we've bumped our dependency and removed the previous pnpm patch workaround.#13447
aef9825Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13475
eaaa728Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13472
58292f6Thanks @roerohan! - Fixwrangler devcrash when using a Flagship binding withremote: trueIn remote mode, the flagship binding is backed by a generic proxy worker that only has a default export. The plugin was requesting a named entrypoint
"FlagshipBinding"which doesn't exist on it, causing workerd to reject the binding at startup. The named entrypoint is now omitted in remote mode so workerd routes to the default export, which correctly proxies all RPC calls to the remote Flagship service.#13386
5e5bbc1Thanks @mksglu! - Make startup network requests non-blocking on slow connectionsWrangler makes network requests during startup (npm update check,
request.cfdata fetch) that previously blocked the CLI indefinitely on slow or degraded connections (airplane wifi, trains), causing 10+ second delays.update-checklibrary's auth-retry path.request.cffetch: The fetch toworkers.cloudflare.com/cf.jsonnow usesAbortSignal.timeout(3000), falling back to cached/default data on timeout.#13476
d5ff5a4Thanks @roerohan! - Fixwrangler devcrash when using a Stream binding withremote: trueIn remote mode, the Stream binding is backed by a generic proxy worker that only has a default export. The plugin was requesting a named entrypoint
"StreamBinding"which doesn't exist on it, causing workerd to reject the binding at startup. The named entrypoint is now omitted in remote mode so workerd routes to the default export, which correctly proxies all RPC calls to the remote Stream service.#13426
89c7829Thanks @edmundhung! - Reject non-local/cdn-cgi/*requests in MiniflareMiniflare now validates
HostandOriginon/cdn-cgi/*requests before request rewriting. Requests are still allowed for localhost, configured route hostnames, and the configured upstream hostname, but non-local hostnames can no longer reach internal development endpoints such as platform-proxy, handler routes, live reload, and the local explorer.v4.20260410.0Compare Source
Minor Changes
#13139
79fd529Thanks @roerohan! - feat: add Flagship feature flag binding supportAdds end-to-end support for the Flagship feature flag binding, which allows Workers to evaluate feature flags from Cloudflare's Flagship service. Configure it in
wrangler.jsonwith aflagshiparray containingbindingandapp_identries. In local dev, the binding returns default values for all flag evaluations; use"remote": truein the binding to evaluate flags against the live Flagship service.#13392
2589395Thanks @emily-shen! - Add telemetry to local REST APIThe local REST API (used by the local explorer) now collects anonymous usage telemetry. This respects any existing telemetry preferences, which can be disabled by running the command
wrangler telemetry disable.This only applies when the dev session is started via Wrangler, and not via the Vite plugin or standalone Miniflare.
No actual data values, keys, query contents, or resource IDs are collected.
Event schema:
{ "event": "localapi.<route>.<method>", // e.g. localapi.kv.keys.get "deviceId": "<uuid>", "timestamp": 1234567890, "properties": { "userAgent": "Mozilla/5.0 ...", // Only for localapi.local.workers.get: "workerCount": 2, "kvCount": 3, "d1Count": 1, "r2Count": 0, "doCount": 1, "workflowsCount": 0 } }Note: the Local Explorer and corresponding local REST API is still an experimental feature.
Patch Changes
#13393
c50cb5bThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13335
5eff8c1Thanks @KennethRuan! - Return metadata in queue broker responseThe queue broker's
/messageand/batchendpoints now return a JSON response body containing queue metrics (backlogCount,backlogBytes,oldestMessageTimestamp) instead of an empty response. A newGET /metricsendpoint is also added to support themetrics()API.v4.20260409.0Compare Source
Minor Changes
#13133
42c7ef0Thanks @emily-shen! - explorer: list DO instances with name where possibleNote: The local explorer is a WIP experimental feature.
#13336
a42e0e8Thanks @emily-shen! - local explorer: fix handling on resources that are bound to multiple workersNote the local explorer is a experimental feature still.
Patch Changes
#13337
c510494Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13362
8b71ecaThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
v4.20260405.0Compare Source
Minor Changes
#13240
a3e3b57Thanks @emily-shen! - local explorer: serve the local explorer's OpenAPI spec at /cdn-cgi/explorer/apiThe local explorer is supported by a REST API served from the worker's local address. It can be accessed independently of the UI, (e.g. by an AI agent) and is thus documented at this endpoint.
#13314
7a60d4bThanks @Ltadrian! - Fix hyperdrive local dev binding tls configuration bugPatch Changes
#13241
7d318e1Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13305
fa6d84fThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13241
7d318e1Thanks @dependabot! - Update Images binding local mock to use chainable handle patternhosted.image(imageId)now returns a handle withdetails(),bytes(),update(), anddelete()methods, aligning with the updated workerd API (cloudflare/workerd#6288).v4.20260401.0Compare Source
Minor Changes
#13051
d5bffdeThanks @dario-piotrowicz! - DeprecatesupportedCompatibilityDateexportThe
supportedCompatibilityDateexport is now deprecated. Instead of relying on the workerd-derived compatibility date, callers should just use today's date directly, e.g.new Date().toISOString().slice(0, 10).#13011
b9b7e9dThanks @ruifigueira! - Add experimental headful browser rendering support for local developmentWhen developing locally with the Browser Rendering API, you can enable headful (visible) mode via the
X_BROWSER_HEADFULenvironment variable to see the browser while debugging:Note: when using
@cloudflare/playwright, two Chrome windows may appear — the initial blank page and the one created bybrowser.newPage(). This is expected behavior due to how Playwright handles browser contexts via CDP.#12992
48d83caThanks @RiscadoA! - Addvpc_networksbinding support for routing Worker traffic through a Cloudflare Tunnel or network.{ "vpc_networks": [ // Route through a specific Cloudflare Tunnel { "binding": "MY_FIRST_VPC", "tunnel_id": "<tunnel-id>" }, // Route through the Cloudflare One mesh network { "binding": "MY_SECOND_VPC", "network_id": "cf1:network" } ] }Patch Changes
#13155
5d29055Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13162
fb67a18Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13238
b2f53eaThanks @guybedford! - Fix source phase imports parsing in MiniflareMiniflare now uses the
acorn-import-phasesplugin to parseimport sourcesyntax when analyzing module dependencies. This fixesERR_MODULE_PARSEerrors when running Workers that use source phase imports for WebAssembly modules in local development.v4.20260329.0Compare Source
Minor Changes
#13025
9eff028Thanks @ruifigueira! - Add missing devtools endpoints to browser rendering local binding.The local browser rendering binding now implements the full set of devtools endpoints, matching the remote Browser Rendering API:
GET /v1/limits— returns local concurrency defaultsGET /v1/history— returns empty array (no persistence in local dev)GET /v1/devtools/session- list and inspect active sessionsGET /v1/devtools/session/:id— list and inspect active sessionGET /v1/devtools/browser/:id/json/version— Browser version metadata, includes webSocketDebuggerUrlGET /v1/devtools/browser/:id/json/list— A list of all available websocket targetsGET /v1/devtools/browser/:id/json— Alias forGET /v1/devtools/browser/:id/jsonGET /v1/devtools/browser/:id/json/protocol— The current devtools protocol, as JSON. Includes webSocketDebuggerUrl and devtoolsFrontendUrlPUT /v1/devtools/browser/:id/json/new— Opens a new tab. Responds with the websocket target data for the new tabGET /v1/devtools/browser/:id/json/activate/:target— Brings a page into the foreground (activate a tab)GET /v1/devtools/browser/:id/json/close/:target— Closes the target page identified by targetIdGET /v1/devtools/browser/:id/page/:target— WebSocket connection to a page targetGET /v1/devtools/browser/:id— WebSocket connection to a previously acquired browser sessionDELETE /v1/devtools/browser/:id— Closes a browser sessionPOST /v1/devtools/browser— Acquires a new sessionGET /v1/devtools/browser— Acquire a new session and connect via WebSocket in one step, returningcf-browser-session-idheader#13086
d4c6158Thanks @pombosilva! - Add Workflows support to the local explorer UI.The local explorer (
/cdn-cgi/explorer/) now includes a full Workflows dashboard for viewing and managing workflow instances during local development.UI features:
Patch Changes
#13111
f214760Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
#13078
9282493Thanks @penalosa! - Fix noisy EBUSY errors on Windows when disposing Miniflare instancesOn Windows,
workerdmay not release file handles immediately after disposal, causingEBUSYerrors when Miniflare tries to remove its temporary directory duringdispose(). Previously, this error propagated to the caller (e.g. vitest-pool-workers), producing repeated noisy error messages in test output. The cleanup is now best-effort — matching the existing exit hook behaviour — since the temporary directory lives inos.tmpdir()and will be cleaned up by the OS.#13090
a532eeaThanks @edmundhung! - RemoveLOCAL_EXPLORER_BASE_PATHandLOCAL_EXPLORER_API_PATHconstants in favor ofCorePaths.EXPLORERThese were redundant aliases introduced before
CorePathswas centralized. All internal consumers now useCorePaths.EXPLORERdirectly.v4.20260317.3Compare Source
Minor Changes
#13027
9fcdfcaThanks @G4brym! - feat: Addai_search_namespacesandai_searchbinding typesTwo new binding types for AI Search:
ai_search_namespaces: Namespace binding —namespaceis required and auto-provisioned at deploy time if it doesn't exist (like R2 buckets)ai_search: Single instance binding bound directly to a pre-existing instance in the default namespaceBoth are remote-only in local dev.
#13030
0386553Thanks @natewong1313! - Add local mode support for Stream bindingsMiniflare and
wrangler devnow support using Cloudflare Stream bindings locally.Supported operations:
upload()— upload video via URLvideo(id).details(),.update(),.delete(),.generateToken()videos.list()captions.generate(),.list(),.delete()downloads.generate(),.get(),.delete()watermarks.generate(),.list(),.get(),.delete()The following are not yet supported in local mode and will throw:
createDirectUpload()FileFileData is persisted across restarts by default. You must set
streamPersist: falsein Miniflare options to disable persistence.Patch Changes
#12686
1faff35Thanks @edmundhung! - Move internal proxy endpoint to reserved/cdn-cgi/pathThe internal HTTP endpoint used by
getPlatformProxyhas been moved to a reserved path. This is an internal change with no impact on thegetPlatformProxyAPI.#13080
f4ea4acThanks @penalosa! - fix: glob patterns for module rules no longer match double-extension filenames likefoo.wasm.jsPreviously, the
globsToRegExpshelper compiled glob patterns without a trailing$anchor. This caused patterns like**/*.wasmto match any path containing.wasmas a substring — including filenames such asfoo.wasm.jsormain.wasm.test.ts.When using
@cloudflare/vitest-pool-workerswith awrangler.configPath, Wrangler's defaultCompiledWasmmodule rule (**/*.wasm) was silently applied to test files whose names contained.wasm, causing them to be loaded as WebAssembly binaries instead of JavaScript and failing at runtime.The fix restores the
$end anchor in the compiled regex so that**/*.wasmonly matches paths that literally end in.wasm, while the leading^remains absent to allow matching anywhere within an absolute path.v4.20260317.2Compare Source
Patch Changes
#11753
b8f3309Thanks @ruifigueira! - Added the following improvements to local Browser Rendering binding in Miniflare:#12986
5aaaab2Thanks @petebacondarwin! - fix: allow mixedd1Databasesrecords containing both string and object entriesPreviously, passing a
d1Databasesconfig that mixed plain string values and object entries (e.g.{ MY_DB: "db-name", OTHER_DB: { id: "...", remoteProxyConnectionString: ... } }) would cause Miniflare to throw an error. Both forms are now acceConfiguration
📅 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.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.