github cloudflare/workers-sdk wrangler@4.91.0

Minor Changes

  • #13822 c8be316 Thanks @edmundhung! - Add named tunnel support and tunnel shortcuts to wrangler dev

    You can now use wrangler dev --tunnel --tunnel-name <name> to start a dev session with an existing named Cloudflare Tunnel, or set --tunnel-name ahead of time and start it later by pressing t to start or close the tunnel. This gives you a stable public hostname for local development instead of the temporary trycloudflare.com URL used by Quick Tunnels.

Patch Changes

  • #13848 d4794a8 Thanks @MattieTK! - Condense repeated environment configuration warnings

    Wrangler now summarises repeated missing vars and define entries in environment configuration warnings. Experimental unsafe warnings are also only emitted once when the field appears at both the top level and in the active environment.

  • #13894 58b4403 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    workerd 1.20260508.1 1.20260511.1
  • #13780 4352f87 Thanks @matingathani! - Normalize legacy instance type aliases (standardstandard-1, devlite) to prevent phantom EDIT diffs on every deploy

  • #13834 a9e6741 Thanks @matingathani! - fix: hotkeys now work with Caps Lock enabled

    Wrangler's dev server hotkeys (e.g. b to open browser and x to exit) did not respond when Caps Lock was enabled. These hotkeys now work consistently whether or not Caps Lock is on.

  • #13750 da664d5 Thanks @matingathani! - fix: automatically delete log files older than 30 days and add WRANGLER_WRITE_LOGS=false to disable disk logging

    Wrangler previously accumulated log files in ~/.wrangler/logs/ indefinitely, causing some users to accumulate gigabytes of logs over time.

    Log files older than 30 days are now automatically cleaned up on the first log write. Disk logging can be disabled entirely by setting WRANGLER_WRITE_LOGS=false.

  • #13914 bdc398c Thanks @Maximo-Guk! - preserve native shape of non-string vars in worker previews

    wrangler preview previously coerced every non-string entry in previews.vars (arrays, objects, numbers, booleans) into a plain_text binding via JSON.stringify, so at runtime the worker saw a literal string instead of the value declared in wrangler.jsonc. wrangler deploy already serializes non-string vars as json bindings so the Workers runtime parses them back into native JS values; previews now match.

    Before:

    // wrangler.jsonc — previews.vars
    { "ALLOWLIST": ["a@example.com", "b@example.com"] }
    // runtime
    typeof env.ALLOWLIST === "string" // true (was '["a@example.com","b@example.com"]')

    After:

    typeof env.ALLOWLIST === "object"; // Array.isArray(env.ALLOWLIST) === true
  • #13778 1420f10 Thanks @maxwellpeterson! - Propagate unsafe.bindings and service binding cross_account_grant to worker previews

    Worker previews now propagate unsafe.bindings declared on the previews config block to the deployment metadata, mirroring the deploy-time behavior. Without this, internal binding shapes that wrangler doesn't yet model (notably service bindings carrying cross_account_grant) were silently dropped on previews while working fine on regular deploys. The same change wires through cross_account_grant on typed services bindings.

  • Updated dependencies [58b4403, f781a2b]:

    • miniflare@4.20260511.0

Don't miss a new workers-sdk release

NewReleases is sending notifications on new releases.