diff --git a/.changeset/cron-triggers-local-explorer-ui.md b/.changeset/cron-triggers-local-explorer-ui.md deleted file mode 100644 index e702b033ca6..00000000000 --- a/.changeset/cron-triggers-local-explorer-ui.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/local-explorer-ui": minor ---- - -Add one-off Cron Trigger testing to Local Explorer - -Developers can invoke a Worker's configured or custom Cron Trigger with an exact or guided expression, choose a UTC or epoch-millisecond scheduled time, and inspect the latest structured result without editing configuration. diff --git a/.changeset/cron-triggers-miniflare-api.md b/.changeset/cron-triggers-miniflare-api.md deleted file mode 100644 index 764c13a0966..00000000000 --- a/.changeset/cron-triggers-miniflare-api.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"miniflare": minor ---- - -Expose configured Cron Triggers and one-off scheduled dispatch through Local Explorer - -Miniflare's V4 Worker options now accept exact Cron Trigger expressions. Local Explorer reports them in Worker metadata and can dispatch a scheduled event to an exact local or peer Worker name with a chosen cron expression and time. diff --git a/.changeset/cron-triggers-miniflare-assets.md b/.changeset/cron-triggers-miniflare-assets.md deleted file mode 100644 index 23fa1ad9f60..00000000000 --- a/.changeset/cron-triggers-miniflare-assets.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"miniflare": minor ---- - -Package the Cron Triggers interface in Local Explorer - -The Local Explorer assets now include an interactive Cron Triggers destination for one-off local scheduled-handler testing. diff --git a/.changeset/dependabot-update-15796.md b/.changeset/dependabot-update-15796.md deleted file mode 100644 index eb3d06c5913..00000000000 --- a/.changeset/dependabot-update-15796.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -"miniflare": patch -"wrangler": patch ---- - -Update dependencies of "miniflare", "wrangler" - -The following dependency versions have been updated: - -| Dependency | From | To | -| ------------------------- | ------------- | ------------- | -| @cloudflare/workers-types | ^5.20260921.1 | ^5.20260923.1 | -| workerd | 1.20260921.1 | 1.20260923.1 | diff --git a/.changeset/durable-object-container-ssh.md b/.changeset/durable-object-container-ssh.md deleted file mode 100644 index e6bc34cfe38..00000000000 --- a/.changeset/durable-object-container-ssh.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -"wrangler": minor -"@cloudflare/workers-utils": minor -"@cloudflare/deploy-helpers": minor -"@cloudflare/containers-shared": minor ---- - -Configure SSH for experimental Durable Object-managed Containers - -Set `containers[].ssh` and `containers[].authorized_keys` when using `scheduling_policy: "durable_object"`. These are application-wide settings that follow the same rules as the existing Durable Object-managed Container settings: normal deployments create missing applications and update explicitly configured values, while omitted settings preserve the existing application configuration. - -```jsonc -// wrangler.jsonc -{ - "containers": [ - { - "name": "sandbox", - "class_name": "Sandbox", - "scheduling_policy": "durable_object", - "ssh": { "enabled": true }, - "authorized_keys": [ - { "name": "laptop", "public_key": "ssh-ed25519 AAAA..." }, - ], - }, - ], -} -``` diff --git a/.changeset/fix-workflows-duplicate-ids.md b/.changeset/fix-workflows-duplicate-ids.md deleted file mode 100644 index ec81e73521d..00000000000 --- a/.changeset/fix-workflows-duplicate-ids.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"miniflare": patch -"wrangler": patch ---- - -Emulate the deterministic-ID uniqueness contract in the local Workflows binding - -The local Workflows binding now matches the documented production behavior for deterministic instance IDs: `create({ id })` with an ID that already exists throws `(instance.already_exists)` and retains the existing instance, and `createBatch()` skips IDs that already exist or repeat within the batch, excluding them from the result instead of creating duplicate executions. Previously both paths silently created duplicates, so code relying on deterministic IDs for idempotency (for example a Queue consumer creating one workflow per message) appeared to work locally while double-executing workflow bodies. diff --git a/.changeset/fresh-crons-explore.md b/.changeset/fresh-crons-explore.md deleted file mode 100644 index 3870f788212..00000000000 --- a/.changeset/fresh-crons-explore.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": minor ---- - -Expose configured Cron Triggers to local development consumers - -Wrangler now passes the active environment's exact Cron Trigger expressions to Miniflare so Local Explorer can display them. Headless agent sessions also advertise the Local Explorer scheduled invocation API. diff --git a/.changeset/quiet-clocks-trigger.md b/.changeset/quiet-clocks-trigger.md deleted file mode 100644 index 129edefe07c..00000000000 --- a/.changeset/quiet-clocks-trigger.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/vite-plugin": minor ---- - -Advertise Local Explorer scheduled invocations to headless agents - -The Vite plugin's Local Explorer hint now documents how to invoke a Worker's scheduled handler and points agents to the OpenAPI schema for the complete request contract. diff --git a/.changeset/quiet-otters-prerender.md b/.changeset/quiet-otters-prerender.md deleted file mode 100644 index 824b517898b..00000000000 --- a/.changeset/quiet-otters-prerender.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@cloudflare/build-output-utils": minor ---- - -Allow frameworks to remove Worker bundles after prerendering - -Build Output readers now ignore stale manifests when only static assets remain and omit non-default Workers that have neither a bundle nor assets. A default Worker must still contain deployable output. diff --git a/.changeset/quiet-ravens-help.md b/.changeset/quiet-ravens-help.md deleted file mode 100644 index e3564350798..00000000000 --- a/.changeset/quiet-ravens-help.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"wrangler": patch ---- - -Show `--jurisdiction` in help for `wrangler kv namespace create` - -The option was supported but omitted from the command's help output. Users can now discover how to create KV namespaces in a specific jurisdiction. diff --git a/.changeset/smol-toml-1-9.md b/.changeset/smol-toml-1-9.md deleted file mode 100644 index d59737a3b1d..00000000000 --- a/.changeset/smol-toml-1-9.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -"wrangler": patch -"create-cloudflare": patch -"@cloudflare/workers-utils": patch -"@cloudflare/workers-auth": patch ---- - -Update `smol-toml` to 1.9.0 to fix slow parsing of very large TOML files - -Parse time for TOML config files now grows linearly with their size, instead of with its square: a 40,000-line file that took 259 ms to parse now takes 17 ms, while typical `wrangler.toml` files parse in the same time as before. This addresses the `GHSA-r4xh-jqrq-34v2` advisory against earlier versions of the parser. - -Some TOML syntax errors now point at the character that caused them. For example, a `wrangler.toml` containing `INVALID "FILE` is now reported as `illegal character in key` at the `"`, rather than `incomplete key-value` at the start of the line. diff --git a/.changeset/tasty-stingrays-connect.md b/.changeset/tasty-stingrays-connect.md deleted file mode 100644 index ee502a9336e..00000000000 --- a/.changeset/tasty-stingrays-connect.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -"@cloudflare/config": minor -"@cloudflare/workers-utils": minor -"miniflare": minor -"wrangler": minor ---- - -Support UDP connect handlers in local development - -The experimental `connect` configuration now accepts `protocol: "udp"`, with optional `idle_timeout_ms` and `max_pending_bytes` settings. UDP datagrams are delivered to the Worker's `connect()` handler using workerd's value-mode socket streams, and can be tested with `Miniflare#dispatchConnect({ protocol: "udp" })`. diff --git a/.changeset/workflow-exports-config.md b/.changeset/workflow-exports-config.md deleted file mode 100644 index 0ddc1d4e1d8..00000000000 --- a/.changeset/workflow-exports-config.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -"@cloudflare/workers-utils": minor -"@cloudflare/deploy-helpers": minor -"@cloudflare/config": minor -"miniflare": minor -"wrangler": minor ---- - -Support `workflow` entries in the `exports` configuration map - -A Worker can now declare the Workflows it defines in `exports`, keyed by the `WorkflowEntrypoint` class name: - -```jsonc -{ - "exports": { - "MyWorkflow": { - "type": "workflow", - "name": "my-workflow", - "limits": { "steps": 100 }, - "schedules": "0 * * * *", - }, - }, -} -``` - -A `workflow` export accepts the same settings as a `workflows` binding: `limits`, `concurrency`, `schedules`, and `default_retention`. `wrangler deploy` and `wrangler versions upload` send these entries to the upload API by name, and `wrangler deploy` and `wrangler triggers deploy` provision the Workflow with its settings, just as they do for `workflows` bindings owned by the Worker. A Workflow may be declared both as a binding and as an export, as long as both declarations use the same class and do not set the same setting to different values. A binding to another Worker's Workflow cannot share a name with an export. `@cloudflare/config` adds the matching `exports.workflow()` helper. Local development does not yet act on these entries. diff --git a/packages/autoconfig/CHANGELOG.md b/packages/autoconfig/CHANGELOG.md index f6672a2bab2..b578269e936 100644 --- a/packages/autoconfig/CHANGELOG.md +++ b/packages/autoconfig/CHANGELOG.md @@ -1,5 +1,14 @@ # @cloudflare/autoconfig +## 0.6.4 + +### Patch Changes + +- Updated dependencies [[`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - @cloudflare/workers-utils@0.42.0 + - @cloudflare/config@0.18.0 + - @cloudflare/cli-shared-helpers@0.1.38 + ## 0.6.3 ### Patch Changes diff --git a/packages/autoconfig/package.json b/packages/autoconfig/package.json index 69935632123..a2b123ecb12 100644 --- a/packages/autoconfig/package.json +++ b/packages/autoconfig/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/autoconfig", - "version": "0.6.3", + "version": "0.6.4", "description": "Framework autoconfig detection and configuration for Cloudflare Workers", "license": "MIT OR Apache-2.0", "repository": { diff --git a/packages/build-output-utils/CHANGELOG.md b/packages/build-output-utils/CHANGELOG.md index c19135cbcd8..725730f6ba3 100644 --- a/packages/build-output-utils/CHANGELOG.md +++ b/packages/build-output-utils/CHANGELOG.md @@ -1,5 +1,18 @@ # @cloudflare/build-output-utils +## 0.8.0 + +### Minor Changes + +- [#15844](https://github.com/cloudflare/workers-sdk/pull/15844) [`43f7ffb`](https://github.com/cloudflare/workers-sdk/commit/43f7ffbcbe020bc4c30809c6bd408059a6eeac87) Thanks [@jamesopstad](https://github.com/jamesopstad)! - Allow frameworks to remove Worker bundles after prerendering + + Build Output readers now ignore stale manifests when only static assets remain and omit non-default Workers that have neither a bundle nor assets. A default Worker must still contain deployable output. + +### Patch Changes + +- Updated dependencies [[`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - @cloudflare/config@0.18.0 + ## 0.7.1 ### Patch Changes diff --git a/packages/build-output-utils/package.json b/packages/build-output-utils/package.json index 3ad65736f65..8847979edb6 100644 --- a/packages/build-output-utils/package.json +++ b/packages/build-output-utils/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/build-output-utils", - "version": "0.7.1", + "version": "0.8.0", "description": "Utilities for reading and writing the Build Output Specification directory. This is not yet stable enough for external use — APIs may change without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/build-output-utils#readme", "bugs": { diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index c80284665a8..c1e17fd382c 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/cli +## 0.1.38 + +### Patch Changes + +- Updated dependencies [[`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - @cloudflare/workers-utils@0.42.0 + ## 0.1.37 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 1f22e119148..ed231630734 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/cli-shared-helpers", - "version": "0.1.37", + "version": "0.1.38", "description": "Internal shared CLI helpers for workers-sdk. Not intended for external use — APIs may change without notice.", "keywords": [ "cli", diff --git a/packages/config/CHANGELOG.md b/packages/config/CHANGELOG.md index ae01bf05e68..0c7796a6615 100644 --- a/packages/config/CHANGELOG.md +++ b/packages/config/CHANGELOG.md @@ -1,5 +1,32 @@ # @cloudflare/config +## 0.18.0 + +### Minor Changes + +- [#15786](https://github.com/cloudflare/workers-sdk/pull/15786) [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8) Thanks [@ThomasRubini](https://github.com/ThomasRubini)! - Support UDP connect handlers in local development + + The experimental `connect` configuration now accepts `protocol: "udp"`, with optional `idle_timeout_ms` and `max_pending_bytes` settings. UDP datagrams are delivered to the Worker's `connect()` handler using workerd's value-mode socket streams, and can be tested with `Miniflare#dispatchConnect({ protocol: "udp" })`. + +- [#15779](https://github.com/cloudflare/workers-sdk/pull/15779) [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2) Thanks [@Naapperas](https://github.com/Naapperas)! - Support `workflow` entries in the `exports` configuration map + + A Worker can now declare the Workflows it defines in `exports`, keyed by the `WorkflowEntrypoint` class name: + + ```jsonc + { + "exports": { + "MyWorkflow": { + "type": "workflow", + "name": "my-workflow", + "limits": { "steps": 100 }, + "schedules": "0 * * * *" + } + } + } + ``` + + A `workflow` export accepts the same settings as a `workflows` binding: `limits`, `concurrency`, `schedules`, and `default_retention`. `wrangler deploy` and `wrangler versions upload` send these entries to the upload API by name, and `wrangler deploy` and `wrangler triggers deploy` provision the Workflow with its settings, just as they do for `workflows` bindings owned by the Worker. A Workflow may be declared both as a binding and as an export, as long as both declarations use the same class and do not set the same setting to different values. A binding to another Worker's Workflow cannot share a name with an export. `@cloudflare/config` adds the matching `exports.workflow()` helper. Local development does not yet act on these entries. + ## 0.17.0 ### Minor Changes diff --git a/packages/config/package.json b/packages/config/package.json index ba71a52bebf..e0535d8247c 100644 --- a/packages/config/package.json +++ b/packages/config/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/config", - "version": "0.17.0", + "version": "0.18.0", "description": "Definitions and utilities for configuring Cloudflare Workers and related products. This is not yet stable enough for external use — APIs may change without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/config#readme", "bugs": { diff --git a/packages/containers-shared/CHANGELOG.md b/packages/containers-shared/CHANGELOG.md index bdb51455817..3a0dd95f5db 100644 --- a/packages/containers-shared/CHANGELOG.md +++ b/packages/containers-shared/CHANGELOG.md @@ -1,5 +1,38 @@ # @cloudflare/containers-shared +## 0.20.0 + +### Minor Changes + +- [#15792](https://github.com/cloudflare/workers-sdk/pull/15792) [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f) Thanks [@flakey5](https://github.com/flakey5)! - Configure SSH for experimental Durable Object-managed Containers + + Set `containers[].ssh` and `containers[].authorized_keys` when using `scheduling_policy: "durable_object"`. These are application-wide settings that follow the same rules as the existing Durable Object-managed Container settings: normal deployments create missing applications and update explicitly configured values, while omitted settings preserve the existing application configuration. + + ```jsonc + // wrangler.jsonc + { + "containers": [ + { + "name": "sandbox", + "class_name": "Sandbox", + "scheduling_policy": "durable_object", + "ssh": { "enabled": true }, + "authorized_keys": [ + { "name": "laptop", "public_key": "ssh-ed25519 AAAA..." } + ] + } + ] + } + ``` + +### Patch Changes + +- Updated dependencies [[`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`43f7ffb`](https://github.com/cloudflare/workers-sdk/commit/43f7ffbcbe020bc4c30809c6bd408059a6eeac87), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - @cloudflare/workers-utils@0.42.0 + - @cloudflare/build-output-utils@0.8.0 + - @cloudflare/config@0.18.0 + - @cloudflare/cli-shared-helpers@0.1.38 + ## 0.19.2 ### Patch Changes diff --git a/packages/containers-shared/package.json b/packages/containers-shared/package.json index ec566b1113d..e9159075e0d 100644 --- a/packages/containers-shared/package.json +++ b/packages/containers-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/containers-shared", - "version": "0.19.2", + "version": "0.20.0", "description": "Internal-only shared container helpers for workers-sdk. Do not use directly; APIs are unstable and may change or disappear without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/containers-shared#readme", "bugs": { diff --git a/packages/create-cloudflare/CHANGELOG.md b/packages/create-cloudflare/CHANGELOG.md index 3032dda4c79..b2a834aff37 100644 --- a/packages/create-cloudflare/CHANGELOG.md +++ b/packages/create-cloudflare/CHANGELOG.md @@ -1,5 +1,15 @@ # create-cloudflare +## 2.72.12 + +### Patch Changes + +- [#15838](https://github.com/cloudflare/workers-sdk/pull/15838) [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095) Thanks [@oddharsh](https://github.com/oddharsh)! - Update `smol-toml` to 1.9.0 to fix slow parsing of very large TOML files + + Parse time for TOML config files now grows linearly with their size, instead of with its square: a 40,000-line file that took 259 ms to parse now takes 17 ms, while typical `wrangler.toml` files parse in the same time as before. This addresses the `GHSA-r4xh-jqrq-34v2` advisory against earlier versions of the parser. + + Some TOML syntax errors now point at the character that caused them. For example, a `wrangler.toml` containing `INVALID "FILE` is now reported as `illegal character in key` at the `"`, rather than `incomplete key-value` at the start of the line. + ## 2.72.11 ### Patch Changes diff --git a/packages/create-cloudflare/package.json b/packages/create-cloudflare/package.json index 53f34503436..6042c3c4029 100644 --- a/packages/create-cloudflare/package.json +++ b/packages/create-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "create-cloudflare", - "version": "2.72.11", + "version": "2.72.12", "description": "A CLI for creating and deploying new applications to Cloudflare.", "keywords": [ "cloudflare", diff --git a/packages/deploy-helpers/CHANGELOG.md b/packages/deploy-helpers/CHANGELOG.md index a79b30e81ae..cdd522ef0eb 100644 --- a/packages/deploy-helpers/CHANGELOG.md +++ b/packages/deploy-helpers/CHANGELOG.md @@ -1,5 +1,58 @@ # @cloudflare/deploy-helpers +## 0.16.0 + +### Minor Changes + +- [#15792](https://github.com/cloudflare/workers-sdk/pull/15792) [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f) Thanks [@flakey5](https://github.com/flakey5)! - Configure SSH for experimental Durable Object-managed Containers + + Set `containers[].ssh` and `containers[].authorized_keys` when using `scheduling_policy: "durable_object"`. These are application-wide settings that follow the same rules as the existing Durable Object-managed Container settings: normal deployments create missing applications and update explicitly configured values, while omitted settings preserve the existing application configuration. + + ```jsonc + // wrangler.jsonc + { + "containers": [ + { + "name": "sandbox", + "class_name": "Sandbox", + "scheduling_policy": "durable_object", + "ssh": { "enabled": true }, + "authorized_keys": [ + { "name": "laptop", "public_key": "ssh-ed25519 AAAA..." } + ] + } + ] + } + ``` + +- [#15779](https://github.com/cloudflare/workers-sdk/pull/15779) [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2) Thanks [@Naapperas](https://github.com/Naapperas)! - Support `workflow` entries in the `exports` configuration map + + A Worker can now declare the Workflows it defines in `exports`, keyed by the `WorkflowEntrypoint` class name: + + ```jsonc + { + "exports": { + "MyWorkflow": { + "type": "workflow", + "name": "my-workflow", + "limits": { "steps": 100 }, + "schedules": "0 * * * *" + } + } + } + ``` + + A `workflow` export accepts the same settings as a `workflows` binding: `limits`, `concurrency`, `schedules`, and `default_retention`. `wrangler deploy` and `wrangler versions upload` send these entries to the upload API by name, and `wrangler deploy` and `wrangler triggers deploy` provision the Workflow with its settings, just as they do for `workflows` bindings owned by the Worker. A Workflow may be declared both as a binding and as an export, as long as both declarations use the same class and do not set the same setting to different values. A binding to another Worker's Workflow cannot share a name with an export. `@cloudflare/config` adds the matching `exports.workflow()` helper. Local development does not yet act on these entries. + +### Patch Changes + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + - @cloudflare/workers-utils@0.42.0 + - @cloudflare/containers-shared@0.20.0 + - @cloudflare/config@0.18.0 + - @cloudflare/cli-shared-helpers@0.1.38 + ## 0.15.1 ### Patch Changes diff --git a/packages/deploy-helpers/package.json b/packages/deploy-helpers/package.json index 8869ae3ea0a..c24b471da80 100644 --- a/packages/deploy-helpers/package.json +++ b/packages/deploy-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/deploy-helpers", - "version": "0.15.1", + "version": "0.16.0", "description": "Internal deploy helpers for workers-sdk. Not intended for external use — APIs may change without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/deploy-helpers#readme", "bugs": { diff --git a/packages/local-explorer-ui/CHANGELOG.md b/packages/local-explorer-ui/CHANGELOG.md index e536c6e6ceb..b5dfbbf9ac6 100644 --- a/packages/local-explorer-ui/CHANGELOG.md +++ b/packages/local-explorer-ui/CHANGELOG.md @@ -1,5 +1,13 @@ # @cloudflare/local-explorer-ui +## 0.17.0 + +### Minor Changes + +- [#15652](https://github.com/cloudflare/workers-sdk/pull/15652) [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Add one-off Cron Trigger testing to Local Explorer + + Developers can invoke a Worker's configured or custom Cron Trigger with an exact or guided expression, choose a UTC or epoch-millisecond scheduled time, and inspect the latest structured result without editing configuration. + ## 0.16.0 ### Minor Changes diff --git a/packages/local-explorer-ui/package.json b/packages/local-explorer-ui/package.json index 6da56bc9bac..04e5b62006e 100644 --- a/packages/local-explorer-ui/package.json +++ b/packages/local-explorer-ui/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/local-explorer-ui", - "version": "0.16.0", + "version": "0.17.0", "private": true, "type": "module", "scripts": { diff --git a/packages/miniflare/CHANGELOG.md b/packages/miniflare/CHANGELOG.md index f702bede1eb..c5b812acb88 100644 --- a/packages/miniflare/CHANGELOG.md +++ b/packages/miniflare/CHANGELOG.md @@ -1,5 +1,55 @@ # miniflare +## 5.20260923.0-alpha + +### Minor Changes + +- [#15648](https://github.com/cloudflare/workers-sdk/pull/15648) [`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Expose configured Cron Triggers and one-off scheduled dispatch through Local Explorer + + Miniflare's V4 Worker options now accept exact Cron Trigger expressions. Local Explorer reports them in Worker metadata and can dispatch a scheduled event to an exact local or peer Worker name with a chosen cron expression and time. + +- [#15652](https://github.com/cloudflare/workers-sdk/pull/15652) [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Package the Cron Triggers interface in Local Explorer + + The Local Explorer assets now include an interactive Cron Triggers destination for one-off local scheduled-handler testing. + +- [#15786](https://github.com/cloudflare/workers-sdk/pull/15786) [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8) Thanks [@ThomasRubini](https://github.com/ThomasRubini)! - Support UDP connect handlers in local development + + The experimental `connect` configuration now accepts `protocol: "udp"`, with optional `idle_timeout_ms` and `max_pending_bytes` settings. UDP datagrams are delivered to the Worker's `connect()` handler using workerd's value-mode socket streams, and can be tested with `Miniflare#dispatchConnect({ protocol: "udp" })`. + +- [#15779](https://github.com/cloudflare/workers-sdk/pull/15779) [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2) Thanks [@Naapperas](https://github.com/Naapperas)! - Support `workflow` entries in the `exports` configuration map + + A Worker can now declare the Workflows it defines in `exports`, keyed by the `WorkflowEntrypoint` class name: + + ```jsonc + { + "exports": { + "MyWorkflow": { + "type": "workflow", + "name": "my-workflow", + "limits": { "steps": 100 }, + "schedules": "0 * * * *" + } + } + } + ``` + + A `workflow` export accepts the same settings as a `workflows` binding: `limits`, `concurrency`, `schedules`, and `default_retention`. `wrangler deploy` and `wrangler versions upload` send these entries to the upload API by name, and `wrangler deploy` and `wrangler triggers deploy` provision the Workflow with its settings, just as they do for `workflows` bindings owned by the Worker. A Workflow may be declared both as a binding and as an export, as long as both declarations use the same class and do not set the same setting to different values. A binding to another Worker's Workflow cannot share a name with an export. `@cloudflare/config` adds the matching `exports.workflow()` helper. Local development does not yet act on these entries. + +### Patch Changes + +- [#15796](https://github.com/cloudflare/workers-sdk/pull/15796) [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------------------- | ------------- | ------------- | + | @cloudflare/workers-types | ^5.20260921.1 | ^5.20260923.1 | + | workerd | 1.20260921.1 | 1.20260923.1 | + +- [#14847](https://github.com/cloudflare/workers-sdk/pull/14847) [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47) Thanks [@TheSaiEaranti](https://github.com/TheSaiEaranti)! - Emulate the deterministic-ID uniqueness contract in the local Workflows binding + + The local Workflows binding now matches the documented production behavior for deterministic instance IDs: `create({ id })` with an ID that already exists throws `(instance.already_exists)` and retains the existing instance, and `createBatch()` skips IDs that already exist or repeat within the batch, excluding them from the result instead of creating duplicate executions. Previously both paths silently created duplicates, so code relying on deterministic IDs for idempotency (for example a Queue consumer creating one workflow per message) appeared to work locally while double-executing workflow bodies. + ## 5.20260921.1-alpha ### Minor Changes diff --git a/packages/miniflare/package.json b/packages/miniflare/package.json index d86e2eb2d30..2e379f4c3df 100644 --- a/packages/miniflare/package.json +++ b/packages/miniflare/package.json @@ -1,6 +1,6 @@ { "name": "miniflare", - "version": "5.20260921.1-alpha", + "version": "5.20260923.0-alpha", "description": "Fun, full-featured, fully-local simulator for Cloudflare Workers", "keywords": [ "cloudflare", diff --git a/packages/pages-shared/CHANGELOG.md b/packages/pages-shared/CHANGELOG.md index 831355f2513..a101875fc00 100644 --- a/packages/pages-shared/CHANGELOG.md +++ b/packages/pages-shared/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/pages-shared +## 0.13.188 + +### Patch Changes + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + ## 0.13.187 ### Patch Changes diff --git a/packages/pages-shared/package.json b/packages/pages-shared/package.json index 3ac6bb9cc23..c541af8881f 100644 --- a/packages/pages-shared/package.json +++ b/packages/pages-shared/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/pages-shared", - "version": "0.13.187", + "version": "0.13.188", "repository": { "type": "git", "url": "https://github.com/cloudflare/workers-sdk.git", diff --git a/packages/remote-bindings/CHANGELOG.md b/packages/remote-bindings/CHANGELOG.md index ee6b7df4e9a..f3f6772bb6e 100644 --- a/packages/remote-bindings/CHANGELOG.md +++ b/packages/remote-bindings/CHANGELOG.md @@ -1,5 +1,16 @@ # @cloudflare/remote-bindings +## 0.0.34 + +### Patch Changes + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + - @cloudflare/workers-utils@0.42.0 + - @cloudflare/deploy-helpers@0.16.0 + - @cloudflare/workers-auth@0.9.2 + - @cloudflare/cli-shared-helpers@0.1.38 + ## 0.0.33 ### Patch Changes diff --git a/packages/remote-bindings/package.json b/packages/remote-bindings/package.json index 58e6b42b6a4..f31dced2ad8 100644 --- a/packages/remote-bindings/package.json +++ b/packages/remote-bindings/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/remote-bindings", - "version": "0.0.33", + "version": "0.0.34", "private": true, "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/remote-bindings#readme", "bugs": { diff --git a/packages/runtime-types/CHANGELOG.md b/packages/runtime-types/CHANGELOG.md index e442069dc8b..c2ecee4022d 100644 --- a/packages/runtime-types/CHANGELOG.md +++ b/packages/runtime-types/CHANGELOG.md @@ -1,5 +1,12 @@ # @cloudflare/runtime-types +## 0.1.2 + +### Patch Changes + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + ## 0.1.1 ### Patch Changes diff --git a/packages/runtime-types/package.json b/packages/runtime-types/package.json index b8c1f0cf7eb..7c9172e31fb 100644 --- a/packages/runtime-types/package.json +++ b/packages/runtime-types/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/runtime-types", - "version": "0.1.1", + "version": "0.1.2", "description": "Utilities for generating Cloudflare Workers runtime types from compatibility dates and flags. This is not yet stable enough for external use — APIs may change without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/runtime-types#readme", "bugs": { diff --git a/packages/vite-plugin-cloudflare/CHANGELOG.md b/packages/vite-plugin-cloudflare/CHANGELOG.md index 3d59eaf024b..9fc662169e3 100644 --- a/packages/vite-plugin-cloudflare/CHANGELOG.md +++ b/packages/vite-plugin-cloudflare/CHANGELOG.md @@ -1,5 +1,19 @@ # @cloudflare/vite-plugin +## 1.60.0 + +### Minor Changes + +- [#15648](https://github.com/cloudflare/workers-sdk/pull/15648) [`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Advertise Local Explorer scheduled invocations to headless agents + + The Vite plugin's Local Explorer hint now documents how to invoke a Worker's scheduled handler and points agents to the OpenAPI schema for the complete request contract. + +### Patch Changes + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`cd60c9c`](https://github.com/cloudflare/workers-sdk/commit/cd60c9c946bb3bcb9f6c32d426c2d4ee2992e03a), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + - wrangler@4.139.0 + ## 1.59.0 ### Minor Changes diff --git a/packages/vite-plugin-cloudflare/package.json b/packages/vite-plugin-cloudflare/package.json index b5d6b9c99e2..ff5427bd1fa 100644 --- a/packages/vite-plugin-cloudflare/package.json +++ b/packages/vite-plugin-cloudflare/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/vite-plugin", - "version": "1.59.0", + "version": "1.60.0", "description": "Cloudflare plugin for Vite", "keywords": [ "cloudflare", diff --git a/packages/vitest-plugin/CHANGELOG.md b/packages/vitest-plugin/CHANGELOG.md index 449a3c6a883..21f4ed7dd47 100644 --- a/packages/vitest-plugin/CHANGELOG.md +++ b/packages/vitest-plugin/CHANGELOG.md @@ -1,5 +1,13 @@ # @cloudflare/vitest-pool-workers +## 1.2.6 + +### Patch Changes + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`cd60c9c`](https://github.com/cloudflare/workers-sdk/commit/cd60c9c946bb3bcb9f6c32d426c2d4ee2992e03a), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + - wrangler@4.139.0 + ## 1.2.5 ### Patch Changes diff --git a/packages/vitest-plugin/package.json b/packages/vitest-plugin/package.json index 518d6799461..d57d7de2c00 100644 --- a/packages/vitest-plugin/package.json +++ b/packages/vitest-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/vitest-plugin", - "version": "1.2.5", + "version": "1.2.6", "description": "Workers Vitest integration for writing Vitest unit and integration tests that run inside the Workers runtime", "keywords": [ "cloudflare", diff --git a/packages/workers-auth/CHANGELOG.md b/packages/workers-auth/CHANGELOG.md index 492834489f8..d2fc05cdaba 100644 --- a/packages/workers-auth/CHANGELOG.md +++ b/packages/workers-auth/CHANGELOG.md @@ -1,5 +1,18 @@ # @cloudflare/workers-auth +## 0.9.2 + +### Patch Changes + +- [#15838](https://github.com/cloudflare/workers-sdk/pull/15838) [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095) Thanks [@oddharsh](https://github.com/oddharsh)! - Update `smol-toml` to 1.9.0 to fix slow parsing of very large TOML files + + Parse time for TOML config files now grows linearly with their size, instead of with its square: a 40,000-line file that took 259 ms to parse now takes 17 ms, while typical `wrangler.toml` files parse in the same time as before. This addresses the `GHSA-r4xh-jqrq-34v2` advisory against earlier versions of the parser. + + Some TOML syntax errors now point at the character that caused them. For example, a `wrangler.toml` containing `INVALID "FILE` is now reported as `illegal character in key` at the `"`, rather than `incomplete key-value` at the start of the line. + +- Updated dependencies [[`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f), [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - @cloudflare/workers-utils@0.42.0 + ## 0.9.1 ### Patch Changes diff --git a/packages/workers-auth/package.json b/packages/workers-auth/package.json index f92fc54392e..4196093e6f6 100644 --- a/packages/workers-auth/package.json +++ b/packages/workers-auth/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/workers-auth", - "version": "0.9.1", + "version": "0.9.2", "description": "Internal OAuth 2.0 + PKCE flow for Cloudflare CLIs. Not intended for external use — APIs may change without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/workers-auth#readme", "bugs": { diff --git a/packages/workers-utils/CHANGELOG.md b/packages/workers-utils/CHANGELOG.md index 2719b6d14d1..8ce5bd5611f 100644 --- a/packages/workers-utils/CHANGELOG.md +++ b/packages/workers-utils/CHANGELOG.md @@ -1,5 +1,61 @@ # @cloudflare/workers-utils +## 0.42.0 + +### Minor Changes + +- [#15792](https://github.com/cloudflare/workers-sdk/pull/15792) [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f) Thanks [@flakey5](https://github.com/flakey5)! - Configure SSH for experimental Durable Object-managed Containers + + Set `containers[].ssh` and `containers[].authorized_keys` when using `scheduling_policy: "durable_object"`. These are application-wide settings that follow the same rules as the existing Durable Object-managed Container settings: normal deployments create missing applications and update explicitly configured values, while omitted settings preserve the existing application configuration. + + ```jsonc + // wrangler.jsonc + { + "containers": [ + { + "name": "sandbox", + "class_name": "Sandbox", + "scheduling_policy": "durable_object", + "ssh": { "enabled": true }, + "authorized_keys": [ + { "name": "laptop", "public_key": "ssh-ed25519 AAAA..." } + ] + } + ] + } + ``` + +- [#15786](https://github.com/cloudflare/workers-sdk/pull/15786) [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8) Thanks [@ThomasRubini](https://github.com/ThomasRubini)! - Support UDP connect handlers in local development + + The experimental `connect` configuration now accepts `protocol: "udp"`, with optional `idle_timeout_ms` and `max_pending_bytes` settings. UDP datagrams are delivered to the Worker's `connect()` handler using workerd's value-mode socket streams, and can be tested with `Miniflare#dispatchConnect({ protocol: "udp" })`. + +- [#15779](https://github.com/cloudflare/workers-sdk/pull/15779) [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2) Thanks [@Naapperas](https://github.com/Naapperas)! - Support `workflow` entries in the `exports` configuration map + + A Worker can now declare the Workflows it defines in `exports`, keyed by the `WorkflowEntrypoint` class name: + + ```jsonc + { + "exports": { + "MyWorkflow": { + "type": "workflow", + "name": "my-workflow", + "limits": { "steps": 100 }, + "schedules": "0 * * * *" + } + } + } + ``` + + A `workflow` export accepts the same settings as a `workflows` binding: `limits`, `concurrency`, `schedules`, and `default_retention`. `wrangler deploy` and `wrangler versions upload` send these entries to the upload API by name, and `wrangler deploy` and `wrangler triggers deploy` provision the Workflow with its settings, just as they do for `workflows` bindings owned by the Worker. A Workflow may be declared both as a binding and as an export, as long as both declarations use the same class and do not set the same setting to different values. A binding to another Worker's Workflow cannot share a name with an export. `@cloudflare/config` adds the matching `exports.workflow()` helper. Local development does not yet act on these entries. + +### Patch Changes + +- [#15838](https://github.com/cloudflare/workers-sdk/pull/15838) [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095) Thanks [@oddharsh](https://github.com/oddharsh)! - Update `smol-toml` to 1.9.0 to fix slow parsing of very large TOML files + + Parse time for TOML config files now grows linearly with their size, instead of with its square: a 40,000-line file that took 259 ms to parse now takes 17 ms, while typical `wrangler.toml` files parse in the same time as before. This addresses the `GHSA-r4xh-jqrq-34v2` advisory against earlier versions of the parser. + + Some TOML syntax errors now point at the character that caused them. For example, a `wrangler.toml` containing `INVALID "FILE` is now reported as `illegal character in key` at the `"`, rather than `incomplete key-value` at the start of the line. + ## 0.41.2 ### Patch Changes diff --git a/packages/workers-utils/package.json b/packages/workers-utils/package.json index bbf16a00363..c8bdaec99c4 100644 --- a/packages/workers-utils/package.json +++ b/packages/workers-utils/package.json @@ -1,6 +1,6 @@ { "name": "@cloudflare/workers-utils", - "version": "0.41.2", + "version": "0.42.0", "description": "Internal utility package for workers-sdk. Not intended for external use — APIs may change without notice.", "homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/workers-utils#readme", "bugs": { diff --git a/packages/wrangler/CHANGELOG.md b/packages/wrangler/CHANGELOG.md index c5c8c4df06d..940d5715f1e 100644 --- a/packages/wrangler/CHANGELOG.md +++ b/packages/wrangler/CHANGELOG.md @@ -1,5 +1,85 @@ # wrangler +## 4.139.0 + +### Minor Changes + +- [#15792](https://github.com/cloudflare/workers-sdk/pull/15792) [`479e1e8`](https://github.com/cloudflare/workers-sdk/commit/479e1e8eaf05764da7950c42c38cff2a98f00e3f) Thanks [@flakey5](https://github.com/flakey5)! - Configure SSH for experimental Durable Object-managed Containers + + Set `containers[].ssh` and `containers[].authorized_keys` when using `scheduling_policy: "durable_object"`. These are application-wide settings that follow the same rules as the existing Durable Object-managed Container settings: normal deployments create missing applications and update explicitly configured values, while omitted settings preserve the existing application configuration. + + ```jsonc + // wrangler.jsonc + { + "containers": [ + { + "name": "sandbox", + "class_name": "Sandbox", + "scheduling_policy": "durable_object", + "ssh": { "enabled": true }, + "authorized_keys": [ + { "name": "laptop", "public_key": "ssh-ed25519 AAAA..." } + ] + } + ] + } + ``` + +- [#15648](https://github.com/cloudflare/workers-sdk/pull/15648) [`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7) Thanks [@tpmmorris](https://github.com/tpmmorris)! - Expose configured Cron Triggers to local development consumers + + Wrangler now passes the active environment's exact Cron Trigger expressions to Miniflare so Local Explorer can display them. Headless agent sessions also advertise the Local Explorer scheduled invocation API. + +- [#15786](https://github.com/cloudflare/workers-sdk/pull/15786) [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8) Thanks [@ThomasRubini](https://github.com/ThomasRubini)! - Support UDP connect handlers in local development + + The experimental `connect` configuration now accepts `protocol: "udp"`, with optional `idle_timeout_ms` and `max_pending_bytes` settings. UDP datagrams are delivered to the Worker's `connect()` handler using workerd's value-mode socket streams, and can be tested with `Miniflare#dispatchConnect({ protocol: "udp" })`. + +- [#15779](https://github.com/cloudflare/workers-sdk/pull/15779) [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2) Thanks [@Naapperas](https://github.com/Naapperas)! - Support `workflow` entries in the `exports` configuration map + + A Worker can now declare the Workflows it defines in `exports`, keyed by the `WorkflowEntrypoint` class name: + + ```jsonc + { + "exports": { + "MyWorkflow": { + "type": "workflow", + "name": "my-workflow", + "limits": { "steps": 100 }, + "schedules": "0 * * * *" + } + } + } + ``` + + A `workflow` export accepts the same settings as a `workflows` binding: `limits`, `concurrency`, `schedules`, and `default_retention`. `wrangler deploy` and `wrangler versions upload` send these entries to the upload API by name, and `wrangler deploy` and `wrangler triggers deploy` provision the Workflow with its settings, just as they do for `workflows` bindings owned by the Worker. A Workflow may be declared both as a binding and as an export, as long as both declarations use the same class and do not set the same setting to different values. A binding to another Worker's Workflow cannot share a name with an export. `@cloudflare/config` adds the matching `exports.workflow()` helper. Local development does not yet act on these entries. + +### Patch Changes + +- [#15796](https://github.com/cloudflare/workers-sdk/pull/15796) [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d) Thanks [@dependabot](https://github.com/apps/dependabot)! - Update dependencies of "miniflare", "wrangler" + + The following dependency versions have been updated: + + | Dependency | From | To | + | ------------------------- | ------------- | ------------- | + | @cloudflare/workers-types | ^5.20260921.1 | ^5.20260923.1 | + | workerd | 1.20260921.1 | 1.20260923.1 | + +- [#14847](https://github.com/cloudflare/workers-sdk/pull/14847) [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47) Thanks [@TheSaiEaranti](https://github.com/TheSaiEaranti)! - Emulate the deterministic-ID uniqueness contract in the local Workflows binding + + The local Workflows binding now matches the documented production behavior for deterministic instance IDs: `create({ id })` with an ID that already exists throws `(instance.already_exists)` and retains the existing instance, and `createBatch()` skips IDs that already exist or repeat within the batch, excluding them from the result instead of creating duplicate executions. Previously both paths silently created duplicates, so code relying on deterministic IDs for idempotency (for example a Queue consumer creating one workflow per message) appeared to work locally while double-executing workflow bodies. + +- [#15803](https://github.com/cloudflare/workers-sdk/pull/15803) [`cd60c9c`](https://github.com/cloudflare/workers-sdk/commit/cd60c9c946bb3bcb9f6c32d426c2d4ee2992e03a) Thanks [@pmiguel](https://github.com/pmiguel)! - Show `--jurisdiction` in help for `wrangler kv namespace create` + + The option was supported but omitted from the command's help output. Users can now discover how to create KV namespaces in a specific jurisdiction. + +- [#15838](https://github.com/cloudflare/workers-sdk/pull/15838) [`15799d4`](https://github.com/cloudflare/workers-sdk/commit/15799d4b61adc6317a506d700846ebaeeb558095) Thanks [@oddharsh](https://github.com/oddharsh)! - Update `smol-toml` to 1.9.0 to fix slow parsing of very large TOML files + + Parse time for TOML config files now grows linearly with their size, instead of with its square: a 40,000-line file that took 259 ms to parse now takes 17 ms, while typical `wrangler.toml` files parse in the same time as before. This addresses the `GHSA-r4xh-jqrq-34v2` advisory against earlier versions of the parser. + + Some TOML syntax errors now point at the character that caused them. For example, a `wrangler.toml` containing `INVALID "FILE` is now reported as `illegal character in key` at the `"`, rather than `incomplete key-value` at the start of the line. + +- Updated dependencies [[`52c0e9f`](https://github.com/cloudflare/workers-sdk/commit/52c0e9f79d21b508466cd7508434fd8860be56f7), [`44f5295`](https://github.com/cloudflare/workers-sdk/commit/44f52951a699f77a35fa5d3b0ba1d33c7e2e3a31), [`be72815`](https://github.com/cloudflare/workers-sdk/commit/be728157f7b1f59f5878d09ca4f23b96f338f75d), [`940c692`](https://github.com/cloudflare/workers-sdk/commit/940c6925b887faa4f43eccc957766385f6cc2d47), [`bdda4c3`](https://github.com/cloudflare/workers-sdk/commit/bdda4c3b3c028d3d4dab5ea4c5af8040ed7ed1d8), [`fc3cbaa`](https://github.com/cloudflare/workers-sdk/commit/fc3cbaa4150a3cf30502286452153806bf8800d2)]: + - miniflare@5.20260923.0-alpha + ## 4.138.0 ### Minor Changes diff --git a/packages/wrangler/package.json b/packages/wrangler/package.json index 674a8343cae..fb38142e0ea 100644 --- a/packages/wrangler/package.json +++ b/packages/wrangler/package.json @@ -1,6 +1,6 @@ { "name": "wrangler", - "version": "4.138.0", + "version": "4.139.0", "description": "Command-line interface for all things Cloudflare Workers", "keywords": [ "assembly",