Releases: cloudflare/workers-sdk
wrangler@4.80.0
Minor Changes
-
#13151
9c4035bThanks @G4brym! - Add type generation for AI Search bindingsRunning
wrangler typesnow generatesAiSearchNamespaceandAiSearchInstancetypes forai_search_namespacesandai_searchconfig bindings respectively. Both simple and per-environment modes are supported.// Generated by `wrangler types` interface Env { AI_SEARCH: AiSearchNamespace; BLOG_SEARCH: AiSearchInstance; }
-
#13011
b9b7e9dThanks @ruifigueira! - Add experimental headful browser rendering support for local developmentExperimental: This feature may be removed or changed without notice.
When 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:X_BROWSER_HEADFUL=true wrangler dev X_BROWSER_HEADFUL=true vite dev
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:
Dependency From To workerd 1.20260329.1 1.20260331.1 -
#13162
fb67a18Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260331.1 1.20260401.1 -
#13136
ab44870Thanks @petebacondarwin! - Display build errors for auxiliary workers in multi-worker modePreviously, when running
wrangler devwith multiple-cconfig flags (multi-worker mode), build errors from auxiliary/secondary workers were only logged at debug level, causing Wrangler to silently hang. Build errors from all workers are now displayed at error level so you can see what went wrong and fix it. -
#12992
48d83caThanks @RiscadoA! - Fix remote proxy worker not catching errors thrown by bindings duringwrangler dev -
#13238
b2f53eaThanks @guybedford! - Fix source phase imports in bundled and non-bundled WorkersWrangler now preserves
import sourcesyntax when it runs esbuild, including module format detection and bundled deploy output. This fixes both--no-bundleand bundled deployments for Workers that import WebAssembly using source phase imports. -
#10126
14e72ebThanks @nekoze1210! - fix: Sort D1 migration files to ensure consistent chronological orderingwrangler d1 migrations listandwrangler d1 migrations applypreviously returned migration files in an order dependent on the filesystem, which could vary across operating systems. Migration filenames are now sorted alphabetically before being returned, ensuring consistent chronological ordering. -
#13150
4dc94fdThanks @dario-piotrowicz! - Polish Cloudflare Vite plugin installation during autoconfigProjects using Vite 6.0.x were rejected by auto-configuration because the minimum supported version was set to 6.1.0 (the
@cloudflare/vite-pluginpeer dependency). The minimum version check is now 6.0.0, and when a project has Vite in the [6.0.0, 6.1.0) range, auto-configuration will automatically upgrade it to the latest 6.x before installing@cloudflare/vite-plugin. -
#13051
d5bffdeThanks @dario-piotrowicz! - Use today's date as the default compatibility datePreviously, when generating a compatibility date for new projects or when no compatibility date was configured, the date was resolved by loading the locally installed
workerdpackage viaminiflare. This approach was unreliable in some package manager environments (notablypnpm). The logic now simply uses today's date instead, which is always correct and works reliably across all environments. -
Updated dependencies [
5d29055,fb67a18,d5bffde,b9b7e9d,b2f53ea,48d83ca]:- miniflare@4.20260401.0
miniflare@4.20260401.0
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 developmentExperimental: This feature may be removed or changed without notice.
When 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:X_BROWSER_HEADFUL=true wrangler dev X_BROWSER_HEADFUL=true vite dev
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:
Dependency From To workerd 1.20260329.1 1.20260331.1 -
#13162
fb67a18Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260331.1 1.20260401.1 -
#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.
create-cloudflare@2.66.2
Patch Changes
-
#13051
d5bffdeThanks @dario-piotrowicz! - Use today's date as the default compatibility datePreviously, when generating a compatibility date for new projects or when no compatibility date was configured, the date was resolved by loading the locally installed
workerdpackage viaminiflare. This approach was unreliable in some package manager environments (notablypnpm). The logic now simply uses today's date instead, which is always correct and works reliably across all environments.
@cloudflare/workers-utils@0.15.0
Minor Changes
-
#13011
b9b7e9dThanks @ruifigueira! - Add experimental headful browser rendering support for local developmentExperimental: This feature may be removed or changed without notice.
When 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:X_BROWSER_HEADFUL=true wrangler dev X_BROWSER_HEADFUL=true vite dev
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. -
#13051
d5bffdeThanks @dario-piotrowicz! - RemoveformatCompatibilityDatefrom the package's public exportsThis utility has been removed from the public API. Callers should use
getTodaysCompatDate()from@cloudflare/workers-utilsinstead. -
#13051
d5bffdeThanks @dario-piotrowicz! - RemovegetLocalWorkerdCompatibilityDatefrom the packageThis utility has been removed because its implementation besides being unreliable is no longer needed. Callers should now use today's date as the compatibility date directly, e.g. via
getTodaysCompatDate()from@cloudflare/workers-utils. -
#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" } ] } -
#13051
d5bffdeThanks @dario-piotrowicz! - AddgetTodaysCompatDate()utility functionReturns today's date as a
YYYY-MM-DDstring.
@cloudflare/vitest-pool-workers@0.14.1
Patch Changes
-
#13131
65acf66Thanks @dario-piotrowicz! - Use miniflare'shandleStructuredLogsoption instead ofhandleRuntimeStdiofor processing workerd outputPreviously,
vitest-pool-workersmanually processed raw stdout/stderr streams from the workerd runtime viahandleRuntimeStdio, with its own filtering of known noisy messages (e.g. LLVM symbolizer warnings). This switches to miniflare'shandleStructuredLogsoption, which parses workerd's structured JSON log output and automatically filters known unhelpful messages. This aligns with how bothwranglerandvite-plugin-cloudflarehandle workerd logs. -
Updated dependencies [
9c4035b,5d29055,fb67a18,d5bffde,ab44870,48d83ca,b2f53ea,b9b7e9d,14e72eb,4dc94fd,b2f53ea,d5bffde,48d83ca]:- wrangler@4.80.0
- miniflare@4.20260401.0
@cloudflare/vite-plugin@1.31.0
Minor Changes
-
#13011
b9b7e9dThanks @ruifigueira! - Add experimental headful browser rendering support for local developmentExperimental: This feature may be removed or changed without notice.
When 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:X_BROWSER_HEADFUL=true wrangler dev X_BROWSER_HEADFUL=true vite dev
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. -
#13051
d5bffdeThanks @dario-piotrowicz! - UpdategetLocalWorkerdCompatibilityDateto return today's dateThe re-exported
getLocalWorkerdCompatibilityDatefunction from@cloudflare/vite-pluginpreviously resolved the workerd compatibility date by traversing the localminiflareinstallation, which was unreliable in some package manager setups. It now simply returns today's date. The function is also marked as deprecated — callers should just use today's date instead, for example like so:new Date().toISOString().slice(0, 10)
Patch Changes
-
#13125
f76652cThanks @kayluhb! - Fix SyntaxError when SSR-transformed module ends with a single-line commentWhen module code ends with a
//comment (e.g.//# sourceMappingURL=...preserved by vite-plus), the closing}of the async wrapper inrunInlinedModulewas absorbed into the comment, causingSyntaxError: Unexpected end of input. Adding a newline before the closing brace prevents this. -
#13188
110002cThanks @shulaoda! - Normalize the return value ofgetAssetsDirectory()withvite.normalizePath()to ensureassets.directoryin the outputwrangler.jsonalways uses forward slashes -
Updated dependencies [
9c4035b,5d29055,fb67a18,d5bffde,ab44870,48d83ca,b2f53ea,b9b7e9d,14e72eb,4dc94fd,b2f53ea,d5bffde,48d83ca]:- wrangler@4.80.0
- miniflare@4.20260401.0
@cloudflare/pages-shared@0.13.121
@cloudflare/cli@1.4.0
Minor Changes
-
#13144
db60b94Thanks @dario-piotrowicz! - Add gitignore helpers for appending Wrangler-related entriesNew
maybeAppendWranglerToGitIgnoreandmaybeAppendWranglerToGitIgnoreLikeFilefunctions that automatically append Wrangler-related entries (.wrangler,.dev.vars*,.env*, and their negated example patterns) to.gitignoreor similar ignore files. Existing entries are detected and skipped to avoid duplicates.
wrangler@4.79.0
Minor Changes
-
#12868
ffbc268Thanks @danielgek! - Addwrangler ai-searchcommand namespace for managing Cloudflare AI Search instancesIntroduces a CLI surface for the Cloudflare AI Search API (open beta), including:
- Instance management:
ai-search list,create,get,update,delete - Semantic search:
ai-search searchwith repeatable--filter key=valueflags - Instance stats:
ai-search stats
The
createcommand uses an interactive wizard to guide configuration. All commands require authentication viawrangler login. - Instance management:
-
#13097
cd0e971Thanks @pombosilva! - Add--localflag to Workflows commands for interacting with local devAll Workflows CLI commands now support a
--localflag that targets a runningwrangler devsession instead of the Cloudflare production API. This uses the/cdn-cgi/explorer/api/workflowsendpoints served by the local dev server.wrangler workflows list --local wrangler workflows trigger my-workflow '{"key":"value"}' --local wrangler workflows instances describe my-workflow latest --local wrangler workflows instances pause my-workflow <id> --local --port 9000By default, commands continue to hit remote (production). Pass
--localto opt in, and optionally--portto specify a custom dev server port (defaults to 8787).
Patch Changes
-
#13050
ed20a9bThanks @dario-piotrowicz! - Add minimum and maximum version checks for frameworks during auto-configurationWhen Wrangler automatically configures a project, it now validates the installed version of the detected framework before proceeding:
- If the version is below the minimum known-good version, the command exits with an error asking the user to upgrade the framework.
- If the version is above the maximum known major version, a warning is emitted to let the user know the framework version has not been officially tested with this feature, and the command continues.
-
#13111
f214760Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260317.1 1.20260329.1 -
#13079
746858aThanks @penalosa! - FixgetPlatformProxyandunstable_getMiniflareWorkerOptionscrashing whenassetsis configured without adirectorygetPlatformProxyandunstable_getMiniflareWorkerOptionsnow skip asset setup when the config has anassetsblock but nodirectory— instead of throwing "missing requireddirectoryproperty". This happens when an external tool like@cloudflare/vite-pluginhandles asset serving independently. -
#13112
9aad27fThanks @dario-piotrowicz! - Fix autoconfig failing onwakuprojects that usehonoWaku has a tight integration with Hono, causing both to be detected simultaneously and triggering a "multiple frameworks found" error. Hono is now filtered out when Waku is also detected.
-
#13113
1fc5518Thanks @dario-piotrowicz! - Skip lock file warning for static projects during autoconfigPreviously, running autoconfig on a static project (one with no framework detected) would emit a misleading warning about a missing lock file, suggesting the project might be in a workspace. Since static projects don't require a lock file, this warning is now suppressed for them.
-
#13072
b539dc7Thanks @jbwcloudflare! - Skip unnecessaryGET /versions?deployable=trueAPI call inwrangler versions deploywhen all version IDs are explicitly provided and--yesis passedWhen deploying a specific version non-interactively (e.g.
wrangler versions deploy <id> --yes), Wrangler previously always fetched the full list of deployable versions to populate the interactive selection prompt — even though the prompt is skipped entirely when--yesis used and all versions are already specified. The deployable-versions list is now only fetched when actually needed (i.e. when no version IDs are provided, or when running interactively). -
#13115
2565b1dThanks @dario-piotrowicz! - Improve error message when the assets directory path points to a file instead of a directoryPreviously, if the path provided as the assets directory (via
--assetsflag orassets.directoryconfig) pointed to an existing file rather than a directory, Wrangler would throw an unhelpfulENOTDIRsystem error when trying to read the_redirectsfile inside it. Now Wrangler detects this condition earlier and throws a clear user error. -
Updated dependencies [
9eff028,f214760,9282493,a532eea,d4c6158]:- miniflare@4.20260329.0
miniflare@4.20260329.0
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:
- Workflow instance list with status badges, creation time, action buttons, and pagination
- Status summary bar with instance counts per status
- Status filter dropdown and search
- Instance detail page with step history, params/output cards, error display, and expandable step details
- Create instance dialog with optional ID and JSON params
Patch Changes
-
#13111
f214760Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260317.1 1.20260329.1 -
#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.

