Releases: cloudflare/workers-sdk
Release list
[email protected]
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]:
[email protected]
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.
[email protected]
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.
[email protected]
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
[email protected]
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.
@cloudflare/[email protected]
Minor Changes
-
#14591
0283a1fThanks @dario-piotrowicz! - ExportgetInstalledPackageVersion,getPackagePath, andisPackageInstalledutilitiesPackage resolution helpers that were previously internal to
@cloudflare/autoconfigare now exported from@cloudflare/workers-utilsso they can be shared across packages without pulling in the full autoconfig dependency.getPackagePathnow also consistently returns a directory path. Previously the fallback resolution strategy could return a file path (the package entry point) instead of its containing directory.
@cloudflare/[email protected]
Patch Changes
- Updated dependencies [
0283a1f]:- @cloudflare/[email protected]
@cloudflare/[email protected]
Patch 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.
@cloudflare/[email protected]
Patch 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. -
Updated dependencies [
e3f0cd6,8511ddf,9f74a5f,e3f0cd6,c782e2a,2fedb1f,17d2fc1]: