Minor Changes
-
#14119
2047a32Thanks @tahmid-23! - Serve local R2 bucket objects publicly via the dev serverWhen running
wrangler devlocally, objects in each local R2 binding are now reachable under/cdn-cgi/local/r2/public/<bucket-id>/<key>on the existing dev server, simulating a public bucket. The<bucket-id>is the bucket'sbucket_namewhen set, otherwise itsbinding. Bindings configured withremote: trueare not exposed. -
#14202
e8561c2Thanks @jamesopstad! - Add experimental--x-new-configflag for authoring config in TypeScriptThis is an experimental, opt-in feature. When enabled,
wrangler dev,wrangler build,wrangler deploy,wrangler versions upload, andwrangler versions deployload the Worker's configuration from acloudflare.config.tsfile instead ofwrangler.json/wrangler.jsonc/wrangler.toml. Additionally, an optionalwrangler.config.tsfile can be provided for Wrangler-specific dev/build configuration.cloudflare.config.ts(required) — Worker runtime configuration (bindings, triggers, observability, placement, limits, compatibility, routes, etc.). Authored viadefineWorkerfromwrangler/experimental-config.wrangler.config.ts(optional) — Tooling / bundling / dev-server configuration (noBundle,minify,alias,define,rules,tsconfig,build,dev,assetsDirectory, etc.). Authored viadefineWranglerConfigfromwrangler/experimental-config.
Per-environment configuration is via
ctx.modebranching inside the function form of either file.Example
cloudflare.config.ts:import { defineWorker, bindings } from "wrangler/experimental-config"; import * as entrypoint from "./src/index.ts" with { type: "cf-worker" }; export default defineWorker((ctx) => ({ name: "my-worker", entrypoint, compatibilityDate: "2026-05-18", env: { MY_KV: bindings.kv(), MY_TEXT: bindings.text(`The mode is ${ctx.mode}`), }, }));
Example
wrangler.config.ts:import { defineWranglerConfig } from "wrangler/experimental-config"; export default defineWranglerConfig({ minify: true, assetsDirectory: "./public", });
Because this is experimental, the flag, the config formats, and the
wrangler/experimental-configexports may change in any release.
Patch Changes
-
#14185
98c9afeThanks @penalosa! - Use the shared env-credential resolver from@cloudflare/workers-authNo user-facing behaviour change. Credential resolution order (global API key + email →
CLOUDFLARE_API_TOKEN→ stored OAuth token) is preserved. -
#14184
e305126Thanks @penalosa! - Add an experimentalcf-wranglerdelegate entrypoint for projects that can't use@cloudflare/vite-plugin(service workers, old compatibility dates, Python, Rust, etc.).cf-wrangler devstarts the same local dev server aswrangler dev— it sits directly on wrangler's internal dev server, so the bundling and runtime behaviour are identical — but exposes a deliberately narrow CLI surface (--mode,--port,--host,--local) for a parent CLI to delegate to, and other dev server config options are read from the wrangler config file.This replaces the separate
@cloudflare/wrangler-bundlerpackage. This is an internal integration point and is not intended to be run directly by users. -
#14246
f3990b2Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260609.1 1.20260610.1 -
#14256
4597f08Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260610.1 1.20260611.1 -
#14243
25722acThanks @com6056! - Fix a memory leak that could make long-running headlesswrangler devsessions unresponsiveLong-running
wrangler devsessions with no DevTools attached (for example using the containers feature under sustained traffic) could gradually consume unbounded memory and eventually stop accepting connections. The inspector proxy now only enables network tracking while a DevTools client is connected, so the buildup no longer happens. Interactive debugging is unaffected. Fixes #14191. -
#14230
41f75c0Thanks @dario-piotrowicz! - Improve D1 error messages for missing or conflicting optionsError messages for
d1 execute,d1 export,d1 time-travel restore, andd1 insightsnow clearly state which option is missing or conflicting, explain why the combination is invalid, and suggest how to fix the issue.Additionally, duration validation errors in
d1 insightsare now thrown asUserErrorinstead of plainError, ensuring they are displayed cleanly to users rather than as unexpected crashes. -
#14213
10b5538Thanks @dario-piotrowicz! - Improve authentication error messages with specific failure reasonsWhen authentication fails (e.g. during
wrangler dev --remoteor when using remote bindings), the error message now explains exactly what went wrong -- whether no credentials were found, the token expired, or the environment is non-interactive -- and lists actionable steps to fix it, including awrangler whoamitip.Previously, auth failures could produce multiple confusing errors (e.g. "Failed to fetch auth token: 400 Bad Request" followed by "Failed to start the remote proxy session"). Now a single, clear error is shown.
-
#14233
818c105Thanks @dario-piotrowicz! - Improve R2 Sippy error messagesNow error messages in
wrangler r2 bucket sippyfollow a consistent pattern: they describe what is missing, name the exact--flagto use, and provide context (e.g. example values, links to the dashboard). Previously, many errors said only "Error: must provide --flag." with no guidance on what the flag does or how to obtain the value. -
#14259
2ae6099Thanks @emily-shen! - Move worker build step earlier in deploy/upload step, before upload specific config validation -
Updated dependencies [
f3990b2,4597f08,2047a32]:- miniflare@4.20260611.0