releases.shpreview
Cloudflare/Workers SDK

Workers SDK

$npx -y @buildinternet/releases show cloudflare-workers-sdk
Mon
Wed
Fri
AprMayJunJulAugSepOctNovDecJanFebMarApr
Less
More
Releases247Avg81/moVersions@cloudflare/vite-plugin@1.21.1 → wrangler@4.83.0
Apr 2, 2026

Patch Changes

  • #13051 d5bffde Thanks @dario-piotrowicz! - Use today's date as the default compatibility date

    Previously, when generating a compatibility date for new projects or when no compatibility date was configured, the date was resolved by loading the locally installed workerd package via miniflare. This approach was unreliable in some package manager environments (notably pnpm). The logic now simply uses today's date instead, which is always correct and works reliably across all environments.

Minor Changes

  • #13051 d5bffde Thanks @dario-piotrowicz! - Deprecate supportedCompatibilityDate export

    The supportedCompatibilityDate export 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 b9b7e9d Thanks @ruifigueira! - Add experimental headful browser rendering support for local development

    Experimental: 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_HEADFUL environment 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 by browser.newPage(). This is expected behavior due to how Playwright handles browser contexts via CDP.

  • #12992 48d83ca Thanks @RiscadoA! - Add vpc_networks binding 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 5d29055 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    workerd1.20260329.11.20260331.1
  • #13162 fb67a18 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    workerd1.20260331.11.20260401.1
  • #13238 b2f53ea Thanks @guybedford! - Fix source phase imports parsing in Miniflare

    Miniflare now uses the acorn-import-phases plugin to parse import source syntax when analyzing module dependencies. This fixes ERR_MODULE_PARSE errors when running Workers that use source phase imports for WebAssembly modules in local development.

Minor Changes

  • #13011 b9b7e9d Thanks @ruifigueira! - Add experimental headful browser rendering support for local development

    Experimental: 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_HEADFUL environment 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 by browser.newPage(). This is expected behavior due to how Playwright handles browser contexts via CDP.

  • #13051 d5bffde Thanks @dario-piotrowicz! - Remove formatCompatibilityDate from the package's public exports

    This utility has been removed from the public API. Callers should use getTodaysCompatDate() from @cloudflare/workers-utils instead.

  • #13051 d5bffde Thanks @dario-piotrowicz! - Remove getLocalWorkerdCompatibilityDate from the package

    This 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 48d83ca Thanks @RiscadoA! - Add vpc_networks binding 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 d5bffde Thanks @dario-piotrowicz! - Add getTodaysCompatDate() utility function

    Returns today's date as a YYYY-MM-DD string.

Patch Changes

Minor Changes

  • #13151 9c4035b Thanks @G4brym! - Add type generation for AI Search bindings

    Running wrangler types now generates AiSearchNamespace and AiSearchInstance types for ai_search_namespaces and ai_search config bindings respectively. Both simple and per-environment modes are supported.

    // wrangler.json
    {
      "ai_search_namespaces": [
        { "binding": "AI_SEARCH", "namespace": "production" }
      ],
      "ai_search": [
        { "binding": "BLOG_SEARCH", "instance_name": "cloudflare-blog" }
      ]
    }
    
    // Generated by `wrangler types`
    interface Env {
      AI_SEARCH: AiSearchNamespace;
      BLOG_SEARCH: AiSearchInstance;
    }
  • #13011 b9b7e9d Thanks @ruifigueira! - Add experimental headful browser rendering support for local development

    Experimental: 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_HEADFUL environment 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 by browser.newPage(). This is expected behavior due to how Playwright handles browser contexts via CDP.

  • #12992 48d83ca Thanks @RiscadoA! - Add vpc_networks binding 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 5d29055 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    workerd1.20260329.11.20260331.1
  • #13162 fb67a18 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    workerd1.20260331.11.20260401.1
  • #13136 ab44870 Thanks @petebacondarwin! - Display build errors for auxiliary workers in multi-worker mode

    Previously, when running wrangler dev with multiple -c config 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 48d83ca Thanks @RiscadoA! - Fix remote proxy worker not catching errors thrown by bindings during wrangler dev

  • #13238 b2f53ea Thanks @guybedford! - Fix source phase imports in bundled and non-bundled Workers

    Wrangler now preserves import source syntax when it runs esbuild, including module format detection and bundled deploy output. This fixes both --no-bundle and bundled deployments for Workers that import WebAssembly using source phase imports.

  • #10126 14e72eb Thanks @nekoze1210! - fix: Sort D1 migration files to ensure consistent chronological ordering

    wrangler d1 migrations list and wrangler d1 migrations apply previously 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 4dc94fd Thanks @dario-piotrowicz! - Polish Cloudflare Vite plugin installation during autoconfig

    Projects using Vite 6.0.x were rejected by auto-configuration because the minimum supported version was set to 6.1.0 (the @cloudflare/vite-plugin peer 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 d5bffde Thanks @dario-piotrowicz! - Use today's date as the default compatibility date

    Previously, when generating a compatibility date for new projects or when no compatibility date was configured, the date was resolved by loading the locally installed workerd package via miniflare. This approach was unreliable in some package manager environments (notably pnpm). 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

Patch Changes

  • #13131 65acf66 Thanks @dario-piotrowicz! - Use miniflare's handleStructuredLogs option instead of handleRuntimeStdio for processing workerd output

    Previously, vitest-pool-workers manually processed raw stdout/stderr streams from the workerd runtime via handleRuntimeStdio, with its own filtering of known noisy messages (e.g. LLVM symbolizer warnings). This switches to miniflare's handleStructuredLogs option, which parses workerd's structured JSON log output and automatically filters known unhelpful messages. This aligns with how both wrangler and vite-plugin-cloudflare handle 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

Minor Changes

  • #13144 db60b94 Thanks @dario-piotrowicz! - Add gitignore helpers for appending Wrangler-related entries

    New maybeAppendWranglerToGitIgnore and maybeAppendWranglerToGitIgnoreLikeFile functions that automatically append Wrangler-related entries (.wrangler, .dev.vars*, .env*, and their negated example patterns) to .gitignore or similar ignore files. Existing entries are detected and skipped to avoid duplicates.

Mar 31, 2026

Patch Changes

  • #13106 c8c44a7 Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    DependencyFromTo
    create-react-router7.13.17.13.2
  • #13107 687f144 Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    DependencyFromTo
    create-astro5.0.35.0.4
  • #13108 3a8a24c Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    DependencyFromTo
    @angular/create21.2.321.2.5
  • #13109 9deba25 Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    DependencyFromTo
    create-waku0.12.5-1.0.0-alpha.5-00.12.5-1.0.0-alpha.6-0
  • #13110 71059be Thanks @dependabot! - Update dependencies of "create-cloudflare"

    The following dependency versions have been updated:

    DependencyFromTo
    create-vue3.22.03.22.1

Patch Changes

  • #13111 f214760 Thanks @dependabot! - Add missing connect key to WorkerEntrypoint and DurableObject key lists in the runner worker

    The connect method was added to the WorkerEntrypoint and DurableObject types in workerd 1.20260329.1 but was missing from the WORKER_ENTRYPOINT_KEYS and DURABLE_OBJECT_KEYS arrays used for RPC property access in the Vite plugin runner worker. This caused the compile-time exhaustiveness check to fail with the updated workers-types.

  • Updated dependencies [ffbc268, 9eff028, ed20a9b, f214760, 746858a, 9aad27f, 1fc5518, b539dc7, 9282493, a532eea, cd0e971, d4c6158, 2565b1d]:

    • wrangler@4.79.0
    • miniflare@4.20260329.0

Patch Changes

  • #13105 ff41b07 Thanks @petebacondarwin! - fix: resolve TypeError: createRenderer is not a function when built with Vite 8

    Vite 8 switched its bundler from Rollup to rolldown. The @cloudflare/style-provider package ships a hybrid ESM+CJS build (its es/ directory uses require() internally), which rolldown mishandles by generating an anonymous, unreachable module initializer — leaving createRenderer as undefined at runtime.

    Fixed by aliasing @cloudflare/style-provider to its CJS entry (lib/index.js) in vite.config.ts. Rolldown handles plain CJS correctly via its interop layer.

Minor Changes

  • #13025 9eff028 Thanks @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 defaults
    • GET /v1/history — returns empty array (no persistence in local dev)
    • GET /v1/devtools/session - list and inspect active sessions
    • GET /v1/devtools/session/:id — list and inspect active session
    • GET /v1/devtools/browser/:id/json/version — Browser version metadata, includes webSocketDebuggerUrl
    • GET /v1/devtools/browser/:id/json/list — A list of all available websocket targets
    • GET /v1/devtools/browser/:id/json — Alias for GET /v1/devtools/browser/:id/json
    • GET /v1/devtools/browser/:id/json/protocol — The current devtools protocol, as JSON. Includes webSocketDebuggerUrl and devtoolsFrontendUrl
    • PUT /v1/devtools/browser/:id/json/new — Opens a new tab. Responds with the websocket target data for the new tab
    • GET /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 targetId
    • GET /v1/devtools/browser/:id/page/:target — WebSocket connection to a page target
    • GET /v1/devtools/browser/:id — WebSocket connection to a previously acquired browser session
    • DELETE /v1/devtools/browser/:id — Closes a browser session
    • POST /v1/devtools/browser — Acquires a new session
    • GET /v1/devtools/browser — Acquire a new session and connect via WebSocket in one step, returning cf-browser-session-id header
  • #13086 d4c6158 Thanks @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 f214760 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    workerd1.20260317.11.20260329.1
  • #13078 9282493 Thanks @penalosa! - Fix noisy EBUSY errors on Windows when disposing Miniflare instances

    On Windows, workerd may not release file handles immediately after disposal, causing EBUSY errors when Miniflare tries to remove its temporary directory during dispose(). 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 in os.tmpdir() and will be cleaned up by the OS.

  • #13090 a532eea Thanks @edmundhung! - Remove LOCAL_EXPLORER_BASE_PATH and LOCAL_EXPLORER_API_PATH constants in favor of CorePaths.EXPLORER

    These were redundant aliases introduced before CorePaths was centralized. All internal consumers now use CorePaths.EXPLORER directly.

Minor Changes

  • #12858 f05f2da Thanks @repository! - Add disableRetryDelays() to WorkflowInstanceModifier to skip retry backoff delays in tests

    When testing Workflows with retry configurations, the backoff delays between retry attempts of a failing step.do() caused real wall-clock waiting (e.g., 35 seconds for 3 retries with 5-second exponential backoff), even when step results were fully mocked. The new disableRetryDelays() method eliminates these delays while preserving retry behavior — all attempts still execute, just without waiting between them.

Patch Changes

  • #13091 6d58f0f Thanks @penalosa! - Use today's date for the RTTI compat date query instead of a hardcoded "2023-12-01", so newly added Node.js builtin modules are recognized by the module fallback service.

  • #13070 cdb9c88 Thanks @penalosa! - Suppress CODE_MOVED for unknown code block log spam from workerd

    These are internal workerd diagnostic messages not relevant to application developers. Miniflare's structured log handler already filters them, but vitest-pool-workers uses a custom handleRuntimeStdio that bypasses that pipeline. This adds the pattern to the pool's own ignore list.

  • #13069 6d0e329 Thanks @penalosa! - fix: suppress outputGateBroken stderr noise when testing Workflows

  • #13075 b8df076 Thanks @penalosa! - Support @voidzero-dev/vite-plus-test as an alternative to vitest

    Users running tests via Vite+ (@voidzero-dev/vite-plus-test) with the recommended pnpm overrides no longer hit spurious version warnings or Disallowed operation called within global scope errors.

  • Updated dependencies [ffbc268, 9eff028, ed20a9b, f214760, 746858a, 9aad27f, 1fc5518, b539dc7, 9282493, a532eea, cd0e971, d4c6158, 2565b1d]:

    • wrangler@4.79.0
    • miniflare@4.20260329.0

Patch Changes

  • #13086 d4c6158 Thanks @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

Minor Changes

  • #12868 ffbc268 Thanks @danielgek! - Add wrangler ai-search command namespace for managing Cloudflare AI Search instances

    Introduces 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 search with repeatable --filter key=value flags
    • Instance stats: ai-search stats

    The create command uses an interactive wizard to guide configuration. All commands require authentication via wrangler login.

  • #13097 cd0e971 Thanks @pombosilva! - Add --local flag to Workflows commands for interacting with local dev

    All Workflows CLI commands now support a --local flag that targets a running wrangler dev session instead of the Cloudflare production API. This uses the /cdn-cgi/explorer/api/workflows endpoints 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 9000
    

    By default, commands continue to hit remote (production). Pass --local to opt in, and optionally --port to specify a custom dev server port (defaults to 8787).

Patch Changes

  • #13050 ed20a9b Thanks @dario-piotrowicz! - Add minimum and maximum version checks for frameworks during auto-configuration

    When 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 f214760 Thanks @dependabot! - Update dependencies of "miniflare", "wrangler"

    The following dependency versions have been updated:

    DependencyFromTo
    workerd1.20260317.11.20260329.1
  • #13079 746858a Thanks @penalosa! - Fix getPlatformProxy and unstable_getMiniflareWorkerOptions crashing when assets is configured without a directory

    getPlatformProxy and unstable_getMiniflareWorkerOptions now skip asset setup when the config has an assets block but no directory — instead of throwing "missing required directory property". This happens when an external tool like @cloudflare/vite-plugin handles asset serving independently.

  • #13112 9aad27f Thanks @dario-piotrowicz! - Fix autoconfig failing on waku projects that use hono

    Waku 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 1fc5518 Thanks @dario-piotrowicz! - Skip lock file warning for static projects during autoconfig

    Previously, 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 b539dc7 Thanks @jbwcloudflare! - Skip unnecessary GET /versions?deployable=true API call in wrangler versions deploy when all version IDs are explicitly provided and --yes is passed

    When 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 --yes is 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 2565b1d Thanks @dario-piotrowicz! - Improve error message when the assets directory path points to a file instead of a directory

    Previously, if the path provided as the assets directory (via --assets flag or assets.directory config) pointed to an existing file rather than a directory, Wrangler would throw an unhelpful ENOTDIR system error when trying to read the _redirects file 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

Patch Changes

Minor Changes

  • #13068 e631a94 Thanks @dario-piotrowicz! - Add runCommand and quoteShellArgs, installPackages and installWrangler utilities to @cloudflare/cli/command

    These utilities are now available from @cloudflare/cli as dedicated sub-path exports: runCommand and quoteShellArgs via @cloudflare/cli/command, and installPackages and installWrangler via @cloudflare/cli/packages. This makes them reusable across packages in the SDK without duplication.

Minor Changes

  • #13102 e200179 Thanks @dario-piotrowicz! - First release of new package

    Add @cloudflare/codemod package with internal AST-based codemod utilities (parseJs, parseTs, parseFile, transformFile, mergeObjectProperties) built on recast.

Mar 27, 2026

Patch Changes

Patch Changes

Patch Changes

  • #13049 7a5be20 Thanks @nikitassharma! - add library-push flag to containers registries credentials

    This flag is not available for public use.

Latest
wrangler@4.83.0
Tracking Since
Jan 20, 2026
Last checked Apr 20, 2026