Skip to content

Releases: cloudflare/workers-sdk

wrangler@4.116.0

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Minor Changes

  • #14907 beec0fb Thanks @NuroDev! - Avoid Worker and workers.dev naming prompts in agent-driven deploys

    Wrangler now derives the Worker name from the project and automatically registers the same project-derived workers.dev account subdomain on a first deploy when running in a detected agent environment. The deploy output explains how to change both names.

  • #14905 b21eac2 Thanks @jamesopstad! - The experimental build output directory now includes the Worker's configuration at .cloudflare/output/v0/workers/default/config.json instead of .cloudflare/output/v0/workers/<worker-name>/worker.config.json

  • #14893 bb09f1b Thanks @apeacock1991! - Graduate wrangler check startup from alpha and show bundle size and a local timing summary

    The command no longer prints an alpha warning. It now reports its local profile window, sampled active, garbage collection, and idle time alongside the raw and compressed bundle sizes. The existing measurement warning continues to distinguish these local measurements from startup time measured on Cloudflare.

  • #14685 01d7020 Thanks @edmundhung! - Add support for dispatching email handlers with createTestHarness

    You can now call server.getWorker().email({ from, to, raw }) to dispatch directly to a Worker's email() handler and inspect its outcome, rejection reason, forwarded messages, and replies.

    const result = await server.getWorker().email({
      from: "sender@example.com",
      to: "inbox@example.com",
      raw: [
        "From: Sender <sender@example.com>",
        "To: Inbox <inbox@example.com>",
        "Message-ID: <test@example.com>",
        "Subject: Test email",
        "",
        "Hello from the test harness",
      ].join("\r\n"),
    });
    
    expect(result).toMatchObject({
      outcome: "ok",
      forwards: [{ recipient: "archive@example.com" }],
      replies: [
        {
          sender: "inbox@example.com",
          raw: expect.stringContaining("Thanks for your email"),
        },
      ],
    });

Patch Changes

  • #14929 48f0c6c Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @cloudflare/workers-types ^5.20260722.1 ^5.20260730.1
    workerd 1.20260722.1 1.20260730.1
  • #14838 8049ca4 Thanks @TheSaiEaranti! - Fix ctrl+c not being able to interrupt wrangler while waiting for Cloudflare Access authorization

    When a domain is behind Cloudflare Access (for example during remote bindings startup), wrangler runs cloudflared access login, which only returns once the user completes the authorization flow in the browser. This was invoked synchronously, blocking Node's event loop, so wrangler could not react to ctrl+c (or anything else) until the authorization completed — abandoning the browser flow left a hung wrangler process that had to be killed externally. cloudflared is now spawned asynchronously, keeping wrangler responsive while it waits. The remote runtime passes its abort signal through to the spawn, so tearing down the session kills a still-pending cloudflared immediately, with process exit as a last-resort cleanup.

  • #14871 1394867 Thanks @nickpatt! - Include the local observability query endpoint in the agent-facing Local Explorer hint

    The hint wrangler dev prints for AI-agent sessions now lists POST /cdn-cgi/explorer/api/local/observability/query, so agents can discover the read-only SQL endpoint for captured request traces and console logs (the spans and logs tables) alongside the existing binding and storage routes.

  • #14918 cc54478 Thanks @nickpatt! - Improve the agent-facing Local Explorer hint for the observability query endpoint

    When a wrangler dev session is detected as running inside an AI agent, the hint for POST /local/observability/query now explains that the endpoint takes a read-only SQL query (SELECT/WITH only) over the captured spans and logs tables, notes that attributes is JSON (read via json(attributes)), and includes a copy-pasteable curl example. The full OpenAPI schema is demoted to a last-resort footer so agents reach for the small, actionable example first instead of fetching the large schema.

  • #14897 e31ab0f Thanks @ericclemmons! - Fix wrangler triggers deploy to use Vite-generated redirected configuration

    The command now reads .wrangler/deploy/config.json, matching wrangler deploy and wrangler versions upload, so generated Worker names and trigger settings are applied.

  • Updated dependencies [01d7020, 48f0c6c, d7f38c3, 5c25cfe, 1f61001]:

    • miniflare@4.20260730.0

miniflare@4.20260730.0

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Minor Changes

  • #14685 01d7020 Thanks @edmundhung! - Add JSON output to /cdn-cgi/handler/email

    The /cdn-cgi/handler/email endpoint now accepts ?format=json to return the email handler result as JSON, including its outcome, rejection reason, forwarded messages, and replies. Requests without format=json still return the existing text outcome for backward compatibility.

Patch Changes

  • #14929 48f0c6c Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    Dependency From To
    @cloudflare/workers-types ^5.20260722.1 ^5.20260730.1
    workerd 1.20260722.1 1.20260730.1
  • #14810 d7f38c3 Thanks @allocsys! - Fix the local Images binding transform (env.IMAGES.input(...).transform(...)) ignoring the fit, gravity, and background options. Previously, local dev always letterboxed transformed images with black bars regardless of the options passed in. Local dev now respects fit, gravity, and background, matching production Images binding behavior.

  • #14850 5c25cfe Thanks @exKAZUu! - Disable the keep-alive timeout on the loopback server

    The loopback server (which serves custom service bindings, @cloudflare/vite-plugin's module transport, and other workerd → Node callbacks) used Node's default server.keepAliveTimeout of 5 seconds. workerd pools and reuses connections to the loopback server, so Node closing an idle pooled socket raced with workerd sending the next request on it, making that request fail with Network connection lost. The failure is probabilistic and load-dependent; under @cloudflare/vite-plugin with a large SSR module graph and a cold optimizer cache (thousands of fetchModule calls with multi-second idle gaps between bursts), it broke most dev sessions. Disable the idle keep-alive timeout on the loopback server, mirroring the undici pools used for dispatch in the opposite direction.

  • #14914 1f61001 Thanks @nickpatt! - Capture Workflows invocations in local observability

    When local observability is enabled, the Workflows engine service is now attached to the trace collector (like every user worker), so workflow runs show up in the Local Explorer's Observability view attributed to the workflow. Previously the engine ran outside the per-user-worker tail wiring, so workflow invocations left no traces, spans, or logs in the local store.

create-cloudflare@2.70.16

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Patch Changes

  • #14908 301d6be Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    Dependency From To
    create-next-app 16.2.11 16.2.12
  • #14909 62dd693 Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    Dependency From To
    sv 0.16.5 0.16.6
  • #14910 6a03ffa Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    Dependency From To
    create-vike 0.0.668 0.0.670
  • #14911 e09da32 Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    Dependency From To
    create-astro 5.2.2 5.2.3
  • #14930 b89c2ae Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    Dependency From To
    create-vike 0.0.670 0.0.671
  • #14932 f820419 Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    Dependency From To
    @angular/create 22.0.8 22.0.9

@cloudflare/workers-utils@0.30.0

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Minor Changes

  • #14785 5e6556a Thanks @dario-piotrowicz! - Add toUrlPath and UrlPath exports

    toUrlPath(filePath) converts a file-system path into a URL-safe path by replacing backslashes with forward slashes and rejecting Windows drive-letter prefixes (e.g. C:). UrlPath is the branded string type it returns, letting callers prove at the type level that a string has been normalized for use in URLs.

@cloudflare/workers-auth@0.5.4

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Patch Changes

  • #14838 8049ca4 Thanks @TheSaiEaranti! - Fix ctrl+c not being able to interrupt wrangler while waiting for Cloudflare Access authorization

    When a domain is behind Cloudflare Access (for example during remote bindings startup), wrangler runs cloudflared access login, which only returns once the user completes the authorization flow in the browser. This was invoked synchronously, blocking Node's event loop, so wrangler could not react to ctrl+c (or anything else) until the authorization completed — abandoning the browser flow left a hung wrangler process that had to be killed externally. cloudflared is now spawned asynchronously, keeping wrangler responsive while it waits. The remote runtime passes its abort signal through to the spawn, so tearing down the session kills a still-pending cloudflared immediately, with process exit as a last-resort cleanup.

  • Updated dependencies [5e6556a]:

    • @cloudflare/workers-utils@0.30.0

@cloudflare/vitest-pool-workers@0.19.1

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Patch Changes

@cloudflare/vite-plugin@1.49.0

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Minor Changes

  • #14905 b21eac2 Thanks @jamesopstad! - The experimental build output directory now includes the Worker's configuration at .cloudflare/output/v0/workers/default/config.json instead of .cloudflare/output/v0/workers/<worker-name>/worker.config.json

Patch Changes

@cloudflare/runtime-types@0.0.7

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Patch Changes

@cloudflare/remote-bindings@0.0.4

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Patch Changes

  • Updated dependencies [01d7020, 48f0c6c, 8049ca4, d7f38c3, 5c25cfe, 5e6556a, 1f61001]:
    • miniflare@4.20260730.0
    • @cloudflare/workers-auth@0.5.4
    • @cloudflare/workers-utils@0.30.0
    • @cloudflare/deploy-helpers@0.6.3
    • @cloudflare/cli-shared-helpers@0.1.18

@cloudflare/pages-shared@0.13.162

Choose a tag to compare

@workers-devprod workers-devprod released this 30 Jul 16:26
96fd16f

Patch Changes