Releases: cloudflare/workers-sdk
Release list
@cloudflare/local-explorer-ui@0.14.1
Patch Changes
-
#14531
ad8d4b2Thanks @matingathani! - Don't swallow unhandled keydown events (e.g.Cmd/Ctrl+<number>tab-switch shortcuts) when a data studio table cell is focused but not being edited -
#14629
c5647ddThanks @dario-piotrowicz! - Fix D1 schema editor tab not tracking unsaved changesThe schema editor tab (edit table / create table) now correctly marks the tab as dirty when there are unsaved schema changes. This shows the unsaved changes indicator on the tab, triggers the browser's leave guard when navigating away, and prompts for confirmation when closing the tab.
Additionally, column and constraint deletions now properly mark the schema as dirty. Previously, removing a column or constraint would filter the entry out of the state array entirely, causing the dirty-state check to miss the change.
@cloudflare/deploy-helpers@0.5.0
Minor Changes
-
#14689
2cd84d4Thanks @emily-shen! - Publish@cloudflare/configpackage@cloudflare/configis now published as a standalone package. Previously, its exports (InputWorkerSchema,OutputWorkerSchema,convertToWranglerConfig, and related types) were re-exported through@cloudflare/deploy-helpers. Consumers should import directly from@cloudflare/configinstead.@cloudflare/deploy-helpersno longer re-exports@cloudflare/configsymbols.
Patch Changes
-
#14681
8e29318Thanks @emily-shen! - Move preview command logic from wrangler into@cloudflare/deploy-helpersPreview orchestration, API calls, formatting, and settings management now live in
@cloudflare/deploy-helpers. -
Updated dependencies [
7692a61,ed33326,018574b,42df9bb,7692a61]:- miniflare@4.20260710.0
- @cloudflare/workers-utils@0.27.0
- @cloudflare/cli-shared-helpers@0.1.14
@cloudflare/config@0.2.0
Minor Changes
-
#14689
2cd84d4Thanks @emily-shen! - Publish@cloudflare/configpackage@cloudflare/configis now published as a standalone package. Previously, its exports (InputWorkerSchema,OutputWorkerSchema,convertToWranglerConfig, and related types) were re-exported through@cloudflare/deploy-helpers. Consumers should import directly from@cloudflare/configinstead.@cloudflare/deploy-helpersno longer re-exports@cloudflare/configsymbols.
@cloudflare/autoconfig@0.1.5
Patch Changes
- Updated dependencies [
42df9bb]:- @cloudflare/workers-utils@0.27.0
- @cloudflare/cli-shared-helpers@0.1.14
wrangler@4.110.0
Minor Changes
-
#14591
0283a1fThanks @dario-piotrowicz! - Send npm package dependency metadata with worker uploadsWrangler now collects npm package dependency information from the project's
package.jsonat deploy and version upload time, and includes it in the upload metadata sent to the Cloudflare API. This enables dependency analytics and future features like vulnerability alerting.The collected data includes the package name, the version constraint from
package.json, and the exact installed version fromnode_modules. BothdependenciesanddevDependenciesare included, while workspace packages, local packages, and unresolvable packages are excluded. The list is capped at 200 entries per upload.To opt out, set
dependencies_instrumentation.enabledtofalsein your Wrangler configuration file:{ "dependencies_instrumentation": { "enabled": false } } -
#14535
1b965c5Thanks @Naapperas! - Support dynamic retry delays for Workflow steps in local devA step's
retries.delaycan now be a function that computes the delay per failed attempt, in addition to a static duration. The function receives{ ctx, error }and returns a delay (a number of milliseconds or a duration string like"30 seconds"), and its result is fed into the configuredbackoff.await step.do( "call flaky API", { retries: { limit: 5, backoff: "constant", delay: ({ ctx }) => ctx.attempt * 1000, }, }, async () => { /* ... */ } );
The function is invoked once per failed attempt with a 5 second timeout. If it throws, times out, or returns an invalid value, the step fails without further retries.
Patch Changes
-
#14589
7b28392Thanks @jamesopstad! - Fix runtime type caching whenwrangler devauto-regenerates typesWhen
dev.generate_types(orwrangler dev --types) regenerated an out-of-dateworker-configuration.d.ts, the written file omitted the// Begin runtime typesmarker (and the/* eslint-disable */header) thatwrangler typeswrites. As a result, later runs could not detect the cached runtime types and always regenerated them. The auto-regenerated file now matcheswrangler typesoutput, restoring the cache. -
Updated dependencies [
1b965c5]:- miniflare@4.20260708.1
wrangler@4.109.0
Minor Changes
-
#14489
e3f0cd6Thanks @edmundhung! - AddlistDurableObjectIds()tocreateTestHarnessWorker handlesTests using
createTestHarnesscan now list persisted Durable Object instance IDs for a Durable Object binding. This helps integration tests discover objects created by app behavior without adding test-only endpoints. -
#14465
2fedb1fThanks @vaishnav-mk! - Add rollback support when terminating Workflow instancesWorkflowInstance.terminate({ rollback: true })now runs registered rollback handlers before marking a local Workflow instance as terminated. Wrangler also supports this viawrangler workflows instances terminate --rollback, including local mode.The rollback option is only sent for terminate operations and is rejected by the Local Explorer API for pause, resume, and restart actions.
-
#14511
17d2fc1Thanks @juleslemee! - Addwrangler turnstile widgetcommands for managing Turnstile widgetsYou can now create, list, inspect, update, and delete Turnstile widgets from the CLI:
wrangler turnstile widget create <name> --domain example.com --mode managed wrangler turnstile widget list wrangler turnstile widget get <sitekey> wrangler turnstile widget update <sitekey> --name "Renamed" wrangler turnstile widget delete <sitekey>All five subcommands accept
--jsonfor machine-readable output (getprints a formatted view by default; the rest print a short human summary).--domainaccepts comma-separated values, e.g.--domain a.com,b.com.delete --jsonrequires--skip-confirmation/-yto keep output pipeable.createprints the sitekey, the secret, and the canonicalchallenges.cloudflare.com/turnstile/v0/siteverifyendpoint for backend verification. The hint is backend-agnostic; it doesn't assume Workers. The secret is redacted fromlistandupdateoutput but remains available viagetfor retrieval later.deleteprompts for confirmation; pass--skip-confirmation/-yto bypass.The OAuth flow now requests the
challenge-widgets.writescope (the existing Bach-derived scope for Turnstile widget CRUD). Existing OAuth sessions need to runwrangler loginagain to pick it up. API token users need a token with theAccount.Turnstile:Editpermission.
Patch Changes
-
#14596
8511ddfThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260706.1 1.20260708.1 @cloudflare/workers-types ^5.20260706.1 ^5.20260708.1 -
#14604
9f74a5fThanks @vaishnav-mk! - Improve the deploy error for cron-triggered Workflows on free plansWrangler now explains that Workflow schedules require a paid Workers plan instead of showing only the generic Workflows API request failure.
-
#14616
c782e2aThanks @penalosa! - Fixwrangler deployaborting in CI for autoconfigured projectsA recent change guarded non-interactive deploys against overwriting a same-named Worker whenever there was no config file naming it. This was too broad: a plain
wrangler deployrun in CI without a config file (for example an autoconfigured project whose generated config PR has not been merged) would fail with "A Worker named ... already exists in your account", even though re-deploying to that Worker is the intended behaviour.The guard is now limited to the Pages-to-Workers delegation, where the target name is a Pages project name that must not clobber an unrelated Worker. Plain deploys once again deploy normally.
-
Updated dependencies [
e3f0cd6,8511ddf,2fedb1f]:- miniflare@4.20260708.0
miniflare@4.20260708.1
Minor Changes
-
#14535
1b965c5Thanks @Naapperas! - Support dynamic retry delays for Workflow steps in local devA step's
retries.delaycan now be a function that computes the delay per failed attempt, in addition to a static duration. The function receives{ ctx, error }and returns a delay (a number of milliseconds or a duration string like"30 seconds"), and its result is fed into the configuredbackoff.await step.do( "call flaky API", { retries: { limit: 5, backoff: "constant", delay: ({ ctx }) => ctx.attempt * 1000, }, }, async () => { /* ... */ } );
The function is invoked once per failed attempt with a 5 second timeout. If it throws, times out, or returns an invalid value, the step fails without further retries.
miniflare@4.20260708.0
Minor Changes
-
#14489
e3f0cd6Thanks @edmundhung! - AddlistDurableObjectIds()to MiniflareMiniflare now exposes
listDurableObjectIds()for listing persisted Durable Object instance IDs by binding name. The Vitest pool now uses this shared Miniflare API internally instead of duplicating Miniflare's storage listing logic. -
#14465
2fedb1fThanks @vaishnav-mk! - Add rollback support when terminating Workflow instancesWorkflowInstance.terminate({ rollback: true })now runs registered rollback handlers before marking a local Workflow instance as terminated. Wrangler also supports this viawrangler workflows instances terminate --rollback, including local mode.The rollback option is only sent for terminate operations and is rejected by the Local Explorer API for pause, resume, and restart actions.
Patch Changes
-
#14596
8511ddfThanks @dependabot! - Update dependencies of "miniflare", "wrangler"The following dependency versions have been updated:
Dependency From To workerd 1.20260706.1 1.20260708.1 @cloudflare/workers-types ^5.20260706.1 ^5.20260708.1
create-cloudflare@2.70.10
Patch Changes
-
#14292
21d048fThanks @dependabot! - Update dependencies of "create-cloudflare"The following dependency versions have been updated:
Dependency From To sv 0.15.4 0.16.1 -
#14292
21d048fThanks @dependabot! - Fix SvelteKit project creation failing with "Error parsing file: svelte.config.js"As of
sv0.16, newly scaffolded SvelteKit projects no longer include asvelte.config.jsfile, and the adapter is configured in the Vite config instead. C3 now updates the adapter import invite.config.ts/vite.config.jsrather thansvelte.config.js, so creating a SvelteKit project succeeds again.